aboutsummaryrefslogtreecommitdiffstats
path: root/sys/openbsd
diff options
context:
space:
mode:
authorGreg Steuck <blackgnezdo@gmail.com>2018-10-29 10:59:16 -0700
committerDmitry Vyukov <dvyukov@google.com>2018-10-29 18:59:16 +0100
commit2f1090dacdba3f3d405f43c136ae999f635e3310 (patch)
tree3b66dc107f5cbd5cd36b392b4e95f770624346aa /sys/openbsd
parentfe65cc88ceb869e15bf40946027060b876f5fbcb (diff)
sys/openbsd: added minherit, extended/simplified mmap
* sys/openbsd: added minherit, extended/simplified mmap. Added a script from anton_at_openbsd.org for regenerating syscalls. Generated by ksh ./sys/openbsd/extract-openbsd.sh * Undo whitespace change not passing on CI * No need for magic script.
Diffstat (limited to 'sys/openbsd')
-rw-r--r--sys/openbsd/gen/amd64.go21
-rw-r--r--sys/openbsd/mm.txt6
-rw-r--r--sys/openbsd/mm_amd64.const10
3 files changed, 30 insertions, 7 deletions
diff --git a/sys/openbsd/gen/amd64.go b/sys/openbsd/gen/amd64.go
index 4e7acb920..317e8f8e5 100644
--- a/sys/openbsd/gen/amd64.go
+++ b/sys/openbsd/gen/amd64.go
@@ -913,13 +913,18 @@ var syscalls_amd64 = []*Syscall{
{NR: 75, Name: "madvise", CallName: "madvise", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "madvise_flags", FldName: "advice", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 6}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "madvise_flags", FldName: "advice", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
}},
{NR: 78, Name: "mincore", CallName: "mincore", Args: []Type{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Buf: "addr"},
&PtrType{TypeCommon: TypeCommon{TypeName: "buffer", FldName: "vec", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{ArgDir: 1, IsVarlen: true}}},
}},
+ {NR: 250, Name: "minherit", CallName: "minherit", Args: []Type{
+ &VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "inherit_flags", FldName: "inherit", TypeSize: 8}}, Vals: []uint64{2, 1, 0, 3}},
+ }},
{NR: 136, Name: "mkdir", CallName: "mkdir", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_mode", FldName: "mode", TypeSize: 8}}, Vals: []uint64{256, 128, 64, 32, 16, 8, 4, 2, 1}, BitMask: true},
@@ -956,7 +961,7 @@ var syscalls_amd64 = []*Syscall{
&VmaType{TypeCommon: TypeCommon{TypeName: "vma", FldName: "addr", TypeSize: 8}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 8}}, Buf: "addr"},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_prot", FldName: "prot", TypeSize: 8}}, Vals: []uint64{4, 1, 2, 0}, BitMask: true},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{4096, 4096, 16, 2, 1}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "mmap_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 16, 4096, 16384, 8192, 2048}, BitMask: true},
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "pad", TypeSize: 8}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "fileoff", FldName: "offset", TypeSize: 8}}, Kind: 1},
@@ -1581,12 +1586,17 @@ var consts_amd64 = []ConstValue{
{Name: "MADV_NORMAL"},
{Name: "MADV_RANDOM", Value: 1},
{Name: "MADV_SEQUENTIAL", Value: 2},
+ {Name: "MADV_SPACEAVAIL", Value: 5},
{Name: "MADV_WILLNEED", Value: 3},
- {Name: "MAP_ANON", Value: 4096},
{Name: "MAP_ANONYMOUS", Value: 4096},
{Name: "MAP_FIXED", Value: 16},
+ {Name: "MAP_INHERIT_COPY", Value: 1},
+ {Name: "MAP_INHERIT_NONE", Value: 2},
+ {Name: "MAP_INHERIT_SHARE"},
+ {Name: "MAP_INHERIT_ZERO", Value: 3},
{Name: "MAP_PRIVATE", Value: 2},
{Name: "MAP_SHARED", Value: 1},
+ {Name: "MAP_STACK", Value: 16384},
{Name: "MCL_CURRENT", Value: 1},
{Name: "MCL_FUTURE", Value: 2},
{Name: "MIFF_REGISTER", Value: 1},
@@ -1755,6 +1765,7 @@ var consts_amd64 = []ConstValue{
{Name: "SYS_lstat", Value: 40},
{Name: "SYS_madvise", Value: 75},
{Name: "SYS_mincore", Value: 78},
+ {Name: "SYS_minherit", Value: 250},
{Name: "SYS_mkdir", Value: 136},
{Name: "SYS_mkdirat", Value: 318},
{Name: "SYS_mknod", Value: 14},
@@ -1878,6 +1889,8 @@ var consts_amd64 = []ConstValue{
{Name: "WCONTINUED", Value: 8},
{Name: "WNOHANG", Value: 1},
{Name: "WUNTRACED", Value: 2},
+ {Name: "__MAP_NOFAULT", Value: 8192},
+ {Name: "__MAP_NOREPLACE", Value: 2048},
}
-const revision_amd64 = "b7a0cb1d6df43d07bd4ab11d2c4b1a2e1c046ac1"
+const revision_amd64 = "df30b58093a18d87ed6803bfe65ec9af86f721a3"
diff --git a/sys/openbsd/mm.txt b/sys/openbsd/mm.txt
index b12f7a485..7a122655b 100644
--- a/sys/openbsd/mm.txt
+++ b/sys/openbsd/mm.txt
@@ -12,8 +12,10 @@ mlock(addr vma, size len[addr])
munlock(addr vma, size len[addr])
mlockall(flags flags[mlockall_flags])
munlockall()
+minherit(addr vma, len len[addr], inherit flags[inherit_flags])
mmap_prot = PROT_EXEC, PROT_READ, PROT_WRITE, PROT_NONE
-mmap_flags = MAP_ANON, MAP_ANONYMOUS, MAP_FIXED, MAP_PRIVATE, MAP_SHARED
-madvise_flags = MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL, MADV_WILLNEED, MADV_DONTNEED, MADV_FREE
+mmap_flags = MAP_SHARED, MAP_PRIVATE, MAP_FIXED, MAP_ANONYMOUS, MAP_STACK, __MAP_NOFAULT, __MAP_NOREPLACE
+madvise_flags = MADV_NORMAL, MADV_RANDOM, MADV_SEQUENTIAL, MADV_WILLNEED, MADV_DONTNEED, MADV_SPACEAVAIL, MADV_FREE
mlockall_flags = MCL_CURRENT, MCL_FUTURE
+inherit_flags = MAP_INHERIT_NONE, MAP_INHERIT_COPY, MAP_INHERIT_SHARE, MAP_INHERIT_ZERO
diff --git a/sys/openbsd/mm_amd64.const b/sys/openbsd/mm_amd64.const
index e9a33c91a..25fbef1af 100644
--- a/sys/openbsd/mm_amd64.const
+++ b/sys/openbsd/mm_amd64.const
@@ -4,12 +4,17 @@ MADV_FREE = 6
MADV_NORMAL = 0
MADV_RANDOM = 1
MADV_SEQUENTIAL = 2
+MADV_SPACEAVAIL = 5
MADV_WILLNEED = 3
-MAP_ANON = 4096
MAP_ANONYMOUS = 4096
MAP_FIXED = 16
+MAP_INHERIT_COPY = 1
+MAP_INHERIT_NONE = 2
+MAP_INHERIT_SHARE = 0
+MAP_INHERIT_ZERO = 3
MAP_PRIVATE = 2
MAP_SHARED = 1
+MAP_STACK = 16384
MCL_CURRENT = 1
MCL_FUTURE = 2
PROT_EXEC = 4
@@ -17,6 +22,7 @@ PROT_NONE = 0
PROT_READ = 1
PROT_WRITE = 2
SYS_madvise = 75
+SYS_minherit = 250
SYS_mlock = 203
SYS_mlockall = 271
SYS_mmap = 197
@@ -24,3 +30,5 @@ SYS_mprotect = 74
SYS_munlock = 204
SYS_munlockall = 272
SYS_munmap = 73
+__MAP_NOFAULT = 8192
+__MAP_NOREPLACE = 2048