TYPES(5) — NEWS-OS Programmer’s Manual
名称
types − 基本的なシステムデータ型
形式
#include<sys/types.h>
解説
このインクルードファイル内に定義されているデータ型は UNIX シス テムコードにおいて使用されます。これらの型を持つデータの中には、 ユーザコードでアクセス可能なものもあります。
/∗ @(#)types.h 1.4 87/09/03 3.2/4.3 NFSSRC ∗/
/∗
∗ Copyright(c) 1982,1986 Regents of the University of California.
∗ All rights reserved. The Berkeley software License Agreement
∗ specifies the terms and conditions for redistribution.
∗
∗ @(#)types.h 7.1(Berkeley) 6/4/86
∗/
/∗
∗ 基本的なシステムデータ型とメジャー/マイナーデバイスを扱うマクロ
∗/
#ifndef _TYPES_
#define _TYPES_
/∗ メジャーデバイス ∗/
#definemajor(x)((int)(((unsigned)(x)>>8)&0377))
/∗ マイナーデバイス ∗/
#defineminor(x)((int)((x)&0377))
/∗ デバイス番号の作成 ∗/
#definemakedev(x,y)((dev_t)(((x)<<8) | (y)))
typedefunsigned charu_char;
typedefunsigned shortu_short;
typedefunsigned intu_int;
typedefunsigned longu_long;
typedefunsigned shortushort; /∗ System III compat ∗/
#ifdef vax
typedefstruct_physadr { int r[1]; } ∗physadr;
typedefstructlabel_t {
intval[14];
} label_t;
#endif vax
#ifdef mc68020
typedefstruct_physadr { int r[1]; } ∗physadr;
typedefstructlabel_t {
intval[13];
} label_t;
#endif mc68020
typedefstruct_quad { long val[2]; } quad;
typedeflongdaddr_t;
typedefchar ∗caddr_t;
typedefu_longino_t;
typedeflongswblk_t;
typedefintsize_t;
typedefinttime_t;
typedefshortdev_t;
typedefintoff_t;
typedef u_shortuid_t;
typedef u_shortgid_t;
#define NBBY 8 /∗ 1バイトのビット数 ∗/
/∗
∗ select(2) はファイルディスクリプタのビットマスクを long で使用する。
∗ これらのマクロがこうしたビットフィールドを処理する(ファイルシステム
∗ マクロは char を使用する)。
∗ FD_SETSIZE は、ユーザが定義することができるが、
∗ ここでのデフォルト値は ≧NOFILE(param.h)でなければならない。
∗/
#ifndef FD_SETSIZE
#define FD_SETSIZE 256
#endif
typedef long fd_mask;
#define NFDBITS(sizeof(fd_mask)∗NBBY) /∗bits per mask∗/
#ifndef howmany
#define howmany(x,y) (((x)+((y)−1))/(y))
#endif
typedef struct fd_set{
fd_mask fds_bits[howmany(FD_SETSIZE,NFDBITS)];
} fd_set;
#define FD_SET(n,p) ((p)−>fds_bits[(n)/NDFBITS] |= (1<<((n) % NFDBITS)))
#define FD_CLR(n,p) ((p)−>fds_bits[(n)/NDFBITS] &= ~(1<<((n) % NFDBITS)))
#define FD_ISSET(n,p) ((p)−>fds_bits[(n)/NDFBITS] & (1<<((n) % NFDBITS)))
#define FD_ZERO(p) bzero((char ∗)(p),sizeof(∗(p)))
#endif
daddr_t という形式は、ディスク上の iノード内以外のディスクア ドレスに使用されます( fs(5) を参照してください)。時刻は、 (グリニッジ標準時の)1970年 1月 1日の 00:00:00 から秒単位でエ ンコードされています。デバイスコードのメジャーナンバーの部分と マイナーナンバーの部分は、デバイスの種類およびユニット番号を指定 するものであり、インストーレーションによって異なります。 オフセットは、ファイルの最初からバイト単位で計算されます。 label_t 変数は、別のプロセスの実行中におけるプロセッサ状態のセーブに使用されます。
関連事項
fs(5), time(3), lseek(2), adb(1)
NEWS-OSRelease 4.1C