Add headers for OpenSolaris extensions that glibc implements
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / port.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef _SYS_PORT_H
21 #define _SYS_PORT_H
22
23 #include <sys/types.h>
24
25 #define PORT_SOURCE_AIO         1
26 #define PORT_SOURCE_TIMER       2
27 #define PORT_SOURCE_USER        3
28 #define PORT_SOURCE_FD          4
29 #define PORT_SOURCE_ALERT       5
30 #define PORT_SOURCE_MQ          6
31 #define PORT_SOURCE_FILE        7
32
33 typedef struct port_event
34   {
35         int portev_events;
36         unsigned short portev_source;
37         unsigned short portev_pad;
38         uintptr_t portev_object;
39         void *portev_user;
40   } port_event_t;
41
42 typedef struct  port_notify
43   {
44         int portnfy_port;
45         void *portnfy_user;
46   } port_notify_t;
47
48 typedef struct file_obj
49   {
50         struct timespec fo_atime;
51     struct timespec fo_mtime;
52     struct timespec fo_ctime;
53     uintptr_t fo_pad[3];
54     char *fo_name;
55   } file_obj_t;
56
57 #define PORT_ALERT_SET          0x01
58 #define PORT_ALERT_UPDATE       0x02
59 #define PORT_ALERT_INVALID      (PORT_ALERT_SET | PORT_ALERT_UPDATE)
60
61 #define FILE_ACCESS             0x00000001
62 #define FILE_MODIFIED           0x00000002
63 #define FILE_ATTRIB             0x00000004
64 #define FILE_NOFOLLOW           0x10000000
65
66 #define FILE_DELETE             0x00000010
67 #define FILE_RENAME_TO          0x00000020
68 #define FILE_RENAME_FROM        0x00000040
69
70 #define UNMOUNTED       0x20000000
71
72 #define MOUNTEDOVER     0x40000000
73
74 #define FILE_EXCEPTION  (UNMOUNTED | FILE_DELETE | FILE_RENAME_TO | \
75         FILE_RENAME_FROM | MOUNTEDOVER)
76
77 #endif /* _SYS_PORT_H */