devfs.h (64880) | devfs.h (65051) |
---|---|
1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 2000 5 * Poul-Henning Kamp. All rights reserved. 6 * 7 * This code is derived from software donated to Berkeley by 8 * Jan-Simon Pendry. --- 17 unchanged lines hidden (view full) --- 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * 31 * @(#)kernfs.h 8.6 (Berkeley) 3/29/95 32 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs.h 1.14 33 * | 1/* 2 * Copyright (c) 1992, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 2000 5 * Poul-Henning Kamp. All rights reserved. 6 * 7 * This code is derived from software donated to Berkeley by 8 * Jan-Simon Pendry. --- 17 unchanged lines hidden (view full) --- 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * 31 * @(#)kernfs.h 8.6 (Berkeley) 3/29/95 32 * From: FreeBSD: src/sys/miscfs/kernfs/kernfs.h 1.14 33 * |
34 * $FreeBSD: head/sys/fs/devfs/devfs.h 64880 2000-08-20 21:34:39Z phk $ | 34 * $FreeBSD: head/sys/fs/devfs/devfs.h 65051 2000-08-24 15:36:55Z phk $ |
35 */ 36 37#ifdef _KERNEL 38 39#ifdef DEVFS_INTERN 40 41#define NDEVINO 1024 42 43MALLOC_DECLARE(M_DEVFS); 44 | 35 */ 36 37#ifdef _KERNEL 38 39#ifdef DEVFS_INTERN 40 41#define NDEVINO 1024 42 43MALLOC_DECLARE(M_DEVFS); 44 |
45struct devfs_dir { 46 TAILQ_HEAD(, devfs_dirent) dd_list; 47}; 48 | |
49struct devfs_dirent { 50 int de_inode; | 45struct devfs_dirent { 46 int de_inode; |
47 int de_flags; 48#define DE_ORPHAN 0x1 49#define DE_DOT 0x2 50#define DE_DOTDOT 0x4 |
|
51 struct dirent *de_dirent; 52 TAILQ_ENTRY(devfs_dirent) de_list; | 51 struct dirent *de_dirent; 52 TAILQ_ENTRY(devfs_dirent) de_list; |
53 struct devfs_dir *de_dir; | 53 TAILQ_HEAD(, devfs_dirent) de_dlist; 54 struct devfs_dirent *de_dir; 55 int de_links; |
54 mode_t de_mode; 55 uid_t de_uid; 56 gid_t de_gid; 57 struct timespec de_atime; 58 struct timespec de_mtime; 59 struct timespec de_ctime; 60 struct vnode *de_vnode; 61 char * de_symlink; 62}; 63 64struct devfs_node { 65 struct kern_target *kf_kt; 66}; 67 68struct devfs_mount { 69 struct vnode *dm_root; /* Root node */ | 56 mode_t de_mode; 57 uid_t de_uid; 58 gid_t de_gid; 59 struct timespec de_atime; 60 struct timespec de_mtime; 61 struct timespec de_ctime; 62 struct vnode *de_vnode; 63 char * de_symlink; 64}; 65 66struct devfs_node { 67 struct kern_target *kf_kt; 68}; 69 70struct devfs_mount { 71 struct vnode *dm_root; /* Root node */ |
70 struct devfs_dir *dm_rootdir; 71 struct devfs_dir *dm_basedir; | 72 struct devfs_dirent *dm_rootdir; 73 struct devfs_dirent *dm_basedir; |
72 unsigned dm_generation; 73 struct devfs_dirent *dm_dirent[NDEVINO]; | 74 unsigned dm_generation; 75 struct devfs_dirent *dm_dirent[NDEVINO]; |
76#define DE_DELETED ((struct devfs_dirent *)&devfs_inot[0]) |
|
74 int dm_inode; 75}; 76 77 78extern dev_t devfs_inot[NDEVINO]; 79extern int devfs_nino; 80extern unsigned devfs_generation; 81 | 77 int dm_inode; 78}; 79 80 81extern dev_t devfs_inot[NDEVINO]; 82extern int devfs_nino; 83extern unsigned devfs_generation; 84 |
85 |
|
82#define VFSTODEVFS(mp) ((struct devfs_mount *)((mp)->mnt_data)) 83 84extern vop_t **devfs_vnodeop_p; 85extern vop_t **devfs_specop_p; | 86#define VFSTODEVFS(mp) ((struct devfs_mount *)((mp)->mnt_data)) 87 88extern vop_t **devfs_vnodeop_p; 89extern vop_t **devfs_specop_p; |
90 |
|
86int devfs_populate __P((struct devfs_mount *dm)); | 91int devfs_populate __P((struct devfs_mount *dm)); |
87struct devfs_dir * devfs_vmkdir __P((void)); | |
88struct devfs_dirent * devfs_newdirent __P((char *name, int namelen)); | 92struct devfs_dirent * devfs_newdirent __P((char *name, int namelen)); |
89void devfs_purge __P((struct devfs_dir *dd)); 90void devfs_delete __P((struct devfs_dir *dd, struct devfs_dirent *de)); | 93void devfs_purge __P((struct devfs_dirent *dd)); 94struct devfs_dirent * devfs_vmkdir __P((char *name, int namelen, 95 struct devfs_dirent *dotdot)); |
91#endif /* DEVFS_INTERN */ 92 93typedef void (*devfs_clone_fn) __P((void *arg, char *name, int namelen, dev_t *result)); 94 95int devfs_stdclone __P((char *name, char **namep, char *stem, int *unit)); 96EVENTHANDLER_DECLARE(devfs_clone, devfs_clone_fn); 97#endif /* _KERNEL */ | 96#endif /* DEVFS_INTERN */ 97 98typedef void (*devfs_clone_fn) __P((void *arg, char *name, int namelen, dev_t *result)); 99 100int devfs_stdclone __P((char *name, char **namep, char *stem, int *unit)); 101EVENTHANDLER_DECLARE(devfs_clone, devfs_clone_fn); 102#endif /* _KERNEL */ |