tail head cat sleep
QR code linking to this page

manページ  — MAKE_DEV

名称

make_dev, make_dev_alias, destroy_dev, dev_depends – デバイスのための cdev および DEVFS 登録の管理

内容

書式

#include <sys/param.h>
#include <sys/conf.h>

struct cdev
make_dev(struct cdevsw *cdevsw, int minor, uid_t uid, gid_t gid, int perms, const char *fmt, ...);

struct cdev
make_dev_alias(struct cdev pdev, const char *fmt, ...);

void
destroy_dev(struct cdev dev);

void
dev_depends(struct cdev pdev, struct cdev cdev);

解説

make_dev() 関数は新しいデバイスのための cdev 構造体を作成します。 DEVFS が利用可能の場合には、新しいデバイスの存在も通知されます。 そのデバイスは uid によって所有され、 gid のグループに所有され、 name で指定される名前を持ちます。 perms に指定するファイルのパーミッションは <sys/stat.h> で定義されています。

#define S_IRWXU 0000700    /* 所有者の RWX マスク
#define S_IRUSR 0000400    /* 所有者の R */
#define S_IWUSR 0000200    /* 所有者の W */
#define S_IXUSR 0000100    /* 所有者の X */

#define S_IRWXG 0000070 /* グループの RWX マスク */ #define S_IRGRP 0000040 /* グループの R */ #define S_IWGRP 0000020 /* グループの W */ #define S_IXGRP 0000010 /* グループの X */

#define S_IRWXO 0000007 /* その他の RWX マスク */ #define S_IROTH 0000004 /* その他の R */ #define S_IWOTH 0000002 /* その他の W */ #define S_IXOTH 0000001 /* その他の X */

#define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* スティッキビット */ #ifndef _POSIX_SOURCE #define S_ISTXT 0001000 #endif

make_dev_alias() 関数は make_dev() から返された cdev をとり、このデバイスのための別の名前 (別名) を作成します。 make_dev() の呼出しの前の make_dev_alias() の呼出しは、誤りです。

destroy_dev() 関数は make_dev() から返された cdev をとり、そのデバイスの登録を削除します。 make_dev_alias() で作成されたデバイスで destroy_dev() を呼出さないでください。

dev_depends() 関数は 2 つのデバイス間の親子関係を確立します。 このネット効果は、親デバイスの destroy_dev() は、もしあれば、結果としてその子デバイスの破壊に終わります。 1 つのデバイスは同時に親にも子にもなれ、 そのため、完全な階層構造を構築することが可能です。

関連項目

devfs(5)

歴史

make_dev() および destroy_dev() 関数は FreeBSD 4.0 ではじめて登場しました。 関数 make_dev_alias() は FreeBSD 4.1 ではじめて登場しました。 関数 dev_depends() は FreeBSD 5.0 ではじめて登場しました。

MAKE_DEV (9) March 28, 2005

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

Modern Unix impedes progress in computer science, wastes billions of dollars, and destroys the common sense of many who seriously use it.
— The Unix Haters' handbook