Add generate-syscall-docs command.
Adds a new command to automatically generate the syscall compatibility docs from runsc.
This commit is contained in:
parent
82b3d5ffd3
commit
6714bee53b
|
@ -1,3 +1,5 @@
|
||||||
|
bin/
|
||||||
public/
|
public/
|
||||||
resources/
|
resources/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
upstream/
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
bin/
|
||||||
public/
|
public/
|
||||||
resources/
|
resources/
|
||||||
node_modules/
|
node_modules/
|
||||||
|
|
20
Makefile
20
Makefile
|
@ -6,6 +6,7 @@ GCLOUD := gcloud
|
||||||
GCP_PROJECT := gvisor-website
|
GCP_PROJECT := gvisor-website
|
||||||
|
|
||||||
# Source Go files, example: main.go, foo/bar.go.
|
# Source Go files, example: main.go, foo/bar.go.
|
||||||
|
GEN_SOURCE = $(wildcard cmd/generate-syscall-docs/*)
|
||||||
APP_SOURCE = $(wildcard cmd/gvisor-website/*)
|
APP_SOURCE = $(wildcard cmd/gvisor-website/*)
|
||||||
# Target Go files, example: public/main.go, public/foo/bar.go.
|
# Target Go files, example: public/main.go, public/foo/bar.go.
|
||||||
APP_TARGET = $(patsubst cmd/gvisor-website/%,public/%,$(APP_SOURCE))
|
APP_TARGET = $(patsubst cmd/gvisor-website/%,public/%,$(APP_SOURCE))
|
||||||
|
@ -40,7 +41,7 @@ content/docs/community/sigs: upstream/community $(wildcard upstream/community/si
|
||||||
$(APP_TARGET): public $(APP_SOURCE)
|
$(APP_TARGET): public $(APP_SOURCE)
|
||||||
cp -a cmd/gvisor-website/$(patsubst public/%,%,$@) public/
|
cp -a cmd/gvisor-website/$(patsubst public/%,%,$@) public/
|
||||||
|
|
||||||
public/static: node_modules config.toml $(shell find archetypes assets content themes -type f | sed 's/ /\\ /g')
|
public/static: compatibility-docs node_modules config.toml $(shell find archetypes assets content themes -type f | sed 's/ /\\ /g')
|
||||||
HUGO_ENV="production" $(HUGO)
|
HUGO_ENV="production" $(HUGO)
|
||||||
|
|
||||||
node_modules: package.json package-lock.json
|
node_modules: package.json package-lock.json
|
||||||
|
@ -48,8 +49,19 @@ node_modules: package.json package-lock.json
|
||||||
# See: https://github.com/npm/npm/issues/18286
|
# See: https://github.com/npm/npm/issues/18286
|
||||||
$(NPM) ci
|
$(NPM) ci
|
||||||
|
|
||||||
|
upstream/gvisor/bazel-bin/runsc/linux_amd64_pure_stripped/runsc: upstream-gvisor
|
||||||
|
cd upstream/gvisor && bazel build runsc
|
||||||
|
|
||||||
|
bin/generate-syscall-docs: $(GEN_SOURCE)
|
||||||
|
mkdir -p bin/
|
||||||
|
go build -o bin/generate-syscall-docs gvisor.dev/website/cmd/generate-syscall-docs
|
||||||
|
|
||||||
|
.PHONY: compatibility-docs
|
||||||
|
compatibility-docs: bin/generate-syscall-docs upstream/gvisor/bazel-bin/runsc/linux_amd64_pure_stripped/runsc
|
||||||
|
./upstream/gvisor/bazel-bin/runsc/linux_amd64_pure_stripped/runsc help syscalls -o json | ./bin/generate-syscall-docs -out ./content/docs/user_guide/compatibility/
|
||||||
|
|
||||||
# Run a local content development server. Redirects will not be supported.
|
# Run a local content development server. Redirects will not be supported.
|
||||||
server: all-upstream
|
server: all-upstream compatibility-docs
|
||||||
$(HUGO) server -FD --port 8080
|
$(HUGO) server -FD --port 8080
|
||||||
.PHONY: server
|
.PHONY: server
|
||||||
|
|
||||||
|
@ -63,7 +75,7 @@ deploy: $(APP_TARGET)
|
||||||
|
|
||||||
# Submit a build to Cloud Build manually. Used to test cloudbuild.yaml changes.
|
# Submit a build to Cloud Build manually. Used to test cloudbuild.yaml changes.
|
||||||
cloud-build:
|
cloud-build:
|
||||||
gcloud builds submit --config cloudbuild/cloudbuild.yaml .
|
gcloud builds submit --config cloudbuild.yaml .
|
||||||
|
|
||||||
# Build and push the hugo Docker image used by Cloud Build.
|
# Build and push the hugo Docker image used by Cloud Build.
|
||||||
hugo-docker-image:
|
hugo-docker-image:
|
||||||
|
@ -78,5 +90,5 @@ htmlproofer-docker-image:
|
||||||
.PHONY: htmlproofer-docker-image
|
.PHONY: htmlproofer-docker-image
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf public/ resources/ node_modules/ upstream/
|
rm -rf public/ resources/ node_modules/ upstream/ content/docs/user_guide/compatibility/linux/
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
|
@ -13,15 +13,62 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: 'bash'
|
||||||
|
args: ['bash', '-c', 'mkdir -p upstream/']
|
||||||
|
# Clone the upstream repos
|
||||||
|
- name: 'gcr.io/cloud-builders/git'
|
||||||
|
args: ['clone', 'https://github.com/google/gvisor.git']
|
||||||
|
dir: 'upstream'
|
||||||
|
- name: 'gcr.io/cloud-builders/git'
|
||||||
|
args: ['clone', 'https://gvisor.googlesource.com/community']
|
||||||
|
dir: 'upstream'
|
||||||
|
# Build runsc
|
||||||
|
- name: 'gcr.io/cloud-builders/bazel'
|
||||||
|
args:
|
||||||
|
- 'build'
|
||||||
|
- '--show_timestamps'
|
||||||
|
- '--test_output=errors'
|
||||||
|
- '--keep_going'
|
||||||
|
- '--verbose_failures'
|
||||||
|
- 'runsc'
|
||||||
|
dir: 'upstream/gvisor'
|
||||||
|
# Build the compatibility doc generator tool
|
||||||
|
- name: 'golang'
|
||||||
|
env: ['GO111MODULE=on']
|
||||||
|
args:
|
||||||
|
- 'go'
|
||||||
|
- 'build'
|
||||||
|
- '-o'
|
||||||
|
- 'bin/generate-syscall-docs'
|
||||||
|
- 'gvisor.dev/website/cmd/generate-syscall-docs'
|
||||||
|
# Generate compatibility docs.
|
||||||
|
- name: 'bash'
|
||||||
|
args:
|
||||||
|
- 'bash'
|
||||||
|
- '-c'
|
||||||
|
- >
|
||||||
|
./upstream/gvisor/bazel-bin/runsc/linux_amd64_pure_stripped/runsc help syscalls -o json |
|
||||||
|
./bin/generate-syscall-docs -out ./content/docs/user_guide/compatibility/
|
||||||
|
# Pull npm dependencies for scss
|
||||||
|
- name: 'gcr.io/cloud-builders/npm'
|
||||||
|
args: ['ci']
|
||||||
# Generate the website.
|
# Generate the website.
|
||||||
- name: 'gcr.io/gvisor-website/hugo:0.53'
|
- name: 'gcr.io/gvisor-website/hugo:0.53'
|
||||||
args: ["make"]
|
env: ['HUGO_ENV=production']
|
||||||
|
args: ["hugo"]
|
||||||
# Test the HTML for issues.
|
# Test the HTML for issues.
|
||||||
- name: 'gcr.io/gvisor-website/html-proofer:3.10.2'
|
- name: 'gcr.io/gvisor-website/html-proofer:3.10.2'
|
||||||
args: ["htmlproofer", "--disable-external", "--check-html", "public/static"]
|
args:
|
||||||
|
- "htmlproofer"
|
||||||
|
- "--disable-external"
|
||||||
|
- "--check-html"
|
||||||
|
- "public/static"
|
||||||
# Deploy to App Engine only for master branch.
|
# Deploy to App Engine only for master branch.
|
||||||
- name: 'gcr.io/cloud-builders/gcloud'
|
- name: 'gcr.io/cloud-builders/gcloud'
|
||||||
entrypoint: 'bash'
|
entrypoint: 'bash'
|
||||||
args:
|
args:
|
||||||
- '-c'
|
- '-c'
|
||||||
- 'if [[ "$PROJECT_ID" == "gvisor-website" && "$BRANCH_NAME" == "master" ]]; then gcloud app deploy public/app.yaml; fi'
|
- >
|
||||||
|
if [[ "$PROJECT_ID" == "gvisor-website" && "$BRANCH_NAME" == "master" ]]; then
|
||||||
|
gcloud app deploy public/app.yaml;
|
||||||
|
fi
|
||||||
|
|
|
@ -0,0 +1,203 @@
|
||||||
|
// Copyright 2019 Google LLC
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"encoding/json"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
|
"text/template"
|
||||||
|
)
|
||||||
|
|
||||||
|
type CompatibilityInfo map[string]map[string]ArchInfo
|
||||||
|
|
||||||
|
// ArchInfo is compatbility doc for an architecture.
|
||||||
|
type ArchInfo struct {
|
||||||
|
// Syscalls maps syscall number for the architecture to the doc.
|
||||||
|
Syscalls map[uintptr]SyscallDoc `json:"syscalls"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// SyscallDoc represents a single item of syscall documentation.
|
||||||
|
type SyscallDoc struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Support string `json:"support"`
|
||||||
|
Note string `json:"note,omitempty"`
|
||||||
|
URLs []string `json:"urls,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
var mdTemplate = template.Must(template.New("out").Parse(`
|
||||||
|
+++
|
||||||
|
title = "{{.OS}}/{{.Arch}}"
|
||||||
|
description = "Syscall Compatibility Reference Documentation for {{.OS}}/{{.Arch}}"
|
||||||
|
weight = {{.Weight}}
|
||||||
|
+++
|
||||||
|
|
||||||
|
This table is a reference of {{.OS}} syscalls for the {{.Arch}} architecture and
|
||||||
|
their compatibility status in gVisor. gVisor does not support all syscalls and
|
||||||
|
some syscalls may have a partial implementation.
|
||||||
|
|
||||||
|
Of {{.Total}} syscalls, {{.Supported}} syscalls have a full or partial
|
||||||
|
implementation. There are currently {{.Unsupported}} unsupported
|
||||||
|
syscalls. {{if .Undocumented}}{{.Undocumented}} syscalls are not yet documented.{{end}}
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>#</th>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Support</th>
|
||||||
|
<th>Notes</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{{range $i, $syscall := .Syscalls}}
|
||||||
|
<tr>
|
||||||
|
<td><a class="doc-table-anchor" id="{{.Name}}"></a>{{.Number}}</td>
|
||||||
|
<td><a href="http://man7.org/linux/man-pages/man2/{{.Name}}.2.html" target="_blank" rel="noopener">{{.Name}}</a></td>
|
||||||
|
<td>{{.Support}}</td>
|
||||||
|
<td>{{.Note}} {{range $i, $url := .URLs}}<br/>See: <a href="{{.}}">{{.}}</a>{{end}}</td>
|
||||||
|
</tr>
|
||||||
|
{{end}}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
`))
|
||||||
|
|
||||||
|
// Fatalf writes a message to stderr and exits with error code 1
|
||||||
|
func Fatalf(format string, a ...interface{}) {
|
||||||
|
fmt.Fprintf(os.Stderr, format, a...)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
inputFlag := flag.String("in", "-", "File to input ('-' for stdin)")
|
||||||
|
outputDir := flag.String("out", ".", "Directory to output files.")
|
||||||
|
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
var input io.Reader
|
||||||
|
if *inputFlag == "-" {
|
||||||
|
input = os.Stdin
|
||||||
|
} else {
|
||||||
|
i, err := os.Open(*inputFlag)
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("Error opening %q: %v", *inputFlag, err)
|
||||||
|
}
|
||||||
|
input = i
|
||||||
|
}
|
||||||
|
input = bufio.NewReader(input)
|
||||||
|
|
||||||
|
var info CompatibilityInfo
|
||||||
|
d := json.NewDecoder(input)
|
||||||
|
if err := d.Decode(&info); err != nil {
|
||||||
|
Fatalf("Error reading json: %v")
|
||||||
|
}
|
||||||
|
|
||||||
|
weight := 0
|
||||||
|
for osName, osInfo := range info {
|
||||||
|
for archName, archInfo := range osInfo {
|
||||||
|
outDir := filepath.Join(*outputDir, osName)
|
||||||
|
outFile := filepath.Join(outDir, archName+".md")
|
||||||
|
|
||||||
|
if err := os.MkdirAll(outDir, 0755); err != nil {
|
||||||
|
Fatalf("Error creating directory %q: %v", *outputDir, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
f, err := os.OpenFile(outFile, os.O_RDWR|os.O_CREATE, 0644)
|
||||||
|
if err != nil {
|
||||||
|
Fatalf("Error opening file %q: %v", outFile, err)
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
weight += 10
|
||||||
|
data := struct {
|
||||||
|
OS string
|
||||||
|
Arch string
|
||||||
|
Weight int
|
||||||
|
Total int
|
||||||
|
Supported int
|
||||||
|
Unsupported int
|
||||||
|
Undocumented int
|
||||||
|
Syscalls []struct {
|
||||||
|
Name string
|
||||||
|
Number uintptr
|
||||||
|
Support string
|
||||||
|
Note string
|
||||||
|
URLs []string
|
||||||
|
}
|
||||||
|
}{
|
||||||
|
OS: strings.Title(osName),
|
||||||
|
Arch: archName,
|
||||||
|
Weight: weight,
|
||||||
|
Total: 0,
|
||||||
|
Supported: 0,
|
||||||
|
Unsupported: 0,
|
||||||
|
Undocumented: 0,
|
||||||
|
Syscalls: []struct {
|
||||||
|
Name string
|
||||||
|
Number uintptr
|
||||||
|
Support string
|
||||||
|
Note string
|
||||||
|
URLs []string
|
||||||
|
}{},
|
||||||
|
}
|
||||||
|
|
||||||
|
for num, s := range archInfo.Syscalls {
|
||||||
|
switch s.Support {
|
||||||
|
case "Full Support", "Partial Support":
|
||||||
|
data.Supported++
|
||||||
|
case "Unimplemented":
|
||||||
|
data.Unsupported++
|
||||||
|
default:
|
||||||
|
data.Undocumented++
|
||||||
|
}
|
||||||
|
data.Total++
|
||||||
|
|
||||||
|
for i := range s.URLs {
|
||||||
|
if !strings.HasPrefix(s.URLs[i], "http://") && !strings.HasPrefix(s.URLs[i], "https://") {
|
||||||
|
s.URLs[i] = "https://" + s.URLs[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
data.Syscalls = append(data.Syscalls, struct {
|
||||||
|
Name string
|
||||||
|
Number uintptr
|
||||||
|
Support string
|
||||||
|
Note string
|
||||||
|
URLs []string
|
||||||
|
}{
|
||||||
|
Name: s.Name,
|
||||||
|
Number: num,
|
||||||
|
Support: s.Support,
|
||||||
|
Note: s.Note, // TODO urls
|
||||||
|
URLs: s.URLs,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
sort.Slice(data.Syscalls, func(i, j int) bool {
|
||||||
|
return data.Syscalls[i].Number < data.Syscalls[j].Number
|
||||||
|
})
|
||||||
|
|
||||||
|
if err := mdTemplate.Execute(f, data); err != nil {
|
||||||
|
Fatalf("Error writing file %q: %v", outFile, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -37,7 +37,7 @@ var redirects = map[string]string{
|
||||||
|
|
||||||
// Redirects to compatibility docs.
|
// Redirects to compatibility docs.
|
||||||
"/c": "/docs/user_guide/compatibility",
|
"/c": "/docs/user_guide/compatibility",
|
||||||
"/c/linux/amd64": "/docs/user_guide/compatibility/amd64",
|
"/c/linux/amd64": "/docs/user_guide/compatibility/linux/amd64",
|
||||||
|
|
||||||
// Deprecated, but links continue to work.
|
// Deprecated, but links continue to work.
|
||||||
"/cl": "https://gvisor-review.googlesource.com",
|
"/cl": "https://gvisor-review.googlesource.com",
|
||||||
|
@ -49,7 +49,7 @@ var prefixHelpers = map[string]string{
|
||||||
"pr": "https://github.com/google/gvisor/pull/%s",
|
"pr": "https://github.com/google/gvisor/pull/%s",
|
||||||
|
|
||||||
// Redirects to compatibility docs.
|
// Redirects to compatibility docs.
|
||||||
"c/linux/amd64": "/docs/user_guide/compatibility/amd64/#%s",
|
"c/linux/amd64": "/docs/user_guide/compatibility/linux/amd64/#%s",
|
||||||
|
|
||||||
// Deprecated, but links continue to work.
|
// Deprecated, but links continue to work.
|
||||||
"cl": "https://gvisor-review.googlesource.com/c/gvisor/+/%s",
|
"cl": "https://gvisor-review.googlesource.com/c/gvisor/+/%s",
|
||||||
|
|
|
@ -1,713 +0,0 @@
|
||||||
+++
|
|
||||||
title = "AMD64"
|
|
||||||
description = "Syscall Compatibility Reference Documentation for AMD64"
|
|
||||||
weight = 10
|
|
||||||
+++
|
|
||||||
|
|
||||||
This table is a reference of Linux syscalls for the AMD64 architecture and
|
|
||||||
their compatibility status in gVisor. gVisor does not support all syscalls and
|
|
||||||
some syscalls may have a partial implementation.
|
|
||||||
|
|
||||||
Of 329 syscalls, 47 syscalls have a full or partial
|
|
||||||
implementation. There are currently 51 unimplemented
|
|
||||||
syscalls. 231 syscalls are not yet documented.
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>#</th>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Support</th>
|
|
||||||
<th>GitHub Issue</th>
|
|
||||||
<th>Notes</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="msgget"></a>68</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/msgget.2.html" target="_blank" rel="noopener">msgget</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="msgsnd"></a>69</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/msgsnd.2.html" target="_blank" rel="noopener">msgsnd</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="msgrcv"></a>70</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/msgrcv.2.html" target="_blank" rel="noopener">msgrcv</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="msgctl"></a>71</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/msgctl.2.html" target="_blank" rel="noopener">msgctl</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="setfsuid"></a>122</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/setfsuid.2.html" target="_blank" rel="noopener">setfsuid</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="setfsgid"></a>123</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/setfsgid.2.html" target="_blank" rel="noopener">setfsgid</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="uselib"></a>134</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/uselib.2.html" target="_blank" rel="noopener">uselib</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Obsolete</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="personality"></a>135</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/personality.2.html" target="_blank" rel="noopener">personality</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EINVAL; Unable to change personality</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="ustat"></a>136</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/ustat.2.html" target="_blank" rel="noopener">ustat</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Needs filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="sysfs"></a>139</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sysfs.2.html" target="_blank" rel="noopener">sysfs</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="sched_setparam"></a>142</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sched_setparam.2.html" target="_blank" rel="noopener">sched_setparam</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="schedrrgetinterval"></a>148</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html" target="_blank" rel="noopener">sched_rr_get_interval</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="vhangup"></a>153</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/vhangup.2.html" target="_blank" rel="noopener">vhangup</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="modify_ldt"></a>154</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/modify_ldt.2.html" target="_blank" rel="noopener">modify_ldt</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="pivot_root"></a>155</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/pivot_root.2.html" target="_blank" rel="noopener">pivot_root</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="sysctl"></a>156</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sysctl.2.html" target="_blank" rel="noopener">sysctl</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="adjtimex"></a>159</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/adjtimex.2.html" target="_blank" rel="noopener">adjtimex</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_time; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="acct"></a>163</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/acct.2.html" target="_blank" rel="noopener">acct</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_pacct; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="settimeofday"></a>164</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/settimeofday.2.html" target="_blank" rel="noopener">settimeofday</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_time; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="swapon"></a>167</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/swapon.2.html" target="_blank" rel="noopener">swapon</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="swapoff"></a>168</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/swapoff.2.html" target="_blank" rel="noopener">swapoff</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="reboot"></a>169</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/reboot.2.html" target="_blank" rel="noopener">reboot</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_boot; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="iopl"></a>172</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/iopl.2.html" target="_blank" rel="noopener">iopl</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_rawio; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="ioperm"></a>173</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/ioperm.2.html" target="_blank" rel="noopener">ioperm</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_rawio; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="create_module"></a>174</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/create_module.2.html" target="_blank" rel="noopener">create_module</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="init_module"></a>175</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/init_module.2.html" target="_blank" rel="noopener">init_module</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="delete_module"></a>176</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/delete_module.2.html" target="_blank" rel="noopener">delete_module</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="get_kernel_syms"></a>177</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/get_kernel_syms.2.html" target="_blank" rel="noopener">get_kernel_syms</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not supported in > 2.6</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="query_module"></a>178</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/query_module.2.html" target="_blank" rel="noopener">query_module</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not supported in > 2.6</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="quotactl"></a>179</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/quotactl.2.html" target="_blank" rel="noopener">quotactl</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="nfsservctl"></a>180</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/nfsservctl.2.html" target="_blank" rel="noopener">nfsservctl</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Does not exist > 3.1</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="getpmsg"></a>181</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/getpmsg.2.html" target="_blank" rel="noopener">getpmsg</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented in Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="putpmsg"></a>182</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/putpmsg.2.html" target="_blank" rel="noopener">putpmsg</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented in Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="afs_syscall"></a>183</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/afs_syscall.2.html" target="_blank" rel="noopener">afs_syscall</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented in Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="tuxcall"></a>184</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/tuxcall.2.html" target="_blank" rel="noopener">tuxcall</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented in Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="security"></a>185</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/security.2.html" target="_blank" rel="noopener">security</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented in Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="readahead"></a>187</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/readahead.2.html" target="_blank" rel="noopener">readahead</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="setxattr"></a>188</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/setxattr.2.html" target="_blank" rel="noopener">setxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="lsetxattr"></a>189</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/lsetxattr.2.html" target="_blank" rel="noopener">lsetxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="fsetxattr"></a>190</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/fsetxattr.2.html" target="_blank" rel="noopener">fsetxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="getxattr"></a>191</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/getxattr.2.html" target="_blank" rel="noopener">getxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="lgetxattr"></a>192</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/lgetxattr.2.html" target="_blank" rel="noopener">lgetxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="fgetxattr"></a>193</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/fgetxattr.2.html" target="_blank" rel="noopener">fgetxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="listxattr"></a>194</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/listxattr.2.html" target="_blank" rel="noopener">listxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="llistxattr"></a>195</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/llistxattr.2.html" target="_blank" rel="noopener">llistxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="flistxattr"></a>196</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/flistxattr.2.html" target="_blank" rel="noopener">flistxattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="removexattr"></a>197</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/removexattr.2.html" target="_blank" rel="noopener">removexattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="lremovexattr"></a>198</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/lremovexattr.2.html" target="_blank" rel="noopener">lremovexattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="fremovexattr"></a>199</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/fremovexattr.2.html" target="_blank" rel="noopener">fremovexattr</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOTSUP; Requires filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="set_thread_area"></a>205</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/set_thread_area.2.html" target="_blank" rel="noopener">set_thread_area</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Expected to return ENOSYS on 64-bit</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="get_thread_area"></a>211</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/get_thread_area.2.html" target="_blank" rel="noopener">get_thread_area</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Expected to return ENOSYS on 64-bit</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="lookup_dcookie"></a>212</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/lookup_dcookie.2.html" target="_blank" rel="noopener">lookup_dcookie</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="epoll_ctl_old"></a>214</td>
|
|
||||||
<td>epoll_ctl_old</td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Deprecated</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="epoll_wait_old"></a>215</td>
|
|
||||||
<td>epoll_wait_old</td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Deprecated</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="remap_file_pages"></a>216</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/remap_file_pages.2.html" target="_blank" rel="noopener">remap_file_pages</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Deprecated</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="semtimedop"></a>220</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/semtimedop.2.html" target="_blank" rel="noopener">semtimedop</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="vserver"></a>236</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/vserver.2.html" target="_blank" rel="noopener">vserver</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Not implemented by Linux</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mbind"></a>237</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mbind.2.html" target="_blank" rel="noopener">mbind</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_open"></a>240</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_open.2.html" target="_blank" rel="noopener">mq_open</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_unlink"></a>241</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_unlink.2.html" target="_blank" rel="noopener">mq_unlink</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_timedsend"></a>242</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_timedsend.2.html" target="_blank" rel="noopener">mq_timedsend</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_timedreceive"></a>243</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_timedreceive.2.html" target="_blank" rel="noopener">mq_timedreceive</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_notify"></a>244</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_notify.2.html" target="_blank" rel="noopener">mq_notify</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="mq_getsetattr"></a>245</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/mq_getsetattr.2.html" target="_blank" rel="noopener">mq_getsetattr</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="add_key"></a>248</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/add_key.2.html" target="_blank" rel="noopener">add_key</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EACCES; Not available to user</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="request_key"></a>249</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/request_key.2.html" target="_blank" rel="noopener">request_key</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EACCES; Not available to user</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="keyctl"></a>250</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/keyctl.2.html" target="_blank" rel="noopener">keyctl</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EACCES; Not available to user</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="ioprio_set"></a>251</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/ioprio_set.2.html" target="_blank" rel="noopener">ioprio_set</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="ioprio_get"></a>252</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/ioprio_get.2.html" target="_blank" rel="noopener">ioprio_get</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_admin; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="migrate_pages"></a>256</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/migrate_pages.2.html" target="_blank" rel="noopener">migrate_pages</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="set_robust_list"></a>273</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/set_robust_list.2.html" target="_blank" rel="noopener">set_robust_list</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Obsolete</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="get_robust_list"></a>274</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/get_robust_list.2.html" target="_blank" rel="noopener">get_robust_list</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Obsolete</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="splice"></a>275</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/splice.2.html" target="_blank" rel="noopener">splice</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="tee"></a>276</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/tee.2.html" target="_blank" rel="noopener">tee</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="vmsplice"></a>278</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/vmsplice.2.html" target="_blank" rel="noopener">vmsplice</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="move_pages"></a>279</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/move_pages.2.html" target="_blank" rel="noopener">move_pages</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_nice; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="signalfd"></a>282</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/signalfd.2.html" target="_blank" rel="noopener">signalfd</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="signalfd4"></a>289</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/signalfd4.2.html" target="_blank" rel="noopener">signalfd4</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="perf_event_open"></a>298</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/perf_event_open.2.html" target="_blank" rel="noopener">perf_event_open</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENODEV; No support for perf counters</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="fanotify_init"></a>300</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/fanotify_init.2.html" target="_blank" rel="noopener">fanotify_init</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Needs CONFIG_FANOTIFY</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="fanotify_mark"></a>301</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/fanotify_mark.2.html" target="_blank" rel="noopener">fanotify_mark</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS; Needs CONFIG_FANOTIFY</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="name_to_handle_at"></a>303</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/name_to_handle_at.2.html" target="_blank" rel="noopener">name_to_handle_at</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EOPNOTSUPP; Needs filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="open_by_handle_at"></a>304</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/open_by_handle_at.2.html" target="_blank" rel="noopener">open_by_handle_at</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EOPNOTSUPP; Needs filesystem support</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="clock_adjtime"></a>305</td>
|
|
||||||
<td>clock_adjtime</td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="setns"></a>308</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/setns.2.html" target="_blank" rel="noopener">setns</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="process_vm_readv"></a>310</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/process_vm_readv.2.html" target="_blank" rel="noopener">process_vm_readv</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="process_vm_writev"></a>311</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/process_vm_writev.2.html" target="_blank" rel="noopener">process_vm_writev</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="kcmp"></a>312</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/kcmp.2.html" target="_blank" rel="noopener">kcmp</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Requires cap_sys_ptrace</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="finit_module"></a>313</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/finit_module.2.html" target="_blank" rel="noopener">finit_module</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_module; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="sched_setattr"></a>314</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sched_setattr.2.html" target="_blank" rel="noopener">sched_setattr</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="sched_getattr"></a>315</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/sched_getattr.2.html" target="_blank" rel="noopener">sched_getattr</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="renameat2"></a>316</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/renameat2.2.html" target="_blank" rel="noopener">renameat2</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="memfd_create"></a>319</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/memfd_create.2.html" target="_blank" rel="noopener">memfd_create</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="bpf"></a>321</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/bpf.2.html" target="_blank" rel="noopener">bpf</a></td>
|
|
||||||
<td>Partial</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns EPERM or ENOSYS; Returns EPERM if the process does not have cap_sys_boot; ENOSYS otherwise</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="execveat"></a>322</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/execveat.2.html" target="_blank" rel="noopener">execveat</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="userfaultfd"></a>323</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/userfaultfd.2.html" target="_blank" rel="noopener">userfaultfd</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="membarrier"></a>324</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/membarrier.2.html" target="_blank" rel="noopener">membarrier</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><a class="doc-table-anchor" id="copy_file_range"></a>326</td>
|
|
||||||
<td><a href="http://man7.org/linux/man-pages/man2/copy_file_range.2.html" target="_blank" rel="noopener">copy_file_range</a></td>
|
|
||||||
<td>Unimplemented</td>
|
|
||||||
<td></td>
|
|
||||||
<td>Returns ENOSYS</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
|
@ -0,0 +1 @@
|
||||||
|
amd64.md
|
Loading…
Reference in New Issue