diff options
Diffstat (limited to 'sysdeps/mach/hurd/bits')
-rw-r--r-- | sysdeps/mach/hurd/bits/errno.h | 705 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/fcntl.h | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/ioctls.h | 2 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/local_lim.h | 11 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/param.h | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/posix_opt.h | 54 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/socket.h | 41 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/stat.h | 7 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/statfs.h | 18 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/statvfs.h | 18 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/sysmacros.h | 60 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/types/error_t.h | 29 | ||||
-rw-r--r-- | sysdeps/mach/hurd/bits/typesizes.h | 2 |
13 files changed, 583 insertions, 372 deletions
diff --git a/sysdeps/mach/hurd/bits/errno.h b/sysdeps/mach/hurd/bits/errno.h index d20ffe654a..8096fb9c05 100644 --- a/sysdeps/mach/hurd/bits/errno.h +++ b/sysdeps/mach/hurd/bits/errno.h @@ -1,329 +1,414 @@ -/* This file generated by errnos.awk. */ +/* This file generated by errnos.awk from + errno.texi + mach/message.h + mach/kern_return.h + mach/mig_errors.h + device/device_types.h + Do not edit this file; edit errnos.awk and regenerate it. */ -/* The Hurd uses Mach error system 0x10, currently only subsystem 0. */ -#ifndef _HURD_ERRNO -#define _HURD_ERRNO(n) ((0x10 << 26) | ((n) & 0x3fff)) +#ifndef _BITS_ERRNO_H +#define _BITS_ERRNO_H 1 + +#if !defined _ERRNO_H +# error "Never include <bits/errno.h> directly; use <errno.h> instead." #endif -#ifdef _ERRNO_H +#ifndef __ASSEMBLER__ enum __error_t_codes { - /* The value zero always means success and it is perfectly fine for - code to use 0 explicitly (or implicitly, e.g. via Boolean coercion). - Having an enum entry for zero both makes the debugger print the name - for error_t-typed zero values, and prevents the compiler from - issuing warnings about 'case 0:' in a switch on an error_t-typed - value. */ - ESUCCESS = 0, + /* The value zero always means success and it is perfectly fine + for code to use 0 explicitly (or implicitly, e.g. via Boolean + coercion.) Having an enum entry for zero both makes the + debugger print the name for error_t-typed zero values, and + prevents the compiler from issuing warnings about 'case 0:' + in a switch on an error_t-typed value. */ + ESUCCESS = 0, -#undef EDOM -#undef ERANGE - EPERM = _HURD_ERRNO (1), -#define EPERM _HURD_ERRNO (1) /* Operation not permitted */ - ENOENT = _HURD_ERRNO (2), -#define ENOENT _HURD_ERRNO (2) /* No such file or directory */ - ESRCH = _HURD_ERRNO (3), -#define ESRCH _HURD_ERRNO (3) /* No such process */ - EINTR = _HURD_ERRNO (4), -#define EINTR _HURD_ERRNO (4) /* Interrupted system call */ - EIO = _HURD_ERRNO (5), -#define EIO _HURD_ERRNO (5) /* Input/output error */ - ENXIO = _HURD_ERRNO (6), -#define ENXIO _HURD_ERRNO (6) /* No such device or address */ - E2BIG = _HURD_ERRNO (7), -#define E2BIG _HURD_ERRNO (7) /* Argument list too long */ - ENOEXEC = _HURD_ERRNO (8), -#define ENOEXEC _HURD_ERRNO (8) /* Exec format error */ - EBADF = _HURD_ERRNO (9), -#define EBADF _HURD_ERRNO (9) /* Bad file descriptor */ - ECHILD = _HURD_ERRNO (10), -#define ECHILD _HURD_ERRNO (10)/* No child processes */ - EDEADLK = _HURD_ERRNO (11), -#define EDEADLK _HURD_ERRNO (11)/* Resource deadlock avoided */ - ENOMEM = _HURD_ERRNO (12), -#define ENOMEM _HURD_ERRNO (12)/* Cannot allocate memory */ - EACCES = _HURD_ERRNO (13), -#define EACCES _HURD_ERRNO (13)/* Permission denied */ - EFAULT = _HURD_ERRNO (14), -#define EFAULT _HURD_ERRNO (14)/* Bad address */ - ENOTBLK = _HURD_ERRNO (15), -#define ENOTBLK _HURD_ERRNO (15)/* Block device required */ - EBUSY = _HURD_ERRNO (16), -#define EBUSY _HURD_ERRNO (16)/* Device or resource busy */ - EEXIST = _HURD_ERRNO (17), -#define EEXIST _HURD_ERRNO (17)/* File exists */ - EXDEV = _HURD_ERRNO (18), -#define EXDEV _HURD_ERRNO (18)/* Invalid cross-device link */ - ENODEV = _HURD_ERRNO (19), -#define ENODEV _HURD_ERRNO (19)/* No such device */ - ENOTDIR = _HURD_ERRNO (20), -#define ENOTDIR _HURD_ERRNO (20)/* Not a directory */ - EISDIR = _HURD_ERRNO (21), -#define EISDIR _HURD_ERRNO (21)/* Is a directory */ - EINVAL = _HURD_ERRNO (22), -#define EINVAL _HURD_ERRNO (22)/* Invalid argument */ - EMFILE = _HURD_ERRNO (24), -#define EMFILE _HURD_ERRNO (24)/* Too many open files */ - ENFILE = _HURD_ERRNO (23), -#define ENFILE _HURD_ERRNO (23)/* Too many open files in system */ - ENOTTY = _HURD_ERRNO (25), -#define ENOTTY _HURD_ERRNO (25)/* Inappropriate ioctl for device */ - ETXTBSY = _HURD_ERRNO (26), -#define ETXTBSY _HURD_ERRNO (26)/* Text file busy */ - EFBIG = _HURD_ERRNO (27), -#define EFBIG _HURD_ERRNO (27)/* File too large */ - ENOSPC = _HURD_ERRNO (28), -#define ENOSPC _HURD_ERRNO (28)/* No space left on device */ - ESPIPE = _HURD_ERRNO (29), -#define ESPIPE _HURD_ERRNO (29)/* Illegal seek */ - EROFS = _HURD_ERRNO (30), -#define EROFS _HURD_ERRNO (30)/* Read-only file system */ - EMLINK = _HURD_ERRNO (31), -#define EMLINK _HURD_ERRNO (31)/* Too many links */ - EPIPE = _HURD_ERRNO (32), -#define EPIPE _HURD_ERRNO (32)/* Broken pipe */ - EDOM = _HURD_ERRNO (33), -#define EDOM _HURD_ERRNO (33)/* Numerical argument out of domain */ - ERANGE = _HURD_ERRNO (34), -#define ERANGE _HURD_ERRNO (34)/* Numerical result out of range */ - EAGAIN = _HURD_ERRNO (35), -#define EAGAIN _HURD_ERRNO (35)/* Resource temporarily unavailable */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ - EINPROGRESS = _HURD_ERRNO (36), -#define EINPROGRESS _HURD_ERRNO (36)/* Operation now in progress */ - EALREADY = _HURD_ERRNO (37), -#define EALREADY _HURD_ERRNO (37)/* Operation already in progress */ - ENOTSOCK = _HURD_ERRNO (38), -#define ENOTSOCK _HURD_ERRNO (38)/* Socket operation on non-socket */ - EMSGSIZE = _HURD_ERRNO (40), -#define EMSGSIZE _HURD_ERRNO (40)/* Message too long */ - EPROTOTYPE = _HURD_ERRNO (41), -#define EPROTOTYPE _HURD_ERRNO (41)/* Protocol wrong type for socket */ - ENOPROTOOPT = _HURD_ERRNO (42), -#define ENOPROTOOPT _HURD_ERRNO (42)/* Protocol not available */ - EPROTONOSUPPORT = _HURD_ERRNO (43), -#define EPROTONOSUPPORT _HURD_ERRNO (43)/* Protocol not supported */ - ESOCKTNOSUPPORT = _HURD_ERRNO (44), -#define ESOCKTNOSUPPORT _HURD_ERRNO (44)/* Socket type not supported */ - EOPNOTSUPP = _HURD_ERRNO (45), -#define EOPNOTSUPP _HURD_ERRNO (45)/* Operation not supported */ - EPFNOSUPPORT = _HURD_ERRNO (46), -#define EPFNOSUPPORT _HURD_ERRNO (46)/* Protocol family not supported */ - EAFNOSUPPORT = _HURD_ERRNO (47), -#define EAFNOSUPPORT _HURD_ERRNO (47)/* Address family not supported by protocol */ - EADDRINUSE = _HURD_ERRNO (48), -#define EADDRINUSE _HURD_ERRNO (48)/* Address already in use */ - EADDRNOTAVAIL = _HURD_ERRNO (49), -#define EADDRNOTAVAIL _HURD_ERRNO (49)/* Cannot assign requested address */ - ENETDOWN = _HURD_ERRNO (50), -#define ENETDOWN _HURD_ERRNO (50)/* Network is down */ - ENETUNREACH = _HURD_ERRNO (51), -#define ENETUNREACH _HURD_ERRNO (51)/* Network is unreachable */ - ENETRESET = _HURD_ERRNO (52), -#define ENETRESET _HURD_ERRNO (52)/* Network dropped connection on reset */ - ECONNABORTED = _HURD_ERRNO (53), -#define ECONNABORTED _HURD_ERRNO (53)/* Software caused connection abort */ - ECONNRESET = _HURD_ERRNO (54), -#define ECONNRESET _HURD_ERRNO (54)/* Connection reset by peer */ - ENOBUFS = _HURD_ERRNO (55), -#define ENOBUFS _HURD_ERRNO (55)/* No buffer space available */ - EISCONN = _HURD_ERRNO (56), -#define EISCONN _HURD_ERRNO (56)/* Transport endpoint is already connected */ - ENOTCONN = _HURD_ERRNO (57), -#define ENOTCONN _HURD_ERRNO (57)/* Transport endpoint is not connected */ - EDESTADDRREQ = _HURD_ERRNO (39), -#define EDESTADDRREQ _HURD_ERRNO (39)/* Destination address required */ - ESHUTDOWN = _HURD_ERRNO (58), -#define ESHUTDOWN _HURD_ERRNO (58)/* Cannot send after transport endpoint shutdown */ - ETOOMANYREFS = _HURD_ERRNO (59), -#define ETOOMANYREFS _HURD_ERRNO (59)/* Too many references: cannot splice */ - ETIMEDOUT = _HURD_ERRNO (60), -#define ETIMEDOUT _HURD_ERRNO (60)/* Connection timed out */ - ECONNREFUSED = _HURD_ERRNO (61), -#define ECONNREFUSED _HURD_ERRNO (61)/* Connection refused */ - ELOOP = _HURD_ERRNO (62), -#define ELOOP _HURD_ERRNO (62)/* Too many levels of symbolic links */ - ENAMETOOLONG = _HURD_ERRNO (63), -#define ENAMETOOLONG _HURD_ERRNO (63)/* File name too long */ - EHOSTDOWN = _HURD_ERRNO (64), -#define EHOSTDOWN _HURD_ERRNO (64)/* Host is down */ - EHOSTUNREACH = _HURD_ERRNO (65), -#define EHOSTUNREACH _HURD_ERRNO (65)/* No route to host */ - ENOTEMPTY = _HURD_ERRNO (66), -#define ENOTEMPTY _HURD_ERRNO (66)/* Directory not empty */ - EPROCLIM = _HURD_ERRNO (67), -#define EPROCLIM _HURD_ERRNO (67)/* Too many processes */ - EUSERS = _HURD_ERRNO (68), -#define EUSERS _HURD_ERRNO (68)/* Too many users */ - EDQUOT = _HURD_ERRNO (69), -#define EDQUOT _HURD_ERRNO (69)/* Disk quota exceeded */ - ESTALE = _HURD_ERRNO (70), -#define ESTALE _HURD_ERRNO (70)/* Stale file handle */ - EREMOTE = _HURD_ERRNO (71), -#define EREMOTE _HURD_ERRNO (71)/* Object is remote */ - EBADRPC = _HURD_ERRNO (72), -#define EBADRPC _HURD_ERRNO (72)/* RPC struct is bad */ - ERPCMISMATCH = _HURD_ERRNO (73), -#define ERPCMISMATCH _HURD_ERRNO (73)/* RPC version wrong */ - EPROGUNAVAIL = _HURD_ERRNO (74), -#define EPROGUNAVAIL _HURD_ERRNO (74)/* RPC program not available */ - EPROGMISMATCH = _HURD_ERRNO (75), -#define EPROGMISMATCH _HURD_ERRNO (75)/* RPC program version wrong */ - EPROCUNAVAIL = _HURD_ERRNO (76), -#define EPROCUNAVAIL _HURD_ERRNO (76)/* RPC bad procedure for program */ - ENOLCK = _HURD_ERRNO (77), -#define ENOLCK _HURD_ERRNO (77)/* No locks available */ - EFTYPE = _HURD_ERRNO (79), -#define EFTYPE _HURD_ERRNO (79)/* Inappropriate file type or format */ - EAUTH = _HURD_ERRNO (80), -#define EAUTH _HURD_ERRNO (80)/* Authentication error */ - ENEEDAUTH = _HURD_ERRNO (81), -#define ENEEDAUTH _HURD_ERRNO (81)/* Need authenticator */ - ENOSYS = _HURD_ERRNO (78), -#define ENOSYS _HURD_ERRNO (78)/* Function not implemented */ - ENOTSUP = _HURD_ERRNO (118), -#define ENOTSUP _HURD_ERRNO (118)/* Not supported */ - EILSEQ = _HURD_ERRNO (106), -#define EILSEQ _HURD_ERRNO (106)/* Invalid or incomplete multibyte or wide character */ - EBACKGROUND = _HURD_ERRNO (100), -#define EBACKGROUND _HURD_ERRNO (100)/* Inappropriate operation for background process */ - EDIED = _HURD_ERRNO (101), -#define EDIED _HURD_ERRNO (101)/* Translator died */ - ED = _HURD_ERRNO (102), -#define ED _HURD_ERRNO (102)/* ? */ - EGREGIOUS = _HURD_ERRNO (103), -#define EGREGIOUS _HURD_ERRNO (103)/* You really blew it this time */ - EIEIO = _HURD_ERRNO (104), -#define EIEIO _HURD_ERRNO (104)/* Computer bought the farm */ - EGRATUITOUS = _HURD_ERRNO (105), -#define EGRATUITOUS _HURD_ERRNO (105)/* Gratuitous error */ - EBADMSG = _HURD_ERRNO (107), -#define EBADMSG _HURD_ERRNO (107)/* Bad message */ - EIDRM = _HURD_ERRNO (108), -#define EIDRM _HURD_ERRNO (108)/* Identifier removed */ - EMULTIHOP = _HURD_ERRNO (109), -#define EMULTIHOP _HURD_ERRNO (109)/* Multihop attempted */ - ENODATA = _HURD_ERRNO (110), -#define ENODATA _HURD_ERRNO (110)/* No data available */ - ENOLINK = _HURD_ERRNO (111), -#define ENOLINK _HURD_ERRNO (111)/* Link has been severed */ - ENOMSG = _HURD_ERRNO (112), -#define ENOMSG _HURD_ERRNO (112)/* No message of desired type */ - ENOSR = _HURD_ERRNO (113), -#define ENOSR _HURD_ERRNO (113)/* Out of streams resources */ - ENOSTR = _HURD_ERRNO (114), -#define ENOSTR _HURD_ERRNO (114)/* Device not a stream */ - EOVERFLOW = _HURD_ERRNO (115), -#define EOVERFLOW _HURD_ERRNO (115)/* Value too large for defined data type */ - EPROTO = _HURD_ERRNO (116), -#define EPROTO _HURD_ERRNO (116)/* Protocol error */ - ETIME = _HURD_ERRNO (117), -#define ETIME _HURD_ERRNO (117)/* Timer expired */ - ECANCELED = _HURD_ERRNO (119), -#define ECANCELED _HURD_ERRNO (119)/* Operation canceled */ + /* The Hurd uses Mach error system 0x10, subsystem 0. */ + EPERM = 0x40000001, /* Operation not permitted */ + ENOENT = 0x40000002, /* No such file or directory */ + ESRCH = 0x40000003, /* No such process */ + EINTR = 0x40000004, /* Interrupted system call */ + EIO = 0x40000005, /* Input/output error */ + ENXIO = 0x40000006, /* No such device or address */ + E2BIG = 0x40000007, /* Argument list too long */ + ENOEXEC = 0x40000008, /* Exec format error */ + EBADF = 0x40000009, /* Bad file descriptor */ + ECHILD = 0x4000000a, /* No child processes */ + EDEADLK = 0x4000000b, /* Resource deadlock avoided */ + ENOMEM = 0x4000000c, /* Cannot allocate memory */ + EACCES = 0x4000000d, /* Permission denied */ + EFAULT = 0x4000000e, /* Bad address */ + ENOTBLK = 0x4000000f, /* Block device required */ + EBUSY = 0x40000010, /* Device or resource busy */ + EEXIST = 0x40000011, /* File exists */ + EXDEV = 0x40000012, /* Invalid cross-device link */ + ENODEV = 0x40000013, /* No such device */ + ENOTDIR = 0x40000014, /* Not a directory */ + EISDIR = 0x40000015, /* Is a directory */ + EINVAL = 0x40000016, /* Invalid argument */ + EMFILE = 0x40000018, /* Too many open files */ + ENFILE = 0x40000017, /* Too many open files in system */ + ENOTTY = 0x40000019, /* Inappropriate ioctl for device */ + ETXTBSY = 0x4000001a, /* Text file busy */ + EFBIG = 0x4000001b, /* File too large */ + ENOSPC = 0x4000001c, /* No space left on device */ + ESPIPE = 0x4000001d, /* Illegal seek */ + EROFS = 0x4000001e, /* Read-only file system */ + EMLINK = 0x4000001f, /* Too many links */ + EPIPE = 0x40000020, /* Broken pipe */ + EDOM = 0x40000021, /* Numerical argument out of domain */ + ERANGE = 0x40000022, /* Numerical result out of range */ + EAGAIN = 0x40000023, /* Resource temporarily unavailable */ + EINPROGRESS = 0x40000024, /* Operation now in progress */ + EALREADY = 0x40000025, /* Operation already in progress */ + ENOTSOCK = 0x40000026, /* Socket operation on non-socket */ + EMSGSIZE = 0x40000028, /* Message too long */ + EPROTOTYPE = 0x40000029, /* Protocol wrong type for socket */ + ENOPROTOOPT = 0x4000002a, /* Protocol not available */ + EPROTONOSUPPORT = 0x4000002b, /* Protocol not supported */ + ESOCKTNOSUPPORT = 0x4000002c, /* Socket type not supported */ + EOPNOTSUPP = 0x4000002d, /* Operation not supported */ + EPFNOSUPPORT = 0x4000002e, /* Protocol family not supported */ + EAFNOSUPPORT = 0x4000002f, /* Address family not supported by protocol */ + EADDRINUSE = 0x40000030, /* Address already in use */ + EADDRNOTAVAIL = 0x40000031, /* Cannot assign requested address */ + ENETDOWN = 0x40000032, /* Network is down */ + ENETUNREACH = 0x40000033, /* Network is unreachable */ + ENETRESET = 0x40000034, /* Network dropped connection on reset */ + ECONNABORTED = 0x40000035, /* Software caused connection abort */ + ECONNRESET = 0x40000036, /* Connection reset by peer */ + ENOBUFS = 0x40000037, /* No buffer space available */ + EISCONN = 0x40000038, /* Transport endpoint is already connected */ + ENOTCONN = 0x40000039, /* Transport endpoint is not connected */ + EDESTADDRREQ = 0x40000027, /* Destination address required */ + ESHUTDOWN = 0x4000003a, /* Cannot send after transport endpoint shutdown */ + ETOOMANYREFS = 0x4000003b, /* Too many references: cannot splice */ + ETIMEDOUT = 0x4000003c, /* Connection timed out */ + ECONNREFUSED = 0x4000003d, /* Connection refused */ + ELOOP = 0x4000003e, /* Too many levels of symbolic links */ + ENAMETOOLONG = 0x4000003f, /* File name too long */ + EHOSTDOWN = 0x40000040, /* Host is down */ + EHOSTUNREACH = 0x40000041, /* No route to host */ + ENOTEMPTY = 0x40000042, /* Directory not empty */ + EPROCLIM = 0x40000043, /* Too many processes */ + EUSERS = 0x40000044, /* Too many users */ + EDQUOT = 0x40000045, /* Disk quota exceeded */ + ESTALE = 0x40000046, /* Stale file handle */ + EREMOTE = 0x40000047, /* Object is remote */ + EBADRPC = 0x40000048, /* RPC struct is bad */ + ERPCMISMATCH = 0x40000049, /* RPC version wrong */ + EPROGUNAVAIL = 0x4000004a, /* RPC program not available */ + EPROGMISMATCH = 0x4000004b, /* RPC program version wrong */ + EPROCUNAVAIL = 0x4000004c, /* RPC bad procedure for program */ + ENOLCK = 0x4000004d, /* No locks available */ + EFTYPE = 0x4000004f, /* Inappropriate file type or format */ + EAUTH = 0x40000050, /* Authentication error */ + ENEEDAUTH = 0x40000051, /* Need authenticator */ + ENOSYS = 0x4000004e, /* Function not implemented */ + ENOTSUP = 0x40000076, /* Not supported */ + EILSEQ = 0x4000006a, /* Invalid or incomplete multibyte or wide character */ + EBACKGROUND = 0x40000064, /* Inappropriate operation for background process */ + EDIED = 0x40000065, /* Translator died */ + ED = 0x40000066, /* ? */ + EGREGIOUS = 0x40000067, /* You really blew it this time */ + EIEIO = 0x40000068, /* Computer bought the farm */ + EGRATUITOUS = 0x40000069, /* Gratuitous error */ + EBADMSG = 0x4000006b, /* Bad message */ + EIDRM = 0x4000006c, /* Identifier removed */ + EMULTIHOP = 0x4000006d, /* Multihop attempted */ + ENODATA = 0x4000006e, /* No data available */ + ENOLINK = 0x4000006f, /* Link has been severed */ + ENOMSG = 0x40000070, /* No message of desired type */ + ENOSR = 0x40000071, /* Out of streams resources */ + ENOSTR = 0x40000072, /* Device not a stream */ + EOVERFLOW = 0x40000073, /* Value too large for defined data type */ + EPROTO = 0x40000074, /* Protocol error */ + ETIME = 0x40000075, /* Timer expired */ + ECANCELED = 0x40000077, /* Operation canceled */ + EOWNERDEAD = 0x40000078, /* Owner died */ + ENOTRECOVERABLE = 0x40000079, /* State not recoverable */ - /* Errors from <mach/message.h>. */ - EMACH_SEND_IN_PROGRESS = 0x10000001, - EMACH_SEND_INVALID_DATA = 0x10000002, - EMACH_SEND_INVALID_DEST = 0x10000003, - EMACH_SEND_TIMED_OUT = 0x10000004, - EMACH_SEND_WILL_NOTIFY = 0x10000005, - EMACH_SEND_NOTIFY_IN_PROGRESS = 0x10000006, - EMACH_SEND_INTERRUPTED = 0x10000007, - EMACH_SEND_MSG_TOO_SMALL = 0x10000008, - EMACH_SEND_INVALID_REPLY = 0x10000009, - EMACH_SEND_INVALID_RIGHT = 0x1000000a, - EMACH_SEND_INVALID_NOTIFY = 0x1000000b, - EMACH_SEND_INVALID_MEMORY = 0x1000000c, - EMACH_SEND_NO_BUFFER = 0x1000000d, - EMACH_SEND_NO_NOTIFY = 0x1000000e, - EMACH_SEND_INVALID_TYPE = 0x1000000f, - EMACH_SEND_INVALID_HEADER = 0x10000010, - EMACH_RCV_IN_PROGRESS = 0x10004001, - EMACH_RCV_INVALID_NAME = 0x10004002, - EMACH_RCV_TIMED_OUT = 0x10004003, - EMACH_RCV_TOO_LARGE = 0x10004004, - EMACH_RCV_INTERRUPTED = 0x10004005, - EMACH_RCV_PORT_CHANGED = 0x10004006, - EMACH_RCV_INVALID_NOTIFY = 0x10004007, - EMACH_RCV_INVALID_DATA = 0x10004008, - EMACH_RCV_PORT_DIED = 0x10004009, - EMACH_RCV_IN_SET = 0x1000400a, - EMACH_RCV_HEADER_ERROR = 0x1000400b, - EMACH_RCV_BODY_ERROR = 0x1000400c, +/* Errors from <mach/message.h>. */ + EMACH_SEND_IN_PROGRESS = 0x10000001, + EMACH_SEND_INVALID_DATA = 0x10000002, + EMACH_SEND_INVALID_DEST = 0x10000003, + EMACH_SEND_TIMED_OUT = 0x10000004, + EMACH_SEND_WILL_NOTIFY = 0x10000005, + EMACH_SEND_NOTIFY_IN_PROGRESS = 0x10000006, + EMACH_SEND_INTERRUPTED = 0x10000007, + EMACH_SEND_MSG_TOO_SMALL = 0x10000008, + EMACH_SEND_INVALID_REPLY = 0x10000009, + EMACH_SEND_INVALID_RIGHT = 0x1000000a, + EMACH_SEND_INVALID_NOTIFY = 0x1000000b, + EMACH_SEND_INVALID_MEMORY = 0x1000000c, + EMACH_SEND_NO_BUFFER = 0x1000000d, + EMACH_SEND_NO_NOTIFY = 0x1000000e, + EMACH_SEND_INVALID_TYPE = 0x1000000f, + EMACH_SEND_INVALID_HEADER = 0x10000010, + EMACH_RCV_IN_PROGRESS = 0x10004001, + EMACH_RCV_INVALID_NAME = 0x10004002, + EMACH_RCV_TIMED_OUT = 0x10004003, + EMACH_RCV_TOO_LARGE = 0x10004004, + EMACH_RCV_INTERRUPTED = 0x10004005, + EMACH_RCV_PORT_CHANGED = 0x10004006, + EMACH_RCV_INVALID_NOTIFY = 0x10004007, + EMACH_RCV_INVALID_DATA = 0x10004008, + EMACH_RCV_PORT_DIED = 0x10004009, + EMACH_RCV_IN_SET = 0x1000400a, + EMACH_RCV_HEADER_ERROR = 0x1000400b, + EMACH_RCV_BODY_ERROR = 0x1000400c, - /* Errors from <mach/kern_return.h>. */ - EKERN_INVALID_ADDRESS = 1, - EKERN_PROTECTION_FAILURE = 2, - EKERN_NO_SPACE = 3, - EKERN_INVALID_ARGUMENT = 4, - EKERN_FAILURE = 5, - EKERN_RESOURCE_SHORTAGE = 6, - EKERN_NOT_RECEIVER = 7, - EKERN_NO_ACCESS = 8, - EKERN_MEMORY_FAILURE = 9, - EKERN_MEMORY_ERROR = 10, - EKERN_NOT_IN_SET = 12, - EKERN_NAME_EXISTS = 13, - EKERN_ABORTED = 14, - EKERN_INVALID_NAME = 15, - EKERN_INVALID_TASK = 16, - EKERN_INVALID_RIGHT = 17, - EKERN_INVALID_VALUE = 18, - EKERN_UREFS_OVERFLOW = 19, - EKERN_INVALID_CAPABILITY = 20, - EKERN_RIGHT_EXISTS = 21, - EKERN_INVALID_HOST = 22, - EKERN_MEMORY_PRESENT = 23, - EKERN_WRITE_PROTECTION_FAILURE = 24, - EKERN_TERMINATED = 26, +/* Errors from <mach/kern_return.h>. */ + EKERN_INVALID_ADDRESS = 1, + EKERN_PROTECTION_FAILURE = 2, + EKERN_NO_SPACE = 3, + EKERN_INVALID_ARGUMENT = 4, + EKERN_FAILURE = 5, + EKERN_RESOURCE_SHORTAGE = 6, + EKERN_NOT_RECEIVER = 7, + EKERN_NO_ACCESS = 8, + EKERN_MEMORY_FAILURE = 9, + EKERN_MEMORY_ERROR = 10, + EKERN_NOT_IN_SET = 12, + EKERN_NAME_EXISTS = 13, + EKERN_ABORTED = 14, + EKERN_INVALID_NAME = 15, + EKERN_INVALID_TASK = 16, + EKERN_INVALID_RIGHT = 17, + EKERN_INVALID_VALUE = 18, + EKERN_UREFS_OVERFLOW = 19, + EKERN_INVALID_CAPABILITY = 20, + EKERN_RIGHT_EXISTS = 21, + EKERN_INVALID_HOST = 22, + EKERN_MEMORY_PRESENT = 23, + EKERN_WRITE_PROTECTION_FAILURE = 24, + EKERN_TERMINATED = 26, + EKERN_TIMEDOUT = 27, + EKERN_INTERRUPTED = 28, - /* Errors from <mach/mig_errors.h>. */ - EMIG_TYPE_ERROR = -300 /* client type check failure */, - EMIG_REPLY_MISMATCH = -301 /* wrong reply message ID */, - EMIG_REMOTE_ERROR = -302 /* server detected error */, - EMIG_BAD_ID = -303 /* bad request message ID */, - EMIG_BAD_ARGUMENTS = -304 /* server type check failure */, - EMIG_NO_REPLY = -305 /* no reply should be sent */, - EMIG_EXCEPTION = -306 /* server raised exception */, - EMIG_ARRAY_TOO_LARGE = -307 /* array not large enough */, - EMIG_SERVER_DIED = -308 /* server died */, - EMIG_DESTROY_REQUEST = -309 /* destroy request with no reply */, +/* Errors from <mach/mig_errors.h>. */ + EMIG_TYPE_ERROR = -300, /* client type check failure */ + EMIG_REPLY_MISMATCH = -301, /* wrong reply message ID */ + EMIG_REMOTE_ERROR = -302, /* server detected error */ + EMIG_BAD_ID = -303, /* bad request message ID */ + EMIG_BAD_ARGUMENTS = -304, /* server type check failure */ + EMIG_NO_REPLY = -305, /* no reply should be sent */ + EMIG_EXCEPTION = -306, /* server raised exception */ + EMIG_ARRAY_TOO_LARGE = -307, /* array not large enough */ + EMIG_SERVER_DIED = -308, /* server died */ + EMIG_DESTROY_REQUEST = -309, /* destroy request with no reply */ - /* Errors from <device/device_types.h>. */ - ED_IO_ERROR = 2500 /* hardware IO error */, - ED_WOULD_BLOCK = 2501 /* would block, but D_NOWAIT set */, - ED_NO_SUCH_DEVICE = 2502 /* no such device */, - ED_ALREADY_OPEN = 2503 /* exclusive-use device already open */, - ED_DEVICE_DOWN = 2504 /* device has been shut down */, - ED_INVALID_OPERATION = 2505 /* bad operation for device */, - ED_INVALID_RECNUM = 2506 /* invalid record (block) number */, - ED_INVALID_SIZE = 2507 /* invalid IO size */, - ED_NO_MEMORY = 2508 /* memory allocation failure */, - ED_READ_ONLY = 2509 /* device cannot be written to */ +/* Errors from <device/device_types.h>. */ + ED_IO_ERROR = 2500, /* hardware IO error */ + ED_WOULD_BLOCK = 2501, /* would block, but D_NOWAIT set */ + ED_NO_SUCH_DEVICE = 2502, /* no such device */ + ED_ALREADY_OPEN = 2503, /* exclusive-use device already open */ + ED_DEVICE_DOWN = 2504, /* device has been shut down */ + ED_INVALID_OPERATION = 2505, /* bad operation for device */ + ED_INVALID_RECNUM = 2506, /* invalid record (block) number */ + ED_INVALID_SIZE = 2507, /* invalid IO size */ + ED_NO_MEMORY = 2508, /* memory allocation failure */ + ED_READ_ONLY = 2509, /* device cannot be written to */ + /* Because the C standard requires that errno have type 'int', + this enumeration must be a signed type. */ + __FORCE_ERROR_T_CODES_SIGNED = -1 }; -#define _HURD_ERRNOS 120 +#endif /* not __ASSEMBLER__ */ -/* User-visible type of error codes. It is ok to use `int' or - `kern_return_t' for these, but with `error_t' the debugger prints - symbolic values. */ -#ifdef __USE_GNU -typedef enum __error_t_codes error_t; -#define __error_t_defined 1 -#endif +/* The C standard requires that all of the E-constants be + defined as macros. */ + +#define EPERM 0x40000001 +#define ENOENT 0x40000002 +#define ESRCH 0x40000003 +#define EINTR 0x40000004 +#define EIO 0x40000005 +#define ENXIO 0x40000006 +#define E2BIG 0x40000007 +#define ENOEXEC 0x40000008 +#define EBADF 0x40000009 +#define ECHILD 0x4000000a +#define EDEADLK 0x4000000b +#define ENOMEM 0x4000000c +#define EACCES 0x4000000d +#define EFAULT 0x4000000e +#define ENOTBLK 0x4000000f +#define EBUSY 0x40000010 +#define EEXIST 0x40000011 +#define EXDEV 0x40000012 +#define ENODEV 0x40000013 +#define ENOTDIR 0x40000014 +#define EISDIR 0x40000015 +#define EINVAL 0x40000016 +#define EMFILE 0x40000018 +#define ENFILE 0x40000017 +#define ENOTTY 0x40000019 +#define ETXTBSY 0x4000001a +#define EFBIG 0x4000001b +#define ENOSPC 0x4000001c +#define ESPIPE 0x4000001d +#define EROFS 0x4000001e +#define EMLINK 0x4000001f +#define EPIPE 0x40000020 +#define EDOM 0x40000021 +#define ERANGE 0x40000022 +#define EAGAIN 0x40000023 +#define EWOULDBLOCK EAGAIN +#define EINPROGRESS 0x40000024 +#define EALREADY 0x40000025 +#define ENOTSOCK 0x40000026 +#define EMSGSIZE 0x40000028 +#define EPROTOTYPE 0x40000029 +#define ENOPROTOOPT 0x4000002a +#define EPROTONOSUPPORT 0x4000002b +#define ESOCKTNOSUPPORT 0x4000002c +#define EOPNOTSUPP 0x4000002d +#define EPFNOSUPPORT 0x4000002e +#define EAFNOSUPPORT 0x4000002f +#define EADDRINUSE 0x40000030 +#define EADDRNOTAVAIL 0x40000031 +#define ENETDOWN 0x40000032 +#define ENETUNREACH 0x40000033 +#define ENETRESET 0x40000034 +#define ECONNABORTED 0x40000035 +#define ECONNRESET 0x40000036 +#define ENOBUFS 0x40000037 +#define EISCONN 0x40000038 +#define ENOTCONN 0x40000039 +#define EDESTADDRREQ 0x40000027 +#define ESHUTDOWN 0x4000003a +#define ETOOMANYREFS 0x4000003b +#define ETIMEDOUT 0x4000003c +#define ECONNREFUSED 0x4000003d +#define ELOOP 0x4000003e +#define ENAMETOOLONG 0x4000003f +#define EHOSTDOWN 0x40000040 +#define EHOSTUNREACH 0x40000041 +#define ENOTEMPTY 0x40000042 +#define EPROCLIM 0x40000043 +#define EUSERS 0x40000044 +#define EDQUOT 0x40000045 +#define ESTALE 0x40000046 +#define EREMOTE 0x40000047 +#define EBADRPC 0x40000048 +#define ERPCMISMATCH 0x40000049 +#define EPROGUNAVAIL 0x4000004a +#define EPROGMISMATCH 0x4000004b +#define EPROCUNAVAIL 0x4000004c +#define ENOLCK 0x4000004d +#define EFTYPE 0x4000004f +#define EAUTH 0x40000050 +#define ENEEDAUTH 0x40000051 +#define ENOSYS 0x4000004e +#define ENOTSUP 0x40000076 +#define EILSEQ 0x4000006a +#define EBACKGROUND 0x40000064 +#define EDIED 0x40000065 +#define ED 0x40000066 +#define EGREGIOUS 0x40000067 +#define EIEIO 0x40000068 +#define EGRATUITOUS 0x40000069 +#define EBADMSG 0x4000006b +#define EIDRM 0x4000006c +#define EMULTIHOP 0x4000006d +#define ENODATA 0x4000006e +#define ENOLINK 0x4000006f +#define ENOMSG 0x40000070 +#define ENOSR 0x40000071 +#define ENOSTR 0x40000072 +#define EOVERFLOW 0x40000073 +#define EPROTO 0x40000074 +#define ETIME 0x40000075 +#define ECANCELED 0x40000077 +#define EOWNERDEAD 0x40000078 +#define ENOTRECOVERABLE 0x40000079 + +/* Errors from <mach/message.h>. */ +#define EMACH_SEND_IN_PROGRESS 0x10000001 +#define EMACH_SEND_INVALID_DATA 0x10000002 +#define EMACH_SEND_INVALID_DEST 0x10000003 +#define EMACH_SEND_TIMED_OUT 0x10000004 +#define EMACH_SEND_WILL_NOTIFY 0x10000005 +#define EMACH_SEND_NOTIFY_IN_PROGRESS 0x10000006 +#define EMACH_SEND_INTERRUPTED 0x10000007 +#define EMACH_SEND_MSG_TOO_SMALL 0x10000008 +#define EMACH_SEND_INVALID_REPLY 0x10000009 +#define EMACH_SEND_INVALID_RIGHT 0x1000000a +#define EMACH_SEND_INVALID_NOTIFY 0x1000000b +#define EMACH_SEND_INVALID_MEMORY 0x1000000c +#define EMACH_SEND_NO_BUFFER 0x1000000d +#define EMACH_SEND_NO_NOTIFY 0x1000000e +#define EMACH_SEND_INVALID_TYPE 0x1000000f +#define EMACH_SEND_INVALID_HEADER 0x10000010 +#define EMACH_RCV_IN_PROGRESS 0x10004001 +#define EMACH_RCV_INVALID_NAME 0x10004002 +#define EMACH_RCV_TIMED_OUT 0x10004003 +#define EMACH_RCV_TOO_LARGE 0x10004004 +#define EMACH_RCV_INTERRUPTED 0x10004005 +#define EMACH_RCV_PORT_CHANGED 0x10004006 +#define EMACH_RCV_INVALID_NOTIFY 0x10004007 +#define EMACH_RCV_INVALID_DATA 0x10004008 +#define EMACH_RCV_PORT_DIED 0x10004009 +#define EMACH_RCV_IN_SET 0x1000400a +#define EMACH_RCV_HEADER_ERROR 0x1000400b +#define EMACH_RCV_BODY_ERROR 0x1000400c + +/* Errors from <mach/kern_return.h>. */ +#define EKERN_INVALID_ADDRESS 1 +#define EKERN_PROTECTION_FAILURE 2 +#define EKERN_NO_SPACE 3 +#define EKERN_INVALID_ARGUMENT 4 +#define EKERN_FAILURE 5 +#define EKERN_RESOURCE_SHORTAGE 6 +#define EKERN_NOT_RECEIVER 7 +#define EKERN_NO_ACCESS 8 +#define EKERN_MEMORY_FAILURE 9 +#define EKERN_MEMORY_ERROR 10 +#define EKERN_NOT_IN_SET 12 +#define EKERN_NAME_EXISTS 13 +#define EKERN_ABORTED 14 +#define EKERN_INVALID_NAME 15 +#define EKERN_INVALID_TASK 16 +#define EKERN_INVALID_RIGHT 17 +#define EKERN_INVALID_VALUE 18 +#define EKERN_UREFS_OVERFLOW 19 +#define EKERN_INVALID_CAPABILITY 20 +#define EKERN_RIGHT_EXISTS 21 +#define EKERN_INVALID_HOST 22 +#define EKERN_MEMORY_PRESENT 23 +#define EKERN_WRITE_PROTECTION_FAILURE 24 +#define EKERN_TERMINATED 26 +#define EKERN_TIMEDOUT 27 +#define EKERN_INTERRUPTED 28 -/* Return the current thread's location for `errno'. - The syntax of this function allows redeclarations like `int errno'. */ -extern int *__errno_location (void) __THROW __attribute__ ((__const__)); +/* Errors from <mach/mig_errors.h>. */ +#define EMIG_TYPE_ERROR -300 +#define EMIG_REPLY_MISMATCH -301 +#define EMIG_REMOTE_ERROR -302 +#define EMIG_BAD_ID -303 +#define EMIG_BAD_ARGUMENTS -304 +#define EMIG_NO_REPLY -305 +#define EMIG_EXCEPTION -306 +#define EMIG_ARRAY_TOO_LARGE -307 +#define EMIG_SERVER_DIED -308 +#define EMIG_DESTROY_REQUEST -309 -#define errno (*__errno_location ()) +/* Errors from <device/device_types.h>. */ +#define ED_IO_ERROR 2500 +#define ED_WOULD_BLOCK 2501 +#define ED_NO_SUCH_DEVICE 2502 +#define ED_ALREADY_OPEN 2503 +#define ED_DEVICE_DOWN 2504 +#define ED_INVALID_OPERATION 2505 +#define ED_INVALID_RECNUM 2506 +#define ED_INVALID_SIZE 2507 +#define ED_NO_MEMORY 2508 +#define ED_READ_ONLY 2509 -#endif /* <errno.h> included. */ +#define _HURD_ERRNOS 122 -#if !defined (_ERRNO_H) && defined (__need_Emath) -#define EDOM _HURD_ERRNO (33)/* Numerical argument out of domain */ -#define ERANGE _HURD_ERRNO (34)/* Numerical result out of range */ -#endif /* <errno.h> not included and need math error codes. */ +#endif /* bits/errno.h. */ diff --git a/sysdeps/mach/hurd/bits/fcntl.h b/sysdeps/mach/hurd/bits/fcntl.h index fbd0b0abae..2cfaa872a5 100644 --- a/sysdeps/mach/hurd/bits/fcntl.h +++ b/sysdeps/mach/hurd/bits/fcntl.h @@ -1,5 +1,5 @@ /* O_*, F_*, FD_* bit values for GNU. - Copyright (C) 1993-2016 Free Software Foundation, Inc. + Copyright (C) 1993-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -135,7 +135,7 @@ #ifdef __USE_MISC -/* Bits in the file status flags returned by F_GETFL. */ +/* Flags for TIOCFLUSH. */ # define FREAD O_RDONLY # define FWRITE O_WRONLY diff --git a/sysdeps/mach/hurd/bits/ioctls.h b/sysdeps/mach/hurd/bits/ioctls.h index 7a5a28d52c..91a15b5083 100644 --- a/sysdeps/mach/hurd/bits/ioctls.h +++ b/sysdeps/mach/hurd/bits/ioctls.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/sysdeps/mach/hurd/bits/local_lim.h b/sysdeps/mach/hurd/bits/local_lim.h index a7760eeb1d..97f87ad5d2 100644 --- a/sysdeps/mach/hurd/bits/local_lim.h +++ b/sysdeps/mach/hurd/bits/local_lim.h @@ -1,5 +1,5 @@ /* Minimum guaranteed maximum values for system limits. Hurd version. - Copyright (C) 1993-2016 Free Software Foundation, Inc. + Copyright (C) 1993-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -32,3 +32,12 @@ suitable, and `sysconf' will return a number at least as large. */ #define NGROUPS_MAX 256 + +/* The number of data keys per process. */ +#define _POSIX_THREAD_KEYS_MAX 128 + +/* Controlling the iterations of destructors for thread-specific data. */ +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 + +/* The number of threads per process. */ +#define _POSIX_THREAD_THREADS_MAX 64 diff --git a/sysdeps/mach/hurd/bits/param.h b/sysdeps/mach/hurd/bits/param.h index 84cbf5acca..5d4faf793f 100644 --- a/sysdeps/mach/hurd/bits/param.h +++ b/sysdeps/mach/hurd/bits/param.h @@ -1,5 +1,5 @@ /* Old-style Unix parameters and limits. Hurd version. - Copyright (C) 1993-2016 Free Software Foundation, Inc. + Copyright (C) 1993-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -20,6 +20,8 @@ # error "Never use <bits/param.h> directly; include <sys/param.h> instead." #endif +#include <bits/mach/param.h> + /* This file is deprecated and is provided only for compatibility with Unix systems. It is unwise to include this file on programs which are intended only for GNU systems. diff --git a/sysdeps/mach/hurd/bits/posix_opt.h b/sysdeps/mach/hurd/bits/posix_opt.h index 5a578f0c1f..dfb0ba46ec 100644 --- a/sysdeps/mach/hurd/bits/posix_opt.h +++ b/sysdeps/mach/hurd/bits/posix_opt.h @@ -1,5 +1,5 @@ /* Define POSIX options for GNU/Hurd. - Copyright (C) 1998-2016 Free Software Foundation, Inc. + Copyright (C) 1998-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -42,8 +42,8 @@ /* Mapping of files to memory is supported. */ #define _POSIX_MAPPED_FILES 200809L -/* Locking of all memory could be supported in future. */ -#define _POSIX_MEMLOCK 0 +/* Locking of all memory is supported. */ +#define _POSIX_MEMLOCK 200809L /* Locking of ranges of memory is supported. */ #define _POSIX_MEMLOCK_RANGE 200809L @@ -53,13 +53,13 @@ /* Elements of the `c_cc' member of `struct termios' structure can be disabled by using the value _POSIX_VDISABLE. */ -#define _POSIX_VDISABLE ((unsigned char) -1) +#define _POSIX_VDISABLE '\0' /* Different Hurd filesystems might do these differently. You must query the particular file with `pathconf' or `fpathconf'. */ -#undef _POSIX_CHOWN_RESTRICTED /* Only root can change owner of file? */ -#undef _POSIX_NO_TRUNC /* Overlong file names get error? */ +#define _POSIX_CHOWN_RESTRICTED 0 /* Only root can change owner of file? */ +#define _POSIX_NO_TRUNC 0 /* Overlong file names get error? */ #undef _POSIX_SYNC_IO /* File supports O_SYNC et al? */ /* X/Open realtime support is not supported. */ @@ -71,24 +71,38 @@ /* XPG4.2 shared memory is not supported. */ #undef _XOPEN_SHM -/* We do not have the POSIX threads interface. */ -#define _POSIX_THREADS -1 +/* Tell we have POSIX threads. */ +#define _POSIX_THREADS 200809L /* We have the reentrant functions described in POSIX. */ #define _POSIX_REENTRANT_FUNCTIONS 1 #define _POSIX_THREAD_SAFE_FUNCTIONS 200809L -/* These are all things that won't be supported when _POSIX_THREADS is not. */ +/* We do not provide priority scheduling for threads. */ #define _POSIX_THREAD_PRIORITY_SCHEDULING -1 -#define _POSIX_THREAD_ATTR_STACKSIZE -1 -#define _POSIX_THREAD_ATTR_STACKADDR -1 + +/* We support user-defined stack sizes. */ +#define _POSIX_THREAD_ATTR_STACKSIZE 200809L + +/* We support user-defined stacks. */ +#define _POSIX_THREAD_ATTR_STACKADDR 200809L + +/* We do not support priority inheritence. */ #define _POSIX_THREAD_PRIO_INHERIT -1 + +/* We do not support priority protection. */ #define _POSIX_THREAD_PRIO_PROTECT -1 + #ifdef __USE_XOPEN2K8 +/* We do not support priority inheritence for robust mutexes. */ # define _POSIX_THREAD_ROBUST_PRIO_INHERIT -1 + +/* We do not support priority protection for robust mutexes. */ # define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1 #endif -#define _POSIX_SEMAPHORES -1 + +/* We support POSIX.1b semaphores. */ +#define _POSIX_SEMAPHORES 200809L /* Real-time signals are not yet supported. */ #define _POSIX_REALTIME_SIGNALS -1 @@ -121,17 +135,17 @@ /* GNU libc provides regular expression handling. */ #define _POSIX_REGEXP 1 -/* Reader/Writer locks are not available. */ -#define _POSIX_READER_WRITER_LOCKS -1 +/* Reader/Writer locks are available. */ +#define _POSIX_READER_WRITER_LOCKS 200809L /* We have a POSIX shell. */ #define _POSIX_SHELL 1 -/* We cannot support the Timeouts option without _POSIX_THREADS. */ -#define _POSIX_TIMEOUTS -1 +/* We support the Timeouts option. */ +#define _POSIX_TIMEOUTS 200809L -/* We do not support spinlocks. */ -#define _POSIX_SPIN_LOCKS -1 +/* We support spinlocks. */ +#define _POSIX_SPIN_LOCKS 200809L /* The `spawn' function family is supported. */ #define _POSIX_SPAWN 200809L @@ -139,8 +153,8 @@ /* We do not have POSIX timers, but could in future without ABI change. */ #define _POSIX_TIMERS 0 -/* The barrier functions are not available. */ -#define _POSIX_BARRIERS -1 +/* The barrier functions are available. */ +#define _POSIX_BARRIERS 200809L /* POSIX message queues could be available in future. */ #define _POSIX_MESSAGE_PASSING 0 diff --git a/sysdeps/mach/hurd/bits/socket.h b/sysdeps/mach/hurd/bits/socket.h index 02c5dac032..18959139dc 100644 --- a/sysdeps/mach/hurd/bits/socket.h +++ b/sysdeps/mach/hurd/bits/socket.h @@ -1,5 +1,5 @@ /* System-specific socket constants and types. Hurd version. - Copyright (C) 1991-2016 Free Software Foundation, Inc. + Copyright (C) 1991-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -25,11 +25,10 @@ #endif #define __need_size_t -#define __need_NULL #include <stddef.h> -#include <limits.h> /* XXX Is this allowed? */ -#include <bits/types.h> +#include <bits/wordsize.h> +#include <sys/types.h> /* Type for length arguments in socket calls. */ #ifndef __socklen_t_defined @@ -131,13 +130,19 @@ enum __socket_type #define AF_APPLETALK PF_APPLETALK #define AF_ROUTE PF_ROUTE #define AF_LINK PF_LINK -#define pseudo_AF_XTP PF_XTP +#ifdef __USE_MISC +# define pseudo_AF_XTP PF_XTP +#endif #define AF_COIP PF_COIP #define AF_CNT PF_CNT -#define pseudo_AF_RTIP PF_RTIP +#ifdef __USE_MISC +# define pseudo_AF_RTIP PF_RTIP +#endif #define AF_IPX PF_IPX #define AF_SIP PF_SIP -#define pseudo_AF_PIP PF_PIP +#ifdef __USE_MISC +# define pseudo_AF_PIP PF_PIP +#endif #define AF_INET6 PF_INET6 #define AF_MAX PF_MAX @@ -156,20 +161,20 @@ struct sockaddr /* Structure large enough to hold any socket address (with the historical - exception of AF_UNIX). We reserve 128 bytes. */ -#if ULONG_MAX > 0xffffffff + exception of AF_UNIX). */ +#if __WORDSIZE == 64 # define __ss_aligntype __uint64_t #else # define __ss_aligntype __uint32_t #endif -#define _SS_SIZE 128 -#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype))) +#define _SS_PADSIZE \ + (_SS_SIZE - __SOCKADDR_COMMON_SIZE - sizeof (__ss_aligntype)) struct sockaddr_storage { __SOCKADDR_COMMON (ss_); /* Address family, etc. */ - __ss_aligntype __ss_align; /* Force desired alignment. */ char __ss_padding[_SS_PADSIZE]; + __ss_aligntype __ss_align; /* Force desired alignment. */ }; @@ -220,13 +225,13 @@ struct cmsghdr of cmsghdr structure. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L +#if __glibc_c99_flexarr_available __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */ #endif }; /* Ancillary data object manipulation macros. */ -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L +#if __glibc_c99_flexarr_available # define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data) #else # define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1)) @@ -236,7 +241,7 @@ struct cmsghdr #define CMSG_FIRSTHDR(mhdr) \ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) + ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ & (size_t) ~(sizeof (size_t) - 1)) @@ -255,7 +260,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) { if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) /* The kernel header does this so there may be a reason. */ - return NULL; + return (struct cmsghdr *) 0; __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)); @@ -264,7 +269,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) /* No more entries. */ - return NULL; + return (struct cmsghdr *) 0; return __cmsg; } #endif /* Use `extern inline'. */ @@ -280,6 +285,7 @@ enum #define SCM_CREDS SCM_CREDS }; +#ifdef __USE_MISC /* Unfortunately, BSD practice dictates this structure be of fixed size. If there are more than CMGROUP_MAX groups, the list is truncated. (On GNU systems, the `cmcred_euid' field is just the first in the @@ -300,6 +306,7 @@ struct cmsgcred int cmcred_ngroups; __gid_t cmcred_groups[CMGROUP_MAX]; }; +#endif /* Protocol number used to manipulate socket-level options with `getsockopt' and `setsockopt'. */ diff --git a/sysdeps/mach/hurd/bits/stat.h b/sysdeps/mach/hurd/bits/stat.h index 3e4a7d247b..cb8680e000 100644 --- a/sysdeps/mach/hurd/bits/stat.h +++ b/sysdeps/mach/hurd/bits/stat.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-2016 Free Software Foundation, Inc. +/* Copyright (C) 1992-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -255,4 +255,9 @@ extern int fchflags (int __fd, unsigned long int __flags) __THROW; __END_DECLS #endif +#ifdef __USE_ATFILE +# define UTIME_NOW -1 /* corresponds to the current time */ +# define UTIME_OMIT -2 /* target time is omitted */ +#endif + #endif /* bits/stat.h */ diff --git a/sysdeps/mach/hurd/bits/statfs.h b/sysdeps/mach/hurd/bits/statfs.h index ab37e5a51f..82e570b222 100644 --- a/sysdeps/mach/hurd/bits/statfs.h +++ b/sysdeps/mach/hurd/bits/statfs.h @@ -1,5 +1,5 @@ /* Definition of `struct statfs', information about a filesystem. - Copyright (C) 1996-2016 Free Software Foundation, Inc. + Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -37,7 +37,7 @@ struct statfs { unsigned int f_type; - unsigned int f_bsize; + unsigned long int f_bsize; #ifndef __USE_FILE_OFFSET64 __fsblkcnt_t f_blocks; __fsblkcnt_t f_bfree; @@ -52,14 +52,14 @@ struct statfs __fsblkcnt64_t f_ffree; #endif __fsid_t f_fsid; - unsigned int f_namelen; + unsigned long int f_namelen; #ifndef __USE_FILE_OFFSET64 __fsfilcnt_t f_favail; #else __fsfilcnt64_t f_favail; #endif - unsigned int f_frsize; - unsigned int f_flag; + unsigned long int f_frsize; + unsigned long int f_flag; unsigned int f_spare[3]; }; @@ -67,17 +67,17 @@ struct statfs struct statfs64 { unsigned int f_type; - unsigned int f_bsize; + unsigned long int f_bsize; __fsblkcnt64_t f_blocks; __fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bavail; __fsblkcnt64_t f_files; __fsblkcnt64_t f_ffree; __fsid_t f_fsid; - unsigned int f_namelen; + unsigned long int f_namelen; __fsfilcnt64_t f_favail; - unsigned int f_frsize; - unsigned int f_flag; + unsigned long int f_frsize; + unsigned long int f_flag; unsigned int f_spare[3]; }; #endif diff --git a/sysdeps/mach/hurd/bits/statvfs.h b/sysdeps/mach/hurd/bits/statvfs.h index 98d622b366..9880b2c9c7 100644 --- a/sysdeps/mach/hurd/bits/statvfs.h +++ b/sysdeps/mach/hurd/bits/statvfs.h @@ -1,5 +1,5 @@ /* Definition of `struct statvfs', information about a filesystem. - Copyright (C) 1998-2016 Free Software Foundation, Inc. + Copyright (C) 1998-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -30,7 +30,7 @@ struct statvfs { unsigned int __f_type; - unsigned int f_bsize; + unsigned long int f_bsize; #ifndef __USE_FILE_OFFSET64 __fsblkcnt_t f_blocks; __fsblkcnt_t f_bfree; @@ -45,14 +45,14 @@ struct statvfs __fsfilcnt64_t f_ffree; #endif __fsid_t f_fsid; - unsigned int f_namemax; /* NOTE: f_namelen in `struct statfs'. */ + unsigned long int f_namemax; /* NOTE: f_namelen in `struct statfs'. */ #ifndef __USE_FILE_OFFSET64 __fsfilcnt_t f_favail; #else __fsfilcnt64_t f_favail; #endif - unsigned int f_frsize; - unsigned int f_flag; + unsigned long int f_frsize; + unsigned long int f_flag; unsigned int f_spare[3]; }; @@ -60,17 +60,17 @@ struct statvfs struct statvfs64 { unsigned int __f_type; - unsigned int f_bsize; + unsigned long int f_bsize; __fsblkcnt64_t f_blocks; __fsblkcnt64_t f_bfree; __fsblkcnt64_t f_bavail; __fsfilcnt64_t f_files; __fsfilcnt64_t f_ffree; __fsid_t f_fsid; - unsigned int f_namemax; + unsigned long int f_namemax; __fsfilcnt64_t f_favail; - unsigned int f_frsize; - unsigned int f_flag; + unsigned long int f_frsize; + unsigned long int f_flag; unsigned int f_spare[3]; }; #endif diff --git a/sysdeps/mach/hurd/bits/sysmacros.h b/sysdeps/mach/hurd/bits/sysmacros.h new file mode 100644 index 0000000000..b75a329d04 --- /dev/null +++ b/sysdeps/mach/hurd/bits/sysmacros.h @@ -0,0 +1,60 @@ +/* Definitions of macros to access `dev_t' values. Hurd version. + Copyright (C) 1996-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SYSMACROS_H +#define _BITS_SYSMACROS_H 1 + +#ifndef _SYS_SYSMACROS_H +# error "Never include <bits/sysmacros.h> directly; use <sys/sysmacros.h> instead." +#endif + +/* The Hurd version of dev_t in glibc is a 32-bit quantity, with 8-bit + major and 24-bit minor numbers. The encoding is mmmmMMmm, where M is a + hex digit of the major number and m is a hex digit of the minor number. */ + +#define __SYSMACROS_DECLARE_MAJOR(DECL_TEMPL) \ + DECL_TEMPL(unsigned int, major, (__dev_t __dev)) + +#define __SYSMACROS_DEFINE_MAJOR(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MAJOR (DECL_TEMPL) \ + { \ + return ((__dev & (__dev_t) 0x0000ff00u) >> 8); \ + } + +#define __SYSMACROS_DECLARE_MINOR(DECL_TEMPL) \ + DECL_TEMPL(unsigned int, minor, (__dev_t __dev)) + +#define __SYSMACROS_DEFINE_MINOR(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MINOR (DECL_TEMPL) \ + { \ + return (__dev & (__dev_t) 0xffff00ff); \ + } + +#define __SYSMACROS_DECLARE_MAKEDEV(DECL_TEMPL) \ + DECL_TEMPL(__dev_t, makedev, (unsigned int __major, unsigned int __minor)) + +#define __SYSMACROS_DEFINE_MAKEDEV(DECL_TEMPL) \ + __SYSMACROS_DECLARE_MAKEDEV (DECL_TEMPL) \ + { \ + __dev_t __dev; \ + __dev = (((__dev_t) (__major & 0x000000ffu)) << 8); \ + __dev |= (((__dev_t) (__minor & 0xffff00ffu)) << 0); \ + return __dev; \ + } + +#endif /* bits/sysmacros.h */ diff --git a/sysdeps/mach/hurd/bits/types/error_t.h b/sysdeps/mach/hurd/bits/types/error_t.h new file mode 100644 index 0000000000..286e5fdc6a --- /dev/null +++ b/sysdeps/mach/hurd/bits/types/error_t.h @@ -0,0 +1,29 @@ +/* Define error_t. + Copyright (C) 1991-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#include <bits/errno.h> + +/* User-visible type of error codes. It is ok to use 'int' or + 'kern_return_t' for these, but with 'error_t' the debugger prints + symbolic values. */ +#ifndef __error_t_defined +# define __error_t_defined 1 + +typedef enum __error_t_codes error_t; + +#endif diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h index a33fb7fe8b..d3026ba66e 100644 --- a/sysdeps/mach/hurd/bits/typesizes.h +++ b/sysdeps/mach/hurd/bits/typesizes.h @@ -1,5 +1,5 @@ /* bits/typesizes.h -- underlying types for *_t. Hurd version. - Copyright (C) 2002-2016 Free Software Foundation, Inc. + Copyright (C) 2002-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or |