Files
vxWorks/h/private/taskSysCall.h
2025-08-20 18:25:46 +08:00

103 lines
2.9 KiB
C

/* taskSysCall.h - VxWorks tasking system call definitions */
/*
* Copyright (c) 2003-2005 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
--------------------
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
#ifdef __cplusplus
extern "C" {
#endif
#include "vxWorks.h"
/* command codes for the taskCtl() system call */
typedef enum
{
VX_TASK_CTL_ACTIVATE,
VX_TASK_CTL_SUSPEND,
VX_TASK_CTL_RESUME,
VX_TASK_CTL_RESTART,
VX_TASK_CTL_RESET,
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_EXIT_REGISTER,
VX_TASK_CTL_PX_ATTR_SET,
VX_TASK_CTL_PX_ATTR_GET
} VX_TASK_CTL_CMD;
/* command struct for VX_TASK_CTL_PX_ATTR_* commands */
typedef struct vx_task_ctl_px_attr
{
void * pAttr;
int attrSz;
} VX_TASK_CTL_PX_ATTR;
/* command struct for VX_TASK_CTL_VAR_* commands */
typedef struct vx_task_ctl_var_cmd
{
int *pVariable;
int 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 */
int 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;
/* system call function prototypes */
extern STATUS taskCtl (int tid, VX_TASK_CTL_CMD command, void * pArg,
UINT * pArgSize);
extern int _taskOpen (VX_TASK_OPEN_SC_ARGS *pArgs);
#ifdef __cplusplus
}
#endif
#endif /* __INCtaskSysCallh */