sdk-hwV1.3/lichee/melis-v3.0/source/include/melis/ekernel/kapi.h

1530 lines
68 KiB
C
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* =====================================================================================
*
* Filename: kapi.h
*
* Description: melis system api for user module.
*
* Version: Melis3.0
* Create: 2018-01-11 20:29:43
* Revision: none
* Compiler: gcc version 6.3.0 (crosstool-NG crosstool-ng-1.23.0)
*
* Author: caozilong@allwinnertech.com
* Organization: BU1-PSW
* Last Modified: 2020-08-10 13:54:13
*
* =====================================================================================
*/
#ifndef __MELIS_API_H__
#define __MELIS_API_H__
#include <typedef.h>
#include <errno.h>
#include "kmsg.h"
#include "boot.h"
#include "sys_charset.h"
#include "sys_clock.h"
#include "sys_device.h"
#include "sys_fsys.h"
#include "sys_hwsc.h"
#include "sys_input.h"
#include "sys_mems.h"
#include "sys_pins.h"
#include "sys_powerman.h"
#include "sys_svc.h"
#include "sys_time.h"
#include <csp_ccm_para.h>
#include <csp_dma_para.h>
#include <csp_dram_para.h>
#include <csp_int_para.h>
typedef void (*OS_TMR_CALLBACK)(void *parg);
/* definition for KMSG para max bytes len */
typedef struct
{
uint32_t size;
void *msg;
uint32_t msgtype;
uint32_t msgsize;
uint32_t msglen;
void *data;
uint32_t datsize;
uint32_t datatype;
uint32_t datalen;
uint8_t reserve[12];
} __krnl_sktfrm_t;
#define ERESTART (ESTRPIPE + 1) /* Interrupted system call should be restarted */
#define EUCLEAN (ESTRPIPE + 2) /* Structure needs cleaning */
#define ENOTNAM (ESTRPIPE + 3) /* Not a XENIX named type file */
#define ENAVAIL (ESTRPIPE + 4) /* No XENIX semaphores available */
#define EISNAM (ESTRPIPE + 5) /* Is a named type file */
#define EREMOTEIO (ESTRPIPE + 6) /* Remote I/O error */
#define EMEDIUMTYPE (ESTRPIPE + 7) /* Wrong medium type */
#define ENOKEY (ESTRPIPE + 8) /* Required key not available */
#define EKEYEXPIRED (ESTRPIPE + 9) /* Key has expired */
#define EKEYREVOKED (ESTRPIPE + 10) /* Key has been revoked */
#define EKEYREJECTED (ESTRPIPE + 11) /* Key was rejected by service */
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#define ES_EOF (-1) /* end of file */
#define KRNL_SKT_USR_IN 0
#define KRNL_SKT_USR_OUT 1
#define KRNL_SKT_BUF_PHY_UNSEQ (0x00000000)
#define KRNL_SKT_BUF_PHY_SEQ (0x01000000)
#define KRNL_SKT_BUF_PHY_SEQMASK (0x01000000)
#define KRNL_SKT_BUF_TYP_MASK (0xff000000)
#define OS_PRIO_SELF 0xFFu
#define OS_EVENT_NAME_SIZE 16
#define OS_TIMEOUT 10u
#define OS_NO_ERR 0u
#define KRNL_NO_ERR 0u
#define OS_TICK_STEP_EN 1 /* Enable tick stepping feature for uC/OS-View */
#define OS_TICKS_PER_SEC 100 /* Set the number of ticks in one second */
/* EVENTFLAGS */
#define OS_FLAG_WAIT_CLR_ALL 0u /* Wait for ALL the bits specified to be CLR (i.e. 0) */
#define OS_FLAG_WAIT_CLR_AND 0u
#define OS_FLAG_WAIT_CLR_ANY 1u /* Wait for ANY of the bits specified to be CLR (i.e. 0) */
#define OS_FLAG_WAIT_CLR_OR 1u
#define OS_FLAG_WAIT_SET_ALL 2u /* Wait for ALL the bits specified to be SET (i.e. 1) */
#define OS_FLAG_WAIT_SET_AND 2u
#define OS_FLAG_WAIT_SET_ANY 3u /* Wait for ANY of the bits specified to be SET (i.e. 1) */
#define OS_FLAG_WAIT_SET_OR 3u
#define OS_FLAG_CONSUME 0x80u /* Consume the flags if condition(s) satisfied */
#define OS_FLAG_CLR 0u
#define OS_FLAG_SET 1u
/* OS_XXX_PostOpt() OPTIONS */
#define OS_POST_OPT_NONE 0x00u /* NO option selected */
#define OS_POST_OPT_BROADCAST 0x01u /* Broadcast message to ALL tasks waiting */
#define OS_POST_OPT_FRONT 0x02u /* Post to highest priority task waiting */
#define OS_POST_OPT_NO_SCHED 0x04u /* Do not call the scheduler if this option is selected */
#define OS_TASK_STAT_EN 0
#define OS_TMR_CFG_NAME_SIZE 16 /* Determine the size of a timer name */
#define OS_ERR_EVENT_TYPE 1u
#define OS_ERR_PEND_ISR 2u
#define OS_ERR_POST_NULL_PTR 3u
#define OS_ERR_PEVENT_NULL 4u
#define OS_ERR_POST_ISR 5u
#define OS_ERR_QUERY_ISR 6u
#define OS_ERR_INVALID_OPT 7u
#define OS_ERR_TASK_WAITING 8u
#define OS_ERR_PDATA_NULL 9u
#define OS_TIMEOUT 10u
#define OS_TASK_NOT_EXIST 11u
#define OS_ERR_EVENT_NAME_TOO_LONG 12u
#define OS_ERR_FLAG_NAME_TOO_LONG 13u
#define OS_ERR_TASK_NAME_TOO_LONG 14u
#define OS_ERR_PNAME_NULL 15u
#define OS_ERR_TASK_CREATE_ISR 16u
#define OS_ERR_PEND_LOCKED 17u
#define OS_MBOX_FULL 20u
#define OS_TMR_OPT_NONE 0u /* No option selected */
#define OS_TMR_OPT_ONE_SHOT 1u /* Timer will not automatically restart when it expires */
#define OS_TMR_OPT_PERIODIC 2u /* Timer will automatically restart when it expires */
#define OS_TMR_OPT_CALLBACK 3u /* OSTmrStop() option to call 'callback' w/ timer arg. */
#define OS_TMR_OPT_CALLBACK_ARG 4u /* OSTmrStop() option to call 'callback' w/ new arg. */
#define OS_TMR_OPT_NORMAL_MASK 0x0fu /* soft timer normal option mask */
#define OS_TMR_OPT_PRIO_MASK 0x30u /* mask of the priority soft timer */
#define OS_TMR_OPT_PRIO_LOW 0x00u /* low priority soft timer */
#define OS_TMR_OPT_PRIO_HIGH 0x10u /* special soft timer, can be operated in isr, used be careful */
#define OS_TMR_STATE_UNUSED 0u
#define OS_TMR_STATE_STOPPED 1u
#define OS_TMR_STATE_COMPLETED 2u
#define OS_TMR_STATE_RUNNING 3u
#define OS_DEL_NO_PEND 0u
#define OS_DEL_ALWAYS 1u
#define KRNL_Q_FULL 30u
#define KRNL_Q_EMPTY 31u
#define OS_PRIO_EXIST 40u
#define OS_PRIO_ERR 41u
#define OS_PRIO_INVALID 42u
#define OS_SEM_OVF 50u
#define OS_TASK_DEL_ERR 60u
#define OS_TASK_DEL_IDLE 61u
#define OS_TASK_DEL_REQ 62u
#define OS_TASK_DEL_ISR 63u
#define OS_NO_MORE_TCB 70u
#define OS_TIME_NOT_DLY 80u
#define OS_TIME_INVALID_MINUTES 81u
#define OS_TIME_INVALID_SECONDS 82u
#define OS_TIME_INVALID_MILLI 83u
#define OS_TIME_ZERO_DLY 84u
#define OS_TASK_SUSPEND_PRIO 90u
#define OS_TASK_SUSPEND_IDLE 91u
#define OS_TASK_RESUME_PRIO 100u
#define OS_TASK_NOT_SUSPENDED 101u
#define OS_ERR_NOT_MUTEX_OWNER 120u
#define OS_TASK_OPT_ERR 130u
#define OS_ERR_DEL_ISR 140u
#define OS_ERR_CREATE_ISR 141u
#define OS_FLAG_INVALID_PGRP 150u
#define OS_FLAG_ERR_WAIT_TYPE 151u
#define OS_FLAG_ERR_NOT_RDY 152u
#define OS_FLAG_INVALID_OPT 153u
#define KRNL_FLAG_GRP_DEPLETED 154u
#define OS_ERR_PIP_LOWER 160u
#define KRNL_priolevel0 0 /* reserved for system(highest level) */
#define KRNL_priolevel1 1
#define KRNL_priolevel2 2
#define KRNL_priolevel3 3
#define KRNL_priolevel4 4
#define KRNL_priolevel5 5
#define KRNL_priolevel6 6
#define KRNL_priolevel7 7 /* reserved for system(lowest level) */
#define EXEC_pidself 0xff
#define EXEC_prioself 0xff
/*wait process main function to return */
#define EXEC_CREATE_WAIT_RET (1<<0)
typedef struct KNRL_STMR
{
uint16_t err;
} __krnl_stmr_t;
typedef struct os_flag_grp /* Event Flag Group */
{
uint8_t OSFlagType; /* Should be set to OS_EVENT_TYPE_FLAG */
void *OSFlagWaitList; /* Pointer to first NODE of task waiting on event flag */
__krnl_flags_t OSFlagFlags; /* 8, 16 or 32 bit flags */
} __krnl_flag_grp_t;
typedef struct __EXEC_MGSEC
{
char magic[8];
uint32_t version;
uint8_t type;
uint32_t heapaddr;
uint32_t heapsize;
int32_t (*main)(void *p_arg);
uint32_t mtskstksize;
uint8_t mtskprio;
} __exec_mgsec_t;
typedef struct __krnl_q_data_t
{
void *OSMsg; /* Pointer to next message to be extracted from queue */
uint16_t OSNMsgs; /* Number of messages in message queue */
uint16_t OSQSize; /* Size of message queue */
uint16_t OSEventTbl[16]; /* List of tasks waiting for event to occur */
uint16_t OSEventGrp; /* Group corresponding to tasks waiting for event to occur */
} __krnl_q_data_t;
typedef enum enum_EPDK_VER_TYPE
{
EPDK_VER,
EPDK_VER_OS,
EPDK_VER_CHIP,
EPDK_VER_PID,
EPDK_VER_SID,
EPDK_VER_BID,
EPDK_VER_CHIP_SUB,
} __epdk_ver_type_t;
//CFG
extern int32_t esCFG_Exit(void);
extern int32_t esCFG_Exit_Ex(intptr_t* parser);
extern int32_t esCFG_GetGPIOSecData(char *GPIOSecName, void *pGPIOCfg, int32_t GPIONum);
extern int32_t esCFG_GetGPIOSecData_Ex(intptr_t* parser, char *GPIOSecName, void *pGPIOCfg, int32_t GPIONum);
extern int32_t esCFG_GetGPIOSecKeyCount(char *GPIOSecName);
extern int32_t esCFG_GetGPIOSecKeyCount_Ex(intptr_t* parser, char *GPIOSecName);
extern int32_t esCFG_GetSubKeyData(char *MainKeyName, char *SubKeyName, void *pConfigCfg, int32_t CfgType);
extern int32_t esCFG_GetKeyValue(char *SecName, char *KeyName, int32_t Value[], int32_t Count);
extern int32_t esCFG_GetKeyValue_Ex(intptr_t* parser, char *KeyName, int32_t Value[], int32_t Count);
extern int32_t esCFG_GetSecCount(void);
extern int32_t esCFG_GetSecCount_Ex(intptr_t* parser);
extern int32_t esCFG_GetSecKeyCount(char *SecName);
extern int32_t esCFG_GetSecKeyCount_Ex(intptr_t* parser, char *SecName);
extern int32_t esCFG_Init(uint8_t *CfgVAddr, uint32_t size);
extern intptr_t* esCFG_Init_Ex(char *path);
extern void esCFG_Dump(void);
//CHS
extern int32_t esCHS_Char2Uni(int32_t type, const uint8_t *str, uint32_t len, uint16_t *uni);
extern uint32_t esCHS_GetChLowerTbl(int32_t charset_type, void *buf, uint32_t size);
extern uint32_t esCHS_GetChUpperTbl(int32_t type, void *buf, uint32_t size);
extern int32_t eschs_init(uint32_t mode, void *p_arg);
extern int32_t esCHS_Uni2Char(int32_t type, uint16_t uni, uint8_t *str, uint32_t len);
//CLOCK
#ifdef CONFIG_MELIS_LEGACY_DRIVER_MAN
extern int32_t esCLK_CloseMclk(sys_clk_id_t mclk);
extern int32_t esCLK_GetMclkDiv(sys_clk_id_t mclk);
extern sys_clk_id_t esCLK_GetMclkSrc(sys_clk_id_t mclk);
extern int32_t esCLK_SetSrcFreq(sys_clk_id_t sclk, uint32_t nFreq);
extern uint32_t esCLK_GetSrcFreq(sys_clk_id_t sclk);
extern int32_t esCLK_OpenMclk(sys_clk_id_t mclk);
extern int32_t esCLK_MclkRegCb(sys_clk_id_t mclk, __pCB_ClkCtl_t pCb);
extern int32_t esCLK_MclkUnregCb(sys_clk_id_t mclk, __pCB_ClkCtl_t pCb);
extern int32_t esCLK_SetMclkSrc(sys_clk_id_t mclk, sys_clk_id_t sclk);
extern int32_t esCLK_GetRound_Rate(sys_clk_id_t clk, uint32_t rate);
extern int32_t esCLK_SetMclkDiv(sys_clk_id_t mclk, uint32_t nDiv);
extern int32_t esCLK_MclkOnOff(sys_clk_id_t mclk, uint32_t bOnOff);
extern int32_t esCLK_MclkAssert(sys_clk_id_t r_mclk);
extern int32_t esCLK_MclkDeassert(sys_clk_id_t r_mclk);
extern int32_t esCLK_MclkReset(sys_clk_id_t r_mclk);
extern int32_t esCLK_MclkGetRstStatus(sys_clk_id_t r_mclk);
#endif
extern void esCLK_SysInfo(const char *name);
extern void esCLK_ModInfo(const char *name);
//DEVICE
extern void* esDEV_DevReg(const char *classname, const char *name, const __dev_devop_t *pDevOp, void *pOpenArg);
extern int32_t esDEV_DevUnreg(void* hNode);
extern int32_t esDEV_Plugin(char *plgmsg, uint32_t devno, void *p_arg, uint8_t prio);
extern int32_t esDEV_Plugout(char *plgmsg, uint32_t devno);
extern int32_t esDEV_Ioctl(void* hDev, uint32_t cmd, long aux, void *pbuffer);
extern uint32_t esDEV_Read(void *pdata, uint32_t size, uint32_t n, void* hDev);
extern void* esDEV_Open(void* hNode, uint32_t Mode);
extern int32_t esDEV_Close(void* hDev);
extern uint32_t esDEV_Write(const void *pdata, uint32_t size, uint32_t n, void* hDev);
extern int32_t esDEV_Lock(void* hNode);
extern int32_t esDEV_Unlock(void* hNode);
extern int32_t esDEV_Insmod(char *modfile, uint32_t devno, void *p_arg);
extern int32_t esDEV_Unimod(char *modfile, uint32_t devno);
//DMA
extern void* esDMA_Request(void);
extern int32_t esDMA_Release(void* dma);
extern int32_t esDMA_Setting(void* dma, void *arg);
extern int32_t esDMA_Start(void* dma);
extern int32_t esDMA_Stop(void* dma);
extern int32_t esDMA_Restart(void* dma);
extern csp_dma_status esDMA_QueryStat(void* dma);
extern unsigned long esDMA_QuerySrc(void* dma);
extern unsigned long esDMA_QueryDst(void* dma);
extern int32_t esDMA_EnableINT(void* dma, int32_t type);
extern int32_t esDMA_DisableINT(void* dma, int32_t type);
extern unsigned long esDMA_QueryRestCount(void* dma);
extern int32_t esDMA_ChangeMode(void* dma, int32_t mode);
extern int32_t esDMA_RegDmaHdler(void* dma, void * hdler, void *arg);
extern int32_t esDMA_UnregDmaHdler(void* dma, int32_t type, __pCBK_t hdler);
extern void esDMA_Information(void);
// EXEC
extern uint8_t esEXEC_PCreate(const char *filename, void *p_arg, uint32_t mode, uint32_t *ret);
extern int8_t esEXEC_PDel(uint8_t id);
extern int8_t esEXEC_PDelReq(uint8_t pid);
extern int8_t esEXEC_Run(const char *pfilename, void *p_arg, uint32_t mode, uint32_t *ret);
//FSYS
extern int32_t esFSYS_clearpartupdateflag(const char *path);
extern int32_t esFSYS_closedir(void* hDir);
extern int32_t esFSYS_fclose(void* hFile);
extern void* esFSYS_fd2file(int32_t fd);
extern void esFSYS_ferrclr(void* hFile);
extern int32_t esFSYS_ferror(void* hFile);
extern int32_t esFSYS_file2fd(void* hFile);
extern int32_t esFSYS_fioctrl(__hdle hFile, int32_t Cmd, long Aux, void *pBuffer);
extern void* esFSYS_fopen(const char *pFileName, const char *pMode);
extern int32_t esFSYS_format(const char *partname, const char *fstype, void* fmtpara);
extern uint32_t esFSYS_fread(void *pData, uint32_t Size, uint32_t N, void* hFile);
extern int32_t esFSYS_fsdbg(const char *cmd, const char *para);
extern int32_t esFSYS_fseek(void* hFile, int32_t Offset, int32_t Whence);
extern int64_t esFSYS_fseekex(void* hFile, int32_t l_off, int32_t h_off, int32_t Whence);
extern int32_t esFSYS_fsreg(void* hFS);
extern int32_t esFSYS_fstat(void* hFile, void *stat_buf);
extern int32_t esFSYS_fsunreg(void* hFS);
extern int32_t esFSYS_fsync(void* hFile);
extern int32_t esFSYS_ftell(void* hFile);
extern int32_t esFSYS_ftellex(void* hFile, int32_t *l_pos, int32_t *h_pos);
extern int32_t esFSYS_ftruncate(void* filehandle, uint32_t length);
extern uint32_t esFSYS_fwrite(const void *pData, uint32_t Size, uint32_t N, void* hFile);
extern int32_t esFSYS_getfscharset(const char *partname, int32_t *pCharset);
extern int32_t esFSYS_mkdir(const char *pDirName);
extern int32_t esFSYS_mntfs(void* part);
extern int32_t esFSYS_mntparts(void* hNode);
extern int32_t esFSYS_open(const char *name, int32_t flag, int32_t prems);
extern void* esFSYS_opendir(const char *pDirName);
extern int32_t esFSYS_partfslck(char *partname);
extern int32_t esFSYS_partfsunlck(char *partname);
extern int32_t esFSYS_pclose(void* hPart);
extern int32_t esFSYS_pdreg(void* hPD);
extern int32_t esFSYS_pdunreg(void* hPD);
extern void esFSYS_perrclr(void* hPart);
extern int32_t esFSYS_perror(void* hPart);
extern int32_t esFSYS_pioctrl(void* hPart, uint32_t cmd, long aux, void *pbuffer);
extern void* esFSYS_popen(const char *PartName, const char *pMode);
extern uint32_t esFSYS_pread(void *pData, uint32_t sector, uint32_t n, void* hPart);
extern int32_t esFSYS_premove(const char *pFileName);
extern int32_t esFSYS_prename(const char *newfilename, const char *oldfilename);
extern uint32_t esFSYS_pwrite(const void *pData, uint32_t Sector, uint32_t N, void* hPart);
extern int32_t esFSYS_querypartupdateflag(const char *path, __bool *flag);
extern void* esFSYS_readdir(void* hDir);
extern int32_t esFSYS_remove(const char *pFileName);
extern int32_t esFSYS_rename(const char *newname, const char *oldname);
extern void esFSYS_rewinddir(void* hDir);
extern int32_t esFSYS_rmdir(const char *pDirName);
extern int32_t esFSYS_setfs(char *partname, uint32_t cmd, int32_t aux, char *para);
extern int32_t esFSYS_statfs(const char *path, void* buf, uint32_t flags);
extern int32_t esFSYS_statpt(const char *path, void* buf);
extern int32_t esFSYS_umntfs(void* part, int32_t force);
extern int32_t esFSYS_umntparts(void* hNode, uint32_t force);
extern uint32_t fsys_init(void);
//HID
extern int32_t esHID_SendMsg(uint32_t msgid);
extern int32_t esHID_hiddevreg(void* hNode);
extern int32_t esHID_hiddevunreg(void* hNode, uint32_t mode);
extern int32_t HID_Init(void);
extern int32_t HID_Exit(void);
//INPUT
extern int32_t esINPUT_GetLdevID(void* graber);
extern int32_t esINPUT_LdevCtl(int32_t LdevId, int32_t cmd, int32_t aux, void *pBuffer);
extern int32_t esINPUT_LdevFeedback(void* graber, __input_event_packet_t *packet);
extern void* esINPUT_LdevGrab(char *ldev, __pCBK_t callback, void *pArg, int32_t aux);
extern int32_t esINPUT_LdevRelease(void* graber);
extern int32_t esINPUT_RegDev(__input_dev_t *dev);
extern int32_t esINPUT_SendEvent(__input_dev_t *dev, uint32_t type, uint32_t code, int32_t value);
extern int32_t esINPUT_UnregDev(__input_dev_t *dev);
//INT
extern int32_t esINT_InsISR(uint32_t irq, char* name, void *handler, void *argv);
extern int32_t esINT_UniISR(uint32_t irq, void *dev_id);
extern int32_t esINT_InsFIR(uint32_t fiqno, __pISR_t pFirMain, __pCBK_t pFirTail, void *pArg);
extern int32_t esINT_UniFIR(uint32_t fiqno, __pISR_t pFirMain, __pCBK_t pFirTail);
extern int32_t esINT_SetIRQPrio(uint32_t irqno, uint32_t prio);
extern int32_t esINT_DisableINT(uint32_t irqno);
extern int32_t esINT_EnableINT(uint32_t irqno);
//KRNL
extern void esKRNL_TimeDly(uint16_t ticks);
extern void esKRNL_TimeSet(uint32_t ticks);
extern void esKRNL_SemPend(void* sem, uint16_t timeout, uint8_t *err);
extern void esKRNL_SemSet(void* pevent, uint16_t cnt, uint8_t *err);
extern void esKRNL_MutexPend(void* pevent, uint16_t timeout, uint8_t *err);
extern void esKRNL_FlagNameSet(void* pgrp, uint8_t *pname, uint8_t *err);
extern void esKRNL_SchedLock(void);
extern void esKRNL_SchedUnlock(void);
extern unsigned long esKRNL_InterruptDisable(void);
extern void esKRNL_InterruptEnable(unsigned long level);
extern void esKRNL_TaskPrefEn(uint32_t en);
extern void esKRNL_MemLeakChk(uint32_t en);
extern void esKRNL_DumpStack(void);
extern int8_t esKRNL_TDel(uint32_t prio);
extern int8_t esKRNL_TDelReq(uint32_t prio_ex);
extern int8_t esKRNL_TaskDel(uint32_t prio);
extern int8_t esKRNL_TaskDelReq(uint32_t prio_ex);
extern uint8_t esKRNL_TaskResume(uint32_t prio);
extern long esKRNL_TaskNameSet(uint32_t prio, char *name);
extern uint8_t esKRNL_TaskSuspend(uint32_t prio);
extern uint8_t esKRNL_TimeDlyResume(uint32_t prio_ex);
extern uint8_t esKRNL_TaskQuery(uint32_t prio, __krnl_tcb_t *p_task_data);
extern uint8_t esKRNL_SemPost(void* sem);
extern uint8_t esKRNL_SemQuery(void* sem, OS_SEM_DATA *p_sem_data);
extern uint8_t esKRNL_MboxPost(void* pevent, unsigned long msg);
extern uint8_t esKRNL_MboxPostOpt(void* pevent, uint32_t msg, uint8_t opt);
extern uint8_t esKRNL_MboxQuery(void* pevent, void *p_mbox_data);
extern uint8_t esKRNL_MutexPost(void* pevent);
extern uint8_t esKRNL_QFlush(void* pevent);
extern uint8_t esKRNL_QPost(void* pevent, unsigned long msg);
extern uint8_t esKRNL_QPostFront(void* pevent, void *msg);
extern uint8_t esKRNL_QPostOpt(void* pevent, void *msg, uint8_t opt);
extern uint8_t esKRNL_QQuery(void* pevent, __krnl_q_data_t *p_q_data);
extern uint8_t esKRNL_TmrStateGet(void* ptmr);
extern uint8_t esKRNL_FlagNameGet(void* pgrp, uint8_t *pname, uint8_t *err);
extern uint8_t esKSRV_GetSocID(void);
extern uint32_t esKRNL_TCreate(void (*entry)(void *p_arg), void *p_arg, uint32_t stksize, uint16_t id_priolevel);
extern uint32_t esKRNL_TimeGet(void);
extern unsigned long esKRNL_MboxAccept(void* pevent);
extern unsigned long esKRNL_MboxDel(void* pevent, uint8_t opt, uint8_t *err);
extern uint32_t esKRNL_MboxPend(void* pevent, uint16_t timeout, uint8_t *err);
extern unsigned long esKRNL_MutexDel(void* pevent, uint8_t opt, uint8_t *err);
extern unsigned long esKRNL_QAccept(void* pevent, uint8_t *err);
extern unsigned long esKRNL_QPend(void* pevent, uint16_t timeout, uint8_t *err);
extern uint32_t esKRNL_FlagAccept(void* pgrp, uint32_t flags, uint8_t wait_type, uint8_t *err);
extern unsigned long esKRNL_FlagDel(void* pgrp, uint8_t opt, uint8_t *err);
extern uint32_t esKRNL_FlagPend(void* pgrp, uint32_t flags, uint32_t waittype_timeout, uint8_t *err);
extern uint32_t esKRNL_FlagPendGetFlagsRdy(void);
extern uint32_t esKRNL_FlagPost(void* pgrp, uint32_t flags, uint8_t opt, uint8_t *err);
extern uint32_t esKRNL_FlagQuery(void* pgrp, uint8_t *err);
extern uint32_t esKRNL_TmrRemainGet(void* ptmr);
extern unsigned long esKRNL_GetTIDCur(void);
extern uint32_t esKRNL_Time(void);
extern int32_t esKRNL_TmrDel(void* ptmr);
extern int32_t esKRNL_TmrStart(void* ptmr);
extern int32_t esKRNL_TmrStop(void* ptmr, int8_t opt, void *callback_arg);
extern int32_t esKRNL_SktDel(void* skt, uint8_t opt);
extern int32_t esKRNL_SktPost(void* skt, uint8_t user, __krnl_sktfrm_t *frm);
extern uint16_t esKRNL_SemAccept(void *psem);
extern int16_t esKRNL_TmrError(void* ptmr);
extern uint16_t esKRNL_Version(void);
extern void* esKRNL_MutexCreate(uint8_t prio, uint8_t *err);
extern void* esKRNL_SktCreate(uint32_t depth, uint32_t dbuf_attr, uint32_t mbuf_attr);
extern void* esKRNL_SemCreate(uint16_t cnt);
extern void* esKRNL_SemDel(void* sem, uint8_t opt, uint8_t *err);
extern void* esKRNL_MboxCreate(uint32_t msg);
extern void* esKRNL_QCreate(uint16_t size);
extern void* esKRNL_QDel(void* pevent, uint8_t opt, uint8_t *err);
extern void* esKRNL_FlagCreate(uint32_t flags, uint8_t *err);
extern void* esKRNL_TmrCreate(uint32_t period, uint8_t opt, OS_TMR_CALLBACK callback, void *callback_arg);
extern __pCBK_t esKRNL_GetCallBack(__pCBK_t cb);
extern long esKRNL_CallBack(__pCBK_t cb, void *arg);
extern __krnl_sktfrm_t *esKRNL_SktPend(void* skt, uint8_t user, uint32_t timeout);
extern __krnl_sktfrm_t *esKRNL_SktAccept(void* skt, uint8_t user);
extern long esKRNL_Ioctrl(void *hdle, int cmd, void *arg);
//KRSV
extern void esKSRV_Reset(void);
extern void esKSRV_PowerOff(void);
extern int32_t esKSRV_SysInfo(void);
extern void* esKSRV_Get_Display_Hld(void);
extern void esKSRV_Get_Mixture_Hld(int *mid,unsigned long *mp);
extern void esKSRV_Save_Mixture_Hld(int mid, void *mp);
extern void esKSRV_Save_Display_Hld(void *hld);
extern int32_t esKSRV_SendMsgEx(void *msg);
extern unsigned long esKSRV_GetMsg(void);
extern uint32_t esKSRV_GetVersion(__epdk_ver_type_t type);
extern uint32_t esKSRV_Random(uint32_t max);
extern int32_t esKSRV_SendMsg(uint32_t msgid, uint32_t prio);
extern int32_t esKSRV_EnableWatchDog(void);
extern int32_t esKSRV_DisableWatchDog(void);
extern int32_t esKSRV_ClearWatchDog(void);
extern int32_t esKSRV_EnableWatchDogSrv(void);
extern int32_t esKSRV_DisableWatchDogSrv(void);
extern int32_t esKSRV_memcpy(void *pdest, const void *psrc, size_t size);
extern unsigned long esKSRV_GetLowMsg(void);
extern unsigned long esKSRV_GetHighMsg(void);
extern int32_t esKSRV_GetPara(uint32_t type, void *format, void *para);
extern int32_t esKSRV_GetDramCfgPara(__dram_para_t *drampara);
extern int32_t esKSRV_memset(void *pmem, uint8_t value, size_t size);
extern int32_t esKSRV_GetAddPara(__ksrv_add_para *ksrv_add_para);
extern uint32_t esKSRV_close_logo(void);
extern uint32_t esKSRV_release_logo_buf(void);
//MEMS
extern uint32_t esMEMS_TotalMemSize(void);
extern uint32_t esMEMS_FreeMemSize(void);
extern unsigned long esMEMS_VA2PA(unsigned long vaddr);
extern uint32_t iomem_phy2virt_addr(uint32_t phyaddr);
extern uint32_t esMEMS_GetIoVAByPA(uint32_t phyaddr, uint32_t size);
extern int32_t esMEMS_LockCache_Init(void);
extern int32_t esMEMS_VMCreate(void *pBlk, uint32_t npage, int8_t domain);
extern int32_t esMEMS_HeapCreate(void *heapaddr, uint32_t initnpage);
extern int32_t esMEMS_LockICache(void *addr, uint32_t size);
extern int32_t esMEMS_UnlockICache(void *addr);
extern int32_t esMEMS_LockDCache(void *addr, uint32_t size);
extern int32_t esMEMS_PhyAddrConti(void *mem, unsigned long size);
extern int32_t esMEMS_UnlockDCache(void *addr);
extern int32_t esMEMS_Info(void);
extern int32_t esMEM_DramWakeup(void);
extern int32_t esMEM_DramSuspend(void);
extern int32_t esMEM_UnRegDramAccess(void* user);
extern int32_t esMEM_MasterSet(__dram_dev_e mod, __dram_master_t *master);
extern int32_t esMEM_MasterGet(__dram_dev_e mod, __dram_master_t *master);
extern int32_t esMEM_RequestDramUsrMode(__dram_user_mode_t mode);
extern int32_t esMEM_ReleaseDramUsrMode(__dram_user_mode_t mode);
extern int32_t esMEM_BWEnable(void);
extern int32_t esMEM_BWDisable(void);
extern int32_t esMEM_SramSwitchBlk(intptr_t* hSram, csp_sram_module_t uMap);
extern intptr_t *esMEM_SramReqBlk(csp_sram_module_t uBlock, csp_sram_req_mode_e uMode);
extern int32_t esMEM_SramRelBlk(intptr_t* hSram);
extern int32_t esMEM_BWGet(__bw_dev_e mod);
extern void esMEMS_Pfree(void *mblk, uint32_t npage);
extern void *esMEMS_VMalloc(uint32_t size);
extern void esMEMS_VMDelete(void *pBlk, uint32_t npage);
extern void esMEMS_VMfree(void *ptr);
extern void esMEMS_HeapDel(void *heap);
extern void esMEMS_Mfree(void *heap, void *ptr);
extern void esMEMS_Bfree(void *addr, unsigned long size);
extern void* esMEMS_Malloc(void *heap, uint32_t size);
extern void* esMEMS_Palloc(uint32_t npage, uint32_t mode);
extern void* esMEMS_Realloc(void *heap, void *f, uint32_t size);
extern void* esMEMS_Calloc(void *heap, uint32_t n, uint32_t m);
extern void* esMEMS_Balloc(unsigned long size);
extern void esMEMS_CleanDCache(void);
extern void esMEMS_CleanFlushDCache(void);
extern void esMEMS_CleanFlushCache(void);
extern void esMEMS_FlushDCache(void);
extern void esMEMS_FlushICache(void);
extern void esMEMS_FlushCache(void);
extern void esMEMS_CleanDCacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_CleanFlushDCacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_CleanFlushCacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_FlushDCacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_FlushICacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_FlushCacheRegion(void *adr, uint32_t bytes);
extern void esMEMS_CleanInvalidateCacheAll(void);
extern void* esMEM_RegDramAccess(uint8_t dev_type, __pCB_ClkCtl_t dram_access);
//MSTUB
extern unsigned long esMSTUB_GetFuncEntry(int32_t id, uint32_t funcnum);
extern int32_t esMSTUB_UnRegFuncTbl(int32_t id);
extern int32_t esMSTUB_RegFuncTbl(int32_t id, void *tbl);
//PIN
extern int32_t esPINS_ClearPending(void* hPin);
extern int32_t esPINS_DisbaleInt(void* hPin);
extern void* esPINS_PinGrpReq(user_gpio_set_t *pGrpStat, uint32_t GrpSize);
extern int32_t esPINS_PinGrpRel(void* hPin, int32_t bRestore);
extern int32_t esPINS_GetPinGrpStat(void* hPin, user_gpio_set_t *pGrpStat, uint32_t GrpSize, __bool bFromHW);
extern int32_t esPINS_GetPinStat(void* hPin, user_gpio_set_t *pPinStat, const char *pPinName, __bool bFromHW);
extern int32_t esPINS_SetPinStat(void* hPin, user_gpio_set_t *pPinStat, const char *pPinName, __bool bSetUserStat);
extern int32_t esPINS_SetPinIO(void* hPin, __bool bOut, const char *pPinName);
extern int32_t esPINS_SetPinPull(void* hPin, uint32_t PullStat, const char *pPinName);
extern int32_t esPINS_SetPinDrive(void* hPin, uint32_t DriveLevel, const char *pPinName);
extern int32_t esPINS_ReadPinData(void* hPin, const char *pPinName);
extern int32_t esPINS_WritePinData(void* hPin, uint32_t Value, const char *pPinName);
extern int32_t esPINS_EnbaleInt(void* hPin);
extern int32_t esPINS_QueryInt(void* hPin, __bool *pIntStatus);
extern int32_t esPINS_SetIntMode(void* hPin, uint32_t IntMode);
extern int32_t esPINS_RegIntHdler(void* hPin, __pCBK_t hdler, void *arg);
extern int32_t esPINS_UnregIntHdler(void* hPin, __pCBK_t hdler);
//POWER
extern int32_t esPWRMAN_ReqPwrmanMode(int32_t mode);
extern int32_t esPWRMAN_RelPwrmanMode(int32_t mode);
extern void esPWRMAN_EnterStandby(uint32_t power_off_flag);
extern void esPWRMAN_UsrEventNotify(void);
extern int32_t esPWRMAN_LockCpuFreq(void);
extern int32_t esPWRMAN_UnlockCpuFreq(void);
extern int32_t esPWRMAN_RegDevice(__sys_pwrman_dev_e device, __pCB_DPMCtl_t cb, void *parg);
extern int32_t esPWRMAN_UnregDevice(__sys_pwrman_dev_e device, __pCB_DPMCtl_t cb);
extern int32_t esPWRMAN_GetStandbyPara(__sys_pwrman_para_t *pStandbyPara);
extern int32_t esPWRMAN_SetStandbyMode(uint32_t standby_mode);
// RESM
extern void* esRESM_ROpen(const char *file, const char *mode);
extern int32_t esRESM_RClose(__resm_rsb_t *res);
extern uint32_t esRESM_RRead(void *pdata, uint32_t size, uint32_t n, __resm_rsb_t *res);
extern int32_t esRESM_RSeek(__resm_rsb_t *res, int32_t Offset, int32_t Whence);
// SIOS
extern int32_t esSIOS_putchar(char data);
extern uint8_t esSIOS_getchar(void);
extern void esSIOS_gets(char *str);
extern void esSIOS_putarg(uint32_t arg, char format);
extern void esSIOS_putstr(const char *str);
extern void esSIOS_setbaud(uint32_t baud);
//SVC
extern int32_t esSVC_RegCreatePath(const char *path);
extern int32_t esSVC_RegDeletePath(const char *path);
extern int32_t esSVC_RegCloseNode(void* handle);
extern int32_t esSVC_RegDeleteNode(const char *node);
extern int32_t esSVC_RegCreateSet(void* handle, const char *set_name);
extern int32_t esSVC_RegDeleteSet(void* handle, const char *set_name);
extern int32_t esSVC_RegGetSetCount(void* handle, uint32_t *count_p);
extern int32_t esSVC_RegGetFirstSet(void* handle);
extern int32_t esSVC_RegGetNextSet(void* handle, char *set_name);
extern int32_t esSVC_RegCreateKey(void* hNode, const char *set_name, const char *key_name, const char *key_value);
extern int32_t esSVC_RegDeleteKey(void* hNode, const char *set_name, const char *key_name);
extern int32_t esSVC_RegGetKeyCount(void* handle, const char *set_name, uint32_t *count_p);
extern int32_t esSVC_RegGetFirstKey(void* handle, const char *set_name);
extern int32_t esSVC_RegGetNextKey(void* hNode, const char *set_name, char *key_name);
extern int32_t esSVC_RegSetKeyValue(void* hNode, const char *set_name, const char *key_name, const char *key_value);
extern int32_t esSVC_RegGetKeyValue(void* hNode, const char *set_name, const char *key_name, char *key_value);
extern int32_t esSVC_RegGetError(void* handle);
extern int32_t esSVC_RegClrError(void* handle);
extern int32_t esSVC_ResourceRel(void* hRes);
extern int32_t esSVC_RegIni2Reg(const char *ini_file);
extern int32_t esSVC_RegReg2Ini(const char *ini_file);
extern void esSVC_RegSetRootPath(const char *path);
extern void esSVC_RegGetRootPath(char *path);
extern void* esSVC_ResourceReq(uint32_t res, uint32_t mode, uint32_t timeout);
extern void* esSVC_RegOpenNode(const char *node, int32_t mode);
// TIME/ TIMER/ COUNTER
extern int32_t esTIME_RequestTimer(__csp_timer_req_type_t *tmrType, __pCBK_t pHdlr, void *pArg, char *pUsr);
extern int32_t esTIME_ReleaseTimer(int32_t timer_id);
extern int32_t esTIME_StartTimer(int32_t timer_id);
extern int32_t esTIME_StopTimer(int32_t timer_id);
extern uint32_t esTIME_QuerryTimer(int32_t timer_id);
extern int32_t esTIME_GetTime(__awos_time_t *time);
extern int32_t esTIME_SetTime(__awos_time_t *time);
extern int32_t esTIME_GetDate(__awos_date_t *date);
extern int32_t esTIME_SetDate(__awos_date_t *date);
extern void* esTIME_RequestAlarm(uint32_t mode);
extern int32_t esTIME_ReleaseAlarm(void* alarm);
extern int32_t esTIME_StartAlarm(void* alarm, uint32_t time);
extern int32_t esTIME_StopAlarm(void* alarm);
extern uint32_t esTIME_QuerryAlarm(void* alarm);
extern void* esTIME_RequestCntr(__pCB_ClkCtl_t cb, char *pUsr);
extern int32_t esTIME_ReleaseCntr(void* hCntr);
extern int32_t esTIME_StartCntr(void* hCntr);
extern int32_t esTIME_StopCntr(void* hCntr);
extern int32_t esTIME_PauseCntr(void* hCntr);
extern int32_t esTIME_ContiCntr(void* hCntr);
extern int32_t esTIME_SetCntrValue(void* hCntr, uint32_t value);
extern uint32_t esTIME_QuerryCntr(void* hCntr);
extern int32_t esTIME_SetCntrPrescale(void* hCntr, int32_t prescl);
extern int32_t esTIME_QuerryCntrStat(void* hCntr);
typedef struct
{
void *SWIHandler_SIOS ;
void *SWIHandler_KRNL ;
void *SWIHandler_MEMS ;
void *SWIHandler_FSYS ;
void *SWIHandler_EXEC ;
void *SWIHandler_MODS ;
void *SWIHandler_RESM ;
void *SWIHandler_INT ;
void *SWIHandler_DMA ;
void *SWIHandler_TIME ;
void *SWIHandler_IPIPE ;
void *SWIHandler_PWRS ;
void *SWIHandler_ERRS ;
void *SWIHandler_SVC ;
void *SWIHandler_DEV ;
void *SWIHandler_KSRV ;
void *SWIHandler_PINS ;
void *SWIHandler_CLK ;
void *SWIHandler_MEM ;
void *SWIHandler_HID ;
void *SWIHandler_PWRMAN ;
void *SWIHandler_CHS ;
void *SWIHandler_MSTUB ;
void *SWIHandler_INPUT ;
void *SWIHandler_CONFIG ;
void *SWIHandler_PTHREAD ;
void *SWIHandler_NLIBOPS ;
#ifdef CONFIG_KASAN
void *SWIHandler_KASANOPS ;
#endif
} SWIHandler_SWIT_t;
typedef struct
{
void* esSIOS_getchar ;
void* esSIOS_gets ;
void* esSIOS_putarg ;
void* esSIOS_putstr ;
void* esSIOS_setbaud ;
} SWIHandler_SIOS_t;
typedef struct
{
void* esKRNL_TCreate ;
void* esKRNL_TDel ;
void* esKRNL_TDelReq ;
void* esKRNL_GetPrio ;
void* esKRNL_FreePrio ;
void* esKRNL_TaskChangePrio ;
void* esKRNL_TaskNameGet ;
void* esKRNL_TaskNameSet ;
void* esKRNL_TaskResume ;
void* esKRNL_TaskSuspend ;
void* esKRNL_TaskStkChk ;
void* esKRNL_TaskQuery ;
void* esKRNL_TimeDly ;
void* esKRNL_TimeDlyHMSM ;
void* esKRNL_TimeDlyResume ;
void* esKRNL_TimeGet ;
void* esKRNL_TimeSet ;
void* esKRNL_SemAccept ;
void* esKRNL_SemCreate ;
void* esKRNL_SemDel ;
void* esKRNL_SemPend ;
void* esKRNL_SemPost ;
void* esKRNL_SemQuery ;
void* esKRNL_SemSet ;
void* esKRNL_MboxAccept ;
void* esKRNL_MboxCreate ;
void* esKRNL_MboxDel ;
void* esKRNL_MboxPend ;
void* esKRNL_MboxPost ;
void* esKRNL_MboxPostOpt ;
void* esKRNL_MboxQuery ;
void* esKRNL_MutexAccept ;
void* esKRNL_MutexCreate ;
void* esKRNL_MutexDel ;
void* esKRNL_MutexPend ;
void* esKRNL_MutexPost ;
void* esKRNL_MutexQuery ;
void* esKRNL_QAccept ;
void* esKRNL_QCreate ;
void* esKRNL_QDel ;
void* esKRNL_QFlush ;
void* esKRNL_QPend ;
void* esKRNL_QPost ;
void* esKRNL_QPostFront ;
void* esKRNL_QPostOpt ;
void* esKRNL_QQuery ;
void* esKRNL_FlagAccept ;
void* esKRNL_FlagCreate ;
void* esKRNL_FlagDel ;
void* esKRNL_FlagNameGet ;
void* esKRNL_FlagNameSet ;
void* esKRNL_FlagPend ;
void* esKRNL_FlagPendGetFlagsRdy ;
void* esKRNL_FlagPost ;
void* esKRNL_FlagQuery ;
void* esKRNL_TmrCreate ;
void* esKRNL_TmrDel ;
void* esKRNL_TmrStart ;
void* esKRNL_TmrStop ;
void* esKRNL_TmrRemainGet ;
void* esKRNL_TmrStateGet ;
void* esKRNL_TmrError ;
void* esKRNL_Version ;
void* esKRNL_SchedLock ;
void* esKRNL_SchedUnlock ;
void* esKRNL_GetCallBack ;
void* esKRNL_CallBack ;
void* esKRNL_GetTIDCur ;
void* esKRNL_SktCreate ;
void* esKRNL_SktDel ;
void* esKRNL_SktPend ;
void* esKRNL_SktPost ;
void* esKRNL_SktAccept ;
void* esKRNL_SktFlush ;
void* esKRNL_SktError ;
void* esKRNL_Time ;
#if (OS_TASK_STAT_EN > 0) && (OS_CPU_HOOKS_EN > 0)
void* esKRNL_CPUStatStart ;
void* esKRNL_CPUStatStop ;
void* esKRNL_CPUStatReport ;
#endif
void* esKRNL_TaskPrefEn ;
void* esKRNL_MemLeakChk ;
void* esKRNL_DumpStack ;
void* esKRNL_InterruptEnable ;
void* esKRNL_InterruptDisable ;
#ifdef CONFIG_DYNAMIC_LOG_LEVEL_SUPPORT
void* set_log_level ;
void* get_log_level ;
#endif
#ifdef CONFIG_DEBUG_BACKTRACE
void* backtrace ;
#endif
void* mmap ;
void* select ;
void* esKRNL_Ioctrl ;
} SWIHandler_KRNL_t;
typedef struct
{
void* esMEMS_Palloc ;
void* esMEMS_Pfree ;
void* esMEMS_VA2PA ;
void* esMEMS_VMCreate ;
void* esMEMS_VMDelete ;
void* esMEMS_HeapCreate ;
void* esMEMS_HeapDel ;
void* esMEMS_Malloc ;
void* esMEMS_Mfree ;
void* esMEMS_Realloc ;
void* esMEMS_Calloc ;
void* esMEMS_Balloc ;
void* esMEMS_Bfree ;
void* esMEMS_Info ;
void* esMEMS_CleanDCache ;
void* esMEMS_CleanFlushDCache ;
void* esMEMS_CleanFlushCache ;
void* esMEMS_FlushDCache ;
void* esMEMS_FlushICache ;
void* esMEMS_FlushCache ;
void* esMEMS_CleanDCacheRegion ;
void* esMEMS_CleanFlushDCacheRegion ;
void* esMEMS_CleanFlushCacheRegion ;
void* esMEMS_FlushDCacheRegion ;
void* esMEMS_FlushICacheRegion ;
void* esMEMS_FlushCacheRegion ;
void* esMEMS_VMalloc ;
void* esMEMS_VMfree ;
void* esMEMS_FreeMemSize ;
void* esMEMS_TotalMemSize ;
void* esMEMS_LockICache ;
void* esMEMS_LockDCache ;
void* esMEMS_UnlockICache ;
void* esMEMS_UnlockDCache ;
void* esMEMS_GetIoVAByPA ;
void* esMEMS_PhyAddrConti ;
void* esMEMS_CleanInvalidateCacheAll;
} SWIHandler_MEMS_t;
typedef struct
{
void* esFSYS_clearpartupdateflag ;
void* esFSYS_closedir ;
void* esFSYS_fclose ;
void* esFSYS_fd2file ;
void* esFSYS_ferrclr ;
void* esFSYS_ferror ;
void* esFSYS_file2fd ;
void* esFSYS_fioctrl ;
void* esFSYS_fopen ;
void* esFSYS_format ;
void* esFSYS_fread ;
void* esFSYS_fsdbg ;
void* esFSYS_fseek ;
void* esFSYS_fseekex ;
void* esFSYS_fsreg ;
void* esFSYS_fstat ;
void* esFSYS_fsunreg ;
void* esFSYS_fsync ;
void* esFSYS_ftell ;
void* esFSYS_ftellex ;
void* esFSYS_ftruncate ;
void* esFSYS_fwrite ;
void* esFSYS_getfscharset ;
void* esFSYS_mkdir ;
void* esFSYS_mntfs ;
void* esFSYS_mntparts ;
void* esFSYS_open ;
void* esFSYS_opendir ;
void* esFSYS_partfslck ;
void* esFSYS_partfsunlck ;
void* esFSYS_pclose ;
void* esFSYS_pdreg ;
void* esFSYS_pdunreg ;
void* esFSYS_perrclr ;
void* esFSYS_perror ;
void* esFSYS_pioctrl ;
void* esFSYS_popen ;
void* esFSYS_pread ;
void* esFSYS_premove ;
void* esFSYS_prename ;
void* esFSYS_pwrite ;
void* esFSYS_querypartupdateflag ;
void* esFSYS_readdir ;
void* esFSYS_remove ;
void* esFSYS_rename ;
void* esFSYS_rewinddir ;
void* esFSYS_rmdir ;
void* esFSYS_setfs ;
void* esFSYS_statfs ;
void* esFSYS_statpt ;
void* esFSYS_umntparts ;
void* esFSYS_umntfs ;
/* main for POSIX interface support */
/* main for update media file information performance */
} SWIHandler_FSYS_t;
typedef struct
{
void* esEXEC_PCreate ;
void* esEXEC_PDel ;
void* esEXEC_PDelReq ;
void* esEXEC_Run ;
} SWIHandler_EXEC_t;
typedef struct
{
void* esMODS_MInstall ;
void* esMODS_MUninstall ;
void* esMODS_MOpen ;
void* esMODS_MClose ;
void* esMODS_MRead ;
void* esMODS_MWrite ;
void* esMODS_MIoctrl ;
} SWIHandler_MODS_t;
typedef struct
{
void* esRESM_ROpen ;
void* esRESM_RClose ;
void* esRESM_RRead ;
void* esRESM_RSeek ;
} SWIHandler_RESM_t;
typedef struct
{
void* esINT_InsISR ;
void* esINT_UniISR ;
void* esINT_InsFIR ;
void* esINT_UniFIR ;
void* esINT_SetIRQPrio ;
void* esINT_DisableINT ;
void* esINT_EnableINT ;
} SWIHandler_INT_t;
typedef struct
{
void* esDMA_Request ;
void* esDMA_Release ;
void* esDMA_Setting ;
void* esDMA_Start ;
void* esDMA_Restart ;
void* esDMA_Stop ;
void* esDMA_QueryStat ;
void* esDMA_QuerySrc ;
void* esDMA_QueryDst ;
void* esDMA_QueryRestCount ;
void* esDMA_ChangeMode ;
void* esDMA_EnableINT ;
void* esDMA_DisableINT ;
void* esDMA_RegDmaHdler ;
void* esDMA_UnregDmaHdler ;
void* esDMA_Information ;
} SWIHandler_DMA_t;
typedef struct
{
void* esTIME_RequestTimer ;
void* esTIME_ReleaseTimer ;
void* esTIME_StartTimer ;
void* esTIME_StopTimer ;
void* esTIME_QuerryTimer ;
void* esTIME_GetTime ;
void* esTIME_SetTime ;
void* esTIME_GetDate ;
void* esTIME_SetDate ;
void* esTIME_RequestAlarm ;
void* esTIME_ReleaseAlarm ;
void* esTIME_StartAlarm ;
void* esTIME_StopAlarm ;
void* esTIME_QuerryAlarm ;
void* esTIME_RequestCntr ;
void* esTIME_ReleaseCntr ;
void* esTIME_StartCntr ;
void* esTIME_StopCntr ;
void* esTIME_PauseCntr ;
void* esTIME_ContiCntr ;
void* esTIME_SetCntrValue ;
void* esTIME_QuerryCntr ;
void* esTIME_SetCntrPrescale ;
void* esTIME_QuerryCntrStat ;
} SWIHandler_TIME_t;
typedef struct
{
void* esIPIPE_Open ;
void* esIPIPE_Close ;
void* esIPIPE_Request ;
void* esIPIPE_Release ;
void* esIPIPE_Query ;
void* esIPIPE_Reset ;
void* esIPIPE_RX ;
void* esIPIPE_TX ;
} SWIHandler_IPIPE_t;
typedef struct
{
void* esSVC_RegCreatePath ;
void* esSVC_RegDeletePath ;
void* esSVC_RegOpenNode ;
void* esSVC_RegCloseNode ;
void* esSVC_RegDeleteNode ;
void* esSVC_RegCreateSet ;
void* esSVC_RegDeleteSet ;
void* esSVC_RegGetSetCount ;
void* esSVC_RegGetFirstSet ;
void* esSVC_RegGetNextSet ;
void* esSVC_RegCreateKey ;
void* esSVC_RegDeleteKey ;
void* esSVC_RegGetKeyCount ;
void* esSVC_RegGetFirstKey ;
void* esSVC_RegGetNextKey ;
void* esSVC_RegSetKeyValue ;
void* esSVC_RegGetKeyValue ;
void* esSVC_RegIni2Reg ;
void* esSVC_RegReg2Ini ;
void* esSVC_RegSetRootPath ;
void* esSVC_RegGetRootPath ;
void* esSVC_RegGetError ;
void* esSVC_RegClrError ;
// resource maangement sevices
void* esSVC_ResourceReq ;
void* esSVC_ResourceRel ;
} SWIHandler_SVC_t;
typedef struct
{
void* esDEV_Plugin ;
void* esDEV_Plugout ;
void* esDEV_DevReg ;
void* esDEV_DevUnreg ;
void* esDEV_Open ;
void* esDEV_Close ;
void* esDEV_Read ;
void* esDEV_Write ;
void* esDEV_Ioctl ;
void* esDEV_Lock ;
void* esDEV_Unlock ;
void* esDEV_Insmod ;
void* esDEV_Unimod ;
void* rt_device_register ;
void* rt_device_unregister ;
} SWIHandler_DEV_t;
typedef struct
{
void* esKSRV_SysInfo ;
void* esKSRV_Get_Display_Hld ;
void* esKSRV_Save_Display_Hld ;
void* esKSRV_SendMsgEx ;
void* esKSRV_GetMsg ;
void* esKSRV_GetVersion ;
void* esKSRV_Random ;
void* esKSRV_Reset ;
void* esKSRV_GetSocID ;
void* esKSRV_PowerOff ;
void* esKSRV_SendMsg ;
void* esKSRV_GetTargetPara ;
void* esKSRV_EnableWatchDog ;
void* esKSRV_DisableWatchDog ;
void* esKSRV_ClearWatchDog ;
void* esKSRV_EnableWatchDogSrv ;
void* esKSRV_DisableWatchDogSrv ;
void* esKSRV_memcpy ;
void* esKSRV_GetLowMsg ;
void* esKSRV_GetHighMsg ;
void* esKSRV_GetPara ;
void* esKSRV_GetDramCfgPara ;
void* esKSRV_memset ;
void* esKSRV_GetAddPara ;
void* esKSRV_Save_Mixture_Hld ;
void* esKSRV_Get_Mixture_Hld ;
} SWIHandler_KSRV_t;
typedef struct
{
void* esPINS_PinGrpReq ;
void* esPINS_PinGrpRel ;
void* esPINS_GetPinGrpStat ;
void* esPINS_GetPinStat ;
void* esPINS_SetPinStat ;
void* esPINS_SetPinIO ;
void* esPINS_SetPinPull ;
void* esPINS_SetPinDrive ;
void* esPINS_ReadPinData ;
void* esPINS_WritePinData ;
void* esPINS_EnbaleInt ;
void* esPINS_DisbaleInt ;
void* esPINS_QueryInt ;
void* esPINS_SetIntMode ;
void* esPINS_RegIntHdler ;
void* esPINS_UnregIntHdler ;
void* esPINS_ClearPending ;
} SWIHandler_PINS_t;
typedef struct
{
void* esCLK_SetSrcFreq ;
void* esCLK_GetSrcFreq ;
void* esCLK_OpenMclk ;
void* esCLK_CloseMclk ;
void* esCLK_MclkRegCb ;
void* esCLK_MclkUnregCb ;
void* esCLK_SetMclkSrc ;
void* esCLK_GetMclkSrc ;
void* esCLK_SetMclkDiv ;
void* esCLK_GetMclkDiv ;
void* esCLK_MclkOnOff ;
void* esCLK_MclkAssert ;
void* esCLK_MclkDeassert ;
void* esCLK_MclkReset ;
void* esCLK_MclkGetRstStatus ;
void* esCLK_SysInfo ;
void* esCLK_ModInfo ;
void* esCLK_GetRound_Rate ;
} SWIHandler_CLK_t;
typedef struct
{
void* esMEM_DramWakeup ;
void* esMEM_DramSuspend ;
void* esMEM_RegDramAccess ;
void* esMEM_UnRegDramAccess ;
void* esMEM_MasterSet ;
void* esMEM_MasterGet ;
void* esMEM_RequestDramUsrMode ;
void* esMEM_ReleaseDramUsrMode ;
void* esMEM_BWEnable ;
void* esMEM_BWDisable ;
void* esMEM_BWGet ;
void* esMEM_SramReqBlk ;
void* esMEM_SramRelBlk ;
void* esMEM_SramSwitchBlk ;
} SWIHandler_MEM_t;
typedef struct
{
void* esHID_SendMsg ;
void* esHID_hiddevreg ;
void* esHID_hiddevunreg ;
} SWIHandler_HID_t;
typedef struct
{
void* esPWRMAN_ReqPwrmanMode ;
void* esPWRMAN_RelPwrmanMode ;
void* esPWRMAN_EnterStandby ;
void* esPWRMAN_UsrEventNotify ;
void* esPWRMAN_LockCpuFreq ;
void* esPWRMAN_UnlockCpuFreq ;
void* esPWRMAN_RegDevice ;
void* esPWRMAN_UnregDevice ;
void* esPWRMAN_GetStandbyPara ;
void* esPWRMAN_SetStandbyMode ;
} SWIHandler_PWRMAN_t;
typedef struct
{
void* esCHS_Uni2Char ;
void* esCHS_Char2Uni ;
void* esCHS_GetChUpperTbl ;
void* esCHS_GetChLowerTbl ;
} SWIHandler_CHS_t;
typedef struct
{
void* esMSTUB_RegFuncTbl ;
void* esMSTUB_UnRegFuncTbl ;
void* esMSTUB_GetFuncEntry ;
} SWIHandler_MSTUB_t;
typedef struct
{
void* esCFG_GetKeyValue ;
void* esCFG_GetSecKeyCount ;
void* esCFG_GetSecCount ;
void* esCFG_GetGPIOSecKeyCount ;
void* esCFG_GetGPIOSecData ;
void* esCFG_Init_Ex ;
void* esCFG_Exit_Ex ;
void* esCFG_GetKeyValue_Ex ;
void* esCFG_GetSecKeyCount_Ex ;
void* esCFG_GetSecCount_Ex ;
void* esCFG_GetGPIOSecKeyCount_Ex ;
void* esCFG_GetGPIOSecData_Ex ;
} SWIHandler_CONFIG_t;
typedef struct
{
void* esINPUT_RegDev ;
void* esINPUT_UnregDev ;
void* esINPUT_LdevGrab ;
void* esINPUT_LdevRelease ;
void* esINPUT_SendEvent ;
void* esINPUT_LdevFeedback ;
void* esINPUT_GetLdevID ;
void* esINPUT_LdevCtl ;
} SWIHandler_INPUT_t;
typedef struct
{
void* pthread_attr_destroy ;
void* pthread_attr_init ;
void* pthread_attr_setdetachstate ;
void* pthread_attr_getdetachstate ;
void* pthread_attr_setschedpolicy ;
void* pthread_attr_getschedpolicy ;
void* pthread_attr_setschedparam ;
void* pthread_attr_getschedparam ;
void* pthread_attr_setstacksize ;
void* pthread_attr_getstacksize ;
void* pthread_attr_setstackaddr ;
void* pthread_attr_getstackaddr ;
void* pthread_attr_setstack ;
void* pthread_attr_getstack ;
void* pthread_attr_setguardsize ;
void* pthread_attr_getguardsize ;
void* pthread_attr_setscope ;
void* pthread_attr_getscope ;
void* pthread_system_init ;
void* pthread_create ;
void* pthread_detach ;
void* pthread_join ;
void* pthread_exit ;
void* pthread_once ;
void* pthread_cleanup_pop ;
void* pthread_cleanup_push ;
void* pthread_cancel ;
void* pthread_testcancel ;
void* pthread_setcancelstate ;
void* pthread_setcanceltype ;
void* pthread_atfork ;
void* pthread_kill ;
void* pthread_self ;
void* pthread_mutex_init ;
void* pthread_mutex_destroy ;
void* pthread_mutex_lock ;
void* pthread_mutex_unlock ;
void* pthread_mutex_trylock ;
void* pthread_mutexattr_init ;
void* pthread_mutexattr_destroy ;
void* pthread_mutexattr_gettype ;
void* pthread_mutexattr_settype ;
void* pthread_mutexattr_setpshared ;
void* pthread_mutexattr_getpshared ;
void* pthread_condattr_destroy ;
void* pthread_condattr_init ;
void* pthread_condattr_getclock ;
void* pthread_condattr_setclock ;
void* pthread_cond_init ;
void* pthread_cond_destroy ;
void* pthread_cond_broadcast ;
void* pthread_cond_signal ;
void* pthread_cond_wait ;
void* pthread_cond_timedwait ;
void* pthread_rwlockattr_init ;
void* pthread_rwlockattr_destroy ;
void* pthread_rwlockattr_getpshared ;
void* pthread_rwlockattr_setpshared ;
void* pthread_rwlock_init ;
void* pthread_rwlock_destroy ;
void* pthread_rwlock_rdlock ;
void* pthread_rwlock_tryrdlock ;
void* pthread_rwlock_timedrdlock ;
void* pthread_rwlock_timedwrlock ;
void* pthread_rwlock_unlock ;
void* pthread_rwlock_wrlock ;
void* pthread_rwlock_trywrlock ;
void* pthread_spin_init ;
void* pthread_spin_destroy ;
void* pthread_spin_lock ;
void* pthread_spin_trylock ;
void* pthread_spin_unlock ;
void* pthread_barrierattr_destroy ;
void* pthread_barrierattr_init ;
void* pthread_barrierattr_getpshared;
void* pthread_barrierattr_setpshared;
void* pthread_barrier_destroy ;
void* pthread_barrier_init ;
void* pthread_barrier_wait ;
void* pthread_getspecific ;
void* pthread_setspecific ;
void* pthread_key_create ;
void* pthread_key_delete ;
void* sem_close ;
void* sem_destroy ;
void* sem_getvalue ;
void* sem_init ;
void* sem_open ;
void* sem_post ;
void* sem_timedwait ;
void* sem_trywait ;
void* sem_unlink ;
void* sem_wait ;
void* clock_settime ;
void* clock_gettime ;
void* clock_getres ;
void* usleep ;
void* msleep ;
void* sleep ;
} SWIHandler_PTHREAD_t;
typedef struct
{
void* _close_r ;
void* _open_r ;
void* _read_r ;
void* _write_r ;
void* _lseek_r ;
void* _rename_r ;
void* _stat_r ;
void* _mkdir_r ;
void* _unlink_r ;
void* _gettimeofday_r ;
void* settimeofday ;
void* _malloc_r ;
void* _realloc_r ;
void* _calloc_r ;
void* _free_r ;
void* _isatty_r ;
void* _isatty ;
void* __libc_init_array ;
void* _exit ;
void* _system ;
void* opendir ;
void* readdir ;
void* rewinddir ;
void* rmdir ;
void* closedir ;
void* mkdir ;
void* ioctl ;
void* remove ;
void* _fstat_r ;
void* fd2file ;
void* ferrclr ;
void* ferror ;
void* file2fd ;
void* fioctrl ;
void* format ;
void* fsdbg ;
void* fseekex ;
void* fsync ;
void* ftellex ;
void* ftruncate ;
void* getfscharset ;
void* setfs ;
void* statfs ;
} SWIHandler_NLIBOPS_t;
typedef struct
{
void* __asan_load1 ;
void* __asan_load2 ;
void* __asan_load4 ;
void* __asan_load8 ;
void* __asan_load16 ;
void* __asan_loadN ;
void* __asan_store1 ;
void* __asan_store2 ;
void* __asan_store4 ;
void* __asan_store8 ;
void* __asan_store16 ;
void* __asan_storeN ;
void* __asan_load1_noabort ;
void* __asan_load2_noabort ;
void* __asan_load4_noabort ;
void* __asan_load8_noabort ;
void* __asan_load16_noabort ;
void* __asan_loadN_noabort ;
void* __asan_store1_noabort ;
void* __asan_store2_noabort ;
void* __asan_store4_noabort ;
void* __asan_store8_noabort ;
void* __asan_store16_noabort ;
void* __asan_storeN_noabort ;
void* __asan_poison_stack_memory ;
void* __asan_unpoison_stack_memory ;
void* __asan_alloca_poison ;
void* __asan_alloca_unpoison ;
void* __asan_handle_no_return ;
void* __asan_register_globals ;
void* __asan_unregister_globals ;
}SWIHandler_KASANOPS_t;
#ifndef __LP64__
#define SWINO(base,type,isr) (base+(((long)(&(((type*)0)->isr)))>> 2))
#else
#define SWINO(base,type,isr) (base+(((long)(&(((type*)0)->isr)))>> 3))
#endif
#define SYSCALL_SWINO(x) (SWINO(0, SWIHandler_SWIT_t, x) << 8)
#define SWINO_SIOS SYSCALL_SWINO(SWIHandler_SIOS) /* ??׼IOģ??ϵͳ */
#define SWINO_KRNL SYSCALL_SWINO(SWIHandler_KRNL) /* ?ں?ϵͳ */
#define SWINO_MEMS SYSCALL_SWINO(SWIHandler_MEMS) /* ?ڴ?????ϵͳ */
#define SWINO_FSYS SYSCALL_SWINO(SWIHandler_FSYS) /* ?ļ?ϵͳ */
#define SWINO_EXEC SYSCALL_SWINO(SWIHandler_EXEC) /* ???̹???ϵͳ */
#define SWINO_MODS SYSCALL_SWINO(SWIHandler_MODS) /* ģ??????ϵͳ */
#define SWINO_RESM SYSCALL_SWINO(SWIHandler_RESM) /* ??Դ????ϵͳ */
#define SWINO_INT SYSCALL_SWINO(SWIHandler_INT) /* ?жϿ???ϵͳ */
#define SWINO_DMA SYSCALL_SWINO(SWIHandler_DMA ) /* DMA */
#define SWINO_TIME SYSCALL_SWINO(SWIHandler_TIME) /* ʱ??????ϵͳ */
#define SWINO_IPIPE SYSCALL_SWINO(SWIHandler_IPIPE) /* */
#define SWINO_PWRS SYSCALL_SWINO(SWIHandler_PWRS) /* ???Ĺ???ϵͳ */
#define SWINO_ERRS SYSCALL_SWINO(SWIHandler_ERRS) /* ???<3F>??ʹ???ϵͳ */
#define SWINO_SVC SYSCALL_SWINO(SWIHandler_SVC) /* */
#define SWINO_DEV SYSCALL_SWINO(SWIHandler_DEV) /* ?豸????ϵͳ */
#define SWINO_KSRV SYSCALL_SWINO(SWIHandler_KSRV) /* ?ں˷??? */
#define SWINO_PINS SYSCALL_SWINO(SWIHandler_PINS) /* pin???? */
#define SWINO_CLK SYSCALL_SWINO(SWIHandler_CLK) /* ʱ?ӷ??? */
#define SWINO_MEM SYSCALL_SWINO(SWIHandler_MEM) /* ?ڴ??豸???? */
#define SWINO_HID SYSCALL_SWINO(SWIHandler_HID) /* hid??ϵͳ */
#define SWINO_PWRMAN SYSCALL_SWINO(SWIHandler_PWRMAN)/* pwm??ϵͳ */
#define SWINO_CHS SYSCALL_SWINO(SWIHandler_CHS) /* charset ??ϵͳ */
#define SWINO_MSTUB SYSCALL_SWINO(SWIHandler_MSTUB) /* module stub ??ϵͳ */
#define SWINO_INPUT SYSCALL_SWINO(SWIHandler_INPUT) /* ??????ϵͳ */
#define SWINO_CFG SYSCALL_SWINO(SWIHandler_CONFIG)/* ??????ϵͳ */
#define SWINO_PTD SYSCALL_SWINO(SWIHandler_PTHREAD) /*PTHREADϵͳ*/
#define SWINO_NLIBOPS SYSCALL_SWINO(SWIHandler_NLIBOPS)
#define SWINO_KASANOPS SYSCALL_SWINO(SWIHandler_KASANOPS)
//#define SYSCALL_KRNL(y) SWINO(SWINO_KRNL, SWIHandler_KRNL_t, y)
#if !defined(CONFIG_KERNEL_USE_SBI)
#define SYSCALL_SIOS(y) SWINO(SWINO_SIOS, SWIHandler_SIOS_t, y)
#define SYSCALL_KRNL(y) SWINO(SWINO_KRNL, SWIHandler_KRNL_t, y)
#define SYSCALL_MEMS(y) SWINO(SWINO_MEMS, SWIHandler_MEMS_t, y)
#define SYSCALL_FSYS(y) SWINO(SWINO_FSYS, SWIHandler_FSYS_t, y)
#define SYSCALL_EXEC(y) SWINO(SWINO_EXEC, SWIHandler_EXEC_t, y)
#define SYSCALL_MODS(y) SWINO(SWINO_MODS, SWIHandler_MODS_t, y)
#define SYSCALL_RESM(y) SWINO(SWINO_RESM, SWIHandler_RESM_t, y)
#define SYSCALL_INT(y) SWINO(SWINO_INT, SWIHandler_INT_t, y)
#define SYSCALL_DMA(y) SWINO(SWINO_DMA, SWIHandler_DMA_t, y)
#define SYSCALL_TIME(y) SWINO(SWINO_TIME, SWIHandler_TIME_t, y)
#define SYSCALL_IPIPE(y) SWINO(SWINO_IPIPE, SWIHandler_IPIPE_t, y)
#define SYSCALL_SVC(y) SWINO(SWINO_SVC, SWIHandler_SVC_t, y)
#define SYSCALL_DEV(y) SWINO(SWINO_DEV, SWIHandler_DEV_t, y)
#define SYSCALL_KSRV(y) SWINO(SWINO_KSRV, SWIHandler_KSRV_t, y)
#define SYSCALL_PINS(y) SWINO(SWINO_PINS, SWIHandler_PINS_t, y)
#define SYSCALL_CLK(y) SWINO(SWINO_CLK, SWIHandler_CLK_t, y)
#define SYSCALL_MEM(y) SWINO(SWINO_MEM, SWIHandler_MEM_t, y)
#define SYSCALL_HID(y) SWINO(SWINO_HID, SWIHandler_HID_t, y)
#define SYSCALL_PWRMAN(y) SWINO(SWINO_PWRMAN, SWIHandler_PWRMAN_t, y)
#define SYSCALL_CHS(y) SWINO(SWINO_CHS, SWIHandler_CHS_t, y)
#define SYSCALL_MSTUB(y) SWINO(SWINO_MSTUB, SWIHandler_MSTUB_t, y)
#define SYSCALL_INPUT(y) SWINO(SWINO_INPUT, SWIHandler_INPUT_t, y)
#define SYSCALL_CFG(y) SWINO(SWINO_CFG, SWIHandler_CONFIG_t, y)
#define SYSCALL_PTD(y) SWINO(SWINO_PTD, SWIHandler_PTHREAD_t, y)
#define SYSCALL_NLIBOPS(y) SWINO(SWINO_NLIBOPS, SWIHandler_NLIBOPS_t, y)
#define SYSCALL_KASANOPS(y) SWINO(SWINO_KASANOPS, SWIHandler_KASANOPS_t, y)
#else
/*if using sbi module, the syscall number need to be different from sbi function number*/
#define SYSCALL_SIOS(y) (0x10000000 | SWINO(SWINO_SIOS, SWIHandler_SIOS_t, y))
#define SYSCALL_KRNL(y) (0x10000000 | SWINO(SWINO_KRNL, SWIHandler_KRNL_t, y))
#define SYSCALL_MEMS(y) (0x10000000 | SWINO(SWINO_MEMS, SWIHandler_MEMS_t, y))
#define SYSCALL_FSYS(y) (0x10000000 | SWINO(SWINO_FSYS, SWIHandler_FSYS_t, y))
#define SYSCALL_EXEC(y) (0x10000000 | SWINO(SWINO_EXEC, SWIHandler_EXEC_t, y))
#define SYSCALL_MODS(y) (0x10000000 | SWINO(SWINO_MODS, SWIHandler_MODS_t, y))
#define SYSCALL_RESM(y) (0x10000000 | SWINO(SWINO_RESM, SWIHandler_RESM_t, y))
#define SYSCALL_INT(y) (0x10000000 | SWINO(SWINO_INT, SWIHandler_INT_t, y))
#define SYSCALL_DMA(y) (0x10000000 | SWINO(SWINO_DMA, SWIHandler_DMA_t, y))
#define SYSCALL_TIME(y) (0x10000000 | SWINO(SWINO_TIME, SWIHandler_TIME_t, y))
#define SYSCALL_IPIPE(y) (0x10000000 | SWINO(SWINO_IPIPE, SWIHandler_IPIPE_t, y))
#define SYSCALL_SVC(y) (0x10000000 | SWINO(SWINO_SVC, SWIHandler_SVC_t, y))
#define SYSCALL_DEV(y) (0x10000000 | SWINO(SWINO_DEV, SWIHandler_DEV_t, y))
#define SYSCALL_KSRV(y) (0x10000000 | SWINO(SWINO_KSRV, SWIHandler_KSRV_t, y))
#define SYSCALL_PINS(y) (0x10000000 | SWINO(SWINO_PINS, SWIHandler_PINS_t, y))
#define SYSCALL_CLK(y) (0x10000000 | SWINO(SWINO_CLK, SWIHandler_CLK_t, y))
#define SYSCALL_MEM(y) (0x10000000 | SWINO(SWINO_MEM, SWIHandler_MEM_t, y))
#define SYSCALL_HID(y) (0x10000000 | SWINO(SWINO_HID, SWIHandler_HID_t, y))
#define SYSCALL_PWRMAN(y) (0x10000000 | SWINO(SWINO_PWRMAN, SWIHandler_PWRMAN_t, y))
#define SYSCALL_CHS(y) (0x10000000 | SWINO(SWINO_CHS, SWIHandler_CHS_t, y))
#define SYSCALL_MSTUB(y) (0x10000000 | SWINO(SWINO_MSTUB, SWIHandler_MSTUB_t, y))
#define SYSCALL_INPUT(y) (0x10000000 | SWINO(SWINO_INPUT, SWIHandler_INPUT_t, y))
#define SYSCALL_CFG(y) (0x10000000 | SWINO(SWINO_CFG, SWIHandler_CONFIG_t, y))
#define SYSCALL_PTD(y) (0x10000000 | SWINO(SWINO_PTD, SWIHandler_PTHREAD_t, y))
#define SYSCALL_NLIBOPS(y) (0x10000000 | SWINO(SWINO_NLIBOPS, SWIHandler_NLIBOPS_t, y))
#define SYSCALL_KASANOPS(y) (0x10000000 | SWINO(SWINO_KASANOPS, SWIHandler_KASANOPS_t, y))
#endif
#endif