📄 azpriv.h
字号:
/*
* azpriv.h - AzkiRTOS private header file.
* Copyright 1999, Anchor Systems Corporation
* All rights reserved.
*
* 偙偺僼傽僀儖偼丄AzkiRTOS偺堦晹暘偱偡丅
* 偙偺僼傽僀儖偺偺挊嶌尃偼傾儞僇乕僔僗僥儉僘姅幃夛幮偵懏偟傑偡偑丄
* 扤偱傕僼傽僀儖傪柍曄峏丄傑偨偼曄峏偟偰帺桼偵巊偆偙偲偑偱偒傑偡丅
* 傑偨柍彏偱嵞攝晍偡傞偙偲傕壜擻偱偡偑丄僆儕僕僫儖偺挊嶌尃昞帵傪
* 偦偺傑傑偺宍偱娷傔偰偔偩偝偄丅
*
* 偨偩偟丄柍曄峏傑偨偼曄峏偟偨傕偺傪惢昳偺堦晹偲偟偰偱偼側偔丄
* 儕傾儖僞僀儉OS偦偺傕偺偲偟偰柍抐偱嵞斕攧偡傞偙偲偼偱偒傑偣傫丅
*
* 傾儞僇乕僔僗僥儉僘(姅)偼丄柍曄峏傑偨偼曄峏偟偨AzkiRTOS傪慻傒崬傫偩
* 惢昳偺晄嬶崌偵懳偟偰堦愗愑擟傪晧偆傕偺偱偼偁傝傑偣傫丅AzkiRTOS傪
* 娷傔AzkiRTOS傪慻傒崬傫偩惢昳慡懱偺摦嶌曐徹偼丄AzkiRTOS傪慻傒崬傫偩
* 惢昳偺奐敪幰偺愑擟偲側傝傑偡丅
*
* $Revision: 8 $
* $Archive: /AnchorPlace/goodies/AzRTOS/azpriv.h $
*/
#ifndef __AZPRIV_H__
#define __AZPRIV_H__
#ifndef arraysizeof
#define arraysizeof(a) (sizeof(a) / sizeof(a[0]))
#endif
#ifndef offsetof
#define offsetof(type, mem) ((int)&((type*)0)->mem)
#endif
/* 僾儘僙僢僒慡懱偺妱傝崬傒嬛巭偲嫋壜(CPU埶懚) */
#define az_ei() _asm(" fset i")
#define az_di() _asm(" fclr i\n nop")
#define az_pushflag() _asm(" pushc flg")
#define az_popflag() _asm(" popc flg")
/* 儐乕僓僗僞僢僋忋偵曐懚偟偰偁傞儗僕僗僞傊傾僋僙僗偡傞偨傔偺峔憿懱(CPU埶懚) */
struct az_stack_context
{
/* pushm r0, r1, r2, r3, a0, a1, fb (14僶僀僩) */
UH r0, r1, r2, r3;
UH a0, a1, fb;
/* 妱傝崬傒偱懸旔偝傟傞儗僕僗僞(4僶僀僩) */
UH pcl;
UB flg;
UB pch;
};
/* READY僉儏乕/TCB傪埖偆娭悢 */
extern void az_dispatch();
extern void az_setup_tcb(AzTCB* tcb, INT stacd);
extern void az_insert_ready(AzTCB* tcb);
/* 儕僗僩張棟 */
#define MAINLINK_TO_TCB(link) ((AzTCB*)((char*)(link) - offsetof(AzTCB, m_mainlink)))
#define TIMELINK_TO_TCB(link) ((AzTCB*)((char*)(link) - offsetof(AzTCB, m_timelink)))
#define az_init_list(list) ((list)->m_next = (list)->m_prev = (list))
#define az_init_node(list) ((list)->m_next = (list)->m_prev = NULL)
extern void az_insert_after(AzLink* list, AzLink* node);
extern void az_insert_before(AzLink* list, AzLink* node);
extern void az_unlink_node(AzLink* node);
extern void az_link_timeout(AzTCB* tcb, TMO tmout);
extern void az_unlink_timeout(AzTCB* tcb);
#endif /* __AZPRIV_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -