1*df5cd018SRobert Mustacchi# 2*df5cd018SRobert Mustacchi# This file and its contents are supplied under the terms of the 3*df5cd018SRobert Mustacchi# Common Development and Distribution License ("CDDL"), version 1.0. 4*df5cd018SRobert Mustacchi# You may only use this file in accordance with the terms of version 5*df5cd018SRobert Mustacchi# 1.0 of the CDDL. 6*df5cd018SRobert Mustacchi# 7*df5cd018SRobert Mustacchi# A full copy of the text of the CDDL should have accompanied this 8*df5cd018SRobert Mustacchi# source. A copy of the CDDL is also available via the Internet at 9*df5cd018SRobert Mustacchi# http://www.illumos.org/license/CDDL. 10*df5cd018SRobert Mustacchi# 11*df5cd018SRobert Mustacchi 12*df5cd018SRobert Mustacchi# 13*df5cd018SRobert Mustacchi# Copyright 2022 Oxide Computer Company 14*df5cd018SRobert Mustacchi# 15*df5cd018SRobert Mustacchi 16*df5cd018SRobert Mustacchi# 17*df5cd018SRobert Mustacchi# Historical note: This header has never been part of ISO C. The 18*df5cd018SRobert Mustacchi# visibility rules were always specific to versions of POSIX/XPG. 19*df5cd018SRobert Mustacchi# Applications have assumed that these are visible even in a strict ISO 20*df5cd018SRobert Mustacchi# C environment, which we honor because this header isn't part of the 21*df5cd018SRobert Mustacchi# standard. See <sys/mman.h> for more details, but this is why you see 22*df5cd018SRobert Mustacchi# the STDC group here for things that aren't standardized, as we want 23*df5cd018SRobert Mustacchi# to make sure we don't regress that support. 24*df5cd018SRobert Mustacchi# 25*df5cd018SRobert Mustacchi 26*df5cd018SRobert Mustacchi# 27*df5cd018SRobert Mustacchi# Types 28*df5cd018SRobert Mustacchi# 29*df5cd018SRobert Mustacchi 30*df5cd018SRobert Mustacchi# 31*df5cd018SRobert Mustacchi# Values. 32*df5cd018SRobert Mustacchi# 33*df5cd018SRobert Mustacchivalue | PROT_READ | int | sys/mman.h | +ALL 34*df5cd018SRobert Mustacchivalue | PROT_WRITE | int | sys/mman.h | +ALL 35*df5cd018SRobert Mustacchivalue | PROT_EXEC | int | sys/mman.h | +ALL 36*df5cd018SRobert Mustacchivalue | PROT_NONE | int | sys/mman.h | +ALL 37*df5cd018SRobert Mustacchivalue | MAP_SHARED | int | sys/mman.h | +ALL 38*df5cd018SRobert Mustacchivalue | MAP_PRIVATE | int | sys/mman.h | +ALL 39*df5cd018SRobert Mustacchivalue | MAP_FILE | int | sys/mman.h | +ALL 40*df5cd018SRobert Mustacchivalue | MAP_FIXED | int | sys/mman.h | +ALL 41*df5cd018SRobert Mustacchivalue | MAP_NORESERVE | int | sys/mman.h | +ALL 42*df5cd018SRobert Mustacchivalue | MAP_ANON | int | sys/mman.h | +ALL 43*df5cd018SRobert Mustacchivalue | MAP_ALIGN | int | sys/mman.h | +ALL 44*df5cd018SRobert Mustacchivalue | MAP_TEXT | int | sys/mman.h | +ALL 45*df5cd018SRobert Mustacchivalue | MAP_INITDATA | int | sys/mman.h | +ALL 46*df5cd018SRobert Mustacchi 47*df5cd018SRobert Mustacchivalue | MCL_CURRENT | int | sys/mman.h | STDC POSIX-1993+ SUSv2+ 48*df5cd018SRobert Mustacchivalue | MCL_FUTURE | int | sys/mman.h | STDC POSIX-1993+ SUSv2+ 49*df5cd018SRobert Mustacchi 50*df5cd018SRobert Mustacchi 51*df5cd018SRobert Mustacchivalue | POSIX_MADV_NORMAL | int | sys/mman.h | STDC SUSv3+ 52*df5cd018SRobert Mustacchivalue | POSIX_MADV_RANDOM | int | sys/mman.h | STDC SUSv3+ 53*df5cd018SRobert Mustacchivalue | POSIX_MADV_SEQUENTIAL | int | sys/mman.h | STDC SUSv3+ 54*df5cd018SRobert Mustacchivalue | POSIX_MADV_WILLNEED | int | sys/mman.h | STDC SUSv3+ 55*df5cd018SRobert Mustacchivalue | POSIX_MADV_DONTNEED | int | sys/mman.h | STDC SUSv3+ 56*df5cd018SRobert Mustacchi 57*df5cd018SRobert Mustacchivalue | MAP_FAILED | void * | sys/mman.h | +ALL 58*df5cd018SRobert Mustacchi 59*df5cd018SRobert Mustacchi# 60*df5cd018SRobert Mustacchi# Defines 61*df5cd018SRobert Mustacchi# 62*df5cd018SRobert Mustacchi 63*df5cd018SRobert Mustacchi# 64*df5cd018SRobert Mustacchi# Functions 65*df5cd018SRobert Mustacchi# 66*df5cd018SRobert Mustacchi 67*df5cd018SRobert Mustacchi# 68*df5cd018SRobert Mustacchi# This first group of functions basically should always be visible. 69*df5cd018SRobert Mustacchi# 70*df5cd018SRobert Mustacchifunc | mmap |\ 71*df5cd018SRobert Mustacchi void * |\ 72*df5cd018SRobert Mustacchi void *; size_t; int; int; int; off_t |\ 73*df5cd018SRobert Mustacchi sys/mman.h | +ALL 74*df5cd018SRobert Mustacchi 75*df5cd018SRobert Mustacchifunc | munmap |\ 76*df5cd018SRobert Mustacchi int |\ 77*df5cd018SRobert Mustacchi void *; size_t |\ 78*df5cd018SRobert Mustacchi sys/mman.h | +ALL 79*df5cd018SRobert Mustacchi 80*df5cd018SRobert Mustacchifunc | mprotect |\ 81*df5cd018SRobert Mustacchi int |\ 82*df5cd018SRobert Mustacchi void *; size_t; int |\ 83*df5cd018SRobert Mustacchi sys/mman.h | +ALL 84*df5cd018SRobert Mustacchi 85*df5cd018SRobert Mustacchifunc | msync |\ 86*df5cd018SRobert Mustacchi int |\ 87*df5cd018SRobert Mustacchi void *; size_t; int |\ 88*df5cd018SRobert Mustacchi sys/mman.h | +ALL 89*df5cd018SRobert Mustacchi 90*df5cd018SRobert Mustacchi 91*df5cd018SRobert Mustacchi# 92*df5cd018SRobert Mustacchi# This next group of functions were added in the realtime POSIX extensions, e.g. 93*df5cd018SRobert Mustacchi# they should be in POSIX at POSIX-1993. However, they weren't part of XPG until 94*df5cd018SRobert Mustacchi# XPG5, aka what we call SUSv2 in these tests. 95*df5cd018SRobert Mustacchi# 96*df5cd018SRobert Mustacchifunc | mlock |\ 97*df5cd018SRobert Mustacchi int |\ 98*df5cd018SRobert Mustacchi void *; size_t |\ 99*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 100*df5cd018SRobert Mustacchi 101*df5cd018SRobert Mustacchifunc | munlock |\ 102*df5cd018SRobert Mustacchi int |\ 103*df5cd018SRobert Mustacchi void *; size_t |\ 104*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 105*df5cd018SRobert Mustacchi 106*df5cd018SRobert Mustacchifunc | mlockall |\ 107*df5cd018SRobert Mustacchi int |\ 108*df5cd018SRobert Mustacchi int |\ 109*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 110*df5cd018SRobert Mustacchi 111*df5cd018SRobert Mustacchifunc | munlockall |\ 112*df5cd018SRobert Mustacchi int |\ 113*df5cd018SRobert Mustacchi void |\ 114*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 115*df5cd018SRobert Mustacchi 116*df5cd018SRobert Mustacchifunc | shm_open |\ 117*df5cd018SRobert Mustacchi int |\ 118*df5cd018SRobert Mustacchi const char *; int; mode_t |\ 119*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 120*df5cd018SRobert Mustacchi 121*df5cd018SRobert Mustacchifunc | shm_unlink |\ 122*df5cd018SRobert Mustacchi int |\ 123*df5cd018SRobert Mustacchi const char * |\ 124*df5cd018SRobert Mustacchi sys/mman.h | STDC POSIX-1993+ SUSv2+ 125*df5cd018SRobert Mustacchi 126*df5cd018SRobert Mustacchi# 127*df5cd018SRobert Mustacchi# Added in XPG6 128*df5cd018SRobert Mustacchi# 129*df5cd018SRobert Mustacchifunc | posix_madvise |\ 130*df5cd018SRobert Mustacchi int |\ 131*df5cd018SRobert Mustacchi void *; size_t; int |\ 132*df5cd018SRobert Mustacchi sys/mman.h | STDC SUSv3+ 133*df5cd018SRobert Mustacchi 134*df5cd018SRobert Mustacchi# 135*df5cd018SRobert Mustacchi# Our various extensions. No visibility expected in a standards environment. We 136*df5cd018SRobert Mustacchi# do a handful of these with the assumption that as long as a few in the block 137*df5cd018SRobert Mustacchi# are OK, the rest should be. 138*df5cd018SRobert Mustacchi# 139*df5cd018SRobert Mustacchifunc | mincore |\ 140*df5cd018SRobert Mustacchi int |\ 141*df5cd018SRobert Mustacchi caddr_t; size_t; char * |\ 142*df5cd018SRobert Mustacchi sys/mman.h | -ALL STDC 143*df5cd018SRobert Mustacchi 144*df5cd018SRobert Mustacchifunc | memcntl |\ 145*df5cd018SRobert Mustacchi int |\ 146*df5cd018SRobert Mustacchi void *; size_t; int; void *; int; int |\ 147*df5cd018SRobert Mustacchi sys/mman.h | -ALL STDC 148*df5cd018SRobert Mustacchi 149*df5cd018SRobert Mustacchifunc | madvise |\ 150*df5cd018SRobert Mustacchi int |\ 151*df5cd018SRobert Mustacchi void *; size_t; int |\ 152*df5cd018SRobert Mustacchi sys/mman.h | -ALL STDC 153*df5cd018SRobert Mustacchi 154*df5cd018SRobert Mustacchifunc | getpagesizes |\ 155*df5cd018SRobert Mustacchi int |\ 156*df5cd018SRobert Mustacchi size_t *; int |\ 157*df5cd018SRobert Mustacchi sys/mman.h | -ALL STDC 158*df5cd018SRobert Mustacchi 159*df5cd018SRobert Mustacchifunc | getpagesizes2 |\ 160*df5cd018SRobert Mustacchi int |\ 161*df5cd018SRobert Mustacchi size_t *; int |\ 162*df5cd018SRobert Mustacchi sys/mman.h | -ALL STDC 163