linprocfs - Introduce /proc/mounts
[dragonfly.git] / sys / sys / sysmsg.h
blobcd053d1e399967cb7eeaec34ab7898891ec089eb
1 /*
2 * SYS/SYSMSG.H
4 * $DragonFly: src/sys/sys/sysmsg.h,v 1.12 2008/08/25 23:35:47 dillon Exp $
5 */
7 #ifndef _SYS_SYSMSG_H_
8 #define _SYS_SYSMSG_H_
10 #ifdef _KERNEL
12 #ifndef _SYS_TYPES_H_
13 #include <sys/types.h>
14 #endif
17 * The sysmsg holds the kernelland version of a system call's arguments
18 * and return value. It typically preceeds the syscall arguments in sysunion
19 * (see sys/sysunion.h).
21 * WARNING: fds must be long so it translates to two 64 bit registers
22 * on 64 bit architectures.
24 union sysunion;
26 struct sysmsg {
27 union {
28 void *resultp; /* misc pointer data or result */
29 int result; /* DEPRECATED - AUDIT -> iresult */
30 int iresult; /* standard 'int'eger result */
31 long lresult; /* long result */
32 size_t szresult; /* size_t result */
33 long fds[2]; /* double result */
34 __int32_t result32; /* 32 bit result */
35 __int64_t result64; /* 64 bit result */
36 __off_t offset; /* off_t result */
37 register_t reg;
38 } sm_result;
39 struct trapframe *sm_frame; /* trapframe - saved user context */
40 void *sm_unused;
43 struct lwp;
44 union sysunion;
46 #endif
48 #ifdef _KERNEL
49 #define sysmsg_result sysmsg.sm_result.result
50 #define sysmsg_iresult sysmsg.sm_result.iresult
51 #define sysmsg_lresult sysmsg.sm_result.lresult
52 #define sysmsg_szresult sysmsg.sm_result.szresult
53 #define sysmsg_resultp sysmsg.sm_result.resultp
54 #define sysmsg_fds sysmsg.sm_result.fds
55 #define sysmsg_offset sysmsg.sm_result.offset
56 #define sysmsg_result32 sysmsg.sm_result.result32
57 #define sysmsg_result64 sysmsg.sm_result.result64
58 #define sysmsg_reg sysmsg.sm_result.reg
59 #define sysmsg_frame sysmsg.sm_frame
60 #endif
62 #endif