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

📄 pg_sem.h

📁 一个移植到凌阳单片机spce061a上面的实时操作系统
💻 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 + -