📄 pg_sem.h
字号:
// PGOS -- Semaphores Service Programme
#ifndef PG_SEM
#define PG_SEM
#define MAXSEM 2
#define MAXSEMWAIT 3
#define TASK_SEM_USING 0x00
#define TASK_SEM_SUSPEND 0xFF
#define TASK_SEM_NOTUSE 0xF0
#define SEM_USE 0x00
#define SEM_NOTUSE 0x01
#define TASK_FIRST 0x00
#define TASK_APPEND 0xFF
typedef struct _pg_sem
{
BYTE id ;
BYTE state ;
#if PG_SEM_PRIO == 1
BYTE prio ;
#endif
} pgSEMTASK ;
typedef struct _pg_semtk_list
{
pgSEMTASK* pSem ;
struct _pg_semtk_list* next ;
}pgSEMTKLIST ;
typedef struct _pg_sem_list
{
WORD Sem ;
pgSEMTKLIST* list ;
BYTE state ;
BYTE tasknum ;
struct _pg_sem_list* next ;
}pgSEMLIST ;
// BASIC Semaphores Operations Support
PGOS_STATUS pgos_sem_init() ;
PGOS_STATUS pgos_sem_cre( WORD SemNum ) ;
PGOS_STATUS pgos_sem_wait( WORD SemNum ) ;
PGOS_STATUS pgos_sem_post( WORD SemNum ) ;
// Functions call by PGOS Kernel
pgSEMTKLIST* pgos_sem_initklist() ;
pgSEMLIST* pgos_sem_inilist() ;
pgSEMTASK* pgos_sem_initk() ;
PGOS_STATUS pgos_sem_addtask( pgSEMTKLIST* list, BYTE id, BYTE mode ) ;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -