1// Copyright 2018 Tobias Klauser. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5//go:build darwin || dragonfly || freebsd || linux || openbsd
6// +build darwin dragonfly freebsd linux openbsd
7
8package sysconf
9
10func sysconfPOSIX(name int) (int64, error) {
11	switch name {
12	case SC_ADVISORY_INFO:
13		return _POSIX_ADVISORY_INFO, nil
14	case SC_ASYNCHRONOUS_IO:
15		return _POSIX_ASYNCHRONOUS_IO, nil
16	case SC_BARRIERS:
17		return _POSIX_BARRIERS, nil
18	case SC_CLOCK_SELECTION:
19		return _POSIX_CLOCK_SELECTION, nil
20	case SC_CPUTIME:
21		return _POSIX_CPUTIME, nil
22	case SC_FSYNC:
23		return _POSIX_FSYNC, nil
24	case SC_IPV6:
25		return _POSIX_IPV6, nil
26	case SC_JOB_CONTROL:
27		return _POSIX_JOB_CONTROL, nil
28	case SC_MAPPED_FILES:
29		return _POSIX_MAPPED_FILES, nil
30	case SC_MEMLOCK:
31		return _POSIX_MEMLOCK, nil
32	case SC_MEMLOCK_RANGE:
33		return _POSIX_MEMLOCK_RANGE, nil
34	case SC_MONOTONIC_CLOCK:
35		return _POSIX_MONOTONIC_CLOCK, nil
36	case SC_MEMORY_PROTECTION:
37		return _POSIX_MEMORY_PROTECTION, nil
38	case SC_MESSAGE_PASSING:
39		return _POSIX_MESSAGE_PASSING, nil
40	case SC_PRIORITIZED_IO:
41		return _POSIX_PRIORITIZED_IO, nil
42	case SC_PRIORITY_SCHEDULING:
43		return _POSIX_PRIORITY_SCHEDULING, nil
44	case SC_RAW_SOCKETS:
45		return _POSIX_RAW_SOCKETS, nil
46	case SC_READER_WRITER_LOCKS:
47		return _POSIX_READER_WRITER_LOCKS, nil
48	case SC_REALTIME_SIGNALS:
49		return _POSIX_REALTIME_SIGNALS, nil
50	case SC_REGEXP:
51		return _POSIX_REGEXP, nil
52	case SC_SEMAPHORES:
53		return _POSIX_SEMAPHORES, nil
54	case SC_SHARED_MEMORY_OBJECTS:
55		return _POSIX_SHARED_MEMORY_OBJECTS, nil
56	case SC_SHELL:
57		return _POSIX_SHELL, nil
58	case SC_THREADS:
59		return _POSIX_THREADS, nil
60	case SC_TIMEOUTS:
61		return _POSIX_TIMEOUTS, nil
62	case SC_TIMERS:
63		return _POSIX_TIMERS, nil
64	case SC_VERSION:
65		return _POSIX_VERSION, nil
66
67	case SC_2_C_BIND:
68		return _POSIX2_C_BIND, nil
69	case SC_2_C_DEV:
70		return _POSIX2_C_DEV, nil
71	case SC_2_FORT_DEV:
72		return -1, nil
73	case SC_2_FORT_RUN:
74		return -1, nil
75	case SC_2_LOCALEDEF:
76		return _POSIX2_LOCALEDEF, nil
77	case SC_2_SW_DEV:
78		return _POSIX2_SW_DEV, nil
79	case SC_2_VERSION:
80		return _POSIX2_VERSION, nil
81	}
82	return -1, errInvalid
83}
84