133 lines
4.3 KiB
C
133 lines
4.3 KiB
C
/* taskSysCall.h - VxWorks tasking system call definitions */
|
|
|
|
/*
|
|
* Copyright (c) 2003-2011 Wind River Systems, Inc.
|
|
*
|
|
* The right to copy, distribute, modify or otherwise make use
|
|
* of this software may be licensed only pursuant to the terms
|
|
* of an applicable Wind River license agreement.
|
|
*/
|
|
|
|
/*
|
|
modification history
|
|
--------------------
|
|
01x,20jun11,jpb Added VX_TASK_CTL_WAIT (Req: WIND00070880)
|
|
01w,12nov10,zl changed _taskOpen() return type to TASK_ID
|
|
01v,05aug10,gvm Added VX_TASK_CTL_SET_TLS_BASE. Available only on 64bit targets
|
|
01u,04mar10,zl re-enabled VX_TASK_CTL_VAR_CMD for LP64
|
|
01t,21jan10,cww Moved content to taskSysCallP.h
|
|
01s,14jan10,jpb Updated taskCtl prototype. Removed VX_TASK_CTL_VAR_CMD
|
|
conditions.
|
|
01r,03dec09,jpb Updated for LP64 adaptation.
|
|
01q,27mar08,jpb Added VX_TASK_CTL_TASKNAME_TO_ID_STRUCT.
|
|
01p,10oct07,gls Added VX_TASK_CTL_UTCB_GET (Defect #00107604)
|
|
01o,29jun07,jmg Added VX_TASK_CTL_DELETE
|
|
01n,03may07,jmg Added VX_TASK_CTL_ATOMIC_OP, VX_TASK_CTL_CPU_AFFINITY_GET,
|
|
and VX_TASK_CTL_CPU_AFFINITY_SET.
|
|
01m,20sep06,jln added VX_TASK_CTL_CHK_SCHEDULE
|
|
01l,03jul06,jmg Added VX_TASK_CTL_PRI_NORMAL_GET to VX_TASK_CTL_PX_ATTR as
|
|
part of Defect # WIND00045158
|
|
01k,28feb06,jln added VX_TASK_CTL_PX_ATTR_CREATE
|
|
01j,07feb06,kk renamed taskOpenExt to taskOpenWithGuard
|
|
01i,08dec05,jln added _taskOpenExt system call argument
|
|
01h,28jun05,jln Add VX_TASK_CTL_PX_ATTR_XXX cases
|
|
01g,18apr04,hya added VX_TASK_CTL_RESET.
|
|
01g,18feb04,aeg changed _taskOpen() system call API.
|
|
01f,03dec03,kk added VX_TASK_CTL_EXIT_REGISTER enum to taskCtl()
|
|
01e,27oct03,md added VX_TASK_CTL_UTCB_SET enum value.
|
|
01d,27nov03,aeg added _taskOpen() function declaration.
|
|
01c,22sep03,aeg added VX_TASK_CTL_TASK_EXIT enum value.
|
|
01b,05sep03,dcc moved taskOpen() and taskDelay() prototypes to taskLibCommon.h
|
|
01a,19aug03,aeg written
|
|
*/
|
|
|
|
#ifndef __INCtaskSysCallh
|
|
#define __INCtaskSysCallh
|
|
|
|
#include <vxWorks.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* command codes for the taskCtl() system call */
|
|
|
|
typedef enum
|
|
{
|
|
VX_TASK_CTL_ACTIVATE,
|
|
VX_TASK_CTL_DELETE,
|
|
VX_TASK_CTL_SUSPEND,
|
|
VX_TASK_CTL_RESUME,
|
|
VX_TASK_CTL_RESTART,
|
|
VX_TASK_CTL_RESET,
|
|
VX_TASK_CTL_PRI_NORMAL_GET,
|
|
VX_TASK_CTL_PRIORITY_GET,
|
|
VX_TASK_CTL_PRIORITY_SET,
|
|
VX_TASK_CTL_VERIFY,
|
|
VX_TASK_CTL_VAR_ADD,
|
|
VX_TASK_CTL_VAR_DELETE,
|
|
VX_TASK_CTL_VAR_GET,
|
|
VX_TASK_CTL_VAR_SET,
|
|
VX_TASK_CTL_TASK_EXIT,
|
|
VX_TASK_CTL_UTCB_SET,
|
|
VX_TASK_CTL_UTCB_GET,
|
|
VX_TASK_CTL_EXIT_REGISTER,
|
|
VX_TASK_CTL_PX_ATTR_SET,
|
|
VX_TASK_CTL_PX_ATTR_GET,
|
|
VX_TASK_CTL_PX_ATTR_CREATE,
|
|
VX_TASK_CTL_CHK_SCHEDULE,
|
|
VX_TASK_CTL_STACKSIZE_GET,
|
|
VX_TASK_CTL_CPU_AFFINITY_GET,
|
|
VX_TASK_CTL_CPU_AFFINITY_SET,
|
|
VX_TASK_CTL_ATOMIC_OP,
|
|
VX_TASK_CTL_TASKNAME_TO_ID,
|
|
VX_TASK_CTL_WAIT
|
|
#if defined(_WRS_CONFIG_LP64)
|
|
,VX_TASK_CTL_SET_TLS_BASE
|
|
#endif /* _WRS_CONFIG_LP64 */
|
|
} VX_TASK_CTL_CMD;
|
|
|
|
/* command struct for VX_TASK_CTL_VAR_* commands */
|
|
|
|
/*
|
|
* Task vars are not supported for SMP but for user-side builds
|
|
* we must have VX_TASK_CTL_VAR_CMD defined.
|
|
*/
|
|
|
|
typedef struct vx_task_ctl_var_cmd
|
|
{
|
|
long * pVariable;
|
|
long value;
|
|
} VX_TASK_CTL_VAR_CMD;
|
|
|
|
/* argument structure for the _taskOpen() system call */
|
|
|
|
typedef struct vx_task_open_sc_args
|
|
{
|
|
const char * name; /* task name - default name will be chosen */
|
|
int priority; /* task priority */
|
|
int options; /* VX_ task option bits */
|
|
int mode; /* object management mode bits */
|
|
char * pStackBase; /* location of execution stack */
|
|
size_t stackSize; /* execution stack size */
|
|
BOOL * pTaskCreated; /* new kernel task created? */
|
|
void * context; /* context value */
|
|
FUNCPTR entryPt; /* application entry point */
|
|
int argc; /* number of arguments to entry point */
|
|
char ** argv; /* arguments to application entry point */
|
|
} VX_TASK_OPEN_SC_ARGS;
|
|
|
|
/* function declarations */
|
|
|
|
#ifndef _WRS_KERNEL
|
|
extern STATUS taskCtl (TASK_ID tid, VX_TASK_CTL_CMD command, void * pArg,
|
|
size_t * pArgSize);
|
|
extern TASK_ID _taskOpen (VX_TASK_OPEN_SC_ARGS *pArgs);
|
|
#endif /* !_WRS_KERNEL */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCtaskSysCallh */
|