通信ソフト等で、アライメント制約やエンディアンが異なるCPU間の電文変換処理を行うサブルーチン
通信ソフト等で、アライメント制約やエンディアンが異なるCPU間の電文変換処理を行うサブルーチンです。
最初にCソースファイル中の構造体をAWKでスキャンして構造体に関する情報テーブルをCのヘッダファイルとして生成し、これを用いて添付の変換サブルーチンを呼び出す事で複雑な構造体でも簡単に変換が出来ます.。
本ソフトのメリットは、電文を構造体ヘッダイメージで共有すれば、その変更に対してアライメントコンバータを通す自動化が可能なので、変更や修整、バージョンアップが容易になります。
注:アライメント制約とは、例えばCPUが2バイトサイズのshort型の変数をアクセスする際に、メモリアドレスの偶数番地から始まる事を指します。同様に4バイトサイズのlong型の変数をアクセスする際に、メモリアドレスの番地が4の倍数から始まる事を指します。通常このルールが守られなくなると「例外」や「フォルト」と呼ばれる状態になります。Intel系のCPUはアライメント制約は無くリトルエンディアンですが、通常RISCタイプのCPU(例えば日立SH)はアライメント制約があります。日立SHの場合、エンディアンはCPU固有機能としてはどちらにもできますが、通信処理系の制約で自由にならない事が多いです