Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ types(5) — NEWS-os 3.3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fs(5)

time(3)

lseek(2)

adb(1)

TYPES(5)  —  UNIX 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バイト内におけるビット数 ∗/
/∗

∗ 選択の際にはファイルディスクリプタのビットマスクを 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 3.3

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026