123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676 |
- /************** Begin of vos.h *******************************************/
- /**********************************************************
- * 版权所有 (C)2002, 深圳市中兴通讯股份有限公司。
- *
- * 文件名称: vos.h
- * 文件标识:
- * 内容摘要: 操作系统封装层头文件(主要是所包含头文件、数据结构、接口等)
- * 其它说明: 无
- * 当前版本: V1.0
- * 作 者: 王泽民
- * 完成日期: 2003/08/10
- *
- * 修改记录1:
- * 修改日期:
- * 版 本 号:
- * 修 改 人:
- * 修改内容:
- **********************************************************/
- #ifndef _VOS_H_
- #define _VOS_H_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include "voscfg.h"
- /**********************************************************
- * 宏定义 *
- **********************************************************/
- #define VOS_NULL 0x0
- #define VOS_TRUE 1
- #define VOS_FALSE 0
- #define VOS_SUCCESS 0 /* PSOS返回值 */
- #define VOS_PCBINDEXNO 0 /* 保存pcbindex的便条寄存器号 */
- #define VOS_TASKPRINO 1 /* 保存任务优先级的便条寄存器号 */
- #define VOS_TICKNUM 1 /* 中断的tick数 */
- #define TIMER_SCAN_EVENT (WORD32)(1<<15)
- #define MEMLEAK_SCAN_EVENT (WORD32)(1<<16)
- #define MAX_LENGTH_BUF 512
- #define VOS_NO_WAIT 0x0
- #define VOS_WAIT_FOREVER -1
- #define VOS_SEM_DELETE_SAFE 0x04
- #define VOS_SEM_INVERSION_SAFE 0x08
- #define VOS_VM_STATE_MASK_VALID 0x03
- #define VOS_VM_STATE_MASK_WRITABLE 0x0c
- #define VOS_VM_STATE_MASK_CACHEABLE 0x30
- #define VOS_VM_STATE_MASK_WBACK 0x40
- #define VOS_VM_STATE_MASK_GLOBAL 0x80
- #define VOS_VM_STATE_MASK_GUARDED 0x80
- #define VOS_VM_STATE_VALID 0x01
- #define VOS_VM_STATE_VALID_NOT 0x00
- #define VOS_VM_STATE_WRITABLE 0x04
- #define VOS_VM_STATE_WRITABLE_NOT 0x00
- #define VOS_VM_STATE_CACHEABLE 0x10
- #define VOS_VM_STATE_CACHEABLE_NOT 0x00
- #define VOS_VM_STATE_WBACK 0x40
- #define VOS_VM_STATE_WBACK_NOT 0x00
- #define VOS_VM_STATE_GLOBAL 0x80
- #define VOS_VM_STATE_GLOBAL_NOT 0x00
- #define VOS_VM_STATE_GUARDED 0x80
- #define VOS_VM_STATE_GUARDED_NOT 0x00
- #define MAXCOUNTSEM 10000
- #define VOS_MAX_PATH_LEN 50
- #define VOS_MAX_FILENAME_LEN 60
- #define VOS_MAX_EXP_FILENAME_LEN 8
- #if OS_TYPE == OS_VXWORKS
- #define NULL_TASKID ERROR
- #define NULL_SEMID NULL
- #define NULL_MSGQID NULL
- #define NULL_MSGGET 0
- #define DIR_CODE 0x2f /* 定义符号 "/" */
- #define DIR_CONCATE_CODE "/"
- #endif
- #if OS_TYPE == OS_WINNT
- #define NULL_TASKID NULL
- #define NULL_SEMID NULL
- #define NULL_MSGQID NULL
- #define NULL_MSGGET 0
- #define DIR_CODE 0x5c /* 定义符号" \" */
- #define DIR_CONCATE_CODE "\\"
- #define RDONLY 0
- #define WRONLY 1
- #define RDWR 2
- #define WINNT_ERROR -1
- #endif
- #if OS_TYPE == OS_PSOS
- #define NULL_TASKID 0xffffffff
- #define NULL_SEMID 0xffffffff
- #define NULL_MSGQID 0xffffffff
- #define NULL_MSGGET 0xffffffff
- #define MSG_Q_FIFO 0x00
- #define MSG_Q_PRIORITY 0x01
- #define MSG_PRI_NORMAL 0x00
- #define MSG_PRI_URGENT 0x01
- #define RAM_BLOCKS 2*360 /* RAM disk块大小 */
- #define RAM_PATH_LENGTH 80
- #define MIN_EXPAN_BLOCKS 10
- #endif
- #if OS_TYPE == OS_LINUX
- #ifdef VXWORKS_TO_LINUX
- #define NULL_TASKID ERROR
- #define NULL_SEMID NULL
- #define NULL_MSGQID NULL
- #else
- #define NULL_TASKID 0xffffffff
- #define NULL_SEMID 0xffffffff
- #define NULL_MSGQID 0xffffffff
- #endif
- #define NULL_MSGGET 0
- #define DIR_CODE 0x2f /* 定义符号 "/" */
- #endif
- #if OS_TYPE == OS_KLINUX
- #define NULL_TASKID ERROR
- #define NULL_SEMID NULL
- #define NULL_MSGQID NULL
- #define TRUE 1
- #define FALSE 0
- #define DIR_CONCATE_CODE "/"
- #define DIR_CODE 0x2f
- #define VOS_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) /* 判断是否是目录 */
- // #define malloc(size) __vmalloc(size,GFP_KERNEL |__GFP_HIGHMEM, PAGE_KERNEL)
- //#define free(buf) vfree(buf)
- #define printf printk
- #endif
- /************** SOCKET & TCP ***************/
- #define NELEMENTS(array) (sizeof (array) / sizeof ((array) [0]))
- #ifndef HASMAX
- #ifndef max
- #define max(a,b) ((a)>(b)?(a):(b))
- #endif
- #endif
- #ifndef HASMIN
- #ifndef min
- #define min(a,b) ((a)<(b)?(a):(b))
- #endif
- #endif
- #if (OS_TYPE == OS_VXWORKS)
- #define SOCKET_ERROR ERROR
- #define SOMAXCONN 5
- #define VOS_EWOULDBLOCK EWOULDBLOCK
- #define VOS_ECONNRESET ECONNRESET
- #endif
- #if (OS_TYPE == OS_WINNT)
- /* 数组中元素个数 */
- ///(pclint检测注释掉该行)#define NELEMENTS(array) (sizeof (array) / sizeof ((array) [0]))
- #define CloseSocket closesocket
- #define bcopy(src,dst,size) memcpy(dst,src,size)
- #define errnoGet WSAGetLastError
- typedef long int STATUS ;
- #define VOS_EWOULDBLOCK WSAEWOULDBLOCK
- #define VOS_ECONNRESET WSAECONNRESET
- #endif
- #if ((OS_TYPE == OS_LINUX) ||(OS_TYPE == OS_KLINUX))
- typedef unsigned long ULONG;
- #define errnoGet() errno
- #define SOCKET_ERROR ERROR
- #define SOMAXCONN 128
- #define VOS_EWOULDBLOCK EWOULDBLOCK
- #define VOS_ECONNRESET ECONNRESET
- #endif
- #if ((OS_TYPE == OS_VXWORKS) || (OS_TYPE == OS_LINUX)||(OS_TYPE == OS_KLINUX))
- typedef int SOCKET;
- #endif
- /**************** VOS TIMER *******************/
- /* 时钟中断精度10ms */
- #define TIMER_RESOLUTION 10
- #if (OS_TYPE == OS_WINNT)
- #ifndef WIN32_LEAN_AND_MEAN
- #define WIN32_LEAN_AND_MEAN
- #endif
- #include <windows.h>
- #include <mmsystem.h>
- #define VOS_TIMERCALLBACK LPTIMECALLBACK
- #define VOS_TIMER_ID WORD32
- #define INVALID_VOS_TIMERID 0
- #endif
- #if (OS_TYPE == OS_VXWORKS)
- #define VOS_TIMERCALLBACK FUNCPTR
- #define VOS_TIMER_ID WDOG_ID
- #define INVALID_VOS_TIMERID NULL
- #define TIMER_ONESHOT 0
- #define TIMER_PERIODIC 1
- #endif
- #if (OS_TYPE == OS_PSOS)
- #define VOS_TIMERCALLBACK LPVOID
- #define VOS_TIMER_ID WORD32
- #define INVALID_VOS_TIMERID 0xffffffff
- #endif
- #if (OS_TYPE == OS_LINUX)
- typedef void(*VOS_TIMERCALLBACK)(int);
- #define VOS_TIMER_ID WORD32
- #define INVALID_VOS_TIMERID 0
- #endif
- #if (OS_TYPE == OS_KLINUX)
- #ifndef HZ
- #define HZ 100
- #endif
- extern unsigned long volatile jiffies;
- typedef void(*VOS_TIMERCALLBACK)(WORD32);
- typedef struct timer_list *VOS_TIMER_ID;
- #define INVALID_VOS_TIMERID NULL
- #endif
- /**************** VOS VOLUME *******************/
- #define VOLNAME_LENGTH 10
- /**********************************************************
- * 类型定义 *
- **********************************************************/
- #if OS_TYPE == OS_VXWORKS
- #define VOS_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) /* 判断是否是目录 */
- #define VOS_ISCHR(mode) ((mode & S_IFMT) == S_IFCHR) /* 是否 是特殊字符 */
- #define VOS_ISBLK(mode) ((mode & S_IFMT) == S_IFBLK) /* 判断是否是特殊块 */
- #define VOS_ISREG(mode) ((mode & S_IFMT) == S_IFREG) /* 判断是否正规块 */
- #define VOS_ISFIFO(mode) ((mode & S_IFMT) == S_IFIFO) /* 判断是否fifo */
- #elif OS_TYPE== OS_WINNT
- #define VOS_ISDIR(mode) ((mode & _S_IFMT) == _S_IFDIR) /* 判断是否是目录 */
- #define VOS_ISCHR(mode) ((mode & _S_IFMT) == _S_IFCHR) /* 是否 是特殊字符 */
- #define VOS_ISBLK(mode) ((mode & _S_IFMT) == _S_IFBLK) /* 判断是否是特殊块 */
- #define VOS_ISREG(mode) ((mode & _S_IFMT) == _S_IFREG) /* 判断是否正规块 */
- #define VOS_ISFIFO(mode) ((mode & _S_IFMT) == _S_IFIFO) /* 判断是否fifo */
- #endif
- /* ID类型定义 */
- #if OS_TYPE == OS_VXWORKS
- typedef SWORD32 TASK_ID;
- typedef PART_ID MEMPART_ID;
- typedef FUNCPTR VOS_FUNCPTR;
- typedef WIND_TCB TASK_TCB;
- #endif
- #if OS_TYPE == OS_PSOS
- typedef WORD32 TASK_ID;
- typedef VOS_VOIDFUNCPTR VOS_FUNCPTR;
- typedef WORD32 SEM_ID;
- typedef WORD32 MSG_Q_ID;
- typedef WORD32 MEMPART_ID;
- #endif
- #if OS_TYPE == OS_WINNT
- typedef HANDLE TASK_ID;
- typedef HANDLE SEM_ID;
- typedef HANDLE MEMPART_ID;
- typedef HANDLE MSG_Q_ID;
- typedef LPTHREAD_START_ROUTINE VOS_FUNCPTR;
- #endif
- #if OS_TYPE == OS_LINUX
- typedef void VOID;
- typedef pthread_t TASK_ID;
- typedef sem_t * SEM_ID;
- #ifndef PART_ID
- #define PART_ID int
- #endif /*wenhm,050826*/
- typedef PART_ID MEMPART_ID;
- typedef void* VOS_FUNCPTR;
- ///typedef void (*AutoRunHandler)(void);
- typedef WORD32 MSG_RECEIVE;/*yangyp*/
- typedef WORD32 MSG_Q_ID;
- ///typedef FUNCPTR VOS_FUNCPTR;
- ///typedef WIND_TCB TASK_TCB;
- ///typedef WORD16 VOS_TIMER_ID;/*yangyp*/
- ///typedef WORD32 SEM_ID;
- ///typedef SWORD32 TASK_ID;
- #endif
- #if OS_TYPE == OS_KLINUX
- typedef void VOID;
- typedef pthread_t TASK_ID;
- typedef sem_t* SEM_ID;
- /*typedef PART_ID MEMPART_ID;
- typedef FUNCPTR VOS_FUNCPTR;
- typedef WIND_TCB TASK_TCB;*/
- typedef WORD32 MEMPART_ID;
- typedef void* VOS_FUNCPTR;
- typedef WORD32 MSG_RECEIVE;/*yangyp*/
- typedef WORD16 VOS_TIMER_ID;/*yangyp*/
- typedef WORD32 MSG_Q_ID;
- #endif
- /* VOS_STATUS: VOS层函数返回值 */
- typedef enum
- {
- VOS_ERROR = -1,
- VOS_OK = 0,
- }VOS_STATUS;
- /* VOS_SEM_STATE 二进制信号量初始状态 */
- typedef enum
- {
- VOS_SEM_EMPTY,
- VOS_SEM_FULL
- }VOS_SEM_STATE;
- /* 信号量队列类型:先进先出或优先级 */
- typedef enum
- {
- VOS_SEM_Q_FIFO,
- VOS_SEM_Q_PRIORITY
- }VOS_SEM_QUEUE_TYPE;
- /* 消息优先级 */
- typedef enum
- {
- VOS_MSG_PRI_NORMAL,
- VOS_MSG_PRI_URGENT
- }VOS_MSG_TYPE;
- /* 消息排队类型:先进先出或优先级 */
- typedef enum
- {
- VOS_MSG_Q_FIFO,
- VOS_MSG_Q_PRIORITY
- }VOS_MSGQUE_TYPE;
- /* 任务状态 */
- typedef enum
- {
- VOS_TASK_STATUS_NULL,
- VOS_TASK_STATUS_RUNNING,
- VOS_TASK_STATUS_READY,
- VOS_TASK_STATUS_PEND,
- VOS_TASK_STATUS_SUSPEND,
- VOS_TASK_STATUS_DEBUG,
- VOS_TASK_STATUS_DEAD
- }VOS_TASK_STATUS;
- /* 参数和返回值为VOID的函数定义 */
- typedef VOID(*VOS_VOIDFUNCPTR)(VOID);
- /**********************************************************
- * 数据结构定义 *
- **********************************************************/
- /* 系统时钟 */
- typedef struct tagSYS_CLOCK
- {
- WORD16 wSysYear;
- WORD16 wSysMon;
- WORD16 wSysDay;
- WORD16 wSysHour;
- WORD16 wSysMin;
- WORD16 wSysSec;
- WORD16 wSysWeek;
- WORD16 wMilliSec;
- }T_SYS_CLOCK;
- #undef st_atime
- #undef st_mtime
- #undef st_ctime
- /* 文件状态描述 */
- typedef struct tagFileStat
- {
- WORD32 st_dev;
- WORD32 st_ino;
- WORD16 st_mode;
- SWORD16 st_nlink;
- SWORD16 st_uid;
- SWORD16 st_gid;
- WORD32 st_rdev;
- SWORD32 st_size;
- SWORD32 st_atime;
- SWORD32 st_mtime;
- SWORD32 st_ctime;
- }T_FileStat;
- /* added by 温辉敏,文件的访问属性*/
- enum Permissions {
- /// File has world execute permission
- WorldExecute = 1,
- /// File has world write permission
- WorldWrite = 2,
- /// File has world read permission
- WorldRead = 4,
- /// File has group execute permission
- GroupExecute = 8,
- /// File has group write permission
- GroupWrite = 16,
- /// File has group read permission
- GroupRead = 32,
- /// File has owner execute permission
- UserExecute = 64,
- /// File has owner write permission
- UserWrite = 128,
- /// File has owner read permission
- UserRead = 256,
- /// All possible permissions.
- AllPermissions = 0x1ff,
- /// Owner read & write plus group and world read permissions.
- DefaultPerms = UserRead|UserWrite|GroupRead|WorldRead,
- /// Owner read & write & execute plus group and world read & exectute permissions.
- DefaultDirPerms = DefaultPerms|UserExecute|GroupExecute|WorldExecute
- };
- #if OS_TYPE == OS_WINNT
- /**
- 下面结构当和MINIAce一起使用时,
- os_dirent.h中相应的结构产生的冲突,而os_dirent.h结构中采用了ACE_LACKS_STRUCT_DIR才会生效,
- 因此可以设定vos.h中不采用ACE_LACKS_STRUCT_DIR宏定义时它的结构dirent才生效.
- added by wenhm in 2007.05.16
- */
- #ifndef ACE_LACKS_STRUCT_DIR
- /* 路径入口 */
- struct dirent
- {
- unsigned short d_ino;
- unsigned short d_off;
- unsigned short d_reclen;
- CHAR d_name [VOS_MAX_FILENAME_LEN + 1];
- };
- #endif
- /* 目录项的定义 */
- typedef struct
- {
- SWORD32 dd_fd; /* 打开目录的文件描述 */
- SWORD32 dd_cookie; /* 目录中的文件特定标示filesys-specific marker within dir */
- struct dirent dd_dirent; /* 路径入口 */
- }DIR;
- #endif
- /**********************************************************
- * 函数原型 *
- **********************************************************/
- /****************** 任务管理模块 ************************/
- TASK_ID VOS_CreateTask(CHAR *pTaskName, SWORD32 priority,
- SWORD32 options, SWORD32 stackSize,
- VOS_FUNCPTR pTaskEntry, SWORD32 arg1,
- SWORD32 arg2, SWORD32 arg3, SWORD32 arg4,
- SWORD32 arg5, SWORD32 arg6, SWORD32 arg7,
- SWORD32 arg8, SWORD32 arg9, SWORD32 arg10);
- VOS_STATUS VOS_DeleteTask(TASK_ID taskId);
- VOS_STATUS VOS_SuspendTask(TASK_ID taskId);
- VOS_STATUS VOS_ResumeTask(TASK_ID taskId);
- VOS_STATUS VOS_SetPriority(TASK_ID TaskId, SWORD32 newPriority);
- SWORD32 VOS_GetPriority(TASK_ID TaskId);
- VOS_STATUS VOS_DelayTask(SWORD32 delayTime);
- TASK_ID VOS_GetSelfTaskID(VOID);
- VOS_STATUS VOS_SuspendSelf(VOID);
- VOS_TASK_STATUS VOS_GetTaskStatus(TASK_ID taskId);
- VOID VOS_CheckStack(TASK_ID taskId);
- /************** 二进制信号量与计数信号量 *****************/
- SEM_ID VOS_CreateBSem(SWORD32 options, VOS_SEM_STATE initialState);
- SEM_ID VOS_CreateCSem(SWORD32 options, SWORD32 initialState);
- SEM_ID VOS_CreateMSem(SWORD32 options);
- VOS_STATUS VOS_DeleteSem(SEM_ID semId);
- VOS_STATUS VOS_TakeSem(SEM_ID semId, SWORD32 timeout);
- VOS_STATUS VOS_GiveSem(SEM_ID semId);
- /**************** 内存管理模块 ***************************/
- MEMPART_ID VOS_CreateMemPart(CHAR *pPool, WORD32 poolSize);
- VOID *VOS_AllocMemPart(MEMPART_ID memPartId, WORD32 size);
- VOS_STATUS VOS_FreeMemPart(MEMPART_ID memPartId, CHAR *pBlock);
- CHAR *VOS_GetPhysMemTop(VOID);
- WORD32 VOS_GetRnFreeInfo(WORD32 dwRnId);
- /********************* 中断处理 ******* ******************/
- SWORD32 VOS_LockInt();
- VOID VOS_UnlockInt(SWORD32 dwLevel);
- /********************* 消息队列 **************************/
- MSG_Q_ID VOS_CreateMsgQue(WORD32 dwMaxMsgNum,
- WORD32 dwMaxMsgLength,
- BYTE ucOptions);
- VOS_STATUS VOS_DeleteMsgQue(MSG_Q_ID wMsgId);
- VOS_STATUS VOS_SendMsg(MSG_Q_ID wMsgId,
- CHAR *pcMsgData,
- WORD32 dwlen,
- SWORD32 dwtimeout,
- BYTE ucPrior);
- WORD32 VOS_ReceiveMsg(MSG_Q_ID wMsgId,
- CHAR *pcMsgDataBuffer,
- WORD32 dwlen,
- SWORD32 iTimeout);
- WORD32 VOS_GetCurMsgs(MSG_Q_ID wMsgId);
- /********************* 时钟模块 **************************/
- VOS_STATUS VOS_ConnectClk(VOS_VOIDFUNCPTR clkIntEntry);
- SWORD32 VOS_GetSysClkRate(VOID);
- WORD32 VOS_GetTick();
- VOS_STATUS VOS_IniSysClk(T_SYS_CLOCK *pSysSoftClk);
- VOS_STATUS VOS_SetSysClkRate(SWORD32 sdTicPerSend);
- VOS_STATUS VOS_TimeSet(T_SYS_CLOCK *pSysSoftClk);
- VOS_STATUS VOS_TimeGet(T_SYS_CLOCK *pSysSoftClk);
- VOS_TIMER_ID VOS_RelTimer(
- WORD32 dwTimeLength,
- VOS_TIMERCALLBACK lpTimeProc,
- WORD32 dwUser,
- WORD32 dwEvents
- );
- VOS_TIMER_ID VOS_AbsTimer(
- T_SYS_CLOCK tRelTimerSet,
- VOS_TIMERCALLBACK lpTimeProc,
- WORD32 dwUser,
- WORD32 dwEvents
- );
- VOS_TIMER_ID VOS_PerTimer(
- WORD32 dwTimeLength,
- VOS_TIMERCALLBACK lpTimeProc,
- WORD32 dwUser,
- WORD32 dwEvents
- );
- VOS_STATUS VOS_TimerKill(VOS_TIMER_ID TimerId);
- /********************* 错误异常 **************************/
- SWORD32 VOS_GetErrno(VOID);
- VOID VOS_AddExcHook(VOS_FUNCPTR excHookEntry);
- /********************* 初始化VOS *************************/
- VOS_STATUS VOS_InitVOS(VOID);
- /****************** 当前进程PCB操作 **********************/
- VOS_STATUS VOS_SetCurPCBIndex(WORD16 wIndex);
- WORD16 VOS_GetCurPCBIndex(VOID);
- VOS_STATUS VOS_FreeTlsData(VOID);
- /****************** 事件模块 **********************/
- VOS_STATUS VOS_SendEvent(TASK_ID taskId, WORD32 dwEvents);
- VOS_STATUS VOS_ReceiveEvent(WORD32 dwEvents, WORD32 dwTimeout,
- WORD32 *ptEventsR);
- /****************** 调试打印函数 **********************/
- VOID VOS_Display(const CHAR *fmt, ... );
- /********************文件系统模块**********************/
- SWORD32 VOS_Create(CHAR *pcFileName);
- VOS_STATUS VOS_Delete(CHAR *pcFileName);
- SWORD32 VOS_Open(CHAR *pcFileName,SWORD32 sdwFlag,SWORD32 sdwMode);
- VOS_STATUS VOS_Close(SWORD32 sdwFileHandle);
- VOS_STATUS VOS_Rename(CHAR *pcOldFileName,CHAR *pcNewFileName);
- SWORD32 VOS_Read(SWORD32 sdFileHandle,VOID *pBuffer,SWORD32 sdCount);
- SWORD32 VOS_Write(SWORD32 sdFileHandle,VOID *pBuffer,SWORD32 sdCount);
- SWORD32 VOS_FileLength(CHAR *pcFileName);
- SWORD32 VOS_Lseek(SWORD32 sdFileHandle,SWORD32 sdOffset,SWORD32 sdOrigin);
- VOS_STATUS VOS_CreateDir(CHAR *pcDirName);
- VOS_STATUS VOS_DeleteDir(CHAR *pcDirName);
- VOS_STATUS VOS_RenameDir(CHAR *pcOldDirName,CHAR *pcNewDirName);
- DIR *VOS_OpenDir(CHAR *pcDirName);
- struct dirent *VOS_ReadDir(DIR *pDir);
- VOS_STATUS VOS_CloseDir(DIR *pDir);
- VOS_STATUS VOS_Stat(CHAR *pcFileName, T_FileStat *pStat);
- VOS_STATUS VOS_CreateMemDev(CHAR *pcRamDiskName,
- CHAR *pcRamAddr,
- SWORD32 sdwCHARsPerBlk,
- SWORD32 sdwBlksPerTrack,
- SWORD32 sdwNBlocks,
- SWORD32 sdwBlkOffset);
- VOS_STATUS VOS_StartFtpServer(LPVOID pLoginRtn,
- SWORD32 sdwStackSize);
- VOS_STATUS VOS_StopFtpServer(VOID);
- #if OS_TYPE == OS_PSOS
- VOS_STATUS VOS_FileSystemInit(VOID);
- #endif
- /****************** SOCKET **********************/
- VOS_STATUS VOS_InitSocketLib(VOID);
- SOCKET VOS_Socket(SWORD32 family, SWORD32 type,SWORD32 protocol );
- VOS_STATUS VOS_Bind(SWORD32 s, const struct sockaddr * name, SWORD32 namelen);
- VOS_STATUS VOS_Accept(SOCKET s ,struct sockaddr * addr,SWORD32* addrlen );
- VOS_STATUS VOS_Listen(SOCKET s ,SWORD32 backlog );
- SWORD32 VOS_Send(SOCKET s,const char * buffer,SWORD32 len, SWORD32 flags);
- SWORD32 VOS_Recv(SOCKET s,const char * buffer,SWORD32 len,SWORD32 flags);
- VOS_STATUS VOS_CloseSocket(SOCKET s);
- VOS_STATUS VOS_CleanUp(void);
- VOS_STATUS VOS_ConnectWithTimeout(SOCKET s, struct sockaddr * adrs, int adrsLen,
- struct timeval * timeVal );
- SWORD32 VOS_SendTo(SOCKET s,const char *buffer,SWORD32 len, SWORD32 flags,
- struct sockaddr *to, int tolen );
- SWORD32 VOS_SendSocketMsg(SOCKET s, struct msghdr *mp, SWORD32 flags);
- SWORD32 VOS_RecvFrom(SOCKET s,const char *buffer,SWORD32 len, SWORD32 flags,
- struct sockaddr *from, int * pFromLen);
- SWORD32 VOS_RecvSocketMsg(SOCKET s, struct msghdr *mp, SWORD32 flags);
- VOS_STATUS VOS_Shutdown(SOCKET s, int how);
- VOS_STATUS VOS_SetSockOpt (SOCKET s, int level, int optname, char * optval, int optlen );
- VOS_STATUS VOS_GetSockOpt (SOCKET s, int level, int optname, char * optval, int *optlen );
- VOS_STATUS VOS_GetSockName(SOCKET s, struct sockaddr * name, int * namelen);
- VOS_STATUS VOS_GetPeerName (SOCKET s, struct sockaddr * name, int * namelen);
- SWORD32 VOS_Select(int width, fd_set *pReadFds, fd_set * pWriteFds,
- fd_set * pExceptFds, struct timeval * pTimeOut);
- SWORD32 VOS_Ioctl(int fd, int function,int arg);
- /****************** Exec **********************/
- VOS_STATUS VOS_Exec(
- const CHAR * strFile, ///要执行的程序名称
- const CHAR * strArgs ///要传入的命令行参数
- );
- VOS_STATUS VOS_ExecByFork(
- const CHAR * strFile, ///要执行的程序名称
- const CHAR * strArgs ///要传入的命令行参数
- );
- VOS_STATUS VOS_ForceDelete(CHAR *pcFileName);
- SWORD32 VOS_Chmod(
- const CHAR * pcFileName, ///文件名
- int iPermissions ///要进行设置的文件属性
- );
- VOS_STATUS VOS_SetRLimit(const int iCoreFileSize);
- VOS_STATUS VOS_GetTimeOfDay(struct timeval *tv, struct timezone *tz);
- #ifdef __cplusplus
- }
- #endif
- #endif
- /************** End of vos.h *******************************************/
|