Deleted Added
full compact
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 */