1/* $NetBSD: nfskpiport.h,v 1.2 2016/12/13 22:49:02 pgoyette Exp $ */ 2/*- 3 * Copyright (c) 2009 Rick Macklem, University of Guelph 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 16 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 18 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * 27 * FreeBSD: head/sys/fs/nfs/nfskpiport.h 207785 2010-05-08 14:50:12Z rmacklem 28 * $NetBSD: nfskpiport.h,v 1.2 2016/12/13 22:49:02 pgoyette Exp $ 29 */ 30 31#ifndef _NFS_NFSKPIPORT_H_ 32#define _NFS_NFSKPIPORT_H_ 33/* 34 * These definitions are needed since the generic code is now using Darwin8 35 * KPI stuff. (I know, seems a bit silly, but I want the code to build on 36 * Darwin8 and hopefully subsequent releases from Apple.) 37 */ 38typedef struct mount * mount_t; 39#define vfs_statfs(m) (&((m)->mnt_stat)) 40#define vfs_flags(m) ((m)->mnt_flag) 41 42#if 0 /* Predefined in NetBSD sys/vnode.h */ 43typedef struct vnode * vnode_t; 44#endif 45#define vnode_mount(v) ((v)->v_mount) 46#define vnode_vtype(v) ((v)->v_type) 47 48typedef struct mbuf * mbuf_t; 49#define mbuf_freem(m) m_freem(m) 50#define mbuf_data(m) mtod((m), void *) 51#define mbuf_len(m) ((m)->m_len) 52#define mbuf_next(m) ((m)->m_next) 53#define mbuf_setlen(m, l) ((m)->m_len = (l)) 54#define mbuf_setnext(m, p) ((m)->m_next = (p)) 55#define mbuf_pkthdr_len(m) ((m)->m_pkthdr.len) 56#define mbuf_pkthdr_setlen(m, l) ((m)->m_pkthdr.len = (l)) 57#define mbuf_pkthdr_setrcvif(m, p) ((m)->m_pkthdr.rcvif = (p)) 58 59/* 60 * This stuff is needed by Darwin for handling the uio structure. 61 */ 62#define CAST_USER_ADDR_T(a) (a) 63#define CAST_DOWN(c, a) ((c) (a)) 64#define uio_uio_resid(p) ((p)->uio_resid) 65#define uio_uio_resid_add(p, v) ((p)->uio_resid += (v)) 66#define uio_uio_resid_set(p, v) ((p)->uio_resid = (v)) 67#define uio_iov_base(p) ((p)->uio_iov->iov_base) 68#define uio_iov_base_add(p, v) do { \ 69 char *pp; \ 70 pp = (char *)(p)->uio_iov->iov_base; \ 71 pp += (v); \ 72 (p)->uio_iov->iov_base = (void *)pp; \ 73 } while (0) 74#define uio_iov_len(p) ((p)->uio_iov->iov_len) 75#define uio_iov_len_add(p, v) ((p)->uio_iov->iov_len += (v)) 76 77#endif /* _NFS_NFSKPIPORT_H */ 78