Remote Interface
Remote API
remote.h File Reference
#include <stdint.h>
#include <sys/types.h>

Go to the source code of this file.

Classes

struct  domain_t
 
struct  remote_buf
 
struct  remote_buf64
 
struct  remote_dma_handle
 
struct  remote_dma_handle64
 
union  remote_arg
 
union  remote_arg64
 
struct  fastrpc_async_callback
 
struct  fastrpc_async_descriptor
 
struct  remote_rpc_control_latency
 
struct  remote_dsp_capability
 
struct  remote_rpc_control_wakelock
 
struct  remote_rpc_get_domain
 
struct  remote_control_custom_path
 
struct  remote_rpc_thread_params
 
struct  remote_rpc_control_unsigned_module
 
struct  remote_rpc_relative_thread_priority
 
struct  remote_rpc_process_clean_params
 
struct  remote_rpc_session_close
 
struct  remote_rpc_control_pd_dump
 
struct  remote_process_type
 
struct  remote_rpc_notif_register
 
struct  remote_rpc_pd_initmem_size
 
struct  remote_rpc_reserve_new_session
 
struct  remote_rpc_effective_domain_id
 
struct  remote_rpc_get_uri
 

Macros

#define __QAIC_REMOTE(ff)   ff
 
#define __QAIC_REMOTE_EXPORT
 __QAIC_REMOTE More...
 
#define __QAIC_RETURN
 
#define __QAIC_IN
 
#define __QAIC_IN_CHAR
 
#define __QAIC_IN_LEN(len)
 
#define __QAIC_OUT
 
#define __QAIC_INT64PTR   uint64_t
 
#define __QAIC_REMOTE_ATTRIBUTE
 
#define REMOTE_SCALARS_METHOD_ATTR(dwScalars)   (((dwScalars) >> 29) & 0x7)
 __QAIC_REMOTE_ATTRIBUTE More...
 
#define REMOTE_SCALARS_METHOD(dwScalars)   (((dwScalars) >> 24) & 0x1f)
 
#define REMOTE_SCALARS_INBUFS(dwScalars)   (((dwScalars) >> 16) & 0x0ff)
 
#define REMOTE_SCALARS_OUTBUFS(dwScalars)   (((dwScalars) >> 8) & 0x0ff)
 
#define REMOTE_SCALARS_INHANDLES(dwScalars)   (((dwScalars) >> 4) & 0x0f)
 
#define REMOTE_SCALARS_OUTHANDLES(dwScalars)   ((dwScalars) & 0x0f)
 
#define REMOTE_SCALARS_MAKEX(nAttr, nMethod, nIn, nOut, noIn, noOut)
 
#define REMOTE_SCALARS_MAKE(nMethod, nIn, nOut)   REMOTE_SCALARS_MAKEX(0,nMethod,nIn,nOut,0,0)
 
#define REMOTE_SCALARS_LENGTH(sc)
 
#define ADSP_DOMAIN_ID   0
 
#define MDSP_DOMAIN_ID   1
 
#define SDSP_DOMAIN_ID   2
 
#define CDSP_DOMAIN_ID   3
 
#define ADSP_DOMAIN_NAME   "adsp"
 
#define MDSP_DOMAIN_NAME   "mdsp"
 
#define SDSP_DOMAIN_NAME   "sdsp"
 
#define CDSP_DOMAIN_NAME   "cdsp"
 
#define ADSP_DOMAIN   "&_dom=adsp"
 
#define MDSP_DOMAIN   "&_dom=mdsp"
 
#define SDSP_DOMAIN   "&_dom=sdsp"
 
#define CDSP_DOMAIN   "&_dom=cdsp"
 
#define ITRANSPORT_PREFIX   "'\":;./\\"
 
#define MAX_DOMAIN_URI_SIZE   12
 
#define FASTRPC_WAKELOCK_CONTROL_SUPPORTED   1
 
#define FASTRPC_ATTR_NONE   0 /** No attribute to set.*/
 
#define FASTRPC_ATTR_NON_COHERENT
 
#define FASTRPC_ATTR_COHERENT
 
#define FASTRPC_ATTR_KEEP_MAP
 
#define FASTRPC_ATTR_NOMAP
 
#define FASTRPC_ATTR_FORCE_NOFLUSH
 
#define FASTRPC_ATTR_FORCE_NOINVALIDATE
 
#define FASTRPC_ATTR_TRY_MAP_STATIC
 
#define REMOTE_MODE_PARALLEL   0
 
#define REMOTE_MODE_SERIAL   1
 

Typedefs

typedef struct domain_t domain
 
typedef uint32_t remote_handle
 
typedef uint64_t remote_handle64
 
typedef uint64_t fastrpc_async_jobid
 
typedef struct fastrpc_async_callback fastrpc_async_callback_t
 
typedef struct fastrpc_async_descriptor fastrpc_async_descriptor_t
 
typedef struct remote_dsp_capability fastrpc_capability
 
typedef struct remote_rpc_get_domain remote_rpc_get_domain_t
 
typedef struct remote_rpc_process_clean_params remote_rpc_process_exception
 
typedef enum remote_rpc_status_flags remote_rpc_status_flags_t
 
typedef int(* fastrpc_notif_fn_t) (void *context, int domain, int session, remote_rpc_status_flags_t status)
 
typedef struct remote_rpc_notif_register remote_rpc_notif_register_t
 
typedef struct remote_rpc_reserve_new_session remote_rpc_reserve_new_session_t
 
typedef struct remote_rpc_effective_domain_id remote_rpc_effective_domain_id_t
 
typedef struct remote_rpc_get_uri remote_rpc_get_uri_t
 

Enumerations

enum  fastrpc_async_notify_type { FASTRPC_ASYNC_NO_SYNC, FASTRPC_ASYNC_CALLBACK, FASTRPC_ASYNC_POLL }
 
enum  remote_rpc_latency_flags { RPC_DISABLE_QOS, RPC_PM_QOS, RPC_ADAPTIVE_QOS, RPC_POLL_QOS }
 
enum  remote_dsp_attributes {
  DOMAIN_SUPPORT, UNSIGNED_PD_SUPPORT, HVX_SUPPORT_64B, HVX_SUPPORT_128B,
  VTCM_PAGE, VTCM_COUNT, ARCH_VER, HMX_SUPPORT_DEPTH,
  HMX_SUPPORT_SPATIAL, ASYNC_FASTRPC_SUPPORT, STATUS_NOTIFICATION_SUPPORT
}
 Different types of DSP capabilities queried via remote_handle_control using DSPRPC_GET_DSP_INFO request id. DSPRPC_GET_DSP_INFO should only be used with remote_handle_control() as a handle is not needed to query DSP capabilities. To query DSP capabilities fill out 'domain' and 'attribute_ID' from structure remote_dsp_capability. DSP capability will be returned on variable 'capability'. More...
 
enum  handle_control_req_id {
  DSPRPC_RESERVED, DSPRPC_CONTROL_LATENCY, DSPRPC_GET_DSP_INFO, DSPRPC_CONTROL_WAKELOCK,
  DSPRPC_GET_DOMAIN, DSPRPC_SET_PATH, DSPRPC_GET_PATH
}
 
enum  fastrpc_process_type { PROCESS_TYPE_SIGNED, PROCESS_TYPE_UNSIGNED }
 
enum  remote_rpc_status_flags {
  FASTRPC_USER_PD_UP, FASTRPC_USER_PD_EXIT, FASTRPC_USER_PD_FORCE_KILL, FASTRPC_USER_PD_EXCEPTION,
  FASTRPC_DSP_SSR
}
 
enum  session_control_req_id {
  FASTRPC_RESERVED_1, FASTRPC_THREAD_PARAMS, DSPRPC_CONTROL_UNSIGNED_MODULE, FASTRPC_RESERVED_2,
  FASTRPC_RELATIVE_THREAD_PRIORITY, FASTRPC_RESERVED_3, FASTRPC_REMOTE_PROCESS_KILL, FASTRPC_SESSION_CLOSE,
  FASTRPC_CONTROL_PD_DUMP, FASTRPC_REMOTE_PROCESS_EXCEPTION, FASTRPC_REMOTE_PROCESS_TYPE, FASTRPC_REGISTER_STATUS_NOTIFICATIONS,
  FASTRPC_PD_INITMEM_SIZE, FASTRPC_RESERVE_NEW_SESSION, FASTRPC_GET_EFFECTIVE_DOMAIN_ID, FASTRPC_GET_URI
}
 
enum  remote_mem_map_flags { REMOTE_MAP_MEM_STATIC }
 
enum  fastrpc_map_flags {
  FASTRPC_MAP_STATIC, FASTRPC_MAP_RESERVED, FASTRPC_MAP_FD, FASTRPC_MAP_FD_DELAYED,
  FASTRPC_MAP_RESERVED_4, FASTRPC_MAP_RESERVED_5, FASTRPC_MAP_RESERVED_6, FASTRPC_MAP_RESERVED_7,
  FASTRPC_MAP_RESERVED_8, FASTRPC_MAP_RESERVED_9, FASTRPC_MAP_RESERVED_10, FASTRPC_MAP_RESERVED_11,
  FASTRPC_MAP_RESERVED_12, FASTRPC_MAP_RESERVED_13, FASTRPC_MAP_RESERVED_14, FASTRPC_MAP_RESERVED_15,
  FASTRPC_MAP_FD_NOMAP
}
 Types of maps with cache maintenance. More...
 

Functions

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_open (__QAIC_IN_CHAR const char *name, __QAIC_OUT remote_handle *ph) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_open (__QAIC_IN_CHAR const char *name, __QAIC_OUT remote_handle64 *ph) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_invoke (__QAIC_IN remote_handle h, __QAIC_IN uint32_t dwScalars, __QAIC_IN remote_arg *pra) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_invoke (__QAIC_IN remote_handle64 h, __QAIC_IN uint32_t dwScalars, __QAIC_IN remote_arg *pra) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_close (__QAIC_IN remote_handle h) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_close (__QAIC_IN remote_handle64 h) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_control (__QAIC_IN uint32_t req, __QAIC_IN_LEN(datalen) void *data, __QAIC_IN uint32_t datalen) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_control (__QAIC_IN remote_handle64 h, __QAIC_IN uint32_t req, __QAIC_IN_LEN(datalen) void *data, __QAIC_IN uint32_t datalen) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_session_control (__QAIC_IN uint32_t req, __QAIC_IN_LEN(datalen) void *data, __QAIC_IN uint32_t datalen) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_invoke_async (__QAIC_IN remote_handle h, __QAIC_IN fastrpc_async_descriptor_t *desc, __QAIC_IN uint32_t dwScalars, __QAIC_IN remote_arg *pra) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_invoke_async (__QAIC_IN remote_handle64 h, __QAIC_IN fastrpc_async_descriptor_t *desc, __QAIC_IN uint32_t dwScalars, __QAIC_IN remote_arg *pra) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_async_get_status (__QAIC_IN fastrpc_async_jobid jobid, __QAIC_IN int timeout_us, __QAIC_OUT int *result)
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_release_async_job (__QAIC_IN fastrpc_async_jobid jobid)
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mmap (__QAIC_IN int fd, __QAIC_IN uint32_t flags, __QAIC_IN uint32_t vaddrin, __QAIC_IN int size, __QAIC_OUT uint32_t *vaddrout) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_munmap (__QAIC_IN uint32_t vaddrout, __QAIC_IN int size) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mem_map (__QAIC_IN int domain, __QAIC_IN int fd, __QAIC_IN int flags, __QAIC_IN uint64_t virtAddr, __QAIC_IN size_t size, __QAIC_OUT uint64_t *remoteVirtAddr) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mem_unmap (__QAIC_IN int domain, __QAIC_IN uint64_t remoteVirtAddr, __QAIC_IN size_t size) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mmap64 (__QAIC_IN int fd, __QAIC_IN uint32_t flags, __QAIC_IN __QAIC_INT64PTR vaddrin, __QAIC_IN int64_t size, __QAIC_OUT __QAIC_INT64PTR *vaddrout) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_munmap64 (__QAIC_IN __QAIC_INT64PTR vaddrout, __QAIC_IN int64_t size) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_mmap (__QAIC_IN int domain, __QAIC_IN int fd, __QAIC_IN void *addr, __QAIC_IN int offset, __QAIC_IN size_t length, __QAIC_IN enum fastrpc_map_flags flags) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_munmap (__QAIC_IN int domain, __QAIC_IN int fd, __QAIC_IN void *addr, __QAIC_IN size_t length) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf (__QAIC_IN_LEN(size) void *buf, __QAIC_IN int size, __QAIC_IN int fd) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf_attr (__QAIC_IN_LEN(size) void *buf, __QAIC_IN int size, __QAIC_IN int fd, __QAIC_IN int attr) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf_attr2 (__QAIC_IN_LEN(size) void *buf, __QAIC_IN size_t size, __QAIC_IN int fd, __QAIC_IN int attr) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_register_dma_handle (__QAIC_IN int fd, __QAIC_IN uint32_t len) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_register_dma_handle_attr (__QAIC_IN int fd, __QAIC_IN uint32_t len, __QAIC_IN uint32_t attr) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_set_mode (__QAIC_IN uint32_t mode) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN void *__QAIC_REMOTE() remote_register_fd (__QAIC_IN int fd, __QAIC_IN int size) __QAIC_REMOTE_ATTRIBUTE
 
__QAIC_REMOTE_EXPORT __QAIC_RETURN void *__QAIC_REMOTE() remote_register_fd2 (__QAIC_IN int fd, __QAIC_IN size_t size) __QAIC_REMOTE_ATTRIBUTE
 

Macro Definition Documentation

◆ __QAIC_IN

#define __QAIC_IN

_WIN32 __QAIC_RETURN

◆ __QAIC_IN_CHAR

#define __QAIC_IN_CHAR

_WIN32 __QAIC_IN

◆ __QAIC_IN_LEN

#define __QAIC_IN_LEN (   len)

_WIN32 __QAIC_IN_CHAR

◆ __QAIC_INT64PTR

#define __QAIC_INT64PTR   uint64_t

_WIN32 __QAIC_OUT

◆ __QAIC_OUT

#define __QAIC_OUT

_WIN32 __QAIC_IN_LEN

◆ __QAIC_REMOTE

#define __QAIC_REMOTE (   ff)    ff

◆ __QAIC_REMOTE_ATTRIBUTE

#define __QAIC_REMOTE_ATTRIBUTE

_WIN32 __QAIC_INT64PTR

◆ __QAIC_REMOTE_EXPORT

#define __QAIC_REMOTE_EXPORT

__QAIC_REMOTE

◆ __QAIC_RETURN

#define __QAIC_RETURN

_WIN32 __QAIC_REMOTE_EXPORT

◆ ADSP_DOMAIN

#define ADSP_DOMAIN   "&_dom=adsp"

Defines to prepare URI for multi-domain calls

◆ ADSP_DOMAIN_ID

#define ADSP_DOMAIN_ID   0

Defines the domain IDs for supported DSPs

◆ ADSP_DOMAIN_NAME

#define ADSP_DOMAIN_NAME   "adsp"

Defines the domain names for supported DSPs

◆ CDSP_DOMAIN

#define CDSP_DOMAIN   "&_dom=cdsp"

◆ CDSP_DOMAIN_ID

#define CDSP_DOMAIN_ID   3

◆ CDSP_DOMAIN_NAME

#define CDSP_DOMAIN_NAME   "cdsp"

◆ FASTRPC_ATTR_COHERENT

#define FASTRPC_ATTR_COHERENT
Value:
4

◆ FASTRPC_ATTR_FORCE_NOFLUSH

#define FASTRPC_ATTR_FORCE_NOFLUSH
Value:
32

◆ FASTRPC_ATTR_FORCE_NOINVALIDATE

#define FASTRPC_ATTR_FORCE_NOINVALIDATE
Value:
64

◆ FASTRPC_ATTR_KEEP_MAP

#define FASTRPC_ATTR_KEEP_MAP
Value:
8

◆ FASTRPC_ATTR_NOMAP

#define FASTRPC_ATTR_NOMAP
Value:
16

◆ FASTRPC_ATTR_NON_COHERENT

#define FASTRPC_ATTR_NON_COHERENT
Value:
2

◆ FASTRPC_ATTR_NONE

#define FASTRPC_ATTR_NONE   0 /** No attribute to set.*/

Attributes for remote_register_buf_attr/remote_register_buf_attr2

◆ FASTRPC_ATTR_TRY_MAP_STATIC

#define FASTRPC_ATTR_TRY_MAP_STATIC
Value:
128

◆ FASTRPC_WAKELOCK_CONTROL_SUPPORTED

#define FASTRPC_WAKELOCK_CONTROL_SUPPORTED   1

Macro for backward compatibility. Clients can compile wakelock request code in their app only when this is defined

◆ ITRANSPORT_PREFIX

#define ITRANSPORT_PREFIX   "'\":;./\\"

Internal transport prefix

◆ MAX_DOMAIN_URI_SIZE

#define MAX_DOMAIN_URI_SIZE   12

Maximum length of URI for remote_handle_open() calls

◆ MDSP_DOMAIN

#define MDSP_DOMAIN   "&_dom=mdsp"

◆ MDSP_DOMAIN_ID

#define MDSP_DOMAIN_ID   1

◆ MDSP_DOMAIN_NAME

#define MDSP_DOMAIN_NAME   "mdsp"

◆ REMOTE_MODE_PARALLEL

#define REMOTE_MODE_PARALLEL   0

REMOTE_MODE_PARALLEL used with remote_set_mode This is the default mode for the driver. While the driver is in parallel mode it will try to invalidate output buffers after it transfers control to the dsp. This allows the invalidate operations to overlap with the dsp processing the call. This mode should be used when output buffers are only read on the application processor and only written on the aDSP.

◆ REMOTE_MODE_SERIAL

#define REMOTE_MODE_SERIAL   1

REMOTE_MODE_SERIAL used with remote_set_mode When operating in SERIAL mode the driver will invalidate output buffers before calling into the dsp. This mode should be used when output buffers have been written to somewhere besides the aDSP.

◆ REMOTE_SCALARS_INBUFS

#define REMOTE_SCALARS_INBUFS (   dwScalars)    (((dwScalars) >> 16) & 0x0ff)

Retrieves number of input buffers from the scalars parameter

◆ REMOTE_SCALARS_INHANDLES

#define REMOTE_SCALARS_INHANDLES (   dwScalars)    (((dwScalars) >> 4) & 0x0f)

Retrieves number of input handles from the scalars parameter

◆ REMOTE_SCALARS_LENGTH

#define REMOTE_SCALARS_LENGTH (   sc)
Value:
REMOTE_SCALARS_OUTBUFS(sc) +\
REMOTE_SCALARS_INHANDLES(sc) +\
REMOTE_SCALARS_OUTHANDLES(sc))
#define REMOTE_SCALARS_INBUFS(dwScalars)
Definition: remote.h:93

Retrieves number of io buffers and handles

◆ REMOTE_SCALARS_MAKE

#define REMOTE_SCALARS_MAKE (   nMethod,
  nIn,
  nOut 
)    REMOTE_SCALARS_MAKEX(0,nMethod,nIn,nOut,0,0)

◆ REMOTE_SCALARS_MAKEX

#define REMOTE_SCALARS_MAKEX (   nAttr,
  nMethod,
  nIn,
  nOut,
  noIn,
  noOut 
)
Value:
((((uint32_t) (nAttr) & 0x7) << 29) | \
(((uint32_t) (nMethod) & 0x1f) << 24) | \
(((uint32_t) (nIn) & 0xff) << 16) | \
(((uint32_t) (nOut) & 0xff) << 8) | \
(((uint32_t) (noIn) & 0x0f) << 4) | \
((uint32_t) (noOut) & 0x0f))

Makes the scalar using the method attr, index and number of io buffers and handles

◆ REMOTE_SCALARS_METHOD

#define REMOTE_SCALARS_METHOD (   dwScalars)    (((dwScalars) >> 24) & 0x1f)

Retrieves method index from the scalars parameter

◆ REMOTE_SCALARS_METHOD_ATTR

#define REMOTE_SCALARS_METHOD_ATTR (   dwScalars)    (((dwScalars) >> 29) & 0x7)

__QAIC_REMOTE_ATTRIBUTE

Retrieves method attribute from the scalars parameter

◆ REMOTE_SCALARS_OUTBUFS

#define REMOTE_SCALARS_OUTBUFS (   dwScalars)    (((dwScalars) >> 8) & 0x0ff)

Retrieves number of output buffers from the scalars parameter

◆ REMOTE_SCALARS_OUTHANDLES

#define REMOTE_SCALARS_OUTHANDLES (   dwScalars)    ((dwScalars) & 0x0f)

Retrieves number of output handles from the scalars parameter

◆ SDSP_DOMAIN

#define SDSP_DOMAIN   "&_dom=sdsp"

◆ SDSP_DOMAIN_ID

#define SDSP_DOMAIN_ID   2

◆ SDSP_DOMAIN_NAME

#define SDSP_DOMAIN_NAME   "sdsp"

Typedef Documentation

◆ domain

typedef struct domain_t domain

Domain type for multi-domain RPC calls

◆ fastrpc_async_callback_t

Async call back response type, input structure

◆ fastrpc_async_descriptor_t

Async descriptor to submit async job

◆ fastrpc_async_jobid

typedef uint64_t fastrpc_async_jobid

Job id of Async job queued to DSP

◆ fastrpc_capability

◆ fastrpc_notif_fn_t

typedef int(* fastrpc_notif_fn_t) (void *context, int domain, int session, remote_rpc_status_flags_t status)

fastrpc_notif_fn_t Notification call back function

Parameters
context,contextused in the registration
domain,domainof the user process
session,sessionid of user process
status,statusof user process
Return values

◆ remote_handle

typedef uint32_t remote_handle

Remote handle parameter for RPC calls

◆ remote_handle64

typedef uint64_t remote_handle64

Remote handle parameter for multi-domain RPC calls

◆ remote_rpc_effective_domain_id_t

Structure for remote_session_control, used with FASTRPC_GET_EFFECTIVE_DOMAIN_ID request ID to get effective domain id of fastrpc session on the user PD of the DSP

◆ remote_rpc_get_domain_t

Structure used for request ID DSPRPC_GET_DOMAIN in remote handle control interface. Get domain ID associated with an opened handle to remote interface of type remote_handle64. remote_handle64_control() returns domain for a given handle remote_handle_control() API returns default domain ID

◆ remote_rpc_get_uri_t

Structure for remote_session_control, used with FASTRPC_GET_URI request ID to get the URI needed to load the module in the fastrpc user PD on the DSP

◆ remote_rpc_notif_register_t

Structure for remote_session_control, used with FASTRPC_REGISTER_STATUS_NOTIFICATIONS request ID to receive status notifications of the user PD on the DSP

◆ remote_rpc_process_exception

Structure used for request ID FASTRPC_REMOTE_PROCESS_EXCEPTION in remote session control interface This is used to trigger exception in the userPDs running on the DSP

◆ remote_rpc_reserve_new_session_t

Structure for remote_session_control, used with FASTRPC_RESERVE_SESSION request ID to reserve new fastrpc session of the user PD on the DSP. Default sesion is always 0 and remains available for any module opened without Session ID. New session reservation starts with session ID 1.

◆ remote_rpc_status_flags_t

DSP user PD status notification flags Status flags for the user PD on the DSP returned by the status notification function

Enumeration Type Documentation

◆ fastrpc_async_notify_type

Async response type

Enumerator
FASTRPC_ASYNC_NO_SYNC 
FASTRPC_ASYNC_CALLBACK 

No notification required

FASTRPC_ASYNC_POLL 

Callback notification using fastrpc_async_callback

◆ fastrpc_map_flags

Types of maps with cache maintenance.

for fastrpc_mmap and fastrpc_munmap

Enumerator
FASTRPC_MAP_STATIC 

Map memory pages with RW- permission and CACHE WRITEBACK. Driver will clean cache when buffer passed in a FastRPC call. Same remote virtual address will be assigned for subsequent FastRPC calls.

FASTRPC_MAP_RESERVED 

Reserved for compatibility with deprecated flag

FASTRPC_MAP_FD 

Map memory pages with RW- permission and CACHE WRITEBACK. Mapping tagged with a file descriptor. User is responsible for maintenance of CPU and DSP caches for the buffer. Get virtual address of buffer on DSP using HAP_mmap_get() and HAP_mmap_put() functions.

FASTRPC_MAP_FD_DELAYED 

Mapping delayed until user calls HAP_mmap() and HAP_munmap() functions on DSP. User is responsible for maintenance of CPU and DSP caches for the buffer. Delayed mapping is useful for users to map buffer on DSP with other than default permissions and cache modes using HAP_mmap() and HAP_munmap() functions.

FASTRPC_MAP_RESERVED_4 

Reserved for compatibility

FASTRPC_MAP_RESERVED_5 
FASTRPC_MAP_RESERVED_6 
FASTRPC_MAP_RESERVED_7 
FASTRPC_MAP_RESERVED_8 
FASTRPC_MAP_RESERVED_9 
FASTRPC_MAP_RESERVED_10 
FASTRPC_MAP_RESERVED_11 
FASTRPC_MAP_RESERVED_12 
FASTRPC_MAP_RESERVED_13 
FASTRPC_MAP_RESERVED_14 
FASTRPC_MAP_RESERVED_15 
FASTRPC_MAP_FD_NOMAP 

This flag is used to skip CPU mapping, otherwise behaves similar to FASTRPC_MAP_FD_DELAYED flag.

◆ fastrpc_process_type

Process types Return values for FASTRPC_REMOTE_PROCESS_TYPE control req ID for remote_handle_control Return values denote the type of process on remote subsystem

Enumerator
PROCESS_TYPE_SIGNED 
PROCESS_TYPE_UNSIGNED 

Signed PD running on the DSP

◆ handle_control_req_id

Request IDs for remote handle control interface

Enumerator
DSPRPC_RESERVED 
DSPRPC_CONTROL_LATENCY 

Reserved

DSPRPC_GET_DSP_INFO 

Request ID to enable/disable QOS

DSPRPC_CONTROL_WAKELOCK 

Request ID to get dsp capabilites from kernel and Hexagon

DSPRPC_GET_DOMAIN 

Request ID to enable wakelock for the given domain

DSPRPC_SET_PATH 

Request ID to get the default domain or domain associated to an exisiting handle

DSPRPC_GET_PATH 

Request ID to add a custom path to the hash table

◆ remote_dsp_attributes

Different types of DSP capabilities queried via remote_handle_control using DSPRPC_GET_DSP_INFO request id. DSPRPC_GET_DSP_INFO should only be used with remote_handle_control() as a handle is not needed to query DSP capabilities. To query DSP capabilities fill out 'domain' and 'attribute_ID' from structure remote_dsp_capability. DSP capability will be returned on variable 'capability'.

Enumerator
DOMAIN_SUPPORT 
UNSIGNED_PD_SUPPORT 

Check if DSP supported: supported = 1, unsupported = 0

HVX_SUPPORT_64B 

DSP unsigned PD support: supported = 1, unsupported = 0

HVX_SUPPORT_128B 

Number of HVX 64B support

VTCM_PAGE 

Number of HVX 128B support

VTCM_COUNT 

Max page size allocation possible in VTCM

ARCH_VER 

Number of page_size blocks available

HMX_SUPPORT_DEPTH 

Hexagon processor architecture version

HMX_SUPPORT_SPATIAL 

HMX Support Depth

ASYNC_FASTRPC_SUPPORT 

HMX Support Spatial

STATUS_NOTIFICATION_SUPPORT 

Async FastRPC Support

◆ remote_mem_map_flags

Memory map control flags for using with remote_mem_map() and remote_mem_unmap()

Enumerator
REMOTE_MAP_MEM_STATIC 

Create static memory map on remote process with default cache configuration (writeback). Same remoteVirtAddr will be assigned on remote process when fastrpc call made with local virtual address. lifetime Life time of this mapping is until user unmap using remote_mem_unmap or session close. No reference counts are used. Behavior of mapping multiple times without unmap is undefined. maintenance Driver clean caches when virtual address passed through RPC calls defined in IDL as a pointer. User is responsible for cleaning cache when remoteVirtAddr shared to DSP and accessed out of fastrpc method invocations on DSP. usage Map buffers which are reused for long time or until session close. This helps to reduce fastrpc latency. Memory shared with remote process and accessed only by DSP.

◆ remote_rpc_latency_flags

Flags used in struct remote_rpc_control_latency for request ID DSPRPC_CONTROL_LATENCY in remote handle control interface

Enumerator
RPC_DISABLE_QOS 
RPC_PM_QOS 

Control cpu low power modes based on RPC activity in 100 ms window. Recommended for latency sensitive use cases.

RPC_ADAPTIVE_QOS 

DSP driver predicts completion time of a method and send CPU wake up signal to reduce wake up latency. Recommended for moderate latency sensitive use cases. It is more power efficient compared to pm_qos control.

RPC_POLL_QOS 

After sending invocation to DSP, CPU will enter polling mode instead of waiting for a glink response. This will boost fastrpc performance by reducing the CPU wakeup and scheduling times. Enabled only for sync RPC calls. Using this option also enables PM QoS with a latency of 100 us.

◆ remote_rpc_status_flags

DSP user PD status notification flags Status flags for the user PD on the DSP returned by the status notification function

Enumerator
FASTRPC_USER_PD_UP 
FASTRPC_USER_PD_EXIT 

DSP user process is up

FASTRPC_USER_PD_FORCE_KILL 

DSP user process exited

FASTRPC_USER_PD_EXCEPTION 

DSP user process forcefully killed. Happens when DSP resources needs to be freed.

FASTRPC_DSP_SSR 

Exception in the user process of DSP.

◆ session_control_req_id

Request IDs for remote session control interface

Enumerator
FASTRPC_RESERVED_1 
FASTRPC_THREAD_PARAMS 

Reserved

DSPRPC_CONTROL_UNSIGNED_MODULE 

Set thread parameters like priority and stack size

FASTRPC_RESERVED_2 

Handle the unsigned module offload request, to be called before remote_handle_open()

FASTRPC_RELATIVE_THREAD_PRIORITY 

Reserved

FASTRPC_RESERVED_3 

To increase/decrease default thread priority

FASTRPC_REMOTE_PROCESS_KILL 

Reserved

FASTRPC_SESSION_CLOSE 

Kill remote process

FASTRPC_CONTROL_PD_DUMP 

Close all open handles of requested domain

FASTRPC_REMOTE_PROCESS_EXCEPTION 

Enable PD dump feature

FASTRPC_REMOTE_PROCESS_TYPE 

Trigger Exception in the remote process

FASTRPC_REGISTER_STATUS_NOTIFICATIONS 

Query type of process defined by enum fastrpc_process_type

FASTRPC_PD_INITMEM_SIZE 

Enable DSP User process status notifications

FASTRPC_RESERVE_NEW_SESSION 

Set signed userpd initial memory size

FASTRPC_GET_EFFECTIVE_DOMAIN_ID 

Reserve new FastRPC session

FASTRPC_GET_URI 

Get effective domain ID of a FastRPC session Creates the URI needed to load a module in the DSP User PD

Function Documentation

◆ fastrpc_async_get_status()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_async_get_status ( __QAIC_IN fastrpc_async_jobid  jobid,
__QAIC_IN int  timeout_us,
__QAIC_OUT int *  result 
)

fastrpc_async_get_status Get status of Async job. This can be used to query the status of a Async job

Parameters
jobid,jobidreturned during Async job submission.
timeout_us,timeoutin micro seconds timeout = 0, returns immediately with status/result timeout > 0, waits for specified time and then returns with status/result timeout < 0. waits indefinetely until job completes
result,integerpointer for the result of the job 0 on success error code on failure
Return values

◆ fastrpc_mmap()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_mmap ( __QAIC_IN int  domain,
__QAIC_IN int  fd,
__QAIC_IN void *  addr,
__QAIC_IN int  offset,
__QAIC_IN size_t  length,
__QAIC_IN enum fastrpc_map_flags  flags 
)

fastrpc_mmap Creates a mapping on remote process for an ION buffer with file descriptor. New fastrpc session will be opened if not already opened for the domain.

Parameters
domain,DSPdomain ID of a fastrpc session
fd,IONmemory file descriptor
addr,buffervirtual address on cpu
offset,offsetfrom the beginning of the buffer
length,sizeof buffer in bytes
flags,controlsmapping functionality on DSP. Refer fastrpc_map_flags enum definition for more information.
Returns
, 0 on success, error code on failure. AEE_EALREADY Buffer already mapped. Multiple mappings for the same buffer are not supported. AEE_EBADPARM Bad parameters AEE_EFAILED Failed to map buffer AEE_ENOMEMORY Out of memory (internal error) AEE_EUNSUPPORTED Unsupported API on the target

◆ fastrpc_munmap()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() fastrpc_munmap ( __QAIC_IN int  domain,
__QAIC_IN int  fd,
__QAIC_IN void *  addr,
__QAIC_IN size_t  length 
)

fastrpc_munmap Removes a mapping associated with file descriptor.

Parameters
domain,DSPdomain ID of a fastrpc session
fd,filedescriptor
addr,buffervirtual address used for mapping creation
length,bufferlength
Returns
, 0 on success, error code on failure. AEE_EBADPARM Bad parameters AEE_EINVALIDFD Mapping not found for specified fd AEE_EFAILED Failed to map buffer AEE_EUNSUPPORTED Unsupported API on the target

◆ fastrpc_release_async_job()

fastrpc_release_async_job Release Async job after receiving status either through callback/poll

Parameters
jobid,jobidreturned during Async job submission.
Return values

◆ remote_handle64_close()

◆ remote_handle64_control()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_control ( __QAIC_IN remote_handle64  h,
__QAIC_IN uint32_t  req,
__QAIC_IN_LEN(datalen) void *  data,
__QAIC_IN uint32_t  datalen 
)

◆ remote_handle64_invoke()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_invoke ( __QAIC_IN remote_handle64  h,
__QAIC_IN uint32_t  dwScalars,
__QAIC_IN remote_arg pra 
)

◆ remote_handle64_invoke_async()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_invoke_async ( __QAIC_IN remote_handle64  h,
__QAIC_IN fastrpc_async_descriptor_t desc,
__QAIC_IN uint32_t  dwScalars,
__QAIC_IN remote_arg pra 
)

◆ remote_handle64_open()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle64_open ( __QAIC_IN_CHAR const char *  name,
__QAIC_OUT remote_handle64 ph 
)

◆ remote_handle_close()

remote_handle()_close closes the remote handle

◆ remote_handle_control()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_control ( __QAIC_IN uint32_t  req,
__QAIC_IN_LEN(datalen) void *  data,
__QAIC_IN uint32_t  datalen 
)

remote_handle_control Set remote handle control parameters

Parameters
req,requestID defined by handle_control_req_id
data,addressof structure with parameters
datalen,lengthof data
Return values

◆ remote_handle_invoke()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_invoke ( __QAIC_IN remote_handle  h,
__QAIC_IN uint32_t  dwScalars,
__QAIC_IN remote_arg pra 
)

invokes the remote handle see retrive macro's on dwScalars format pra, contains the arguments in the following order, inbufs, outbufs, inhandles, outhandles. implementors should ignore and pass values asis that the transport doesn't understand.

◆ remote_handle_invoke_async()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_invoke_async ( __QAIC_IN remote_handle  h,
__QAIC_IN fastrpc_async_descriptor_t desc,
__QAIC_IN uint32_t  dwScalars,
__QAIC_IN remote_arg pra 
)

remote_handle()_invoke_async invokes the remote handle asynchronously

desc, descriptor contains type of asyncjob. context and call back function(if any) see retrive macro's on dwScalars format pra, contains the arguments in the following order, inbufs, outbufs, inhandles, outhandles. all outbufs need to be either allocated using rpcmem_alloc or registered ION buffers using register_buf implementors should ignore and pass values as is that the transport doesn't understand.

◆ remote_handle_open()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_handle_open ( __QAIC_IN_CHAR const char *  name,
__QAIC_OUT remote_handle ph 
)

remote_handle()_open Opens a remote_handle "name" returns 0 on success

◆ remote_mem_map()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mem_map ( __QAIC_IN int  domain,
__QAIC_IN int  fd,
__QAIC_IN int  flags,
__QAIC_IN uint64_t  virtAddr,
__QAIC_IN size_t  size,
__QAIC_OUT uint64_t *  remoteVirtAddr 
)

remote_mem_map Map memory to the remote process on a selected DSP domain

: DSP domain ID. Use -1 for using default domain. Default domain is selected based on library lib(a/m/s/c)dsprpc.so library linked to application. : file descriptor of memory : enum remote_mem_map_flags type of flag : virtual address of buffer : buffer length [out]: remote process virtual address

Return values

◆ remote_mem_unmap()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mem_unmap ( __QAIC_IN int  domain,
__QAIC_IN uint64_t  remoteVirtAddr,
__QAIC_IN size_t  size 
)

remote_mem_unmap Unmap memory to the remote process on a selected DSP domain

: DSP domain ID. Use -1 for using default domain. Get domain from multi-domain handle if required. : remote process virtual address received from remote_mem_map : buffer length

Return values

◆ remote_mmap()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mmap ( __QAIC_IN int  fd,
__QAIC_IN uint32_t  flags,
__QAIC_IN uint32_t  vaddrin,
__QAIC_IN int  size,
__QAIC_OUT uint32_t *  vaddrout 
)

remote_mmap map memory to the remote domain

Parameters
fd,fdassosciated with this memory
flags,flagsto be used for the mapping
vaddrin,inputaddress
size,sizeof buffer
vaddrout,outputaddress
Return values

◆ remote_mmap64()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_mmap64 ( __QAIC_IN int  fd,
__QAIC_IN uint32_t  flags,
__QAIC_IN __QAIC_INT64PTR  vaddrin,
__QAIC_IN int64_t  size,
__QAIC_OUT __QAIC_INT64PTR vaddrout 
)

remote_mmap64 map memory to the remote domain

Parameters
fd,fdassociated with this memory
flags,flagsto be used for the mapping
vaddrin,inputaddress
size,sizeof buffer
vaddrout,outputaddress
Return values

◆ remote_munmap()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_munmap ( __QAIC_IN uint32_t  vaddrout,
__QAIC_IN int  size 
)

remote_munmap unmap memory from the remote domain

Parameters
vaddrout,remoteaddress mapped
size,sizeto unmap. Unmapping a range partially may not be supported.
Return values

◆ remote_munmap64()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_munmap64 ( __QAIC_IN __QAIC_INT64PTR  vaddrout,
__QAIC_IN int64_t  size 
)

remote_munmap64 unmap memory from the remote domain

Parameters
vaddrout,remoteaddress mapped
size,sizeto unmap. Unmapping a range partially may not be supported.
Return values

◆ remote_register_buf()

__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf ( __QAIC_IN_LEN(size) void *  buf,
__QAIC_IN int  size,
__QAIC_IN int  fd 
)

remote_register_buf/remote_register_buf_attr Register a file descriptor for a buffer. Users of fastrpc should register zero-copy buffer to enable sharing that buffer to the dsp via the SMMU. The API is limited to register buffer less than 2 GB only. Recommendation is to use remote_register_buf_attr2 instead. API remote_register_buf_attr2 can now accept size up to 2 power(8*sizeof(size_t)).

Some versions of libcdsprpc.so lack this function, so users should set this symbol as weak.

#pragma weak remote_register_buf #pragma weak remote_register_buf_attr

Parameters
buf,virtualaddress of the buffer
size,sizeof the buffer , the file descriptor, callers can use -1 to deregister. , map buffer as coherent or non-coherent

◆ remote_register_buf_attr()

__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf_attr ( __QAIC_IN_LEN(size) void *  buf,
__QAIC_IN int  size,
__QAIC_IN int  fd,
__QAIC_IN int  attr 
)

◆ remote_register_buf_attr2()

__QAIC_REMOTE_EXPORT __QAIC_RETURN void __QAIC_REMOTE() remote_register_buf_attr2 ( __QAIC_IN_LEN(size) void *  buf,
__QAIC_IN size_t  size,
__QAIC_IN int  fd,
__QAIC_IN int  attr 
)

remote_register_buf_attr2 Register a file descriptor for a buffer. Users of fastrpc should register zero-copy buffer to enable sharing that buffer to the dsp via the SMMU.

Some versions of libcdsprpc.so lack this function, so users should set this symbol as weak.

#pragma weak remote_register_buf_attr2

Parameters
buf,virtualaddress of the buffer
size,sizeof the buffer , the file descriptor, callers can use -1 to deregister. , setting attribute for the mapped buffer refer to "Attributes for remote_register_buf_attr/remote_register_buf_attr2" to set the required attribute value.

◆ remote_register_dma_handle()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_register_dma_handle ( __QAIC_IN int  fd,
__QAIC_IN uint32_t  len 
)

remote_register_dma_handle/remote_register_dma_handle_attr Register a dma handle with fastrpc. This is only valid on Android with ION allocated memory. Users of fastrpc should register a file descriptor allocated with ION to enable sharing that memory to the dsp via the SMMU.

Some versions of libadsprpc.so lack this function, so users should set this symbol as weak.

#pragma weak remote_register_dma_handle #pragma weak remote_register_dma_handle_attr

, the file descriptor, callers can use -1 to deregister.

Parameters
len,sizeof the buffer , map buffer as coherent or non-coherent or no-map

◆ remote_register_dma_handle_attr()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_register_dma_handle_attr ( __QAIC_IN int  fd,
__QAIC_IN uint32_t  len,
__QAIC_IN uint32_t  attr 
)

◆ remote_register_fd()

__QAIC_REMOTE_EXPORT __QAIC_RETURN void* __QAIC_REMOTE() remote_register_fd ( __QAIC_IN int  fd,
__QAIC_IN int  size 
)

remote_register_fd Register a file descriptor. This can be used when users do not have a mapping to pass to the RPC layer. The generated address is a mapping with PROT_NONE, any access to this memory will fail, so it should only be used as an ID to identify this file descriptor to the RPC layer. This API is limited to buffer size less then 2 GB. Recommendation is to use remote_register_fd2 for buffer of size > 2 power(8*sizeof(size_t)).

To deregister use remote_register_buf(addr, size, -1).

#pragma weak remote_register_fd

Parameters
fd,thefile descriptor.
size,sizeto of the buffer
Return values

◆ remote_register_fd2()

__QAIC_REMOTE_EXPORT __QAIC_RETURN void* __QAIC_REMOTE() remote_register_fd2 ( __QAIC_IN int  fd,
__QAIC_IN size_t  size 
)

remote_register_fd2 Register a file descriptor. This can be used when users do not have a mapping to pass to the RPC layer. The generated address is a mapping with PROT_NONE, any access to this memory will fail, so it should only be used as an ID to identify this file descriptor to the RPC layer.

To deregister use remote_register_buf(addr, size, -1).

#pragma weak remote_register_fd2

Parameters
fd,thefile descriptor.
size,sizeto of the buffer
Return values

◆ remote_session_control()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_session_control ( __QAIC_IN uint32_t  req,
__QAIC_IN_LEN(datalen) void *  data,
__QAIC_IN uint32_t  datalen 
)

remote_session_control Set remote session parameters

Parameters
req,requestID
data,addressof structure with parameters
datalen,lengthof data
Return values

◆ remote_set_mode()

__QAIC_REMOTE_EXPORT __QAIC_RETURN int __QAIC_REMOTE() remote_set_mode ( __QAIC_IN uint32_t  mode)

remote_set_mode Set the mode of operation.

Some versions of libadsprpc.so lack this function, so users should set this symbol as weak.

#pragma weak remote_set_mode

Parameters
mode,themode
Return values