1 /*- 2 * Copyright (c) 1999 Boris Popov 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * 26 * $FreeBSD: stable/9/sys/fs/nwfs/nwfs.h 206361 2010-04-07 16:50:38Z joel $ 27 */ 28 29 #ifndef _NWFS_H_ 30 #define _NWFS_H_ 31 32 #include <netncp/ncp.h> 33 #include <fs/nwfs/nwfs_mount.h> 34 35 #define NR_OPEN 0 36 #define NW_NSB_DOS (1 << NW_NS_DOS) 37 #define NW_NSB_MAC (1 << NW_NS_MAC) 38 #define NW_NSB_NFS (1 << NW_NS_NFS) 39 #define NW_NSB_FTAM (1 << NW_NS_FTAM) 40 #define NW_NSB_OS2 (1 << NW_NS_OS2) 41 42 #define NWFSIOC_GETCONN _IOR('n',1,int) 43 #define NWFSIOC_GETEINFO _IOR('n',2,struct nw_entry_info) 44 #define NWFSIOC_GETNS _IOR('n',3,int) 45 46 #ifdef _KERNEL 47 48 #include <sys/vnode.h> 49 #include <sys/mount.h> 50 51 struct nwfsnode; 52 53 struct nwmount { 54 struct nwfs_args m; 55 struct mount *mp; 56 struct ncp_handle *connh; 57 int name_space; 58 struct nwnode *n_root; 59 u_int32_t n_volume; 60 ncpfid n_rootent; 61 int n_id; 62 }; 63 64 #define VFSTONWFS(mntp) ((struct nwmount *)((mntp)->mnt_data)) 65 #define NWFSTOVFS(mnp) ((struct mount *)((mnp)->mount)) 66 #define VTOVFS(vp) ((vp)->v_mount) 67 #define VTONWFS(vp) (VFSTONWFS(VTOVFS(vp))) 68 #define NWFSTOCONN(nmp) ((nmp)->connh->nh_conn) 69 70 int ncp_conn_logged_in(struct nwmount *); 71 int nwfs_ioctl(struct vop_ioctl_args *ap); 72 int nwfs_doio(struct vnode *vp, struct buf *bp, struct ucred *cr, struct thread *td); 73 int nwfs_vinvalbuf(struct vnode *vp, struct thread *td); 74 75 extern struct vop_vector nwfs_vnodeops; 76 77 #endif /* _KERNEL */ 78 79 #endif /* _NWFS_H_ */ 80