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

1530 lines
68 KiB
C
Raw Normal View History

2024-05-07 10:09:20 +00:00
/*
* =====================================================================================
*
* 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