Add headers for OpenSolaris extensions that glibc implements
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / utssys.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, write to the Free
16    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17    02111-1307 USA.  */
18
19 #ifndef _SYS_UTSSYS_H
20 #define _SYS_UTSSYS_H
21
22 #include <sys/types.h>
23
24 #define UTS_UNAME       0x00
25 #define UTS_USTAT       0x02
26 #define UTS_FUSERS      0x03
27
28 /* UTS_FUSERS flags.  */
29 #define F_FILE_ONLY     0x01
30 #define F_CONTAINED     0x02
31 #define F_NBMANDLIST    0x04
32 #define F_DEVINFO       0x08
33 #define F_KINFO_COUNT   0x10
34
35 typedef struct f_user
36   {
37         int fu_flags;   /* see below */
38         union
39           {
40                 struct
41                   {
42                         pid_t u_pid;
43             uid_t u_uid;
44                   } u_info;
45         struct
46                   {
47                         int k_modid;
48                         int k_instance;
49                         int k_minor;
50                   } k_info;
51           } fu_info;
52   } f_user_t;
53
54 #define fu_pid          fu_info.u_info.u_pid
55 #define fu_uid          fu_info.u_info.u_uid
56 #define fu_modid        fu_info.k_info.k_modid
57 #define fu_instance     fu_info.k_info.k_instance
58 #define fu_minor        fu_info.k_info.k_minor
59
60 /* fu_flags values.  */
61 #define F_CDIR          0x01
62 #define F_RDIR          0x02
63 #define F_TEXT          0x04
64 #define F_MAP           0x08
65 #define F_OPEN          0x10
66 #define F_TRACE         0x20
67 #define F_TTY           0x40
68 #define F_NBM           0x80
69 #define F_KERNEL        0x80000000
70
71 typedef struct fu_data
72   {
73         int fud_user_max;
74         int fud_user_count;
75         struct f_user fud_user[1];
76   } fu_data_t;
77
78 #define fu_data_size(x) (sizeof(fu_data_t) - sizeof(f_user_t) + \
79         ((x) * sizeof(f_user_t)))
80
81 #endif /* _SYS_UTSSYS_H */