| /** | |
| * Copyright (c) 2019, The Linux Foundation. All rights reserved. | |
| * | |
| * Redistribution and use in source and binary forms, with or without | |
| * modification, are permitted provided that the following conditions are | |
| * met: | |
| * * Redistributions of source code must retain the above copyright | |
| * notice, this list of conditions and the following disclaimer. | |
| * * Redistributions in binary form must reproduce the above | |
| * copyright notice, this list of conditions and the following | |
| * disclaimer in the documentation and/or other materials provided | |
| * with the distribution. | |
| * * Neither the name of The Linux Foundation nor the names of its | |
| * contributors may be used to endorse or promote products derived | |
| * from this software without specific prior written permission. | |
| * | |
| * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED | |
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT | |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS | |
| * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR | |
| * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE | |
| * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN | |
| * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
| */ | |
| #ifndef _ADSP_CURRENT_PROCESS1_H | |
| #define _ADSP_CURRENT_PROCESS1_H | |
| #include "remote.h" | |
| #ifndef __QAIC_HEADER | |
| #define __QAIC_HEADER(ff) ff | |
| #endif //__QAIC_HEADER | |
| #ifndef __QAIC_HEADER_EXPORT | |
| #define __QAIC_HEADER_EXPORT | |
| #endif // __QAIC_HEADER_EXPORT | |
| #ifndef __QAIC_HEADER_ATTRIBUTE | |
| #define __QAIC_HEADER_ATTRIBUTE | |
| #endif // __QAIC_HEADER_ATTRIBUTE | |
| #ifndef __QAIC_IMPL | |
| #define __QAIC_IMPL(ff) ff | |
| #endif //__QAIC_IMPL | |
| #ifndef __QAIC_IMPL_EXPORT | |
| #define __QAIC_IMPL_EXPORT | |
| #endif // __QAIC_IMPL_EXPORT | |
| #ifndef __QAIC_IMPL_ATTRIBUTE | |
| #define __QAIC_IMPL_ATTRIBUTE | |
| #endif // __QAIC_IMPL_ATTRIBUTE | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| #if !defined(__QAIC_STRING1_OBJECT_DEFINED__) && !defined(__STRING1_OBJECT__) | |
| #define __QAIC_STRING1_OBJECT_DEFINED__ | |
| #define __STRING1_OBJECT__ | |
| typedef struct _cstring1_s { | |
| char* data; | |
| int dataLen; | |
| } _cstring1_t; | |
| #endif /* __QAIC_STRING1_OBJECT_DEFINED__ */ | |
| #define _const_adsp_current_process1_handle 4 | |
| /** | |
| * Opens the handle in the specified domain. If this is the first | |
| * handle, this creates the session. Typically this means opening | |
| * the device, aka open("/dev/adsprpc-smd"), then calling ioctl | |
| * device APIs to create a PD on the DSP to execute our code in, | |
| * then asking that PD to dlopen the .so and dlsym the skel function. | |
| * | |
| * @param uri, <interface>_URI"&_dom=aDSP" | |
| * <interface>_URI is a QAIC generated uri, or | |
| * "file:///<sofilename>?<interface>_skel_handle_invoke&_modver=1.0" | |
| * If the _dom parameter is not present, _dom=DEFAULT is assumed | |
| * but not forwarded. | |
| * Reserved uri keys: | |
| * [0]: first unamed argument is the skel invoke function | |
| * _dom: execution domain name, _dom=mDSP/aDSP/DEFAULT | |
| * _modver: module version, _modver=1.0 | |
| * _*: any other key name starting with an _ is reserved | |
| * Unknown uri keys/values are forwarded as is. | |
| * @param h, resulting handle | |
| * @retval, 0 on success | |
| */ | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_open)(const char* uri, remote_handle64* h) __QAIC_HEADER_ATTRIBUTE; | |
| /** | |
| * Closes a handle. If this is the last handle to close, the session | |
| * is closed as well, releasing all the allocated resources. | |
| * @param h, the handle to close | |
| * @retval, 0 on success, should always succeed | |
| */ | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_close)(remote_handle64 h) __QAIC_HEADER_ATTRIBUTE; | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_exit)(remote_handle64 _h) __QAIC_HEADER_ATTRIBUTE; | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_thread_exit)(remote_handle64 _h) __QAIC_HEADER_ATTRIBUTE; | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_set_logging_params)(remote_handle64 _h, unsigned short mask, const _cstring1_t* filesToLog, int filesToLogLen) __QAIC_HEADER_ATTRIBUTE; | |
| __QAIC_HEADER_EXPORT int __QAIC_HEADER(adsp_current_process1_getASID)(remote_handle64 _h, unsigned int* asid) __QAIC_HEADER_ATTRIBUTE; | |
| #ifndef adsp_current_process1_URI | |
| #define adsp_current_process1_URI "file:///libadsp_current_process1_skel.so?adsp_current_process1_skel_handle_invoke&_modver=1.0" | |
| #endif /*adsp_current_process1_URI*/ | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif //_ADSP_CURRENT_PROCESS1_H |