mailbox.c

メールボックス機能 [詳細]

#include "fdmp_kernel.h"
#include "check.h"
#include "task.h"
#include "wait.h"
#include "mailbox.h"

mailbox.cのインクルード依存関係図

ソースコードを見る。

データ構造

struct  mailbox_waiting_information
 メールボックス待ち情報ブロックの定義 [詳細]

マクロ定義

#define TNUM_MBX   ((UINT)(tmax_mbxid - TMIN_ID + 1))
 メールボックスの数
#define INDEX_MBX(mbxid)   ((UINT)((mbxid) - TMIN_ID))
 メールボックスIDからメールボックス管理ブロックを取り出すためのマクロ
#define get_mbxcb(ccb, mbxid)   (&(((MBXCB *)(ccb->mbx.cb_table))[INDEX_MBX(mbxid)]))
#define MSGPRI(pk_msg)   (((T_MSG_PRI *) pk_msg)->msgpri)
 メッセージ優先度の取出し

型定義

typedef mailbox_waiting_information WINFO_MBX
 メールボックス待ち情報ブロックの定義

関数

Inline void enqueue_msg_pri (T_MSG **p_prevmsg_next, T_MSG *pk_msg)
 優先度順メッセージキューへの挿入

変数

const ID tmax_mbxid
 メールボックスIDの最大値(kernel_cfg.c)
const MBXINIB mbxinib_table []
 メールボックス初期化ブロックのエリア(kernel_cfg.c)
MBXCB mbxcb_table []
 メールボックス管理ブロックのエリア(kernel_cfg.c)


説明

メールボックス機能

mailbox.c で定義されています。


マクロ定義

#define get_mbxcb ccb,
mbxid   )     (&(((MBXCB *)(ccb->mbx.cb_table))[INDEX_MBX(mbxid)]))
 

mailbox.c75 行で定義されています。

#define INDEX_MBX mbxid   )     ((UINT)((mbxid) - TMIN_ID))
 

メールボックスIDからメールボックス管理ブロックを取り出すためのマクロ

mailbox.c74 行で定義されています。

#define MSGPRI pk_msg   )     (((T_MSG_PRI *) pk_msg)->msgpri)
 

メッセージ優先度の取出し

mailbox.c113 行で定義されています。

参照元 enqueue_msg_pri().

#define TNUM_MBX   ((UINT)(tmax_mbxid - TMIN_ID + 1))
 

メールボックスの数

mailbox.c69 行で定義されています。


型定義

typedef struct mailbox_waiting_information WINFO_MBX
 

メールボックス待ち情報ブロックの定義


関数

Inline void enqueue_msg_pri T_MSG **  p_prevmsg_next,
T_MSG pk_msg
 

優先度順メッセージキューへの挿入

mailbox.c119 行で定義されています。

参照先 MSGPRIt_msg::nextNULL.

00120 {
00121     T_MSG   *pk_nextmsg;
00122 
00123     while ((pk_nextmsg = *p_prevmsg_next) != NULL) {
00124         if (MSGPRI(pk_nextmsg) > MSGPRI(pk_msg)) {
00125             break;
00126         }
00127         p_prevmsg_next = &(pk_nextmsg->next);
00128     }
00129     pk_msg->next = pk_nextmsg;
00130     *p_prevmsg_next = pk_msg;
00131 }


変数

MBXCB mbxcb_table[]
 

メールボックス管理ブロックのエリア(kernel_cfg.c)

const MBXINIB mbxinib_table[]
 

メールボックス初期化ブロックのエリア(kernel_cfg.c)

const ID tmax_mbxid
 

メールボックスIDの最大値(kernel_cfg.c)


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Mon Apr 3 23:49:16 2006 に Doxygen によって生成されました。