SEX(3) — NEWS-OS Programmer’s Manual
名称
gethostsex − ホストマシンのバイト性別を得る
swap_∗() − 指定された構造体の性別をスワップする
形式
#include <sex.h>
#include <filehdr.h>
#include <aouthdr.h>
#include <scnhdr.h>
#include <sym.h>
#include <symconst.h>
#include <cmplrs/stsupport.h>
#include <reloc.h>
#include <ar.h>
int gethostsex()
long swap_word(word)
long word;
short swap_half(half)
short half;
void swap_filehdr(pfilehdr, destsex)
FILHDR ∗pfilehdr;
long destsex;
void swap_aouthdr(paouthdr, destsex)
AOUTHDR ∗paouthdr;
long destsex;
void swap_scnhdr(pscnhdr, destsex)
SCNHDR ∗pscnhdr;
long destsex;
void swap_hdr(phdr, destsex)
pHDRR phdr;
long destsex;
void swap_fd(pfd, count, destsex)
pFDR pfd;
long count;
long destsex;
void swap_fi(pfi, count, destsex)
pFIT pfi;
long count;
long destsex;
void swap_sym(psym, count, destsex)
pSYMR psym;
long count;
long destsex;
void swap_ext(pext, count, destsex)
pEXTR pext;
long count;
long destsex;
void swap_pd(ppd, count, destsex)
pPDR ppd;
long count;
long destsex;
void swap_dn(pdn, count, destsex)
pRNDXR pdn;
long count;
long destsex;
void swap_opt(popt, count, destsex)
pOPTR popt;
long count;
long destsex;
void swap_aux(paux, type, destsex)
pAUXU paux;
long type;
long destsex;
void swap_reloc(preloc, count, destsex)
struct reloc ∗preloc;
long count;
long destsex;
void swap_ranlib(pranlib, count, destsex)
struct ranlib ∗pranlib;
long count;
long destsex;
解説
これらのルーチンを使用するには、ライブラリの libmld.a をロードしなければなりません。
gethostsex は、ホストマシンの性別に対して 2 つの定数 BIGENDIAN または LITTLEENDIAN のうちの 1 つを返します。 これらの定数は、 sex.h にあります。
ヘッダをスワップするすべての swap_∗ ルーチンはヘッダ構造体を指すポインタをとり、バイトの性別を変更します。 destsex 引数は、スワップルーチンにそれらが生じるワードをスワップする前か後に ビットフィールドをスワップするか否かを決定させます。 destsex が実行しているマシンのホスト性別 (hostsex) と等しい場合は、スワップの前に フリップが起こります。 そうでない場合は、フリップはスワップの後に起こります。 すべてのルーチンがビットフィールドを含む構造体をスワップするとは限らない けれども、destsex は将来のニーズを予想する場合に必要です。
swap_aux ルーチンは、aux エントリおよび type を指すポインタをとります。 それは cmplrs/stsupport.h 中の ST_AUX_∗ 定数です。 定数は、aux エントリの型を指定し、その性別を変更します。 他のすべての swap_∗ ルーチンは構造体の配列と構造体の count を指すポインタが渡され、そのバイト性別を変更します。 swap_word および swap_half ルーチンは、 sex.h で宣言されたマクロです。 この際スワップ中の構造体を記述する必要のあるインクルードファイルが 必要となります。
著者
Kevin Enderby
NEWS-OSRelease 4.2.1R