📄 kcre_mbx.c
字号:
/* ------------------------------------------------------------------------ *//* Hyper Operating System V4 μITRON4.0慌屯 Real-Time OS *//* ITRONカ〖ネル メ〖ルボックス *//* *//* Copyright (C) 1998-2002 by Project HOS *//* http://sourceforge.jp/projects/hos/ *//* ------------------------------------------------------------------------ */#include "knl_mbx.h"#include "knl_mem.h"/* メ〖ルボックスコントロ〖ルブロック(瓢弄栏喇脱) */typedef struct t_kernel_mbxcb{ T_KERNEL_MBXCB_RAM mbxcb_ram; /* メ〖ルボックスコントロ〖ルブロック(RAM婶) */ T_KERNEL_MBXCB_ROM mbxcb_rom; /* メ〖ルボックスコントロ〖ルブロック(ROM婶) */} T_KERNEL_MBXCB;/* メ〖ルボックスの栏喇(カ〖ネル柒婶簇眶) */ER kernel_cre_mbx( ID mbxid, /* 栏喇滦据のメ〖ルボックスのID戎规 */ const T_CMBX *pk_cmbx) /* メ〖ルボックス栏喇攫鼠を掐れたパケットへのポインタ */{ T_KERNEL_MBXCB *mbxcb; T_KERNEL_MBXCB_RAM *mbxcb_ram; T_KERNEL_MBXCB_ROM *mbxcb_rom; T_MSG **mprihd; PRI maxmpri; PRI msgpri; /* パラメ〖タ〖チェック */#ifdef HOS_ERCHK_E_RSATR if ( pk_cmbx->mbxatr & ~(TA_TFIFO | TA_TPRI | TA_MFIFO | TA_MPRI) ) { return E_RSATR; }#endif /* メ〖ルボックス脱メモリの澄瘦 */ mbxcb = (T_KERNEL_MBXCB *)kernel_alc_mem(sizeof(T_KERNEL_MBXCB)); if ( mbxcb == NULL ) { return E_NOMEM; /* メモリ稍颅 */ } /* メッセ〖ジ庭黎刨烧きか冉年 */ if ( pk_cmbx->mbxatr & TA_MPRI ) { maxmpri = pk_cmbx->maxmpri; mprihd = (T_MSG **)pk_cmbx->mprihd; } else { maxmpri = TMIN_MPRI; mprihd = NULL; } /* 庭黎刨侍のメッセ〖ジキュ〖ヘッダの挝拌メモリ澄瘦 */ if ( mprihd == NULL ) { mprihd = (T_MSG **)kernel_alc_mem(TSZ_MPRIHD(maxmpri)); if ( mprihd == NULL ) { kernel_fre_mem(mbxcb); return E_NOMEM; /* メモリ稍颅 */ } } /* メ〖ルボックスの肋年 */ mbxcb_ram = &mbxcb->mbxcb_ram; mbxcb_rom = &mbxcb->mbxcb_rom; mknl_ini_que(&mbxcb_ram->que); mbxcb_ram->mbxcb_rom = mbxcb_rom; mbxcb_rom->mbxatr = pk_cmbx->mbxatr; mbxcb_rom->maxmpri = maxmpri; mbxcb_rom->mprihd = mprihd; /* 庭黎刨侍のメッセ〖ジキュ〖の介袋步 */ for ( msgpri = 0; msgpri <= maxmpri - TMIN_MPRI; msgpri++ ) { mprihd[msgpri] = NULL; } /* 瓷妄テ〖ブルへ纳裁 */ KERNEL_MBXID_TO_MBXCB_RAM(mbxid) = mbxcb_ram; return E_OK;}/* ------------------------------------------------------------------------ *//* Copyright (C) 1998-2002 by Project HOS *//* ------------------------------------------------------------------------ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -