2 * Copyright (c) 2001 Doug Rabson
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
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.
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
29 #ifndef _COMPAT_FREEBSD32_FREEBSD32_H_
30 #define _COMPAT_FREEBSD32_FREEBSD32_H_
32 #define PTRIN(v) (void *)(uintptr_t) (v)
33 #define PTROUT(v) (u_int32_t)(uintptr_t) (v)
35 #define CP(src,dst,fld) do { (dst).fld = (src).fld; } while (0)
36 #define PTRIN_CP(src,dst,fld) \
37 do { (dst).fld = PTRIN((src).fld); } while (0)
38 #define PTROUT_CP(src,dst,fld) \
39 do { (dst).fld = PTROUT((src).fld); } while (0)
45 #define TV_CP(src,dst,fld) do { \
46 CP((src).fld,(dst).fld,tv_sec); \
47 CP((src).fld,(dst).fld,tv_usec); \
54 #define TS_CP(src,dst,fld) do { \
55 CP((src).fld,(dst).fld,tv_sec); \
56 CP((src).fld,(dst).fld,tv_nsec); \
60 struct timeval32 ru_utime;
61 struct timeval32 ru_stime;
79 struct timeval32 it_interval;
80 struct timeval32 it_value;
83 #define FREEBSD4_MNAMELEN (88 - 2 * sizeof(int32_t)) /* size of on/from name bufs */
100 int32_t f_asyncwrites;
101 char f_fstypename[MFSNAMELEN];
102 char f_mntonname[FREEBSD4_MNAMELEN];
104 int32_t f_asyncreads;
106 char f_mntfromname[FREEBSD4_MNAMELEN];
107 int16_t f_spares2 __packed;
112 u_int32_t ident; /* identifier for this event */
113 short filter; /* filter for event */
117 u_int32_t udata; /* opaque user data identifier */
127 socklen_t msg_namelen;
130 u_int32_t msg_control;
131 socklen_t msg_controllen;
143 struct timespec32 st_atimespec;
144 struct timespec32 st_mtimespec;
145 struct timespec32 st_ctimespec;
148 u_int32_t st_blksize;
151 struct timespec32 st_birthtimespec;
152 unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
153 unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
194 #endif /* !_COMPAT_FREEBSD32_FREEBSD32_H_ */