API应用程序接口

本文档存放的是用户程序的编程接口的设计说明。

NXOS的API接口分为几个大类。进程,线程,内存管理,时间管理,枢纽系统,文件系统,设备管理,网络管理,图形管理,安全管理,用户态驱动框架。

进程管理

  • NX_Error NX_ProcessLaunch(char path, NX_U32 flags, NX_U32 exitCode, char cmd, char env)
  • void NX_ProcessExit(NX_U32 exitCode)
  • NX_Error NX_ProcessGetCwd(char * buf, NX_Size length)
  • NX_Error NX_ProcessSetCwd(char * buf)

线程管理

  • NX_Error NX_ThreadCreate(NX_ThreadAttr attr, NX_U32 (handler)(void ), void arg, NX_U32 flags, NX_Solt * outSolt)
  • void NX_ThreadExit(NX_U32 exitCode)
  • NX_Error NX_ThreadGetId(NX_Solt solt, NX_U32 * outId)
  • NX_U32 NX_ThreadGetCurrentId(void)
  • NX_Error NX_ThreadGetCurrent(NX_Solt * outSolt)
  • NX_Error NX_ThreadGetProcessId(NX_Solt solt, NX_U32 * outId)
  • NX_Error NX_ThreadTerminate(NX_Solt solt, NX_U32 exitCode)
  • NX_Error NX_ThreadSuspend(NX_Solt solt)
  • NX_Error NX_ThreadResume(NX_Solt solt)
  • NX_Error NX_ThreadWait(NX_Solt solt, NX_U32 * exitCode)
  • NX_Error NX_ThreadSleep(NX_UArch microseconds)
  • NX_Error NX_ThreadAttrInit(NX_ThreadAttr * attr, NX_Size stackSize, NX_U32 schedPriority)

  • int NX_TLsAlloc(void)

  • NX_Error NX_TLsFree(int index)
  • NX_Error NX_TLsSetValue(int index, void * value)
  • void * NX_TLsGetValue(int index)
  • void NX_TlsSetExtension(void * data)
  • void * NX_TlsGetExtension(void)

  • NX_Solt NX_MutexCreate(NX_U32 attr)

  • NX_Error NX_MutexDestroy(NX_Solt solt)
  • NX_Error NX_MutexAcquire(NX_Solt solt)
  • NX_Error NX_MutexTryAcquire(NX_Solt solt)
  • NX_Error NX_MutexRelease(NX_Solt solt)
  • NX_Error NX_MutexAcquirable(NX_Solt solt)
  • NX_Solt NX_SemaphoreCreate(NX_IArch value) NX* _Error NX_SemaphoreDestroy(NX_Solt solt)
  • NX_Error NX_SemaphoreWait(NX_Solt solt)
  • NX_Error NX_SemaphoreTryWait(NX_Solt solt)
  • NX_Error NX_SemaphoreSignal(NX_Solt solt)
  • NX_Error NX_SemaphoreSignalAll(NX_Solt solt)
  • NX_IArch NX_SemaphoreGetValue(NX_Solt solt)

内存管理

  • void NX_MemMap(void addr, NX_Size length, NX_U32 prot, NX_Error * outErr)
  • NX_Error NX_MemUnmap(void * addr, NX_Size length)
  • void NX_MemHeap(void addr, NX_Error * outErr)

  • int NX_PosixBrk(void * addr)

  • void * NX_PosixSbrk(int increment)

  • void * NX_MemAlloc(NX_Size size)

  • void * NX_MemAllocEx(NX_Size number, NX_Size size)
  • void NX_MemReAlloc(void p, NX_Size size)
  • void NX_MemFree(void * ptr)

时间管理

  • NX_Error NX_TimeSet(NX_Time * time)
  • NX_Error NX_TimeGet(NX_Time * time)
  • NX_TimeVal NX_ClockGetMillisecond(void)

文件系统

  • NX_Error NX_VfsMount(const char dev, const char dir, const char * fsname, NX_U32 flags)
  • NX_Error NX_VfsUnmount(const char * path)
  • NX_Error NX_VfsSync(void)
  • int NX_VfsOpen(const char path, NX_U32 flags, NX_U32 mode, NX_Error outErr)
  • NX_Error NX_VfsClose(int fd)
  • NX_U64 NX_VfsRead(int fd, void buf, NX_U64 len, NX_Error outErr)
  • NX_U64 NX_VfsWrite(int fd, void buf, NX_U64 len, NX_Error outErr)
  • NX_Error NX_VfsIoctl(int fd, NX_U32 cmd, void *arg)
  • NX_I64 NX_VfsFileSeek(int fd, NX_I64 off, int whence, NX_Error *outErr)
  • NX_Error NX_VfsFileSync(int fd)
  • NX_Error NX_VfsFileChmod(int fd, NX_U32 mode)
  • NX_Error NX_VfsFileStat(int fd, NX_VfsStatInfo * st)
  • int NX_VfsOpenDir(const char name, NX_Error outErr)
  • NX_Error NX_VfsCloseDir(int fd)
  • NX_Error NX_VfsReadDir(int fd, NX_VfsDirent * dir)
  • NX_Error NX_VfsRewindDir(int fd)
  • NX_Error NX_VfsMakeDir(const char * path, NX_U32 mode)
  • NX_Error NX_VfsRemoveDir(const char * path)
  • NX_Error NX_VfsRename(const char src, const char dst)
  • NX_Error NX_VfsUnlink(const char * path)
  • NX_Error NX_VfsAccess(const char * path, NX_U32 mode)
  • NX_Error NX_VfsChmod(const char * path, NX_U32 mode)
  • NX_Error NX_VfsStat(const char path, NX_VfsStatInfo st)

网络系统

参考socket套接字接口设计

枢纽系统

  • NX_Error NX_HubRegister(const char *name, NX_Size maxClient);
  • NX_Error NX_HubUnregister(const char *name);
  • NX_Error NX_HubCallParam(NX_Hub hub, NX_HubParam param, NX_Size *retVal);
  • NX_Error NX_HubCallParamName(const char name, NX_HubParam param, NX_Size *retVal);
  • NX_Error NX_HubReturn(NX_Size retVal, NX_Error retErr);
  • NX_Error NX_HubPoll(NX_HubParam *param);
  • void NX_HubTranslate(void addr, NX_Size size);
  • NX_Error NX_HubDispatch(NX_HubParam *param, NX_HubHandler handlerTable[], NX_Size tableSize);
  • NX_Error NX_HubLoop(NX_HubHandler handlerTable[], NX_Size tableSize);

设备接口

  • NX_Solt NX_DeviceOpen(const char * name, NX_U32 flags);
  • NX_Size NX_DeviceRead(NX_Solt solt, void *buf, NX_Offset off, NX_Size len);
  • NX_Size NX_DeviceWrite(NX_Solt solt, void *buf, NX_Offset off, NX_Size len);
  • NX_Error NX_DeviceControl(NX_Solt solt, NX_U32 cmd, void *arg);
  • define NX_DeviceClose(solt) NX_SoltClose(solt)

  • void * NX_DeviceMap(NX_Solt solt, NX_Size length, NX_U32 prot);

信号接口

  • NX_Error NX_SignalSend(NX_U32 tid, NX_Signal signal, void * signalValue);
  • NX_Error NX_SignalGetAttr(NX_Signal signal, NX_SignalAttr * outAttr);
  • NX_Error NX_SignalSetAttr(NX_Signal signal, NX_SignalAttr * attr);
  • NX_Error NX_SignalContorl(NX_Signal signalFirst, NX_Signal signalLast, NX_U32 cmd);

  • NX_Error NX_SignalInitAttr(NX_SignalAttr * attr, NX_SignalHandler handler, NX_U32 flags);

定时器

  • NX_Solt NX_TimerCreate(NX_UArch milliseconds, void (handler)(void arg), void *arg, NX_U32 flags);
  • NX_Error NX_TimerStart(NX_Solt solt);
  • NX_Error NX_TimerStop(NX_Solt solt);

图形系统

安全管理

用户态驱动框架

results matching ""

    No results matching ""