📄 query.h
字号:
/************************************************************************//* pSOS+ QUERY SERVICES *//* - type definitions, typedefs, constatnts, function prototypes *//************************************************************************//* cv_info() call returns the following information for a given */ /* condition variable object. *//************************************************************************/struct cvinfo { UCHAR name[4]; /* Name of the Condition Variable */ ULONG flags; /* Object's attributes */ ULONG wqlen; /* No. of waiting tasks */ ULONG wtid; /* Object ID of the first waiting task */ ULONG muid; /* Object ID of the associated mutex */ };typedef struct cvinfo pcvinfo_t;/************************************************************************//* mu_info() call returns the following information for a given mutex *//* object. *//************************************************************************/struct muinfo{ UCHAR name[4]; /* Name of the mutex */ ULONG flags; /* Mutex attributes */ ULONG wqlen; /* No. of waiting tasks */ ULONG wtid; /* Object ID of the first waiting task */ ULONG count; /* Mutex reference (lock) count */ ULONG ownid; /* Mutex owner ID */ ULONG node; /* owner task's node number */ ULONG ceilprio; /* Mutex ceiling priority */ ULONG phpwt; /* Max. of all waiting tasks priorities */};typedef struct muinfo pmuinfo_t;/************************************************************************//* pt_info() call returns the following information for a given *//* partition object. *//************************************************************************/struct ptinfo { UCHAR name[4]; /* Name of the partition */ ULONG flags; /* Partition attributes */ ULONG bsize; /* size of a partition buffer */ ULONG nbufs; /* Total no. of buffers in the partition*/ ULONG nfree; /* Total No. of free buffers. */ ULONG *iaddr; /* Partition start address */ ULONG length; /* Partition length */ };typedef struct ptinfo pptinfo_t;/************************************************************************//* q_info() call returns the following information for a given *//* queue object. *//************************************************************************/struct qinfo { UCHAR name[4]; /* Name of the queue */ ULONG flags; /* Queue attributes */ ULONG wqlen; /* No. of waiting tasks */ ULONG wtid; /* Object ID of the first waiting task */ ULONG mqlen; /* No. of messages in the queue */ ULONG mqmax; /* Max. no. of messages allowed */ ULONG tid_ntfy; /* Task to notify of message arrival */ ULONG ev_ntfy; /* Event to post on message arrival */ };typedef struct qinfo pqinfo_t;/************************************************************************//* rn_info() call returns the following information for a given *//* region object. *//************************************************************************/struct rninfo { UCHAR name[4]; /* Name of the region */ ULONG flags; /* Region attributes */ ULONG wqlen; /* No. of waiting tasks */ ULONG wtid; /* Object ID of the first waiting task */ void *start_addr; /* Start address */ ULONG unit_size; /* Size of each unit */ ULONG total_units; /* Total units in the region */ ULONG free_bytes; /* Bytes free in the region */ ULONG largest; /* size of largest chunk in bytes */ ULONG length; /* Total length of region in bytes */ };typedef struct rninfo prninfo_t;/************************************************************************//* sm_info() call returns the following information for a given *//* semaphore object. *//************************************************************************/struct sminfo { UCHAR name[4]; /* Semaphore name */ ULONG flags; /* Semaphore attributes */ ULONG wqlen; /* No. of waiting tasks */ ULONG wtid; /* Object ID of the first waiting task */ ULONG count; /* Semaphore count */ ULONG maxcount; /* Limit for bounded semaphores */ ULONG tid_ntfy; /* Task to notify of sema4 availability */ ULONG ev_ntfy; /* Event to post on sema4 availability */ };typedef struct sminfo psminfo_t;/************************************************************************//* t_info() call returns the following information for a given *//* task object. *//************************************************************************/struct tinfo { UCHAR name[4]; /* Task name */ ULONG flags; /* Task attributes */ void (*iip)(); /* Task's initial starting address */ ULONG next; /* ID of the next waiting task */ USHORT status; /* Task status */ UCHAR cpriority; /* Task's current priority */ UCHAR bpriority; /* Task's base priority */ UCHAR ipriority; /* Task's initial priority */ UCHAR evwantcond; /* Task's event wait condition */ USHORT amode; /* Task's ASR mode */ USHORT mode; /* Task's current mode */ USHORT imode; /* Task's initial mode */ ULONG tslice_quantum; /* Per task's time slice in ticks */ long tslice_remain; /* Remainder time slice in ticks */ ULONG wtobid; /* Object where task is blocked */ ULONG evwait; /* Events - task waiting for */ ULONG evcaught; /* Events caught */ ULONG evrcvd; /* Events received */ ULONG ss_size; /* Supervisory stack size */ ULONG us_size; /* User stack size */ ULONG *ssp; /* Task's current supervisor stack ptr */ ULONG *issp; /* Task's initial supervisor stack ptr */ ULONG *usp; /* Task's current user stack pointer */ ULONG *iusp; /* Task's initial user stack pointer */ ULONG imask; /* Task's Interrupt priority level */ void (*asr_addr)(); /* Task's ASR address */ ULONG signal; /* Asynchronous signal pending */ ULONG xdate; /* Timer expiry date */ ULONG xtime; /* Time expiry time */ ULONG xticks; /* Timer expiry ticks */ ULONG nrnunits; /* No. of region units wanted */ void **tsdp; /* Task-specific-Data pointer */ ULONG evasr_ntfy; /* Events used for ASR notification */ ULONG co_toproc; /* Callouts to process (pending) */ ULONG co_inprog; /* Callouts in progress */ };typedef struct tinfo ptinfo_t;/*----------------------------------------------------------------------*//* BIT MASKS FOR tinfo.status *//*----------------------------------------------------------------------*/#define TS_DEBUG 0x8000 /* The task has been blocked by */ /* debugger */#define TS_SUSP 0x4000 /* The task has been suspended via a */ /* t_suspend() call */#define TS_TIMING 0x1000 /* The task is in a timeout queue, */ /* either absolute or relative */#define TS_PAUSE 0x0800 /* Task is in the timeout queue */ /* specifically as a result of */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -