From 94b1839d20ddac8b097319032bce4e9af74904f4 Mon Sep 17 00:00:00 2001 From: Chris Costello Date: Sat, 25 Sep 1999 20:12:01 +0000 Subject: [PATCH] Document the make_dev(9) and remove_dev(9) facilities. remove_dev(9) is created as a link to the existing make_dev(9) page. Reviewed by: phk --- share/man/man9/Makefile | 5 ++- share/man/man9/make_dev.9 | 95 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 share/man/man9/make_dev.9 diff --git a/share/man/man9/Makefile b/share/man/man9/Makefile index d369dc72e1bb..a6730de431d4 100644 --- a/share/man/man9/Makefile +++ b/share/man/man9/Makefile @@ -14,8 +14,8 @@ MAN9= MD5.9 \ at_exit.9 at_fork.9 at_shutdown.9 bios.9 boot.9 buf.9 cd.9 copy.9 \ devfs_add_devswf.9 devfs_link.9 devfs_remove_dev.9 devstat.9 \ devtoname.9 fetch.9 ifnet.9 inittodr.9 intro.9 kernacc.9 malloc.9 \ - microseq.9 mi_switch.9 namei.9 panic.9 physio.9 posix4.9 psignal.9 \ - resettodr.9 rtalloc.9 rtentry.9 sleep.9 spl.9 \ + make_dev.9 microseq.9 mi_switch.9 namei.9 panic.9 physio.9 posix4.9 \ + psignal.9 resettodr.9 rtalloc.9 rtentry.9 sleep.9 spl.9 \ store.9 style.9 suser.9 time.9 timeout.9 uio.9 \ vget.9 vnode.9 vput.9 vref.9 vrele.9 vslock.9 @@ -61,6 +61,7 @@ MLINKS+=devstat.9 devstat_end_transaction.9 MLINKS+=fetch.9 fubyte.9 fetch.9 fuswintr.9 fetch.9 fusword.9 fetch.9 fuword.9 MLINKS+=ifnet.9 if_data.9 ifnet.9 ifaddr.9 ifnet.9 ifqueue.9 MLINKS+=kernacc.9 useracc.9 +MLINKS+=make_dev.9 remove_dev.9 MLINKS+=malloc.9 FREE.9 malloc.9 MALLOC.9 malloc.9 free.9 MLINKS+=mi_switch.9 cpu_switch.9 MLINKS+=posix4.9 p1003_1b.9 diff --git a/share/man/man9/make_dev.9 b/share/man/man9/make_dev.9 new file mode 100644 index 000000000000..e400d5c7b129 --- /dev/null +++ b/share/man/man9/make_dev.9 @@ -0,0 +1,95 @@ +.\" Copyright (c) 1999 Chris Costello +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd September 25, 1999 +.Os +.Dt MAKE_DEV 9 +.Sh NAME +.Nm make_dev , +.Nm remove_dev +.Nd "Create or remove dev_t and devfs registration for a new device" +.Sh SYNOPSIS +.Fd #include +.Fd #include +.Ft dev_t +.Fn make_dev "struct cdevsw *devsw" "int minor" "uid_t uid" "gid_t gid" "int perms" "char *fmt" ... +.Ft void +.Fn remove_dev "dev_t dev" +.Sh DESCRIPTION +The +.Fn make_dev +function creates a +.Fa dev_t +structure for a new device. If DEVFS is available, it is also notified of +the presence of the new device. The device will be owned by +.Va uid , +with the group ownership as +.Va gid , +and with the name as specified in +.Va name . +The permissions of the file specified in +.Va perms +are defined in +.Aq Pa sys/stat.h : +.Pp +.Bd -literal -offset indent -compact +#define S_IRWXU 0000700 /* RWX mask for owner */ +#define S_IRUSR 0000400 /* R for owner */ +#define S_IWUSR 0000200 /* W for owner */ +#define S_IXUSR 0000100 /* X for owner */ + +#define S_IRWXG 0000070 /* RWX mask for group */ +#define S_IRGRP 0000040 /* R for group */ +#define S_IWGRP 0000020 /* W for group */ +#define S_IXGRP 0000010 /* X for group */ + +#define S_IRWXO 0000007 /* RWX mask for other */ +#define S_IROTH 0000004 /* R for other */ +#define S_IWOTH 0000002 /* W for other */ +#define S_IXOTH 0000001 /* X for other */ + +#define S_ISUID 0004000 /* set user id on execution */ +#define S_ISGID 0002000 /* set group id on execution */ +#define S_ISVTX 0001000 /* sticky bit */ +#ifndef _POSIX_SOURCE +#define S_ISTXT 0001000 +#endif +.Ed +.Pp +The +.Fn remove_dev +function takes the returned +.Fa dev_t +from +.Fn make_dev +and removes the registration for that device. +.Sh HISTORY +The +.Fn make_dev +and +.Fn remove_dev +functions first appeared in +.Fx 4.0 .