/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* * * Copyright (c) 2021 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ #define IClientEnv_OP_open 0 #define IClientEnv_OP_registerLegacy 1 #define IClientEnv_OP_register 2 #define IClientEnv_OP_registerWithWhitelist 3 #define IClientEnv_OP_notifyDomainChange 4 #define IClientEnv_OP_registerWithCredentials 5 #define IClientEnv_OP_loadCmnlibFromBuffer 6 #define IClientEnv_OP_configTaRegion 7 #define IClientEnv_OP_adciAccept 8 #define IClientEnv_OP_adciShutdown 9 #include "smcinvoke_object.h" static inline int32_t IClientEnv_release(struct Object self) { return Object_invoke(self, Object_OP_release, 0, 0); } static inline int32_t IClientEnv_retain(struct Object self) { return Object_invoke(self, Object_OP_retain, 0, 0); } static inline int32_t IClientEnv_open(struct Object self, uint32_t uid_val, struct Object *obj_ptr) { union ObjectArg a[2]; int32_t result; a[0].b = (struct ObjectBuf) { &uid_val, sizeof(uint32_t) }; result = Object_invoke(self, IClientEnv_OP_open, a, ObjectCounts_pack(1, 0, 0, 1)); *obj_ptr = a[1].o; return result; } static inline int32_t IClientEnv_registerLegacy(struct Object self, const void *credentials_ptr, size_t credentials_len, struct Object *clientEnv_ptr) { union ObjectArg a[2]; int32_t result; a[0].bi = (struct ObjectBufIn) { credentials_ptr, credentials_len * 1 }; result = Object_invoke(self, IClientEnv_OP_registerLegacy, a, ObjectCounts_pack(1, 0, 0, 1)); *clientEnv_ptr = a[1].o; return result; } static inline int32_t IClientEnv_register(struct Object self, struct Object credentials_val, struct Object *clientEnv_ptr) { union ObjectArg a[2]; int32_t result; a[0].o = credentials_val; result = Object_invoke(self, IClientEnv_OP_register, a, ObjectCounts_pack(0, 0, 1, 1)); *clientEnv_ptr = a[1].o; return result; } static inline int32_t IClientEnv_registerWithWhitelist(struct Object self, struct Object credentials_val, const uint32_t *uids_ptr, size_t uids_len, struct Object *clientEnv_ptr) { union ObjectArg a[3]; int32_t result; a[1].o = credentials_val; a[0].bi = (struct ObjectBufIn) { uids_ptr, uids_len * sizeof(uint32_t) }; result = Object_invoke(self, IClientEnv_OP_registerWithWhitelist, a, ObjectCounts_pack(1, 0, 1, 1)); *clientEnv_ptr = a[2].o; return result; } static inline int32_t IClientEnv_notifyDomainChange(struct Object self) { return Object_invoke(self, IClientEnv_OP_notifyDomainChange, 0, 0); } static inline int32_t IClientEnv_registerWithCredentials(struct Object self, struct Object credentials_val, struct Object *clientEnv_ptr) { union ObjectArg a[2]={{{0,0}}}; int32_t result; a[0].o = credentials_val; result = Object_invoke(self, IClientEnv_OP_registerWithCredentials, a, ObjectCounts_pack(0, 0, 1, 1)); *clientEnv_ptr = a[1].o; return result; } static inline int32_t IClientEnv_loadCmnlibFromBuffer(struct Object self, const void *cmnlibElf_ptr, size_t cmnlibElf_len) { union ObjectArg a[1]={{{0,0}}}; a[0].bi = (struct ObjectBufIn) { cmnlibElf_ptr, cmnlibElf_len * 1 }; return Object_invoke(self, IClientEnv_OP_loadCmnlibFromBuffer, a, ObjectCounts_pack(1, 0, 0, 0)); } static inline int32_t IClientEnv_configTaRegion(struct Object self, uint64_t appRgnAddr_val, uint32_t appRgnSize_val) { union ObjectArg a[1]={{{0,0}}}; struct { uint64_t m_appRgnAddr; uint32_t m_appRgnSize; } i; a[0].b = (struct ObjectBuf) { &i, 12 }; i.m_appRgnAddr = appRgnAddr_val; i.m_appRgnSize = appRgnSize_val; return Object_invoke(self, IClientEnv_OP_configTaRegion, a, ObjectCounts_pack(1, 0, 0, 0)); } static inline int32_t IClientEnv_adciAccept(struct Object self) { return Object_invoke(self, IClientEnv_OP_adciAccept, 0, 0); } static inline int32_t IClientEnv_adciShutdown(struct Object self) { return Object_invoke(self, IClientEnv_OP_adciShutdown, 0, 0); }