C2A_Core
block_command_table.c ファイル

BCTの定義, BCT周りの関数 [詳解]

block_command_table.c の依存先関係図:

[ソースコード]

関数

static void BCT_load_default_func_pointer_ (void)
 BCT_Func にデフォルトの関数ポインタを入れる [詳解]
 
static BCT_CmdDataBC_get_bc_cmd_data_default_ (const BCT_Pos *pos)
 
static uint8_t BC_get_bc_length_default_ (const bct_id_t block)
 
static void BC_set_bc_cmd_data_default_ (const BCT_Pos *pos, const BCT_CmdData *value)
 
static void BC_set_bc_length_default_ (const bct_id_t block, uint8_t length)
 
static BCT_CmdDataBCT_get_bc_cmd_data_ (const BCT_Pos *pos)
 
static void BCT_set_bc_cmd_data_ (const BCT_Pos *pos, const BCT_CmdData *value)
 
static void BCT_set_bc_length_ (const bct_id_t block, uint8_t length)
 
static void BCT_clear_pos_ (void)
 pos, pos_stored を initialize [詳解]
 
static BCT_ACK BCT_set_position_ (const BCT_Pos *pos)
 
static BCT_ACK BCT_save_cmd_ (const BCT_Pos *pos, const CommonCmdPacket *packet)
 pos の指す場所に packet の内容を保存 (TCP_PRM_HDR_LEN の長さも考慮) [詳解]
 
void BCT_initialize (void)
 BCT の初期化関数 [詳解]
 
const BCT_CmdDataBCT_get_bc_cmd_data (const BCT_Pos *pos)
 BCT_CmdData の const pointer getter [詳解]
 
uint8_t BCT_get_bc_length (const bct_id_t block)
 BCT の length の getter [詳解]
 
BCT_ACK BCT_check_position (const BCT_Pos *pos)
 BCT_Pos* の validate [詳解]
 
BCT_ACK BCT_register_cmd (const CommonCmdPacket *packet)
 Cmd を block_command_table->pos に登録する [詳解]
 
BCT_ACK BCT_overwrite_cmd (const BCT_Pos *pos, const CommonCmdPacket *packet)
 既に登録されている BC の Cmd の中身を外部から上書きする [詳解]
 
BCT_ACK BCT_load_cmd (const BCT_Pos *pos, CommonCmdPacket *packet)
 保存データを CCP にコピーする. [詳解]
 
BCT_ACK BCT_copy_bct (const bct_id_t dst_block, const bct_id_t src_block)
 BCT の中身を 他の BCT に COPY する [詳解]
 
CMD_CODE BCT_get_id (const bct_id_t block, const uint8_t cmd)
 BCT 内の Cmd の CMD_CODE の getter [詳解]
 
cycle_t BCT_get_ti (const bct_id_t block, const uint8_t cmd)
 BCT 内の Cmd の TI の getter [詳解]
 
const uint8_t * BCT_get_param_head (const bct_id_t block, const uint8_t cmd)
 BCT 内の Cmd の param_head の getter [詳解]
 
void BCT_store_pos (void)
 pos を pos_stored に保存 [詳解]
 
void BCT_restore_pos (void)
 pos を pos_stored から復旧 [詳解]
 
BCT_ACK BCT_make_pos (BCT_Pos *pos, const bct_id_t block, const uint8_t cmd)
 BCT_Pos* を引数から作る [詳解]
 
BCT_ACK BCT_swap_address (const bct_id_t block_a, const bct_id_t block_b)
 BCT の block の指すポインタ & func を入れ替える [詳解]
 
BCT_ACK BCT_swap_contents (const bct_id_t block_a, const bct_id_t block_b)
 BCT の block の指す中身を入れ替える [詳解]
 
CCP_CmdRet BCT_convert_bct_ack_to_ccp_cmd_ret (BCT_ACK ack)
 返り値用 enum 変換用関数 [詳解]
 
CCP_CmdRet Cmd_BCT_CLEAR_BLOCK (const CommonCmdPacket *packet)
 
BCT_ACK BCT_clear_block (const bct_id_t block)
 指定された block の BCT を初期化する [詳解]
 
CCP_CmdRet Cmd_BCT_SET_BLOCK_POSITION (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_BCT_COPY_BCT (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_BCT_OVERWRITE_CMD (const CommonCmdPacket *packet)
 
CCP_CmdRet Cmd_BCT_FILL_NOP (const CommonCmdPacket *packet)
 

変数

static BlockCommandTable block_command_table_
 
const BlockCommandTable *const block_command_table = &block_command_table_
 

詳解

BCTの定義, BCT周りの関数

block_command_table.c に定義があります。

関数詳解

◆ BC_get_bc_cmd_data_default_()

static BCT_CmdData * BC_get_bc_cmd_data_default_ ( const BCT_Pos pos)
static

block_command_table.c92 行目に定義があります。

被呼び出し関係図:

◆ BC_get_bc_length_default_()

static uint8_t BC_get_bc_length_default_ ( const bct_id_t  block)
static

block_command_table.c104 行目に定義があります。

被呼び出し関係図:

◆ BC_set_bc_cmd_data_default_()

static void BC_set_bc_cmd_data_default_ ( const BCT_Pos pos,
const BCT_CmdData value 
)
static

block_command_table.c97 行目に定義があります。

被呼び出し関係図:

◆ BC_set_bc_length_default_()

static void BC_set_bc_length_default_ ( const bct_id_t  block,
uint8_t  length 
)
static

block_command_table.c109 行目に定義があります。

被呼び出し関係図:

◆ BCT_check_position()

BCT_ACK BCT_check_position ( const BCT_Pos pos)

BCT_Pos* の validate

引数
posBCTの位置
戻り値
BCT_ACK

block_command_table.c159 行目に定義があります。

被呼び出し関係図:

◆ BCT_clear_block()

BCT_ACK BCT_clear_block ( const bct_id_t  block)

指定された block の BCT を初期化する

引数
[in]blockBC の idx
戻り値
BCT_ACK

block_command_table.c438 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_clear_pos_()

static void BCT_clear_pos_ ( void  )
static

pos, pos_stored を initialize

block_command_table.c140 行目に定義があります。

被呼び出し関係図:

◆ BCT_convert_bct_ack_to_ccp_cmd_ret()

CCP_CmdRet BCT_convert_bct_ack_to_ccp_cmd_ret ( BCT_ACK  ack)

返り値用 enum 変換用関数

引数
ackBCT_ACK
戻り値
CCP_CmdRet

block_command_table.c386 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_copy_bct()

BCT_ACK BCT_copy_bct ( const bct_id_t  dst_block,
const bct_id_t  src_block 
)

BCT の中身を 他の BCT に COPY する

引数
[in]dst_blockコピー先の bct_id
[in]src_blockコピー元の bct_id
戻り値
BCT_ACK

block_command_table.c251 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_get_bc_cmd_data()

const BCT_CmdData* BCT_get_bc_cmd_data ( const BCT_Pos pos)

BCT_CmdData の const pointer getter

覚え書き
アサーションはされない
引数
[in]posconst BCT_Pos*
戻り値
const BCT_Pos*

block_command_table.c129 行目に定義があります。

被呼び出し関係図:

◆ BCT_get_bc_cmd_data_()

static BCT_CmdData * BCT_get_bc_cmd_data_ ( const BCT_Pos pos)
static

block_command_table.c114 行目に定義があります。

被呼び出し関係図:

◆ BCT_get_bc_length()

uint8_t BCT_get_bc_length ( const bct_id_t  block)

BCT の length の getter

覚え書き
アサーションはされない.有効でない block の場合, 0 を返す
引数
[in]blockBC の idx
戻り値
length

block_command_table.c134 行目に定義があります。

被呼び出し関係図:

◆ BCT_get_id()

CMD_CODE BCT_get_id ( const bct_id_t  block,
const uint8_t  cmd 
)

BCT 内の Cmd の CMD_CODE の getter

引数
[in]blockBC の idx
[in]cmdCmds_data 内での idx
戻り値
CMD_CODE
覚え書き
(block, cmd) が異常値だった場合は Cmd_CODE_MAX を返す

block_command_table.c272 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_get_param_head()

const uint8_t* BCT_get_param_head ( const bct_id_t  block,
const uint8_t  cmd 
)

BCT 内の Cmd の param_head の getter

引数
[in]blockBC の idx
[in]cmdCmds_data 内での idx
戻り値
const uint8_t* ポインタ
覚え書き
(block, cmd) が異常値だった場合は (0, 0) のものを返す

block_command_table.c290 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_get_ti()

cycle_t BCT_get_ti ( const bct_id_t  block,
const uint8_t  cmd 
)

BCT 内の Cmd の TI の getter

引数
[in]blockBC の idx
[in]cmdCmds_data 内での idx
戻り値
TI
覚え書き
(block, cmd) が異常値だった場合は 0 を返す

block_command_table.c281 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_initialize()

void BCT_initialize ( void  )

BCT の初期化関数

覚え書き
BCT と書いているが内部では BCE_init も呼ばれるため BC が関係する有象無象が初期化される.

block_command_table.c58 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_load_cmd()

BCT_ACK BCT_load_cmd ( const BCT_Pos pos,
CommonCmdPacket packet 
)

保存データを CCP にコピーする.

引数
[in]posコピー元のpacketの位置
[out]packetコピーされる packet
戻り値
BCT_ACK
覚え書き
コマンド長は気にせず最大長を読み出すこととする. 実際の長さ情報はコピーされているヘッダに格納されている.

block_command_table.c239 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_load_default_func_pointer_()

static void BCT_load_default_func_pointer_ ( void  )
static

BCT_Func にデフォルトの関数ポインタを入れる

block_command_table.c79 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_make_pos()

BCT_ACK BCT_make_pos ( BCT_Pos pos,
const bct_id_t  block,
const uint8_t  cmd 
)

BCT_Pos* を引数から作る

引数
[out]posそこに作る pointer
[in]blockBC の idx
[in]cmdCmds_data 内での idx
戻り値
BCT_ACK

block_command_table.c321 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_overwrite_cmd()

BCT_ACK BCT_overwrite_cmd ( const BCT_Pos pos,
const CommonCmdPacket packet 
)

既に登録されている BC の Cmd の中身を外部から上書きする

引数
[in]pos上書きする位置
[in]packet上書きされる packet
戻り値
BCT_ACK

block_command_table.c210 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_register_cmd()

BCT_ACK BCT_register_cmd ( const CommonCmdPacket packet)

Cmd を block_command_table->pos に登録する

引数
[in]packet登録する Cmd の内容
戻り値
BCT_ACK

block_command_table.c173 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_restore_pos()

void BCT_restore_pos ( void  )

pos を pos_stored から復旧

引数
void
戻り値
void

block_command_table.c314 行目に定義があります。

被呼び出し関係図:

◆ BCT_save_cmd_()

static BCT_ACK BCT_save_cmd_ ( const BCT_Pos pos,
const CommonCmdPacket packet 
)
static

pos の指す場所に packet の内容を保存 (TCP_PRM_HDR_LEN の長さも考慮)

block_command_table.c224 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_set_bc_cmd_data_()

static void BCT_set_bc_cmd_data_ ( const BCT_Pos pos,
const BCT_CmdData value 
)
static

block_command_table.c119 行目に定義があります。

被呼び出し関係図:

◆ BCT_set_bc_length_()

static void BCT_set_bc_length_ ( const bct_id_t  block,
uint8_t  length 
)
static

block_command_table.c124 行目に定義があります。

被呼び出し関係図:

◆ BCT_set_position_()

static BCT_ACK BCT_set_position_ ( const BCT_Pos pos)
static

block_command_table.c148 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ BCT_store_pos()

void BCT_store_pos ( void  )

pos を pos_stored に保存

覚え書き
地上局とOBC内部のBCのポインタが混ざっておかしくならないようにするための改修. 詳細はC2Aドキュメント 「ブロックコマンド追加方法.md」
引数
void
戻り値
void

block_command_table.c307 行目に定義があります。

被呼び出し関係図:

◆ BCT_swap_address()

BCT_ACK BCT_swap_address ( const bct_id_t  block_a,
const bct_id_t  block_b 
)

BCT の block の指すポインタ & func を入れ替える

引数
[in]block_a入れ替える BC
[in]block_b入れ替える BC
戻り値
BCT_ACK 実行結果
覚え書き
ID1:HK:SRAM, ID2:EH:MRAM があった時に ID1:EH:MRAM, ID2:HK:SRAM が出来る BCT_swap_contents と組み合わせることで番号 - 中身はそのままで RAM だけを切り替えることが出来る 必ず BCE_swap_address と共に使用すること

block_command_table.c329 行目に定義があります。

呼び出し関係図:

◆ BCT_swap_contents()

BCT_ACK BCT_swap_contents ( const bct_id_t  block_a,
const bct_id_t  block_b 
)

BCT の block の指す中身を入れ替える

引数
[in]block_a入れ替える BC
[in]block_b入れ替える BC
戻り値
BCT_ACK 実行結果
覚え書き
ID1:EH:MRAM, ID2:HK:SRAM があった時に ID1:HK:MRAM, ID2:EH:SRAM が出来る BCT_swap_ram と組み合わせることで番号 - 中身はそのままで RAM だけを切り替えることが出来る 必ず BCE_swap_contents と共に使用すること

block_command_table.c348 行目に定義があります。

呼び出し関係図:

◆ Cmd_BCT_CLEAR_BLOCK()

CCP_CmdRet Cmd_BCT_CLEAR_BLOCK ( const CommonCmdPacket packet)

block_command_table.c418 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_BCT_COPY_BCT()

CCP_CmdRet Cmd_BCT_COPY_BCT ( const CommonCmdPacket packet)

block_command_table.c472 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_BCT_FILL_NOP()

CCP_CmdRet Cmd_BCT_FILL_NOP ( const CommonCmdPacket packet)

block_command_table.c518 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_BCT_OVERWRITE_CMD()

CCP_CmdRet Cmd_BCT_OVERWRITE_CMD ( const CommonCmdPacket packet)

block_command_table.c486 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

◆ Cmd_BCT_SET_BLOCK_POSITION()

CCP_CmdRet Cmd_BCT_SET_BLOCK_POSITION ( const CommonCmdPacket packet)

block_command_table.c451 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

変数詳解

◆ block_command_table

const BlockCommandTable* const block_command_table = &block_command_table_

block_command_table.c28 行目に定義があります。

◆ block_command_table_

BlockCommandTable block_command_table_
static

block_command_table.c27 行目に定義があります。