Files
cosyos/System/os_def.h
零中断延迟的RTOS ddbec84cbc update 内核文件.
Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
2026-02-01 18:58:41 +00:00

146 lines
5.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**************************************************************************//**
* @item CosyOS-III Kernel
* @file os_def.h
* @brief 初始宏定义
* @author 迟凯峰
* @version V2.3.0
* @date 2026.02.01
******************************************************************************/
#ifndef __OS_DEF_H
#define __OS_DEF_H
/*
* SYSAPI
*/
#define sDefStr(s) sDefStr_0(s)
#define sDefStr_0(s) #s
#define sCat2Str(s1, s2) sCat2Str_0(s1, s2)
#define sCat2Str_0(s1, s2) s1##s2
#define sCat3Str(s1, s2, s3) sCat3Str_0(s1, s2, s3)
#define sCat3Str_0(s1, s2, s3) s1##s2##s3
#define sDefBitField(v) s_u8_t v:1
#define sDefVoidBits(n) s_u8_t :n
/*
* CONST
*/
#define true 1
#define false 0
#define OS_NULL 0 /*!< 通用的空指针 */
#define OS_VOID ((s_tasknode_tsp)~0) /*!< 专用的空指针,超时链表专用。*/
/*
* CONFIG VALUE
*/
#define __DISABLED__ 0
#define __ENABLED__ 1
#define __STATIC__ 0 /*!< 静态队列 ............. */
#define __DYNAMIC__ 1 /*!< 动态队列 ............. */
#define __QUE_FIFO__ 0 /*!< 先入先出队列 ......... */
#define __QUE_LIFO__ 1 /*!< 后入先出队列 ......... */
#define __MCS_51__ 0 /*!< 指令集架构MCS51 .... */
#define __MCS_251__ 1 /*!< 指令集架构MCS251 ... */
#define __ARM__ 2 /*!< 指令集架构ARM ...... */
#define __COOPERATIVE__ 1 /*!< 协作式调度............ */
#define __TIMESHARING__ 2 /*!< 时间片轮转调度........ */
/*
* 任务相关
*/
/* 任务状态 */
#define OS_STATUS_READY 0x00 /*!< 就绪/运行状态 ............ */
#define OS_STATUS_FLOATING 0x01 /*!< 浮动状态 ................. */
#define OS_STATUS_BLOCKED 0x02 /*!< 阻塞状态 ................. */
#define OS_STATUS_TIMEOUT 0x04 /*!< 超时状态 ................. */
#define OS_STATUS_SUSPENDED 0x08 /*!< 挂起状态 ................. */
#define OS_STATUS_STOPPED 0x40 /*!< 停止状态 ................. */
#define OS_STATUS_DELETED 0x80 /*!< 已删除/未启动状态 ........ */
/* 阻塞类型 */
#define OS_BLOCKED_DELAY 0x00 /*!< 延时阻塞 ................. */
/*- 0x01/0x02/0x04sizeof(Group) -*//*!< 事件标志组阻塞(等待).... */
#define OS_BLOCKED_BINARY 0x10 /*!< 二值信号量阻塞(获取/等待)*/
#define OS_BLOCKED_MUTEX 0x20 /*!< 互斥信号量阻塞(获取).... */
#define OS_BLOCKED_SEMAPHORE 0x30 /*!< 计数信号量阻塞(获取).... */
#define OS_BLOCKED_TASKMSG 0x40 /*!< 接收私信阻塞 ............. */
#define OS_BLOCKED_FETION 0x50 /*!< 接收飞信阻塞 ............. */
#define OS_BLOCKED_MAIL 0x60 /*!< 接收邮件阻塞 ............. */
#define OS_BLOCKED_MSG 0x70 /*!< 接收消息阻塞 ............. */
/*
* DEBUG SEND TYPE
*/
#define OS_DEBUG_SEND_CMDLINE 0x01 /*!< 命令行发送 ... */
#define OS_DEBUG_SEND_TASKMGR 0x02 /*!< 任务管理器发送 */
/*
* TASKMGR LEN
*/
#define OS_TASKMGR_LEN_PRI 6
#define OS_TASKMGR_LEN_STA 6
#define OS_TASKMGR_LEN_CPU 9
/*
* SVID服务ID中断挂起服务_FIFO 系统专用ID
*/
#define OS_SVID_CLEARDELAY 0x00
#define OS_SVID_RESUMETASK 0x01
#define OS_SVID_SUSPENDTASK 0x02
#define OS_SVID_DELETETASK 0x03
#define OS_SVID_CLEARBLOCK 0x04
#define OS_SVID_SETBLOCK 0x05
#define OS_SVID_SETTASKPRI 0x06
#define OS_SVID_WRITEBINARY 0x07
#define OS_SVID_GIVESEMAPH 0x08
#define OS_SVID_SENDFETION 0x09
#define OS_SVID_SENDMAIL 0x0A
#define OS_SVID_SENDMSG 0x0B
#define OS_SVID_TIMINT 0x0C
#define OS_SVID_TIMQRY 0x0D
#define OS_SVID_WRITEGROUP 0x0E
#define OS_SVID_WRITEGVAR 0x0F
#define OS_SVID_PENDSVC 0x10
#define OS_SVID_END 0x11
/*
* ECODE错误码
*/
#define OS_ECODE_NOERROR 0 /*!< 无错误 ............. */
#define OS_ECODE_OVERFLOW_MSGQUEUE 1 /*!< 消息队列溢出 ....... */
#define OS_ECODE_OVERFLOW_TASKQUEUE 2 /*!< 任务队列溢出 ....... */
#define OS_ECODE_OVERFLOW_TASKSTACK 3 /*!< 任务栈溢出 ......... */
#define OS_ECODE_MALLOCFAIL_MSGNODE 4 /*!< 消息节点内存分配失败 */
#define OS_ECODE_MALLOCFAIL_TASKNODE 5 /*!< 任务节点内存分配失败 */
#define OS_ECODE_MALLOCFAIL_TASKSTACK 6 /*!< 任务栈内存分配失败 . */
#define OS_ECODE_TASKSUSPENDED 7 /*!< 任务已挂起 ......... */
#define OS_ECODE_TASKSTOPPED 8 /*!< 任务已停止 ......... */
#define OS_ECODE_TASKNOTSTARTED 9 /*!< 任务未启动/已删除 .. */
#define OS_ECODE_TASKNOTREADY 10 /*!< 任务未就绪 ......... */
#define OS_ECODE_TASKNOTBLOCKED 11 /*!< 任务未阻塞 ......... */
#define OS_ECODE_TASKNOTSUSPENDED 12 /*!< 任务未挂起 ......... */
#define OS_ECODE_TASKPRIUNCHANGED 13 /*!< 任务优先级未改变 ... */
#define OS_ECODE_DONOTKNOW 255 /*!< 未知错误 ........... */
#endif