1 /* 2 * Copyright (C) 2022 Huawei Technologies Co., Ltd. 3 * Licensed under the Mulan PSL v2. 4 * You can use this software according to the terms and conditions of the Mulan PSL v2. 5 * You may obtain a copy of Mulan PSL v2 at: 6 * http://license.coscl.org.cn/MulanPSL2 7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR 8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR 9 * PURPOSE. 10 * See the Mulan PSL v2 for more details. 11 */ 12 13 #ifndef CA_DAEMON_STUB_H 14 #define CA_DAEMON_STUB_H 15 16 #include <cstdint> 17 #include <cstdio> 18 #include <map> 19 #include "cadaemon_interface.h" 20 #include "iremote_stub.h" 21 22 namespace OHOS { 23 namespace CaDaemon { 24 class CaDaemonStub : public IRemoteStub<CaDaemon> { 25 public: 26 CaDaemonStub(); 27 virtual ~CaDaemonStub(); 28 int32_t OnRemoteRequest(uint32_t code, 29 MessageParcel& data, MessageParcel &reply, MessageOption &option) override; 30 private: 31 int32_t InitContextRecvProc(MessageParcel &data, MessageParcel &reply); 32 int32_t FinalContextRecvProc(MessageParcel &data, MessageParcel &reply); 33 int32_t OpenSessionRecvProc(MessageParcel &data, MessageParcel &reply); 34 int32_t CloseSessionRecvProc(MessageParcel &data, MessageParcel &reply); 35 int32_t InvokeCommandRecvProc(MessageParcel &data, MessageParcel &reply); 36 int32_t RegisterMemRecvProc(MessageParcel &data, MessageParcel &reply); 37 int32_t AllocMemRecvProc(MessageParcel &data, MessageParcel &reply); 38 int32_t ReleaseMemRecvProc(MessageParcel &data, MessageParcel &reply); 39 int32_t SetCallBackRecvProc(MessageParcel &data, MessageParcel &reply); 40 bool EnforceInterceToken(MessageParcel& data); 41 int32_t SendSecFileRecvProc(MessageParcel& data, MessageParcel &reply); 42 int32_t GetTeeVersionRecvProc(MessageParcel& data, MessageParcel &reply); 43 using CaDaemonFunc = int32_t (CaDaemonStub::*)(MessageParcel& data, MessageParcel& reply); 44 std::map<uint32_t, CaDaemonFunc> memberFuncMap_; 45 }; 46 } // namespace CaDaemon 47 } // namespace OHOS 48 #endif 49