C2A_Core
majority_vote_for3.h ファイル

3重冗長用汎用多数決関数 [詳解]

#include <stdio.h>
#include <stdint.h>
majority_vote_for3.h の依存先関係図:
被依存関係図:

[ソースコード]

列挙型

enum  MAJORITY_VOTE_FOR3_STATUS { MAJORITY_VOTE_MATCH = 0 , MAJORITY_VOTE_MAJORITY = 1 , MAJORITY_VOTE_ERROR = 2 }
 

関数

MAJORITY_VOTE_FOR3_STATUS majority_vote_for3_copy (void *res_arg, void *array1_arg, void *array2_arg, void *array3_arg, size_t type_len, uint32_t length)
 3重冗長用汎用多数決関数 (コピー) [詳解]
 
MAJORITY_VOTE_FOR3_STATUS majority_vote_for3_sync (void *array1_arg, void *array2_arg, void *array3_arg, size_t type_len, uint32_t length)
 3重冗長用汎用多数決関数 (同期) [詳解]
 

詳解

3重冗長用汎用多数決関数

majority_vote_for3.h に定義があります。

列挙型詳解

◆ MAJORITY_VOTE_FOR3_STATUS

列挙値
MAJORITY_VOTE_MATCH 
MAJORITY_VOTE_MAJORITY 
MAJORITY_VOTE_ERROR 

majority_vote_for3.h11 行目に定義があります。

関数詳解

◆ majority_vote_for3_copy()

MAJORITY_VOTE_FOR3_STATUS majority_vote_for3_copy ( void *  res_arg,
void *  array1_arg,
void *  array2_arg,
void *  array3_arg,
size_t  type_len,
uint32_t  length 
)

3重冗長用汎用多数決関数 (コピー)

   3重冗長用配列を受け取って多数決を行った結果をresに入れ, 冗長の状態を返す
引数
[in]array1_arg~ array3_arg 判定したい3重冗長
[in]type_lensizeof(型)を入れる
[in]length配列の長さ, 多次元でも実体は1次元なので全長を入れる, 単体の場合は1を
[out]res_arg返り値のポインタ, あらかじめ確保しておくように
戻り値
MAJORITY_VOTE_ERROR全不一致が少なくとも1つ存在, 異常
MAJORITY_VOTE_MAJORITY2:1が少なくとも1つ存在, 正常
MAJORITY_VOTE_MATCH全てについて全一致, 正常
覚え書き
配列に対して行われるので, 複数のindexで多数決が行われていてもMAJORITY_VOTE_MAJORITYが返ります.

majority_vote_for3.c9 行目に定義があります。

◆ majority_vote_for3_sync()

MAJORITY_VOTE_FOR3_STATUS majority_vote_for3_sync ( void *  array1_arg,
void *  array2_arg,
void *  array3_arg,
size_t  type_len,
uint32_t  length 
)

3重冗長用汎用多数決関数 (同期)

   3重冗長用配列を受け取って多数決を行い、全てを一致させた状態にする
引数
[in]array1_arg~ array3_arg 判定したい3重冗長
[in]type_lensizeof(型)を入れる
[in]length配列の長さ, 多次元でも実体は1次元なので全長を入れる, 単体の場合は1を
戻り値
MAJORITY_VOTE_ERROR全不一致が少なくとも1つ存在, 異常
MAJORITY_VOTE_MAJORITY2:1が少なくとも1つ存在, 正常
MAJORITY_VOTE_MATCH全てについて全一致, 正常
覚え書き
配列に対して行われるので, 複数のindexで多数決が行われていてもMAJORITY_VOTE_MAJORITYが返ります. また, これを使えば同期されるので三重冗長されたものの [0] のポインタを取って操作できます.

majority_vote_for3.c68 行目に定義があります。