⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vxw_hdrs.h

📁 如何将基于vxworks的应用程序移植到LINUX操作系统。
💻 H
字号:
/***************************************************************************** * vxw_hdrs.h - includes the vxWorks definitions and function prototypes *              needed to compile applications programs in the vxWorks-to- *              pthreads environment.  NOTE that the actual original vxWorks *              header files introduce conflicts with some native Linux *              header files and consequently cannot be used in the pthreads *              environment. *   * Copyright (C) 2000  Monta Vista Software Inc. * * Author : Gary S. Robertson * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU Lesser General Public License for more details. ****************************************************************************/#if __cplusplusextern "C" {#endif#include "vxwkdefs.h"/***  Object Compatibility data types****  These data types are defined here to provide source code compatibility with**  existing vxWorks code.  NOTE that they do not necessarily correspond to the**  actual Wind River definitions for the defined types, nor to the actual**  types of the objects they reference as defined in the vxWorks-to-pthreads**  environment.  THIS MAY CAUSE LINKER ERRORS IF TYPE-SAFE LINKAGE IS USED!**  It works okay with standard ANSII C-style linkage, however. */typedef void     *MSG_Q_ID;typedef void     *SEM_ID;typedef void     *WDOG_ID;typedef void     WIND_TCB;typedef int      SEM_B_STATE;typedef void     *FUNCPTR;/***  Round-Robin Scheduling Control****  The following three functions are unique to VxWorks-to-pthreads. **  They are used to manipulate a global system setting which affects all**  tasks spawned or initialized after the round-robin control call is made.**  They have no effect on tasks spawned or initialized prior to the call.**  Round-Robin scheduling causes tasks at the same priority level to be**  scheduled on a 'time-sliced' basis within that priority level, so that**  all tasks at a given priority level get an equal opportunity to execute.**  Round-robin scheduling is TURNED OFF by default.*/extern void      disableRoundRobin( void );extern void      enableRoundRobin( void );extern BOOL      roundRobinIsEnabled( void );extern STATUS    kernelTimeSlice( int ticks_per_quantum );/***  taskLib Function Prototypes*/extern int       taskSpawn( char *name, int pri, int opts, int stksize,                            FUNCPTR entry, int arg1, int arg2, int arg3,                            int arg4, int arg5, int arg6, int arg7, int arg8,                            int arg9, int arg10 );extern STATUS    taskInit( WIND_TCB *tcb, char *name, int pri,                           int opts, char *pstack, int stksize,                           FUNCPTR entry, int arg1, int arg2, int arg3,                           int arg4, int arg5, int arg6, int arg7, int arg8,                           int arg9, int arg10 );extern STATUS    taskActivate( int taskId );extern STATUS    taskDelete( int taskId );extern STATUS    taskDeleteForce( int taskId );extern STATUS    taskSuspend( int taskId );extern STATUS    taskResume( int taskId );extern STATUS    taskRestart( int taskId );extern STATUS    taskPrioritySet( int taskId, int priority );extern STATUS    taskPriorityGet( int taskId, int *priority );extern STATUS    taskLock( void );extern STATUS    taskUnlock( void );extern STATUS    taskSafe( void );extern STATUS    taskUnsafe( void );extern STATUS    taskDelay( int ticks_to_wait );extern char      *taskName( int taskId );extern int       taskNameToId( char *task_name );extern STATUS    taskIdVerify( int taskId );extern int       taskIdSelf( void );extern int       taskIdDefault( int taskId );extern BOOL      taskIsReady( int taskId );extern BOOL      taskIsSuspended( int taskId );extern WIND_TCB  *taskTcb( int taskId );extern int       taskIdListGet( int list[], int maxIds );/***  msgQLib Function Prototypes*/extern MSG_Q_ID  msgQCreate( int max_msgs, int msglen, int opt );extern STATUS    msgQDelete( MSG_Q_ID queue );extern STATUS    msgQSend( MSG_Q_ID queue, char *msg, uint msglen,                           int wait, int pri );extern int       msgQReceive( MSG_Q_ID queue, char *msgbuf, uint buflen,                              int max_wait );extern int       msgQNumMsgs( MSG_Q_ID queue );/***  semLib Function Prototypes*/extern STATUS    semGive( SEM_ID semaphore );extern STATUS    semTake( SEM_ID semaphore, int max_wait );extern STATUS    semFlush( SEM_ID semaphore );extern STATUS    semDelete( SEM_ID semaphore );extern SEM_ID    semBCreate( int opt, SEM_B_STATE initial_state );extern SEM_ID    semCCreate( int opt, int initial_count );extern SEM_ID    semMCreate( int opt );extern STATUS    semMGiveForce( SEM_ID semaphore );/***  wdLib Function Prototypes*/extern STATUS    wdCancel( WDOG_ID wdId );extern WDOG_ID   wdCreate( void );extern STATUS    wdDelete( WDOG_ID wdId );extern STATUS    wdStart( WDOG_ID wdId, int delay, FUNCPTR funcptr, int parm );#if __cplusplus}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -