diff options
author | bde <bde@FreeBSD.org> | 1995-12-03 14:54:48 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-12-03 14:54:48 +0000 |
commit | 64a1fca498baa82452b7832f03fb52d55b65861e (patch) | |
tree | a9998e1f2bc07a055eec218c76160973d186c314 /sys/fs | |
parent | 1a0a9cf4f5008de06188ddc5eefe1b6e156a792b (diff) | |
download | FreeBSD-src-64a1fca498baa82452b7832f03fb52d55b65861e.zip FreeBSD-src-64a1fca498baa82452b7832f03fb52d55b65861e.tar.gz |
Added prototypes.
Removed some unnecessary #includes.
Diffstat (limited to 'sys/fs')
-rw-r--r-- | sys/fs/fdescfs/fdesc_vnops.c | 29 | ||||
-rw-r--r-- | sys/fs/nullfs/null_subr.c | 11 | ||||
-rw-r--r-- | sys/fs/nullfs/null_vfsops.c | 25 | ||||
-rw-r--r-- | sys/fs/nullfs/null_vnops.c | 11 | ||||
-rw-r--r-- | sys/fs/portalfs/portal_vnops.c | 20 | ||||
-rw-r--r-- | sys/fs/procfs/procfs_ctl.c | 4 | ||||
-rw-r--r-- | sys/fs/procfs/procfs_mem.c | 4 | ||||
-rw-r--r-- | sys/fs/umapfs/umap_subr.c | 12 | ||||
-rw-r--r-- | sys/fs/umapfs/umap_vfsops.c | 25 | ||||
-rw-r--r-- | sys/fs/umapfs/umap_vnops.c | 12 | ||||
-rw-r--r-- | sys/fs/unionfs/union_subr.c | 10 | ||||
-rw-r--r-- | sys/fs/unionfs/union_vfsops.c | 26 | ||||
-rw-r--r-- | sys/fs/unionfs/union_vnops.c | 41 |
13 files changed, 203 insertions, 27 deletions
diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index 5f2010b..f2e90e1 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -35,7 +35,7 @@ * * @(#)fdesc_vnops.c 8.9 (Berkeley) 1/21/94 * - * $Id: fdesc_vnops.c,v 1.11 1995/11/07 13:39:20 phk Exp $ + * $Id: fdesc_vnops.c,v 1.12 1995/11/09 08:15:14 bde Exp $ */ /* @@ -44,8 +44,7 @@ #include <sys/param.h> #include <sys/systm.h> -#include <sys/types.h> -#include <sys/time.h> +#include <sys/conf.h> #include <sys/proc.h> #include <sys/kernel.h> /* boottime */ #include <sys/resourcevar.h> @@ -59,7 +58,6 @@ #include <sys/buf.h> #include <sys/dirent.h> #include <sys/socketvar.h> -#include <sys/tty.h> #include <miscfs/fdesc/fdesc.h> #define cttyvp(p) ((p)->p_flag & P_CONTROLT ? (p)->p_session->s_ttyvp : NULL) @@ -87,6 +85,29 @@ struct fdcache { static struct fdcache fdcache[NFDCACHE]; +static int fdesc_attr __P((int fd, struct vattr *vap, struct ucred *cred, + struct proc *p)); +static int fdesc_badop __P((void)); +static int fdesc_enotsupp __P((void)); +static int fdesc_getattr __P((struct vop_getattr_args *ap)); +static struct fdcache * + fdesc_hash __P((int ix)); +static int fdesc_inactive __P((struct vop_inactive_args *ap)); +static int fdesc_ioctl __P((struct vop_ioctl_args *ap)); +static int fdesc_lookup __P((struct vop_lookup_args *ap)); +static int fdesc_nullop __P((void)); +static int fdesc_open __P((struct vop_open_args *ap)); +static int fdesc_pathconf __P((struct vop_pathconf_args *ap)); +static int fdesc_print __P((struct vop_print_args *ap)); +static int fdesc_read __P((struct vop_read_args *ap)); +static int fdesc_readdir __P((struct vop_readdir_args *ap)); +static int fdesc_readlink __P((struct vop_readlink_args *ap)); +static int fdesc_reclaim __P((struct vop_reclaim_args *ap)); +static int fdesc_select __P((struct vop_select_args *ap)); +static int fdesc_setattr __P((struct vop_setattr_args *ap)); +static int fdesc_vfree __P((struct vop_vfree_args *ap)); +static int fdesc_write __P((struct vop_write_args *ap)); + /* * Initialise cache headers */ diff --git a/sys/fs/nullfs/null_subr.c b/sys/fs/nullfs/null_subr.c index dc18d19..e5fa590 100644 --- a/sys/fs/nullfs/null_subr.c +++ b/sys/fs/nullfs/null_subr.c @@ -35,7 +35,7 @@ * * @(#)null_subr.c 8.4 (Berkeley) 1/21/94 * - * $Id: null_subr.c,v 1.3 1994/10/02 17:48:14 phk Exp $ + * $Id: null_subr.c,v 1.4 1995/12/03 14:38:49 bde Exp $ */ #include <sys/param.h> @@ -48,6 +48,8 @@ #include <sys/malloc.h> #include <miscfs/nullfs/null.h> +extern int nullfs_init __P((void)); + #define LOG2_SIZEVNODE 7 /* log2(sizeof struct vnode) */ #define NNULLNODECACHE 16 #define NULL_NHASH(vp) ((((u_long)vp)>>LOG2_SIZEVNODE) & (NNULLNODECACHE-1)) @@ -70,6 +72,13 @@ struct null_node_cache { static struct null_node_cache null_node_cache[NNULLNODECACHE]; +static int null_node_alloc __P((struct mount *mp, struct vnode *lowervp, + struct vnode **vpp)); +static struct vnode * + null_node_find __P((struct mount *mp, struct vnode *lowervp)); +static struct null_node_cache * + null_node_hash __P((struct vnode *lowervp)); + /* * Initialise cache headers */ diff --git a/sys/fs/nullfs/null_vfsops.c b/sys/fs/nullfs/null_vfsops.c index eb1a192..b6ebc6c 100644 --- a/sys/fs/nullfs/null_vfsops.c +++ b/sys/fs/nullfs/null_vfsops.c @@ -36,7 +36,7 @@ * @(#)null_vfsops.c 8.2 (Berkeley) 1/21/94 * * @(#)lofs_vfsops.c 1.2 (Berkeley) 6/18/92 - * $Id: null_vfsops.c,v 1.6 1995/03/16 20:23:39 wollman Exp $ + * $Id: null_vfsops.c,v 1.7 1995/05/30 08:07:01 rgrimes Exp $ */ /* @@ -55,6 +55,27 @@ #include <sys/malloc.h> #include <miscfs/nullfs/null.h> +extern int nullfs_init __P((void)); + +extern int nullfs_fhtovp __P((struct mount *mp, struct fid *fidp, + struct mbuf *nam, struct vnode **vpp, + int *exflagsp, struct ucred **credanonp)); +extern int nullfs_mount __P((struct mount *mp, char *path, caddr_t data, + struct nameidata *ndp, struct proc *p)); +extern int nullfs_quotactl __P((struct mount *mp, int cmd, uid_t uid, + caddr_t arg, struct proc *p)); +extern int nullfs_root __P((struct mount *mp, struct vnode **vpp)); +extern int nullfs_start __P((struct mount *mp, int flags, struct proc *p)); +extern int nullfs_statfs __P((struct mount *mp, struct statfs *sbp, + struct proc *p)); +extern int nullfs_sync __P((struct mount *mp, int waitfor, + struct ucred *cred, struct proc *p)); +extern int nullfs_unmount __P((struct mount *mp, int mntflags, + struct proc *p)); +extern int nullfs_vget __P((struct mount *mp, ino_t ino, + struct vnode **vpp)); +extern int nullfs_vptofh __P((struct vnode *vp, struct fid *fhp)); + /* * Mount null layer */ @@ -352,8 +373,6 @@ nullfs_vptofh(vp, fhp) return VFS_VPTOFH(NULLVPTOLOWERVP(vp), fhp); } -int nullfs_init __P((void)); - struct vfsops null_vfsops = { nullfs_mount, nullfs_start, diff --git a/sys/fs/nullfs/null_vnops.c b/sys/fs/nullfs/null_vnops.c index 41e9f70..4013f50 100644 --- a/sys/fs/nullfs/null_vnops.c +++ b/sys/fs/nullfs/null_vnops.c @@ -35,7 +35,7 @@ * * @(#)null_vnops.c 8.1 (Berkeley) 6/10/93 * - * $Id: null_vnops.c,v 1.8 1995/05/30 08:07:03 rgrimes Exp $ + * $Id: null_vnops.c,v 1.9 1995/11/09 08:14:51 bde Exp $ */ /* @@ -173,9 +173,16 @@ #include <sys/buf.h> #include <miscfs/nullfs/null.h> - int null_bug_bypass = 0; /* for debugging: enables bypass printf'ing */ +extern int null_bypass __P((struct vop_generic_args *ap)); +extern int null_bwrite __P((struct vop_bwrite_args *ap)); +extern int null_getattr __P((struct vop_getattr_args *ap)); +extern int null_inactive __P((struct vop_inactive_args *ap)); +extern int null_print __P((struct vop_print_args *ap)); +extern int null_reclaim __P((struct vop_reclaim_args *ap)); +extern int null_strategy __P((struct vop_strategy_args *ap)); + /* * This is the 10-Apr-92 bypass routine. * This version has been optimized for speed, throwing away some diff --git a/sys/fs/portalfs/portal_vnops.c b/sys/fs/portalfs/portal_vnops.c index 7bea6da..75700a7 100644 --- a/sys/fs/portalfs/portal_vnops.c +++ b/sys/fs/portalfs/portal_vnops.c @@ -35,7 +35,7 @@ * * @(#)portal_vnops.c 8.8 (Berkeley) 1/21/94 * - * $Id: portal_vnops.c,v 1.7 1995/10/08 00:09:00 swallace Exp $ + * $Id: portal_vnops.c,v 1.8 1995/11/09 08:15:51 bde Exp $ */ /* @@ -44,6 +44,7 @@ #include <sys/param.h> #include <sys/systm.h> +#include <sys/sysproto.h> #include <sys/kernel.h> #include <sys/types.h> #include <sys/time.h> @@ -60,11 +61,26 @@ #include <sys/socketvar.h> #include <sys/un.h> #include <sys/unpcb.h> -#include <sys/sysproto.h> #include <miscfs/portal/portal.h> static int portal_fileid = PORTAL_ROOTFILEID+1; +extern int portal_badop __P((void)); +static void portal_closefd __P((struct proc *p, int fd)); +static int portal_connect __P((struct socket *so, struct socket *so2)); +extern int portal_enotsupp __P((void)); +extern int portal_getattr __P((struct vop_getattr_args *ap)); +extern int portal_inactive __P((struct vop_inactive_args *ap)); +extern int portal_lookup __P((struct vop_lookup_args *ap)); +extern int portal_nullop __P((void)); +extern int portal_open __P((struct vop_open_args *ap)); +extern int portal_pathconf __P((struct vop_pathconf_args *ap)); +extern int portal_print __P((struct vop_print_args *ap)); +extern int portal_readdir __P((struct vop_readdir_args *ap)); +extern int portal_reclaim __P((struct vop_reclaim_args *ap)); +extern int portal_setattr __P((struct vop_setattr_args *ap)); +extern int portal_vfree __P((struct vop_vfree_args *ap)); + static void portal_closefd(p, fd) struct proc *p; diff --git a/sys/fs/procfs/procfs_ctl.c b/sys/fs/procfs/procfs_ctl.c index dc4d5e5..700b619 100644 --- a/sys/fs/procfs/procfs_ctl.c +++ b/sys/fs/procfs/procfs_ctl.c @@ -36,7 +36,7 @@ * * @(#)procfs_ctl.c 8.3 (Berkeley) 1/21/94 * - * $Id: procfs_ctl.c,v 1.5 1995/03/16 18:13:46 bde Exp $ + * $Id: procfs_ctl.c,v 1.6 1995/07/16 10:12:50 bde Exp $ */ #include <sys/param.h> @@ -111,6 +111,8 @@ static vfs_namemap_t signames[] = { { 0 }, }; +static int procfs_control __P((struct proc *curp, struct proc *p, int op)); + static int procfs_control(curp, p, op) struct proc *curp; diff --git a/sys/fs/procfs/procfs_mem.c b/sys/fs/procfs/procfs_mem.c index ee331ae..c75665a 100644 --- a/sys/fs/procfs/procfs_mem.c +++ b/sys/fs/procfs/procfs_mem.c @@ -37,7 +37,7 @@ * * @(#)procfs_mem.c 8.4 (Berkeley) 1/21/94 * - * $Id: procfs_mem.c,v 1.9 1995/07/13 08:47:48 davidg Exp $ + * $Id: procfs_mem.c,v 1.10 1995/10/23 04:28:59 dyson Exp $ */ /* @@ -56,6 +56,8 @@ #include <vm/vm_kern.h> #include <vm/vm_page.h> +static int procfs_rwmem __P((struct proc *p, struct uio *uio)); + static int procfs_rwmem(p, uio) struct proc *p; diff --git a/sys/fs/umapfs/umap_subr.c b/sys/fs/umapfs/umap_subr.c index da73487..0267584 100644 --- a/sys/fs/umapfs/umap_subr.c +++ b/sys/fs/umapfs/umap_subr.c @@ -35,7 +35,7 @@ * * @(#)umap_subr.c 8.6 (Berkeley) 1/26/94 * - * $Id: umap_subr.c,v 1.4 1995/05/30 08:07:17 rgrimes Exp $ + * $Id: umap_subr.c,v 1.5 1995/12/03 14:38:57 bde Exp $ */ #include <sys/param.h> @@ -48,6 +48,8 @@ #include <sys/malloc.h> #include <miscfs/umapfs/umap.h> +extern int umapfs_init __P((void)); + #define LOG2_SIZEVNODE 7 /* log2(sizeof struct vnode) */ #define NUMAPNODECACHE 16 #define UMAP_NHASH(vp) ((((u_long) vp)>>LOG2_SIZEVNODE) & (NUMAPNODECACHE-1)) @@ -70,6 +72,14 @@ struct umap_node_cache { static struct umap_node_cache umap_node_cache[NUMAPNODECACHE]; +static u_long umap_findid __P((u_long id, u_long map[][2], int nentries)); +static int umap_node_alloc __P((struct mount *mp, struct vnode *lowervp, + struct vnode **vpp)); +static struct vnode * + umap_node_find __P((struct mount *mp, struct vnode *targetvp)); +static struct umap_node_cache * + umap_node_hash __P((struct vnode *targetvp)); + /* * Initialise cache headers */ diff --git a/sys/fs/umapfs/umap_vfsops.c b/sys/fs/umapfs/umap_vfsops.c index 64f05bb..12f01df 100644 --- a/sys/fs/umapfs/umap_vfsops.c +++ b/sys/fs/umapfs/umap_vfsops.c @@ -35,7 +35,7 @@ * * @(#)umap_vfsops.c 8.3 (Berkeley) 1/21/94 * - * $Id: umap_vfsops.c,v 1.7 1995/03/16 20:23:43 wollman Exp $ + * $Id: umap_vfsops.c,v 1.8 1995/05/30 08:07:18 rgrimes Exp $ */ /* @@ -54,6 +54,27 @@ #include <sys/malloc.h> #include <miscfs/umapfs/umap.h> +extern int umapfs_init __P((void)); + +extern int umapfs_fhtovp __P((struct mount *mp, struct fid *fidp, + struct mbuf *nam, struct vnode **vpp, + int *exflagsp, struct ucred **credanonp)); +extern int umapfs_mount __P((struct mount *mp, char *path, caddr_t data, + struct nameidata *ndp, struct proc *p)); +extern int umapfs_quotactl __P((struct mount *mp, int cmd, uid_t uid, + caddr_t arg, struct proc *p)); +extern int umapfs_root __P((struct mount *mp, struct vnode **vpp)); +extern int umapfs_start __P((struct mount *mp, int flags, struct proc *p)); +extern int umapfs_statfs __P((struct mount *mp, struct statfs *sbp, + struct proc *p)); +extern int umapfs_sync __P((struct mount *mp, int waitfor, + struct ucred *cred, struct proc *p)); +extern int umapfs_unmount __P((struct mount *mp, int mntflags, + struct proc *p)); +extern int umapfs_vget __P((struct mount *mp, ino_t ino, + struct vnode **vpp)); +extern int umapfs_vptofh __P((struct vnode *vp, struct fid *fhp)); + /* * Mount umap layer */ @@ -393,8 +414,6 @@ umapfs_vptofh(vp, fhp) return (VFS_VPTOFH(UMAPVPTOLOWERVP(vp), fhp)); } -int umapfs_init __P((void)); - struct vfsops umap_vfsops = { umapfs_mount, umapfs_start, diff --git a/sys/fs/umapfs/umap_vnops.c b/sys/fs/umapfs/umap_vnops.c index 1d2d586..8ab0e79 100644 --- a/sys/fs/umapfs/umap_vnops.c +++ b/sys/fs/umapfs/umap_vnops.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)umap_vnops.c 8.3 (Berkeley) 1/5/94 - * $Id: umap_vnops.c,v 1.9 1995/05/30 08:07:22 rgrimes Exp $ + * $Id: umap_vnops.c,v 1.10 1995/11/09 08:16:25 bde Exp $ */ /* @@ -53,9 +53,17 @@ #include <sys/buf.h> #include <miscfs/umapfs/umap.h> - int umap_bug_bypass = 0; /* for debugging: enables bypass printf'ing */ +extern int umap_bwrite __P((struct vop_bwrite_args *ap)); +extern int umap_bypass __P((struct vop_generic_args *ap)); +extern int umap_getattr __P((struct vop_getattr_args *ap)); +extern int umap_inactive __P((struct vop_inactive_args *ap)); +extern int umap_print __P((struct vop_print_args *ap)); +extern int umap_reclaim __P((struct vop_reclaim_args *ap)); +extern int umap_rename __P((struct vop_rename_args *ap)); +extern int umap_strategy __P((struct vop_strategy_args *ap)); + /* * This is the 10-Apr-92 bypass routine. * See null_vnops.c:null_bypass for more details. diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c index 7d51365..d7916a6 100644 --- a/sys/fs/unionfs/union_subr.c +++ b/sys/fs/unionfs/union_subr.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_subr.c 8.4 (Berkeley) 2/17/94 - * $Id: union_subr.c,v 1.6 1995/05/30 08:07:25 rgrimes Exp $ + * $Id: union_subr.c,v 1.7 1995/08/17 11:53:50 bde Exp $ */ #include <sys/param.h> @@ -52,6 +52,8 @@ #include <sys/proc.h> +extern int union_init __P((void)); + /* must be power of two, otherwise change UNION_HASH() */ #define NHASH 32 @@ -62,6 +64,12 @@ static LIST_HEAD(unhead, union_node) unhead[NHASH]; static int unvplock[NHASH]; +static int union_list_lock __P((int ix)); +static void union_list_unlock __P((int ix)); +extern void union_updatevp __P((struct union_node *un, + struct vnode *uppervp, + struct vnode *lowervp)); + int union_init() { diff --git a/sys/fs/unionfs/union_vfsops.c b/sys/fs/unionfs/union_vfsops.c index 670c7ce..bee21cf 100644 --- a/sys/fs/unionfs/union_vfsops.c +++ b/sys/fs/unionfs/union_vfsops.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_vfsops.c 8.7 (Berkeley) 3/5/94 - * $Id: union_vfsops.c,v 1.9 1995/03/16 20:23:44 wollman Exp $ + * $Id: union_vfsops.c,v 1.10 1995/05/30 08:07:26 rgrimes Exp $ */ /* @@ -56,8 +56,26 @@ #include <sys/queue.h> #include <miscfs/union/union.h> -int union_root __P((struct mount *, struct vnode **)); -int union_statfs __P((struct mount *, struct statfs *, struct proc *)); +extern int union_init __P((void)); + +extern int union_fhtovp __P((struct mount *mp, struct fid *fidp, + struct mbuf *nam, struct vnode **vpp, + int *exflagsp, struct ucred **credanonp)); +extern int union_mount __P((struct mount *mp, char *path, caddr_t data, + struct nameidata *ndp, struct proc *p)); +extern int union_quotactl __P((struct mount *mp, int cmd, uid_t uid, + caddr_t arg, struct proc *p)); +extern int union_root __P((struct mount *mp, struct vnode **vpp)); +extern int union_start __P((struct mount *mp, int flags, struct proc *p)); +extern int union_statfs __P((struct mount *mp, struct statfs *sbp, + struct proc *p)); +extern int union_sync __P((struct mount *mp, int waitfor, + struct ucred *cred, struct proc *p)); +extern int union_unmount __P((struct mount *mp, int mntflags, + struct proc *p)); +extern int union_vget __P((struct mount *mp, ino_t ino, + struct vnode **vpp)); +extern int union_vptofh __P((struct vnode *vp, struct fid *fhp)); /* * Mount union filesystem @@ -543,8 +561,6 @@ union_vptofh(vp, fhp) return (EOPNOTSUPP); } -int union_init __P((void)); - struct vfsops union_vfsops = { union_mount, union_start, diff --git a/sys/fs/unionfs/union_vnops.c b/sys/fs/unionfs/union_vnops.c index 3955414..1a48432 100644 --- a/sys/fs/unionfs/union_vnops.c +++ b/sys/fs/unionfs/union_vnops.c @@ -35,7 +35,7 @@ * SUCH DAMAGE. * * @(#)union_vnops.c 8.6 (Berkeley) 2/17/94 - * $Id: union_vnops.c,v 1.12 1995/09/04 00:20:41 dyson Exp $ + * $Id: union_vnops.c,v 1.13 1995/11/09 08:16:38 bde Exp $ */ #include <sys/param.h> @@ -64,6 +64,45 @@ } \ } +extern int union_abortop __P((struct vop_abortop_args *ap)); +extern int union_access __P((struct vop_access_args *ap)); +extern int union_advlock __P((struct vop_advlock_args *ap)); +extern int union_bmap __P((struct vop_bmap_args *ap)); +extern int union_close __P((struct vop_close_args *ap)); +extern int union_create __P((struct vop_create_args *ap)); +static void union_fixup __P((struct union_node *un)); +extern int union_fsync __P((struct vop_fsync_args *ap)); +extern int union_getattr __P((struct vop_getattr_args *ap)); +extern int union_inactive __P((struct vop_inactive_args *ap)); +extern int union_ioctl __P((struct vop_ioctl_args *ap)); +extern int union_islocked __P((struct vop_islocked_args *ap)); +extern int union_link __P((struct vop_link_args *ap)); +extern int union_lock __P((struct vop_lock_args *ap)); +extern int union_lookup __P((struct vop_lookup_args *ap)); +static int union_lookup1 __P((struct vnode *udvp, struct vnode *dvp, + struct vnode **vpp, + struct componentname *cnp)); +extern int union_mkdir __P((struct vop_mkdir_args *ap)); +extern int union_mknod __P((struct vop_mknod_args *ap)); +extern int union_mmap __P((struct vop_mmap_args *ap)); +extern int union_open __P((struct vop_open_args *ap)); +extern int union_pathconf __P((struct vop_pathconf_args *ap)); +extern int union_print __P((struct vop_print_args *ap)); +extern int union_read __P((struct vop_read_args *ap)); +extern int union_readdir __P((struct vop_readdir_args *ap)); +extern int union_readlink __P((struct vop_readlink_args *ap)); +extern int union_reclaim __P((struct vop_reclaim_args *ap)); +extern int union_remove __P((struct vop_remove_args *ap)); +extern int union_rename __P((struct vop_rename_args *ap)); +extern int union_rmdir __P((struct vop_rmdir_args *ap)); +extern int union_seek __P((struct vop_seek_args *ap)); +extern int union_select __P((struct vop_select_args *ap)); +extern int union_setattr __P((struct vop_setattr_args *ap)); +extern int union_strategy __P((struct vop_strategy_args *ap)); +extern int union_symlink __P((struct vop_symlink_args *ap)); +extern int union_unlock __P((struct vop_lock_args *ap)); +extern int union_write __P((struct vop_read_args *ap)); + static void union_fixup(un) struct union_node *un; |