version 1.60, 2008/04/11 15:51:38 |
version 1.60.4.3, 2010/03/11 15:04:42 |
|
|
/* $NetBSD$ */ |
/* $NetBSD$ */ |
|
|
|
|
/* |
/* |
* WARNING: GENERATED FILE. DO NOT EDIT |
* WARNING: GENERATED FILE. DO NOT EDIT |
* (edit namei.src and run make namei) |
* (edit namei.src and run make namei in src/sys/sys) |
* by: NetBSD: gennameih.awk,v 1.1 2007/08/15 14:08:11 pooka Exp |
* by: NetBSD: gennameih.awk,v 1.4 2008/12/03 10:54:27 ad Exp |
* from: NetBSD: namei.src,v 1.8 2008/04/11 15:51:25 ad Exp |
* from: NetBSD: namei.src,v 1.14 2009/12/23 01:09:24 pooka Exp |
*/ |
*/ |
|
|
/* |
/* |
Line 107 struct nameidata { |
|
Line 108 struct nameidata { |
|
/* |
/* |
* namei operational modifier flags, stored in ni_cnd.cn_flags |
* namei operational modifier flags, stored in ni_cnd.cn_flags |
*/ |
*/ |
#define LOCKLEAF 0x0004 /* lock inode on return */ |
#define LOCKLEAF 0x00000004 /* lock inode on return */ |
#define LOCKPARENT 0x0008 /* want parent vnode returned locked */ |
#define LOCKPARENT 0x00000008 /* want parent vnode returned locked */ |
#define NOCACHE 0x0020 /* name must not be left in cache */ |
#define TRYEMULROOT 0x00000010 /* try relative to emulation root |
#define FOLLOW 0x0040 /* follow symbolic links */ |
first */ |
#define NOFOLLOW 0x0000 /* do not follow symbolic links (pseudo) */ |
#define NOCACHE 0x00000020 /* name must not be left in cache */ |
#define TRYEMULROOT 0x0010 /* try relative to emulation root first */ |
#define FOLLOW 0x00000040 /* follow symbolic links */ |
#define EMULROOTSET 0x0080 /* emulation root already in ni_erootdir */ |
#define NOFOLLOW 0x00000000 /* do not follow symbolic links |
#define MODMASK 0x00fc /* mask of operational modifiers */ |
(pseudo) */ |
|
#define EMULROOTSET 0x00000080 /* emulation root already |
|
in ni_erootdir */ |
|
#define NOCHROOT 0x01000000 /* no chroot on abs path lookups */ |
|
#define MODMASK 0x010000fc /* mask of operational modifiers */ |
/* |
/* |
* Namei parameter descriptors. |
* Namei parameter descriptors. |
* |
* |
Line 142 struct nameidata { |
|
Line 147 struct nameidata { |
|
#define DOWHITEOUT 0x0040000 /* do whiteouts */ |
#define DOWHITEOUT 0x0040000 /* do whiteouts */ |
#define REQUIREDIR 0x0080000 /* must be a directory */ |
#define REQUIREDIR 0x0080000 /* must be a directory */ |
#define CREATEDIR 0x0200000 /* trailing slashes are ok */ |
#define CREATEDIR 0x0200000 /* trailing slashes are ok */ |
#define PARAMASK 0x02fff00 /* mask of parameter descriptors */ |
#define INRENAME 0x0400000 /* operation is a part of ``rename'' */ |
|
#define PARAMASK 0x06fff00 /* mask of parameter descriptors */ |
|
|
/* |
/* |
* Initialization of an nameidata structure. |
* Initialization of an nameidata structure. |
Line 199 extern pool_cache_t pnbuf_cache; /* path |
|
Line 205 extern pool_cache_t pnbuf_cache; /* path |
|
#define PNBUF_GET() pool_cache_get(pnbuf_cache, PR_WAITOK) |
#define PNBUF_GET() pool_cache_get(pnbuf_cache, PR_WAITOK) |
#define PNBUF_PUT(pnb) pool_cache_put(pnbuf_cache, (pnb)) |
#define PNBUF_PUT(pnb) pool_cache_put(pnbuf_cache, (pnb)) |
|
|
|
/* |
|
* Typesafe flags for namei_simple. |
|
* |
|
* This encoding is not optimal but serves the important purpose of |
|
* not being type-compatible with the regular namei flags. |
|
*/ |
|
struct namei_simple_flags_type; /* Opaque. */ |
|
typedef const struct namei_simple_flags_type *namei_simple_flags_t; /* Gross. */ |
|
extern const namei_simple_flags_t |
|
NSM_NOFOLLOW_NOEMULROOT, |
|
NSM_NOFOLLOW_TRYEMULROOT, |
|
NSM_FOLLOW_NOEMULROOT, |
|
NSM_FOLLOW_TRYEMULROOT; |
|
|
|
/* |
|
* namei_simple_* - the simple cases of namei, with no struct |
|
* nameidata involved. |
|
* |
|
* namei_simple_kernel takes a kernel-space path as the first argument. |
|
* namei_simple_user takes a user-space path as the first argument. |
|
* |
|
* A namei call can be converted to namei_simple_* if: |
|
* - the second arg to NDINIT is LOOKUP; |
|
* - it does not need the parent vnode, nd.ni_dvp; |
|
* - the only flags it uses are (NO)FOLLOW and TRYEMULROOT; |
|
* - it does not do anything else gross with the contents of nd. |
|
*/ |
|
int namei_simple_kernel(const char *, namei_simple_flags_t, struct vnode **); |
|
int namei_simple_user(const char *, namei_simple_flags_t, struct vnode **); |
|
|
int namei(struct nameidata *); |
int namei(struct nameidata *); |
uint32_t namei_hash(const char *, const char **); |
uint32_t namei_hash(const char *, const char **); |
int lookup(struct nameidata *); |
int lookup_for_nfsd(struct nameidata *, struct vnode *, int neverfollow); |
|
int lookup_for_nfsd_index(struct nameidata *); |
int relookup(struct vnode *, struct vnode **, struct componentname *); |
int relookup(struct vnode *, struct vnode **, struct componentname *); |
void cache_purge1(struct vnode *, const struct componentname *, int); |
void cache_purge1(struct vnode *, const struct componentname *, int); |
#define PURGE_PARENTS 1 |
#define PURGE_PARENTS 1 |
Line 248 extern struct nchstats nchstats; |
|
Line 285 extern struct nchstats nchstats; |
|
#define NAMEI_DELETE 2 |
#define NAMEI_DELETE 2 |
#define NAMEI_RENAME 3 |
#define NAMEI_RENAME 3 |
#define NAMEI_OPMASK 3 |
#define NAMEI_OPMASK 3 |
#define NAMEI_LOCKLEAF 0x0004 |
#define NAMEI_LOCKLEAF 0x00000004 |
#define NAMEI_LOCKPARENT 0x0008 |
#define NAMEI_LOCKPARENT 0x00000008 |
#define NAMEI_NOCACHE 0x0020 |
#define NAMEI_TRYEMULROOT 0x00000010 |
#define NAMEI_FOLLOW 0x0040 |
#define NAMEI_NOCACHE 0x00000020 |
#define NAMEI_NOFOLLOW 0x0000 |
#define NAMEI_FOLLOW 0x00000040 |
#define NAMEI_TRYEMULROOT 0x0010 |
#define NAMEI_NOFOLLOW 0x00000000 |
#define NAMEI_EMULROOTSET 0x0080 |
#define NAMEI_EMULROOTSET 0x00000080 |
#define NAMEI_MODMASK 0x00fc |
#define NAMEI_NOCHROOT 0x01000000 |
|
#define NAMEI_MODMASK 0x010000fc |
#define NAMEI_NOCROSSMOUNT 0x0000100 |
#define NAMEI_NOCROSSMOUNT 0x0000100 |
#define NAMEI_RDONLY 0x0000200 |
#define NAMEI_RDONLY 0x0000200 |
#define NAMEI_HASBUF 0x0000400 |
#define NAMEI_HASBUF 0x0000400 |
Line 269 extern struct nchstats nchstats; |
|
Line 307 extern struct nchstats nchstats; |
|
#define NAMEI_DOWHITEOUT 0x0040000 |
#define NAMEI_DOWHITEOUT 0x0040000 |
#define NAMEI_REQUIREDIR 0x0080000 |
#define NAMEI_REQUIREDIR 0x0080000 |
#define NAMEI_CREATEDIR 0x0200000 |
#define NAMEI_CREATEDIR 0x0200000 |
#define NAMEI_PARAMASK 0x02fff00 |
#define NAMEI_INRENAME 0x0400000 |
|
#define NAMEI_PARAMASK 0x06fff00 |
|
|
#endif /* !_SYS_NAMEI_H_ */ |
#endif /* !_SYS_NAMEI_H_ */ |