📄 mk_irtos.h
字号:
MK_S32_t t_TimeSlice; /* Initialized TimeSlice */
MK_S32_t t_UsedTimeSlice; /* Accumulated Timeslice */
MK_S32_t t_DelayedDeltaTicks; /* Use temporary in DelayedList */
MK_U32_t t_Arg1;
MK_Void_t *t_Arg2;
MK_S8_t *t_pName; /* Task's Name */
/* MK_S8_t t_pName[MK_NAME_MAX]; */ /* Task's Name */
/* MK_U32_t t_PendingList; */ /* Pending List to whitch task is pending */
struct mk_pending_list_struct *t_pPendingList; /* Pending List to whitch task is pending */
MK_U32_t t_pendingMemSize; /* Value during memory Pending */
#ifdef _MK_TPORT
MK_U32_t t_PortPending;
MK_U32_t t_PortValueAvailable;
MK_U32_t t_PortValue; /* Value during port Pending */
#endif
#ifdef _MK_SIGNAL
MK_U32_t t_Signal;
MK_U32_t t_SigMask;
MK_Void_t (*t_pSigFunction)(MK_U32_t);
#endif
#ifdef _MK_EVENT
MK_U32_t t_EventRequested; /* Event Flag */
MK_U32_t t_EventOperation; /* Event Flag */
MK_U32_t t_EventActualEvents; /* Event Flag */
#endif
struct mk_task_struct *t_pTaskNext;
struct mk_task_struct *t_pTaskPrev;
struct mk_task_struct *t_pTaskReadyNext;
struct mk_task_struct *t_pTaskReadyPrev;
struct mk_task_struct *t_pDelayedNext;
struct mk_task_struct *t_pDelayedPrev;
struct mk_task_struct *t_pPendingNext;
struct mk_task_struct *t_pPendingPrev;
} MK_TASK;
#if 0
typedef struct {
MK_U32_t Field[35+MK_STRUCT_FIELD_MARGIN];
} MK_TASK;
#endif /* 0 */
#if 0
/* coded by ympark */
typedef struct mk_protect_struct {
struct mk_task_struct *P_Task;
struct mk_pending_list_struct p_PendingList;
} MK_PROTECT;
#endif /* 0 */
typedef MK_Void_t (*MK_TIMER_FUNC_T)(MK_U32_t);
typedef struct mk_timer_struct {
MK_U32_t tm_Magic;
MK_S32_t tm_Expirations; //number of expiration
MK_U32_t tm_InitialTime; //initial time of timer
MK_U32_t tm_ExpireTime; //time to expire
MK_U32_t tm_RepeateTime; //repeate time of timer
MK_S32_t tm_Arg1;
MK_S8_t *tm_Arg2;
MK_S8_t *tm_pName;
MK_TIMER_FUNC_T tm_Function;
MK_Bool_t tm_Status;
struct mk_timer_struct *tm_pActivedNext;
struct mk_timer_struct *tm_pActivedPrev;
struct mk_timer_struct *tm_pNext;
struct mk_timer_struct *tm_pPrev;
} MK_TIMER;
#if 0
typedef struct {
MK_U32_t Field[14+MK_STRUCT_FIELD_MARGIN];
} MK_TIMER;
#endif /* 0 */
typedef struct mk_semaphore_struct {
MK_U32_t s_Magic;
MK_S32_t s_Count;
struct mk_pending_list_struct s_PendingList;
struct mk_semaphore_struct *s_Prev;
struct mk_semaphore_struct *s_Next;
MK_S8_t *s_pName;
} MK_SEMAPHORE;
#if 0
typedef struct {
MK_U32_t Field[9+MK_STRUCT_FIELD_MARGIN];
} MK_SEMAPHORE;
#endif /* 0 */
typedef struct mk_fixed_queue_msg_struct {
MK_U32_t fm_StartOfMsg;
MK_U32_t fm_Length;
struct mk_fixed_queue_msg_struct *fm_pNext;
} MK_FIXED_QUEUE_MSG;
typedef struct mk_memory_block_struct {
MK_U32_t mb_Magic; /* Heap Pointer */
MK_U32_t mb_Size;
struct mk_memory_block_struct *mb_pNext;
} MK_MBLOCK;
typedef struct mk_heap_struct {
MK_U32_t h_Magic;
MK_S32_t h_Options; /* FIFO, or Priority */
MK_U32_t h_StartofHeap;
MK_U32_t h_HeapSize;
MK_U32_t h_FreeSize;
MK_U32_t h_MinSize;
MK_S8_t *h_pName;
struct mk_pending_list_struct h_PendingList;
struct mk_memory_block_struct *h_pFreeMBlockList;
struct mk_heap_struct *h_pNext;
struct mk_heap_struct *h_pPrev;
} MK_HEAP;
#if 0
typedef struct {
MK_U32_t Field[14+MK_STRUCT_FIELD_MARGIN];
} MK_HEAP;
#endif /* 0 */
extern struct mk_heap_struct *MK_pHeapListHead;
extern struct mk_heap_struct *MK_pHeapListTail;
typedef struct mk_heap_dummy_struct {
struct mk_heap_struct *md_pHeap; /* Heap Pointer */
MK_U32_t md_Size; /* Allocated Memory Size */
MK_U32_t reserved;
} MK_MBLOCK_DUMMY;
typedef struct mk_buffer_pool_struct {
MK_U32_t bp_Magic;
MK_U32_t bp_Size;
MK_U32_t bp_StartofBufferPool;
MK_S32_t bp_InitCount;
MK_U32_t bp_NextBuffer; /* Next Buffer Pointer */
MK_S8_t *bp_pName;
struct mk_semaphore_struct bp_Semaphore;
struct mk_buffer_pool_struct *bp_pNext;
struct mk_buffer_pool_struct *bp_pPrev;
} MK_POOL;
#if 0
typedef struct {
MK_U32_t Field[14+MK_STRUCT_FIELD_MARGIN];
} MK_POOL;
#endif /* 0 */
typedef struct mk_fixed_msg_queue_struct {
MK_U32_t fq_Magic;
MK_U32_t fq_AvailableSize;
struct mk_fixed_queue_msg_struct *fq_pMsgListHead;
struct mk_fixed_queue_msg_struct *fq_pMsgListTail;
struct mk_buffer_pool_struct fq_Pool; /* Include SendSemaphore */
struct mk_semaphore_struct fq_ReceiveSemaphore;
} MK_FIXED_QUEUE;
typedef struct mk_variable_queue_msg_struct {
MK_U32_t vm_StartOfMsg;
MK_U32_t vm_Length;
struct mk_variable_queue_msg_struct *vm_pNext;
} MK_VARIABLE_QUEUE_MSG;
typedef struct mk_variable_msg_queue_struct {
MK_U32_t vq_Magic;
MK_U32_t vq_MaxSize;
struct mk_variable_queue_msg_struct *vq_pMsgListHead;
struct mk_variable_queue_msg_struct *vq_pMsgListTail;
struct mk_heap_struct vq_Heap; /* Include SendSemaphore */
struct mk_semaphore_struct vq_ReceiveSemaphore;
} MK_VARIABLE_QUEUE;
typedef struct mk_msg_queue_struct {
MK_U32_t m_Type;
struct mk_msg_queue_struct *m_pNext;
struct mk_msg_queue_struct *m_pPrev;
MK_S8_t *m_pName;
union {
struct mk_fixed_msg_queue_struct mu_FixedQueue;
struct mk_variable_msg_queue_struct mu_VariableQueue;
} m_Queue;
} MK_QUEUE;
#if 0
typedef struct {
MK_U32_t Field[31+MK_STRUCT_FIELD_MARGIN];
} MK_QUEUE;
#endif /* 0 */
typedef struct mk_port_msg_struct {
MK_U32_t pm_Msg; /* Msg Pointer */
MK_S32_t pm_MsgLength;
MK_S32_t pm_BufLength;
struct mk_port_msg_struct *pm_pNext;
} MK_PORT_MSG;
typedef struct mk_message_port_struct {
MK_U32_t p_Magic;
MK_S32_t p_MsgCount;
MK_S32_t p_MaxMsg;
MK_S8_t *p_Name;
struct mk_message_port_struct *p_pNext;
struct mk_message_port_struct *p_pPrev;
struct mk_port_msg_struct *p_pMsgFreeList;
struct mk_port_msg_struct *p_pMsgListHead;
struct mk_port_msg_struct *p_pMsgListTail;
struct mk_semaphore_struct p_SendSemaphore;
struct mk_semaphore_struct p_ReceiveSemaphore;
} MK_PORT;
#if 0
typedef struct {
MK_U32_t Field[27+MK_STRUCT_FIELD_MARGIN];
} MK_PORT;
#endif /* 0 */
typedef struct mk_msg_mailbox_struct {
MK_U32_t mb_Magic;
MK_U32_t mb_Msg; /* Msg Pointer */
MK_U32_t mb_StartOfMsg;
MK_U32_t mb_MsgLength;
MK_U32_t mb_BufferSize;
MK_S8_t *mb_pName;
struct mk_msg_mailbox_struct *mb_pNext;
struct mk_msg_mailbox_struct *mb_pPrev;
struct mk_semaphore_struct mb_SendSemaphore;
struct mk_semaphore_struct mb_ReceiveSemaphore;
} MK_MBOX;
#if 0
typedef struct {
MK_U32_t Field[26+MK_STRUCT_FIELD_MARGIN];
} MK_MBOX;
#endif /* 0 */
typedef struct mk_hisr_struct {
MK_U32_t t_Magic; /* Magic Value of Task Control Block */
MK_U32_t t_CurrentOfStack; /* Current Pointer of Stack */
MK_U32_t t_TopOfStack; /* Top Pointer of Stack */
MK_U32_t t_BottomOfStack; /* Bottom Pointer of Stack */
MK_U32_t t_PreviousCurrentOfStack; /* Used in Signal */
MK_U32_t t_LengthofStackArea; /* Length of Reserved Stack Area */
MK_U32_t reserved1; /* not used */
MK_U32_t t_Priority; /* Priority of Task */
MK_Void_t (*t_Function)(MK_Void_t); /* Fucntion for Task */
MK_U32_t reserved2[4]; /* not used */
MK_U32_t t_ActivateCount; /* active count */
MK_Void_t *reserved3; /* not used */
MK_S8_t *t_pName; /* Task's Name */
//MK_S8_t t_pName[MK_NAME_MAX]; /* Task's Name */
MK_U32_t reserved4;
MK_U32_t reserved5;
#ifdef _MK_TPORT
MK_U32_t reserved6[3];
#endif
#ifdef _MK_SIGNAL
MK_U32_t reserved7[2];
MK_U32_t reserved8;
#endif
#ifdef _MK_EVENT
MK_U32_t reserved9[2];
MK_U32_t reserved10;
#endif
struct mk_hisr_struct *t_pHISRNext;
struct mk_hisr_struct *t_pHISRPrev;
struct mk_hisr_struct *t_pHISRActiveNext;
struct mk_hisr_struct *t_pHISRActivePrev;
MK_U32_t *reserved11[4]; /* not used */
} MK_HISR;
#if 0
typedef struct {
MK_U32_t Field[35+MK_STRUCT_FIELD_MARGIN];
} MK_HISR;
#endif /* 0 */
typedef struct mk_event_struct {
MK_U32_t e_Magic; /* Event Magic number */
MK_U32_t e_EventValues; /* Current event flag */
MK_S8_t *e_pName;
struct mk_event_struct *e_pNext;
struct mk_event_struct *e_pPrev;
struct mk_pending_list_struct s_PendingList;
} MK_EVENT;
#if 0
typedef struct {
MK_U32_t Field[11+MK_STRUCT_FIELD_MARGIN];
} MK_EVENT;
#endif /* 0 */
#if 0
struct mk_dev_struct;
typedef struct mk_dev_field_struct {
MK_S32_t (*df_Init)(struct mk_dev_struct *pDev, MK_U32_t Options);
MK_S32_t (*df_Open)(struct mk_dev_struct *pDev, MK_S8_t *pName, MK_S8_t *pMode);
MK_S32_t (*df_Close)(struct mk_dev_struct *pDev);
MK_S32_t (*df_Read)(struct mk_dev_struct *pDev, MK_S8_t *pBuffer, MK_S32_t Count);
MK_S32_t (*df_Write)(struct mk_dev_struct *pDev, MK_S8_t *pBuffer, MK_S32_t Count);
MK_S32_t (*df_Seek)(struct mk_dev_struct *pDev, MK_S32_t Position);
MK_S8_t (*df_Getc)(struct mk_dev_struct *pDev);
MK_S32_t (*df_Putc)(struct mk_dev_struct *pDev, MK_S8_t Ch);
MK_S32_t (*df_Ctrl)(struct mk_dev_struct *pDev, MK_S32_t Function, MK_S8_t *pAddr1, MK_S8_t *pAddr2);
MK_Void_t (*df_InInterrupt)(MK_Void_t);
MK_Void_t (*df_OutInterrupt)(MK_Void_t);
MK_S32_t df_InVector;
MK_S32_t df_OutVector;
MK_S32_t df_Minor;
MK_S8_t *df_pName;
MK_S8_t *df_pIOBlock;
MK_U16_t df_Port;
} MK_DEV_FIELD;
#endif /* 0 */
#if 0
typedef struct mk_dev_struct {
MK_U32_t d_Magic;
MK_S32_t d_ReferenceCount;
MK_S32_t (*d_Init)(struct mk_dev_struct *pDev, MK_U32_t Options);
MK_S32_t (*d_Open)(struct mk_dev_struct *pDev, MK_S8_t *pName, MK_S8_t *pMode);
MK_S32_t (*d_Close)(struct mk_dev_struct *pDev);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -