commit
1bd3fd2429
561 changed files with 113955 additions and 533 deletions
52
.travis.yml
52
.travis.yml
|
@ -5,13 +5,6 @@ sudo: required
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
|
|
||||||
# FIXME(#46924): these two commands are required to enable IPv6,
|
|
||||||
# they shouldn't exist, please revert once more official solutions appeared.
|
|
||||||
# see https://github.com/travis-ci/travis-ci/issues/8891#issuecomment-353403729
|
|
||||||
before_install:
|
|
||||||
- echo '{"ipv6":true,"fixed-cidr-v6":"2001:db8:1::/64"}' | sudo tee /etc/docker/daemon.json
|
|
||||||
- sudo service docker restart
|
|
||||||
|
|
||||||
language: generic
|
language: generic
|
||||||
|
|
||||||
notifications:
|
notifications:
|
||||||
|
@ -22,8 +15,6 @@ notifications:
|
||||||
# New secure variables can be added using travis encrypt -r kubernetes/ingress-nginx --add K=V
|
# New secure variables can be added using travis encrypt -r kubernetes/ingress-nginx --add K=V
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- DOCKER=docker
|
|
||||||
- SKIP_SNAPSHOT=true
|
|
||||||
- GH_REF=github.com/kubernetes/ingress-nginx
|
- GH_REF=github.com/kubernetes/ingress-nginx
|
||||||
- secure: LIS2XpZufWTcJ53jiRsSZy2Gi1EUJ1XmLg7z3f2ZHeMnyG2Jhk3GW4vod1FNru+PY4PWgddLdCdIl+jqOYXndFlbdAWF3/Oy5fEkYLXdYV7tdlHcPWDkqNFrfiyZ4guChN+b2Nk6FqU7o5fsZAIR7VAbgqNRF5XMo9Mhn/vhDCQRcnbXy7uq7JTrYUkqDbQoyYvT6b480GCY5gags1zp/xZfPDNZEe936o8i5IPTyiykRyNOXN/AH6kd3pR5e1xYgcvJ9KpSVPghcwFE7kJ4fOVMRhRG5ML+IyML+xD0jX43EMNoqRKZ/HS42kIMCInFbJEcxVde7DPNBZ7Y3GAqh7HO6qrE70Dn3ha6DID6zCoH2ArW39BxG4zempjn2VxYoMRGREyZszWQb++dwGoHmo5FHt6zvIrYBG0dA0H8ja9VkZkjFwtYTGHU1ooPzUfJK4O4VBayV8LqZibyZQR+GrmyQc0aagUY7J/fe4A2PJyI4DbkeZ7GX1ELj0ciDz4urQSzUc8l/T3aU3X+FuJItjgYtMLPmqcjA5uifDCtutE8Z9L2gSpanqUdvLSOozuxPho/KNl+2YlF7fXqPW3LnRf5mHD+NbOff306pvKlHJOb2Vmth+HBQ1XDzt/Cy5+sfwS3E0Vmh6UTq/NtkUXxwH10BDMF7FMVlQ4zdHQvyZ0=
|
- secure: LIS2XpZufWTcJ53jiRsSZy2Gi1EUJ1XmLg7z3f2ZHeMnyG2Jhk3GW4vod1FNru+PY4PWgddLdCdIl+jqOYXndFlbdAWF3/Oy5fEkYLXdYV7tdlHcPWDkqNFrfiyZ4guChN+b2Nk6FqU7o5fsZAIR7VAbgqNRF5XMo9Mhn/vhDCQRcnbXy7uq7JTrYUkqDbQoyYvT6b480GCY5gags1zp/xZfPDNZEe936o8i5IPTyiykRyNOXN/AH6kd3pR5e1xYgcvJ9KpSVPghcwFE7kJ4fOVMRhRG5ML+IyML+xD0jX43EMNoqRKZ/HS42kIMCInFbJEcxVde7DPNBZ7Y3GAqh7HO6qrE70Dn3ha6DID6zCoH2ArW39BxG4zempjn2VxYoMRGREyZszWQb++dwGoHmo5FHt6zvIrYBG0dA0H8ja9VkZkjFwtYTGHU1ooPzUfJK4O4VBayV8LqZibyZQR+GrmyQc0aagUY7J/fe4A2PJyI4DbkeZ7GX1ELj0ciDz4urQSzUc8l/T3aU3X+FuJItjgYtMLPmqcjA5uifDCtutE8Z9L2gSpanqUdvLSOozuxPho/KNl+2YlF7fXqPW3LnRf5mHD+NbOff306pvKlHJOb2Vmth+HBQ1XDzt/Cy5+sfwS3E0Vmh6UTq/NtkUXxwH10BDMF7FMVlQ4zdHQvyZ0=
|
||||||
- secure: rKDoy9IYYYy0fYBs4+9mwuBVq/TcxfFwMfE0ywYWhUUdgzrUYSJAwpoe/96EQ4YmESUefwC2nDNq4G3XzJKYOWf83PaIveb9Z//zmMrCQXjDuDBDLpwV3sXSh7evXiVDohJz4ogBCeMRUCMKYsyKBM9yWfa/iu+yI92dbphpK9peOKW6yBc0uspJlln4swN3GS2WT9LVuPY2Azv9U2UqrXufOPDKG/qEb/Vrn4yZ2lR/50r2k45e9nSvDoByvr10V8ubM5Zc0iP0vBuAUVRdByv6N53Q4gaBGapY6SxhIjIPC/h0rNnuT9EXp7MWaPT5FmBxLt9wnyleT9QhZJnFyaBYqFgcz/DKifYQkryY4M5dLMo/Rt3yATyAy8Y0df1TOoV2dKdqwOOwQ8bXB1wDfyrGxmQj9HY4Ffnphx3wPE1a+Sjuh+S5Epm7XJbPx5pZJqNO2hd4sTbk0Xp3gpPbihny2r/jtNwHl0wpFCfOM68RNrsVRlIwG3UhzbZvblbQ/M/mmWCdgzINjt07I2SGCJxfKG0e98Q49SKUoDoOgQTTRDqTC9IgOEDxyfAkT0Vr6BtlP88Nsgnf6kmboyigBrRAiaDQGTxn3SP6LnQI3CeopaRDYvFZe/rTwPXE9XlKoTn9FTWnAqF3MuWaLslDcDKYEh7OaYJjF01piu6g4Nc=
|
- secure: rKDoy9IYYYy0fYBs4+9mwuBVq/TcxfFwMfE0ywYWhUUdgzrUYSJAwpoe/96EQ4YmESUefwC2nDNq4G3XzJKYOWf83PaIveb9Z//zmMrCQXjDuDBDLpwV3sXSh7evXiVDohJz4ogBCeMRUCMKYsyKBM9yWfa/iu+yI92dbphpK9peOKW6yBc0uspJlln4swN3GS2WT9LVuPY2Azv9U2UqrXufOPDKG/qEb/Vrn4yZ2lR/50r2k45e9nSvDoByvr10V8ubM5Zc0iP0vBuAUVRdByv6N53Q4gaBGapY6SxhIjIPC/h0rNnuT9EXp7MWaPT5FmBxLt9wnyleT9QhZJnFyaBYqFgcz/DKifYQkryY4M5dLMo/Rt3yATyAy8Y0df1TOoV2dKdqwOOwQ8bXB1wDfyrGxmQj9HY4Ffnphx3wPE1a+Sjuh+S5Epm7XJbPx5pZJqNO2hd4sTbk0Xp3gpPbihny2r/jtNwHl0wpFCfOM68RNrsVRlIwG3UhzbZvblbQ/M/mmWCdgzINjt07I2SGCJxfKG0e98Q49SKUoDoOgQTTRDqTC9IgOEDxyfAkT0Vr6BtlP88Nsgnf6kmboyigBrRAiaDQGTxn3SP6LnQI3CeopaRDYvFZe/rTwPXE9XlKoTn9FTWnAqF3MuWaLslDcDKYEh7OaYJjF01piu6g4Nc=
|
||||||
|
@ -32,49 +23,6 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
include:
|
include:
|
||||||
- stage: Static Check
|
|
||||||
script:
|
|
||||||
- make static-check
|
|
||||||
- stage: Lua Unit Test
|
|
||||||
script:
|
|
||||||
- make lua-test
|
|
||||||
- stage: Coverage
|
|
||||||
script:
|
|
||||||
- make cover
|
|
||||||
- stage: e2e
|
|
||||||
if: (branch = master AND env(COMPONENT) != "docs") OR (type = pull_request AND commit_message !~ /(skip-e2e)/)
|
|
||||||
before_script:
|
|
||||||
- sudo mkdir -p /home/travis/.kube/ && sudo chmod 777 /home/travis/.kube/
|
|
||||||
- curl -sSL -o kubectl https://storage.googleapis.com/kubernetes-release/release/v1.14.1/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
|
|
||||||
- curl -sSL -o kind https://github.com/kubernetes-sigs/kind/releases/download/0.2.1/kind-linux-amd64 && chmod +x kind && sudo mv kind /usr/local/bin/
|
|
||||||
- make e2e-test-image
|
|
||||||
script:
|
|
||||||
- test/e2e/run.sh
|
|
||||||
# split builds to avoid job timeouts
|
|
||||||
- stage: publish amd64
|
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "ingress-controller"
|
|
||||||
script:
|
|
||||||
- .travis/publish.sh amd64
|
|
||||||
- stage: publish arm
|
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "ingress-controller"
|
|
||||||
script:
|
|
||||||
- make register-qemu
|
|
||||||
- .travis/publish.sh arm
|
|
||||||
- stage: publish arm64
|
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "ingress-controller"
|
|
||||||
script:
|
|
||||||
- make register-qemu
|
|
||||||
- .travis/publish.sh arm64
|
|
||||||
- stage: publish ppc64le
|
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "ingress-controller"
|
|
||||||
script:
|
|
||||||
- make register-qemu
|
|
||||||
- .travis/publish.sh ppc64le
|
|
||||||
- stage: publish s390x
|
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "ingress-controller"
|
|
||||||
script:
|
|
||||||
- make register-qemu
|
|
||||||
- .travis/publish.sh s390x
|
|
||||||
- stage: Publish docs
|
- stage: Publish docs
|
||||||
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "docs"
|
if: type = api AND branch = master AND repo = kubernetes/ingress-nginx AND env(COMPONENT) = "docs"
|
||||||
script:
|
script:
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
#
|
|
||||||
# http://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.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
source $DIR/common.sh
|
|
||||||
|
|
||||||
IMAGE=$(make -s -C $DIR/../ image-info)
|
|
||||||
|
|
||||||
if docker_tag_exists "kubernetes-ingress-controller/nginx-ingress-controller" $(echo $IMAGE | jq .tag) "$ARCH"; then
|
|
||||||
echo "Image already published"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "building nginx-ingress-controller-$ARCH image..."
|
|
||||||
make -C $DIR/../ sub-container-$ARCH
|
|
||||||
make -C $DIR/../ sub-push-$ARCH
|
|
|
@ -1,45 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
#
|
|
||||||
# http://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.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
if [ "$COMPONENT" == "docs" ]; then
|
|
||||||
echo "Skipping because we are publishing docs"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -eq "1" ]
|
|
||||||
then
|
|
||||||
export ARCH=$1
|
|
||||||
fi
|
|
||||||
|
|
||||||
source $DIR/common.sh
|
|
||||||
|
|
||||||
echo "Login to quay.io..."
|
|
||||||
docker login --username=$QUAY_USERNAME --password=$QUAY_PASSWORD quay.io >/dev/null 2>&1
|
|
||||||
|
|
||||||
case "$COMPONENT" in
|
|
||||||
"ingress-controller")
|
|
||||||
$DIR/ingress-controller.sh
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid option in environment variable COMPONENT"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1,67 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
#
|
|
||||||
# http://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.
|
|
||||||
|
|
||||||
if ! [ -z $DEBUG ]; then
|
|
||||||
set -x
|
|
||||||
fi
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
if [ "$TRAVIS_CI_TOKEN" == "" ];
|
|
||||||
then
|
|
||||||
echo "Environment variable TRAVIS_CI_TOKEN is missing.";
|
|
||||||
exit 1;
|
|
||||||
fi
|
|
||||||
|
|
||||||
function publish() {
|
|
||||||
|
|
||||||
body=$(cat <<EOF
|
|
||||||
{
|
|
||||||
"request": {
|
|
||||||
"branch": "master",
|
|
||||||
"message": "Publishing image for component $2 to quay.io",
|
|
||||||
"config": {
|
|
||||||
"merge_mode": "deep_merge",
|
|
||||||
"env": {
|
|
||||||
"matrix" : {
|
|
||||||
"COMPONENT": "$2"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
|
|
||||||
curl -s -X POST \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-H "Accept: application/json" \
|
|
||||||
-H "Travis-API-Version: 3" \
|
|
||||||
-H "Authorization: token $1" \
|
|
||||||
--data "$body" \
|
|
||||||
https://api.travis-ci.org/repo/kubernetes%2Fingress-nginx/requests
|
|
||||||
}
|
|
||||||
|
|
||||||
case "$1" in
|
|
||||||
ingress-controller|nginx|docs)
|
|
||||||
publish $TRAVIS_CI_TOKEN $1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Invalid publish option"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
99
Makefile
99
Makefile
|
@ -29,32 +29,39 @@ FOCUS ?= .*
|
||||||
E2E_NODES ?= 10
|
E2E_NODES ?= 10
|
||||||
# slow test only if takes > 50s
|
# slow test only if takes > 50s
|
||||||
SLOW_E2E_THRESHOLD ?= 50
|
SLOW_E2E_THRESHOLD ?= 50
|
||||||
|
K8S_VERSION ?= v1.14.1
|
||||||
|
|
||||||
ifeq ($(GOHOSTOS),darwin)
|
ifeq ($(GOHOSTOS),darwin)
|
||||||
SED_I=sed -i ''
|
SED_I=sed -i ''
|
||||||
endif
|
endif
|
||||||
|
|
||||||
REPO_INFO=$(shell git config --get remote.origin.url)
|
REPO_INFO ?= $(shell git config --get remote.origin.url)
|
||||||
|
GIT_COMMIT ?= git-$(shell git rev-parse --short HEAD)
|
||||||
ifndef GIT_COMMIT
|
|
||||||
GIT_COMMIT := git-$(shell git rev-parse --short HEAD)
|
|
||||||
endif
|
|
||||||
|
|
||||||
PKG = k8s.io/ingress-nginx
|
PKG = k8s.io/ingress-nginx
|
||||||
|
|
||||||
ARCH ?= $(shell go env GOARCH)
|
ARCH ?= $(shell go env GOARCH)
|
||||||
GOARCH = ${ARCH}
|
GOARCH = ${ARCH}
|
||||||
DUMB_ARCH = ${ARCH}
|
DUMB_ARCH = ${ARCH}
|
||||||
KUBECTL_CONTEXT = $(shell kubectl config current-context)
|
|
||||||
|
|
||||||
GOBUILD_FLAGS :=
|
GOBUILD_FLAGS := -v
|
||||||
|
|
||||||
ALL_ARCH = amd64 arm64
|
ALL_ARCH = amd64 arm64
|
||||||
|
|
||||||
QEMUVERSION = v3.0.0
|
QEMUVERSION = v4.0.0
|
||||||
|
|
||||||
BUSTED_ARGS =-v --pattern=_test
|
BUSTED_ARGS =-v --pattern=_test
|
||||||
|
|
||||||
|
export ARCH
|
||||||
|
export DUMB_ARCH
|
||||||
|
export TAG
|
||||||
|
export PKG
|
||||||
|
export GOARCH
|
||||||
|
export GIT_COMMIT
|
||||||
|
export GOBUILD_FLAGS
|
||||||
|
export REPO_INFO
|
||||||
|
export BUSTED_ARGS
|
||||||
|
|
||||||
IMGNAME = nginx-ingress-controller
|
IMGNAME = nginx-ingress-controller
|
||||||
IMAGE = $(REGISTRY)/$(IMGNAME)
|
IMAGE = $(REGISTRY)/$(IMGNAME)
|
||||||
MULTI_ARCH_IMG = $(IMAGE)-$(ARCH)
|
MULTI_ARCH_IMG = $(IMAGE)-$(ARCH)
|
||||||
|
@ -68,20 +75,8 @@ endif
|
||||||
|
|
||||||
TEMP_DIR := $(shell mktemp -d)
|
TEMP_DIR := $(shell mktemp -d)
|
||||||
|
|
||||||
DEF_VARS:=ARCH=$(ARCH) \
|
|
||||||
TAG=$(TAG) \
|
|
||||||
PKG=$(PKG) \
|
|
||||||
GOARCH=$(GOARCH) \
|
|
||||||
GIT_COMMIT=$(GIT_COMMIT) \
|
|
||||||
REPO_INFO=$(REPO_INFO) \
|
|
||||||
PWD=$(PWD)
|
|
||||||
|
|
||||||
DOCKERFILE := $(TEMP_DIR)/rootfs/Dockerfile
|
DOCKERFILE := $(TEMP_DIR)/rootfs/Dockerfile
|
||||||
|
|
||||||
.PHONY: image-info
|
|
||||||
image-info:
|
|
||||||
echo -n '{"image":"$(IMAGE)","tag":"$(TAG)"}'
|
|
||||||
|
|
||||||
.PHONY: sub-container-%
|
.PHONY: sub-container-%
|
||||||
sub-container-%:
|
sub-container-%:
|
||||||
$(MAKE) ARCH=$* build container
|
$(MAKE) ARCH=$* build container
|
||||||
|
@ -101,11 +96,10 @@ container: clean-container .container-$(ARCH)
|
||||||
|
|
||||||
.PHONY: .container-$(ARCH)
|
.PHONY: .container-$(ARCH)
|
||||||
.container-$(ARCH):
|
.container-$(ARCH):
|
||||||
@echo "+ Copying artifact to temporary directory"
|
|
||||||
mkdir -p $(TEMP_DIR)/rootfs
|
mkdir -p $(TEMP_DIR)/rootfs
|
||||||
cp bin/$(ARCH)/nginx-ingress-controller $(TEMP_DIR)/rootfs/nginx-ingress-controller
|
cp bin/$(ARCH)/nginx-ingress-controller $(TEMP_DIR)/rootfs/nginx-ingress-controller
|
||||||
cp bin/$(ARCH)/dbg $(TEMP_DIR)/rootfs/dbg
|
cp bin/$(ARCH)/dbg $(TEMP_DIR)/rootfs/dbg
|
||||||
@echo "+ Building container image $(MULTI_ARCH_IMG):$(TAG)"
|
|
||||||
cp -RP ./* $(TEMP_DIR)
|
cp -RP ./* $(TEMP_DIR)
|
||||||
$(SED_I) "s|BASEIMAGE|$(BASEIMAGE)|g" $(DOCKERFILE)
|
$(SED_I) "s|BASEIMAGE|$(BASEIMAGE)|g" $(DOCKERFILE)
|
||||||
$(SED_I) "s|QEMUARCH|$(QEMUARCH)|g" $(DOCKERFILE)
|
$(SED_I) "s|QEMUARCH|$(QEMUARCH)|g" $(DOCKERFILE)
|
||||||
|
@ -120,22 +114,21 @@ else
|
||||||
$(SED_I) "s/CROSS_BUILD_//g" $(DOCKERFILE)
|
$(SED_I) "s/CROSS_BUILD_//g" $(DOCKERFILE)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(DOCKER) build --no-cache --pull -t $(MULTI_ARCH_IMG):$(TAG) $(TEMP_DIR)/rootfs
|
@$(DOCKER) build --no-cache --pull -t $(MULTI_ARCH_IMG):$(TAG) $(TEMP_DIR)/rootfs
|
||||||
|
|
||||||
ifeq ($(ARCH), amd64)
|
ifeq ($(ARCH), amd64)
|
||||||
# This is for maintaining backward compatibility
|
# This is for maintaining backward compatibility
|
||||||
$(DOCKER) tag $(MULTI_ARCH_IMG):$(TAG) $(IMAGE):$(TAG)
|
@$(DOCKER) tag $(MULTI_ARCH_IMG):$(TAG) $(IMAGE):$(TAG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: clean-container
|
.PHONY: clean-container
|
||||||
clean-container:
|
clean-container:
|
||||||
@echo "+ Deleting container image $(MULTI_ARCH_IMG):$(TAG)"
|
@$(DOCKER) rmi -f $(MULTI_ARCH_IMG):$(TAG) || true
|
||||||
$(DOCKER) rmi -f $(MULTI_ARCH_IMG):$(TAG) || true
|
|
||||||
|
|
||||||
.PHONY: register-qemu
|
.PHONY: register-qemu
|
||||||
register-qemu:
|
register-qemu:
|
||||||
# Register /usr/bin/qemu-ARCH-static as the handler for binaries in multiple platforms
|
# Register /usr/bin/qemu-ARCH-static as the handler for binaries in multiple platforms
|
||||||
$(DOCKER) run --rm --privileged multiarch/qemu-user-static:register --reset
|
@$(DOCKER) run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
|
|
||||||
.PHONY: push
|
.PHONY: push
|
||||||
push: .push-$(ARCH)
|
push: .push-$(ARCH)
|
||||||
|
@ -149,16 +142,11 @@ endif
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
build:
|
build:
|
||||||
@echo "+ Building bin/$(ARCH)/nginx-ingress-controller"
|
@build/build.sh
|
||||||
@$(DEF_VARS) \
|
|
||||||
GOBUILD_FLAGS="$(GOBUILD_FLAGS)" \
|
|
||||||
build/go-in-docker.sh build/build.sh
|
|
||||||
|
|
||||||
.PHONY: build-plugin
|
.PHONY: build-plugin
|
||||||
build-plugin:
|
build-plugin:
|
||||||
@$(DEF_VARS) \
|
@build/build-plugin.sh
|
||||||
GOBUILD_FLAGS="$(GOBUILD_FLAGS)" \
|
|
||||||
build/go-in-docker.sh build/build-plugin.sh
|
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
|
@ -166,32 +154,18 @@ clean:
|
||||||
|
|
||||||
.PHONY: static-check
|
.PHONY: static-check
|
||||||
static-check:
|
static-check:
|
||||||
@$(DEF_VARS) \
|
@build/static-check.sh
|
||||||
build/go-in-docker.sh build/static-check.sh
|
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test:
|
test:
|
||||||
@$(DEF_VARS) \
|
@build/test.sh
|
||||||
DOCKER_OPTS="-i --net=host" \
|
|
||||||
build/go-in-docker.sh build/test.sh
|
|
||||||
|
|
||||||
.PHONY: lua-test
|
.PHONY: lua-test
|
||||||
lua-test:
|
lua-test:
|
||||||
@$(DEF_VARS) \
|
@build/test-lua.sh
|
||||||
BUSTED_ARGS="$(BUSTED_ARGS)" \
|
|
||||||
build/go-in-docker.sh build/test-lua.sh
|
|
||||||
|
|
||||||
.PHONY: e2e-test
|
.PHONY: e2e-test
|
||||||
e2e-test:
|
e2e-test:
|
||||||
if [ "$(KUBECTL_CONTEXT)" != "minikube" ] && \
|
|
||||||
! echo $(KUBECTL_CONTEXT) | grep kind && \
|
|
||||||
! echo $(KUBECTL_CONTEXT) | grep ingress-nginx-dev && \
|
|
||||||
[ "$(KUBECTL_CONTEXT)" != "dind" ] && \
|
|
||||||
[ "$(KUBECTL_CONTEXT)" != "docker-for-desktop" ]; then \
|
|
||||||
echo "kubectl context is "$(KUBECTL_CONTEXT)", but must be one of [minikube, *kind*, *ingress-nginx-dev*, dind, docker-for-deskop]"; \
|
|
||||||
exit 1; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Granting permissions to ingress-nginx e2e service account..."
|
echo "Granting permissions to ingress-nginx e2e service account..."
|
||||||
kubectl create serviceaccount ingress-nginx-e2e || true
|
kubectl create serviceaccount ingress-nginx-e2e || true
|
||||||
kubectl create clusterrolebinding permissive-binding \
|
kubectl create clusterrolebinding permissive-binding \
|
||||||
|
@ -205,7 +179,7 @@ e2e-test:
|
||||||
sleep 3; \
|
sleep 3; \
|
||||||
done
|
done
|
||||||
|
|
||||||
kubectl run --rm -i --tty \
|
kubectl run --rm \
|
||||||
--attach \
|
--attach \
|
||||||
--restart=Never \
|
--restart=Never \
|
||||||
--generator=run-pod/v1 \
|
--generator=run-pod/v1 \
|
||||||
|
@ -216,27 +190,22 @@ e2e-test:
|
||||||
e2e --image=nginx-ingress-controller:e2e
|
e2e --image=nginx-ingress-controller:e2e
|
||||||
|
|
||||||
.PHONY: e2e-test-image
|
.PHONY: e2e-test-image
|
||||||
e2e-test-image:
|
e2e-test-image: e2e-test-binary
|
||||||
make -C test/e2e-image
|
make -C test/e2e-image
|
||||||
|
|
||||||
.PHONY: e2e-test-binary
|
.PHONY: e2e-test-binary
|
||||||
e2e-test-binary:
|
e2e-test-binary:
|
||||||
@$(DEF_VARS) \
|
@ginkgo build ./test/e2e
|
||||||
DOCKER_OPTS="-i --net=host" \
|
|
||||||
build/go-in-docker.sh build/build-e2e.sh
|
|
||||||
|
|
||||||
.PHONY: cover
|
.PHONY: cover
|
||||||
cover:
|
cover:
|
||||||
@$(DEF_VARS) \
|
@build/cover.sh
|
||||||
DOCKER_OPTS="-i --net=host" \
|
|
||||||
build/go-in-docker.sh build/cover.sh
|
|
||||||
|
|
||||||
echo "Uploading coverage results..."
|
echo "Uploading coverage results..."
|
||||||
@curl -s https://codecov.io/bash | bash
|
@curl -s https://codecov.io/bash | bash
|
||||||
|
|
||||||
.PHONY: vet
|
.PHONY: vet
|
||||||
vet:
|
vet:
|
||||||
@go vet $(shell go list ${PKG}/... | grep -v vendor)
|
@go vet $(shell go list ${PKG}/internal/... | grep -v vendor)
|
||||||
|
|
||||||
.PHONY: release
|
.PHONY: release
|
||||||
release: all-container all-push
|
release: all-container all-push
|
||||||
|
@ -244,7 +213,7 @@ release: all-container all-push
|
||||||
|
|
||||||
.PHONY: check_dead_links
|
.PHONY: check_dead_links
|
||||||
check_dead_links:
|
check_dead_links:
|
||||||
docker run -t \
|
@docker run -t \
|
||||||
-v $$PWD:/tmp aledbf/awesome_bot:0.1 \
|
-v $$PWD:/tmp aledbf/awesome_bot:0.1 \
|
||||||
--allow-dupe \
|
--allow-dupe \
|
||||||
--allow-redirect $(shell find $$PWD -mindepth 1 -name "*.md" -printf '%P\n' | grep -v vendor | grep -v Changelog.md)
|
--allow-redirect $(shell find $$PWD -mindepth 1 -name "*.md" -printf '%P\n' | grep -v vendor | grep -v Changelog.md)
|
||||||
|
@ -266,7 +235,7 @@ live-docs:
|
||||||
.PHONY: build-docs
|
.PHONY: build-docs
|
||||||
build-docs:
|
build-docs:
|
||||||
@docker build --pull -t ingress-nginx/mkdocs build/mkdocs
|
@docker build --pull -t ingress-nginx/mkdocs build/mkdocs
|
||||||
@docker run --rm -it -v ${PWD}:/docs ingress-nginx/mkdocs build
|
@docker run --rm -v ${PWD}:/docs ingress-nginx/mkdocs build
|
||||||
|
|
||||||
.PHONY: misspell
|
.PHONY: misspell
|
||||||
misspell:
|
misspell:
|
||||||
|
@ -275,3 +244,7 @@ misspell:
|
||||||
-locale US \
|
-locale US \
|
||||||
-error \
|
-error \
|
||||||
cmd/* internal/* deploy/* docs/* design/* test/* README.md
|
cmd/* internal/* deploy/* docs/* design/* test/* README.md
|
||||||
|
|
||||||
|
.PHONE: kind-e2e-test
|
||||||
|
kind-e2e-test:
|
||||||
|
test/e2e/run.sh
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Copyright 2019 The Kubernetes Authors.
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
#
|
|
||||||
# http://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.
|
|
||||||
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
ginkgo build ./test/e2e
|
|
|
@ -14,6 +14,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,33 +14,15 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
declare -a mandatory
|
E2E_IMAGE=quay.io/kubernetes-ingress-controller/e2e:v05122019-7b3f69a3ba
|
||||||
mandatory=(
|
|
||||||
PKG
|
|
||||||
ARCH
|
|
||||||
GIT_COMMIT
|
|
||||||
REPO_INFO
|
|
||||||
TAG
|
|
||||||
HOME
|
|
||||||
)
|
|
||||||
|
|
||||||
missing=false
|
|
||||||
for var in ${mandatory[@]}; do
|
|
||||||
if [[ -z "${!var+x}" ]]; then
|
|
||||||
echo "Environment variable $var must be set"
|
|
||||||
missing=true
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$missing" = true ];then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
E2E_IMAGE=quay.io/kubernetes-ingress-controller/e2e:v05062019-b4f2880ee
|
|
||||||
|
|
||||||
DOCKER_OPTS=${DOCKER_OPTS:-""}
|
DOCKER_OPTS=${DOCKER_OPTS:-""}
|
||||||
|
|
||||||
|
@ -51,8 +33,7 @@ PKG=${PKG:-""}
|
||||||
ARCH=${ARCH:-""}
|
ARCH=${ARCH:-""}
|
||||||
GIT_COMMIT=${GIT_COMMIT:-""}
|
GIT_COMMIT=${GIT_COMMIT:-""}
|
||||||
TAG=${TAG:-"0.0"}
|
TAG=${TAG:-"0.0"}
|
||||||
HOME=${HOME:-/root}
|
GOARCH=${GOARCH:-""}
|
||||||
GOARCH=${GOARCH}
|
|
||||||
GOBUILD_FLAGS=${GOBUILD_FLAGS:-"-v"}
|
GOBUILD_FLAGS=${GOBUILD_FLAGS:-"-v"}
|
||||||
PWD=${PWD}
|
PWD=${PWD}
|
||||||
BUSTED_ARGS=${BUSTED_ARGS:-""}
|
BUSTED_ARGS=${BUSTED_ARGS:-""}
|
||||||
|
@ -74,10 +55,10 @@ docker run \
|
||||||
-v ${PWD}:/go/src/${PKG} \
|
-v ${PWD}:/go/src/${PKG} \
|
||||||
-v ${PWD}/.gocache:${HOME}/.cache/go-build \
|
-v ${PWD}/.gocache:${HOME}/.cache/go-build \
|
||||||
-v ${PWD}/bin/${ARCH}:/go/bin/linux_${ARCH} \
|
-v ${PWD}/bin/${ARCH}:/go/bin/linux_${ARCH} \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
${MINIKUBE_VOLUME} \
|
${MINIKUBE_VOLUME} \
|
||||||
-w /go/src/${PKG} \
|
-w /go/src/${PKG} \
|
||||||
--env-file .env \
|
--env-file .env \
|
||||||
--entrypoint ${FLAGS} \
|
${E2E_IMAGE} ${FLAGS}
|
||||||
${E2E_IMAGE}
|
|
||||||
|
|
||||||
rm .env
|
rm .env
|
|
@ -14,6 +14,10 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,6 +14,11 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
|
@ -14,6 +14,11 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
set -o errexit
|
set -o errexit
|
||||||
set -o nounset
|
set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
9
go.mod
9
go.mod
|
@ -19,7 +19,6 @@ require (
|
||||||
github.com/evanphx/json-patch v4.1.0+incompatible // indirect
|
github.com/evanphx/json-patch v4.1.0+incompatible // indirect
|
||||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect
|
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect
|
||||||
github.com/go-openapi/spec v0.19.0 // indirect
|
github.com/go-openapi/spec v0.19.0 // indirect
|
||||||
github.com/gofortune/gofortune v0.0.1-snapshot // indirect
|
|
||||||
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
|
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
|
||||||
github.com/google/gofuzz v1.0.0 // indirect
|
github.com/google/gofuzz v1.0.0 // indirect
|
||||||
github.com/google/uuid v1.0.0
|
github.com/google/uuid v1.0.0
|
||||||
|
@ -56,9 +55,7 @@ require (
|
||||||
github.com/spf13/cobra v0.0.3
|
github.com/spf13/cobra v0.0.3
|
||||||
github.com/spf13/pflag v1.0.3
|
github.com/spf13/pflag v1.0.3
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926
|
||||||
github.com/vromero/gofortune v0.0.1-snapshot
|
|
||||||
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272
|
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272
|
||||||
google.golang.org/grpc v1.19.1
|
|
||||||
gopkg.in/fsnotify/fsnotify.v1 v1.4.7
|
gopkg.in/fsnotify/fsnotify.v1 v1.4.7
|
||||||
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
|
||||||
gopkg.in/go-playground/pool.v3 v3.1.1
|
gopkg.in/go-playground/pool.v3 v3.1.1
|
||||||
|
@ -70,6 +67,7 @@ require (
|
||||||
k8s.io/cli-runtime v0.0.0-20190314001948-2899ed30580f
|
k8s.io/cli-runtime v0.0.0-20190314001948-2899ed30580f
|
||||||
k8s.io/client-go v11.0.0+incompatible
|
k8s.io/client-go v11.0.0+incompatible
|
||||||
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90 // indirect
|
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90 // indirect
|
||||||
|
k8s.io/code-generator v0.0.0-00010101000000-000000000000
|
||||||
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc
|
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc
|
||||||
k8s.io/klog v0.3.0
|
k8s.io/klog v0.3.0
|
||||||
k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580 // indirect
|
k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580 // indirect
|
||||||
|
@ -79,4 +77,7 @@ require (
|
||||||
sigs.k8s.io/yaml v1.1.0 // indirect
|
sigs.k8s.io/yaml v1.1.0 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
replace github.com/Sirupsen/logrus => github.com/sirupsen/logrus v1.4.1
|
replace (
|
||||||
|
github.com/Sirupsen/logrus => github.com/sirupsen/logrus v1.4.1
|
||||||
|
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20190511023357-639c964206c2
|
||||||
|
)
|
||||||
|
|
32
go.sum
32
go.sum
|
@ -10,6 +10,7 @@ git.apache.org/thrift.git v0.12.0/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqbl
|
||||||
github.com/Azure/go-autorest v11.7.1+incompatible h1:M2YZIajBBVekV86x0rr1443Lc1F/Ylxb9w+5EtSyX3Q=
|
github.com/Azure/go-autorest v11.7.1+incompatible h1:M2YZIajBBVekV86x0rr1443Lc1F/Ylxb9w+5EtSyX3Q=
|
||||||
github.com/Azure/go-autorest v11.7.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
github.com/Azure/go-autorest v11.7.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
|
||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=
|
github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=
|
||||||
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
|
@ -72,8 +73,7 @@ github.com/go-openapi/spec v0.19.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsd
|
||||||
github.com/go-openapi/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880=
|
github.com/go-openapi/swag v0.17.0 h1:iqrgMg7Q7SvtbWLlltPrkMs0UBJI6oTSs79JFRUi880=
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gofortune/gofortune v0.0.1-snapshot h1:0unUpPzS0PAdMrOvLAhmeaGtFlUPYv5aXUD/9XN5X9U=
|
github.com/gogo/protobuf v0.0.0-20171007142547-342cbe0a0415/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gofortune/gofortune v0.0.1-snapshot/go.mod h1:gzHWMyrWq6g1heq6667VSJTUxWXv+9mTry2HjUnEVB4=
|
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
|
github.com/gogo/protobuf v1.2.0 h1:xU6/SpYbvkNYiptHJYEDRseDLvYE7wSqhYYNy0QSUzI=
|
||||||
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
|
@ -213,6 +213,7 @@ github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R
|
||||||
github.com/prometheus/procfs v0.0.0-20190328153300-af7bedc223fb h1:LvNCMEj0FFZQYsxZb7o3xQPrtqOOB6lrTUOWshC+ZTs=
|
github.com/prometheus/procfs v0.0.0-20190328153300-af7bedc223fb h1:LvNCMEj0FFZQYsxZb7o3xQPrtqOOB6lrTUOWshC+ZTs=
|
||||||
github.com/prometheus/procfs v0.0.0-20190328153300-af7bedc223fb/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
github.com/prometheus/procfs v0.0.0-20190328153300-af7bedc223fb/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
|
||||||
|
github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M=
|
||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
|
github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
|
||||||
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
|
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
|
||||||
|
@ -227,6 +228,7 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc=
|
||||||
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk=
|
||||||
github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8=
|
github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8=
|
||||||
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
|
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
|
||||||
|
@ -236,8 +238,6 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf
|
||||||
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8=
|
||||||
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
|
||||||
github.com/vromero/gofortune v0.0.1-snapshot h1:+IDjezRGmRO1Mdm1Oh+DguaSkxjRpoevWlpdTSlwPkw=
|
|
||||||
github.com/vromero/gofortune v0.0.1-snapshot/go.mod h1:t8EOM3RyBWLevtrXkmQtfAMmH5CU3/YcnpG5RZ/GQXQ=
|
|
||||||
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272 h1:scDk3LAM8x+NPuywVGC0q0/G+5Ed8M0+YXecz4XnWRM=
|
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272 h1:scDk3LAM8x+NPuywVGC0q0/G+5Ed8M0+YXecz4XnWRM=
|
||||||
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272/go.mod h1:KNkcm66cr4ilOiEcjydK+tc2ShPUhqmuoXCljXUBPu8=
|
github.com/zakjan/cert-chain-resolver v0.0.0-20180703112424-6076e1ded272/go.mod h1:KNkcm66cr4ilOiEcjydK+tc2ShPUhqmuoXCljXUBPu8=
|
||||||
go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
|
go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA=
|
||||||
|
@ -255,11 +255,16 @@ golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnf
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||||
|
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk=
|
||||||
|
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||||
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181217174547-8f45f776aaf1/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
@ -295,6 +300,8 @@ golang.org/x/sys v0.0.0-20181218192612-074acd46bca6/go.mod h1:STP8DvDyc/dI5b8T5h
|
||||||
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313 h1:pczuHS43Cp2ktBEEmLwScxgjWsBSzdaQiKzUyf3DTTc=
|
||||||
|
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2 h1:z99zHgr7hKfrUcX/KsoJk5FJfjTceCKIp96+biqP4To=
|
||||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||||
|
@ -304,9 +311,17 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb
|
||||||
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20181219222714-6e267b5cc78e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
|
||||||
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384 h1:TFlARGu6Czu1z7q93HTxcP1P+/ZFC/IKythI5RzrnRg=
|
||||||
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485 h1:OB/uP/Puiu5vS5QMRPrXCDWUPb+kt8f1KW8oQzFejQw=
|
||||||
|
gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0=
|
||||||
|
gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw=
|
||||||
|
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e h1:jRyg0XfpwWlhEV8mDfdNGBeSJM2fuyh9Yjrnd8kF2Ts=
|
||||||
|
gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ=
|
||||||
google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||||
google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
google.golang.org/api v0.0.0-20181030000543-1d582fd0359e/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||||
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||||
|
@ -373,8 +388,12 @@ k8s.io/client-go v11.0.0+incompatible h1:LBbX2+lOwY9flffWlJM7f1Ct8V2SRNiMRDFeiwn
|
||||||
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
k8s.io/client-go v11.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s=
|
||||||
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90 h1:FI7cwUSbHsDhcpEI8f9YYZinBEEJio7TSfI7BBIQ89g=
|
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90 h1:FI7cwUSbHsDhcpEI8f9YYZinBEEJio7TSfI7BBIQ89g=
|
||||||
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90/go.mod h1:LlIffnLBu+GG7d4ppPzC8UnA1Ex8S+ntmSRVsnr7Xy4=
|
k8s.io/cloud-provider v0.0.0-20190323031113-9c9d72d1bf90/go.mod h1:LlIffnLBu+GG7d4ppPzC8UnA1Ex8S+ntmSRVsnr7Xy4=
|
||||||
|
k8s.io/code-generator v0.0.0-20190511023357-639c964206c2 h1:wfF2JZb8Bl68FNMg/BAkIkkE29Z/bXWBYTtoQh/Cbo0=
|
||||||
|
k8s.io/code-generator v0.0.0-20190511023357-639c964206c2/go.mod h1:YMQ7Lt97nW/I6nHACDccgS/sPAyrHQNans96RwPaSb8=
|
||||||
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc h1:wECJj/THUnRfyHajZrU4SmU2EIrSAHb3S9d2jTItVmo=
|
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc h1:wECJj/THUnRfyHajZrU4SmU2EIrSAHb3S9d2jTItVmo=
|
||||||
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc/go.mod h1:DMaomcf3j3MM2j1FsvlLVVlc7wA2jPytEur3cP9zRxQ=
|
k8s.io/component-base v0.0.0-20190313120452-4727f38490bc/go.mod h1:DMaomcf3j3MM2j1FsvlLVVlc7wA2jPytEur3cP9zRxQ=
|
||||||
|
k8s.io/gengo v0.0.0-20190116091435-f8a0810f38af h1:SwjZbO0u5ZuaV6TRMWOGB40iaycX8sbdMQHtjNZ19dk=
|
||||||
|
k8s.io/gengo v0.0.0-20190116091435-f8a0810f38af/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||||
k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=
|
k8s.io/klog v0.3.0 h1:0VPpR+sizsiivjIfIAQH/rl8tan6jvWkS7lU+0di3lE=
|
||||||
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=
|
||||||
k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580 h1:fq0ZXW/BAIFZH+dazlups6JTVdwzRo5d9riFA103yuQ=
|
k8s.io/kube-openapi v0.0.0-20190320154901-5e45bb682580 h1:fq0ZXW/BAIFZH+dazlups6JTVdwzRo5d9riFA103yuQ=
|
||||||
|
@ -383,6 +402,11 @@ k8s.io/kubernetes v1.14.1 h1:I9F52h5sqVxBmoSsBlNQ0YygNcukDilkpGxUbJRoBoY=
|
||||||
k8s.io/kubernetes v1.14.1/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
|
k8s.io/kubernetes v1.14.1/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk=
|
||||||
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c=
|
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7 h1:8r+l4bNWjRlsFYlQJnKJ2p7s1YQPj4XyXiJVqDHRx7c=
|
||||||
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
|
k8s.io/utils v0.0.0-20190308190857-21c4ce38f2a7/go.mod h1:8k8uAuAQ0rXslZKaEWd0c3oVhZz7sSzSiPnVZayjIX0=
|
||||||
|
modernc.org/cc v1.0.0/go.mod h1:1Sk4//wdnYJiUIxnW8ddKpaOJCF37yAdqYnkxUpaYxw=
|
||||||
|
modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
|
||||||
|
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
|
||||||
|
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
|
||||||
|
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
|
||||||
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
|
sigs.k8s.io/kustomize v2.0.3+incompatible h1:JUufWFNlI44MdtnjUqVnvh29rR37PQFzPbLXqhyOyX0=
|
||||||
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
|
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
|
||||||
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
sigs.k8s.io/yaml v1.1.0 h1:4A07+ZFc2wgJwo8YNlQpr1rVlgUDlxXHhPJciaPY5gs=
|
||||||
|
|
|
@ -119,7 +119,8 @@ def file_passes(filename, refs, regexs):
|
||||||
|
|
||||||
# if we don't match the reference at this point, fail
|
# if we don't match the reference at this point, fail
|
||||||
if ref != data:
|
if ref != data:
|
||||||
print("Header in %s does not match reference, diff:" % filename, file=verbose_out)
|
print("Header in %s does not match reference, diff:" %
|
||||||
|
filename, file=verbose_out)
|
||||||
if args.verbose:
|
if args.verbose:
|
||||||
print(file=verbose_out)
|
print(file=verbose_out)
|
||||||
for line in difflib.unified_diff(ref, data, 'reference', filename, lineterm=''):
|
for line in difflib.unified_diff(ref, data, 'reference', filename, lineterm=''):
|
||||||
|
@ -138,8 +139,7 @@ skipped_dirs = [
|
||||||
'.git',
|
'.git',
|
||||||
"vendor",
|
"vendor",
|
||||||
"test/e2e/framework/framework.go",
|
"test/e2e/framework/framework.go",
|
||||||
"hack/boilerplate/test",
|
"images"
|
||||||
"test/e2e/dind-cluster-v1.11.sh"
|
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
25
hack/tools.go
Normal file
25
hack/tools.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
// +build tools
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright 2019 The Kubernetes Authors.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
http://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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// This package contains code generation utilities
|
||||||
|
// This package imports things required by build scripts, to force `go mod` to see them as dependencies
|
||||||
|
package tools
|
||||||
|
|
||||||
|
import (
|
||||||
|
_ "k8s.io/code-generator"
|
||||||
|
)
|
|
@ -19,7 +19,7 @@ set -o nounset
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
|
SCRIPT_ROOT=$(dirname ${BASH_SOURCE})/..
|
||||||
CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
|
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
|
||||||
|
|
||||||
# generate the code with:
|
# generate the code with:
|
||||||
# --output-base because this script should also be able to run inside the vendor dir of
|
# --output-base because this script should also be able to run inside the vendor dir of
|
||||||
|
@ -29,6 +29,8 @@ CODEGEN_PKG=${CODEGEN_PKG:-$(cd ${SCRIPT_ROOT}; ls -d -1 ./vendor/k8s.io/code-ge
|
||||||
# k8s.io/ingress-nginx/pkg/client k8s.io/ingress-nginx/pkg/apis \
|
# k8s.io/ingress-nginx/pkg/client k8s.io/ingress-nginx/pkg/apis \
|
||||||
# nginxingress:v1alpha1 \
|
# nginxingress:v1alpha1 \
|
||||||
# --output-base "$(dirname ${BASH_SOURCE})/../../.."
|
# --output-base "$(dirname ${BASH_SOURCE})/../../.."
|
||||||
|
mkdir -p ${CODEGEN_PKG}/hack
|
||||||
|
cp ${SCRIPT_ROOT}/hack/boilerplate/boilerplate.go.txt ${CODEGEN_PKG}/hack/boilerplate.go.txt
|
||||||
|
|
||||||
${CODEGEN_PKG}/generate-groups.sh "deepcopy" \
|
${CODEGEN_PKG}/generate-groups.sh "deepcopy" \
|
||||||
k8s.io/ingress-nginx/internal k8s.io/ingress-nginx/internal \
|
k8s.io/ingress-nginx/internal k8s.io/ingress-nginx/internal \
|
||||||
|
|
|
@ -23,7 +23,7 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||||
cd "${KUBE_ROOT}"
|
cd "${KUBE_ROOT}"
|
||||||
|
|
||||||
GOLINT=${GOLINT:-"golint"}
|
GOLINT=${GOLINT:-"golint"}
|
||||||
PACKAGES=($(go list ./... | grep -v /vendor/))
|
PACKAGES=($(go list ./internal/... | grep -v /vendor/))
|
||||||
bad_files=()
|
bad_files=()
|
||||||
for package in "${PACKAGES[@]}"; do
|
for package in "${PACKAGES[@]}"; do
|
||||||
out=$("${GOLINT}" -min_confidence=0.9 "${package}" | grep -v -E '(should not use dot imports|internal/file/bindata.go)' || :)
|
out=$("${GOLINT}" -min_confidence=0.9 "${package}" | grep -v -E '(should not use dot imports|internal/file/bindata.go)' || :)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// +build !ignore_autogenerated
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2018 The Kubernetes Authors.
|
Copyright 2019 The Kubernetes Authors.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -16,7 +16,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// This file was autogenerated by deepcopy-gen. Do not edit it manually!
|
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||||
|
|
||||||
package ingress
|
package ingress
|
||||||
|
|
||||||
|
@ -29,13 +29,9 @@ func (in *Backend) DeepCopyInto(out *Backend) {
|
||||||
*out = *in
|
*out = *in
|
||||||
if in.Service != nil {
|
if in.Service != nil {
|
||||||
in, out := &in.Service, &out.Service
|
in, out := &in.Service, &out.Service
|
||||||
if *in == nil {
|
|
||||||
*out = nil
|
|
||||||
} else {
|
|
||||||
*out = new(v1.Service)
|
*out = new(v1.Service)
|
||||||
(*in).DeepCopyInto(*out)
|
(*in).DeepCopyInto(*out)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
out.Port = in.Port
|
out.Port = in.Port
|
||||||
out.SecureCACert = in.SecureCACert
|
out.SecureCACert = in.SecureCACert
|
||||||
if in.Endpoints != nil {
|
if in.Endpoints != nil {
|
||||||
|
@ -46,6 +42,13 @@ func (in *Backend) DeepCopyInto(out *Backend) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
in.SessionAffinity.DeepCopyInto(&out.SessionAffinity)
|
in.SessionAffinity.DeepCopyInto(&out.SessionAffinity)
|
||||||
|
out.UpstreamHashBy = in.UpstreamHashBy
|
||||||
|
out.TrafficShapingPolicy = in.TrafficShapingPolicy
|
||||||
|
if in.AlternativeBackends != nil {
|
||||||
|
in, out := &in.AlternativeBackends, &out.AlternativeBackends
|
||||||
|
*out = make([]string, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,12 +69,15 @@ func (in *CookieSessionAffinity) DeepCopyInto(out *CookieSessionAffinity) {
|
||||||
in, out := &in.Locations, &out.Locations
|
in, out := &in.Locations, &out.Locations
|
||||||
*out = make(map[string][]string, len(*in))
|
*out = make(map[string][]string, len(*in))
|
||||||
for key, val := range *in {
|
for key, val := range *in {
|
||||||
|
var outVal []string
|
||||||
if val == nil {
|
if val == nil {
|
||||||
(*out)[key] = nil
|
(*out)[key] = nil
|
||||||
} else {
|
} else {
|
||||||
(*out)[key] = make([]string, len(val))
|
in, out := &val, &outVal
|
||||||
copy((*out)[key], val)
|
*out = make([]string, len(*in))
|
||||||
|
copy(*out, *in)
|
||||||
}
|
}
|
||||||
|
(*out)[key] = outVal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -92,13 +98,9 @@ func (in *Endpoint) DeepCopyInto(out *Endpoint) {
|
||||||
*out = *in
|
*out = *in
|
||||||
if in.Target != nil {
|
if in.Target != nil {
|
||||||
in, out := &in.Target, &out.Target
|
in, out := &in.Target, &out.Target
|
||||||
if *in == nil {
|
|
||||||
*out = nil
|
|
||||||
} else {
|
|
||||||
*out = new(v1.ObjectReference)
|
*out = new(v1.ObjectReference)
|
||||||
**out = **in
|
**out = **in
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,3 +130,19 @@ func (in *SessionAffinityConfig) DeepCopy() *SessionAffinityConfig {
|
||||||
in.DeepCopyInto(out)
|
in.DeepCopyInto(out)
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *TrafficShapingPolicy) DeepCopyInto(out *TrafficShapingPolicy) {
|
||||||
|
*out = *in
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficShapingPolicy.
|
||||||
|
func (in *TrafficShapingPolicy) DeepCopy() *TrafficShapingPolicy {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(TrafficShapingPolicy)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: ingress-nginx
|
app.kubernetes.io/name: ingress-nginx
|
||||||
app.kubernetes.io/part-of: ingress-nginx
|
app.kubernetes.io/part-of: ingress-nginx
|
||||||
|
data:
|
||||||
|
worker-processes: "1"
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
|
|
71
test/e2e-prow/Dockerfile
Normal file
71
test/e2e-prow/Dockerfile
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
# Copyright 2016 The Kubernetes Authors.
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# http://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.
|
||||||
|
|
||||||
|
# This file creates a build environment for building and running kubernetes
|
||||||
|
# unit and integration tests
|
||||||
|
|
||||||
|
FROM gcr.io/k8s-testimages/bootstrap
|
||||||
|
|
||||||
|
# hint to kubetest that it is in CI
|
||||||
|
ENV KUBETEST_IN_DOCKER="true"
|
||||||
|
|
||||||
|
# Go standard envs
|
||||||
|
ENV GOPATH /go
|
||||||
|
ENV PATH /usr/local/go/bin:$PATH
|
||||||
|
|
||||||
|
RUN mkdir -p /go/bin
|
||||||
|
ENV PATH $GOPATH/bin:$PATH
|
||||||
|
|
||||||
|
# setup k8s repo symlink
|
||||||
|
RUN mkdir -p /go/src/k8s.io/kubernetes \
|
||||||
|
&& ln -s /go/src/k8s.io/kubernetes /workspace/kubernetes
|
||||||
|
|
||||||
|
# preinstall:
|
||||||
|
# - graphviz package for graphing profiles
|
||||||
|
# - bc for shell to junit
|
||||||
|
# - rpm for building RPMs with Bazel
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y bc \
|
||||||
|
rpm && \
|
||||||
|
rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# replace kubectl with one from K8S_RELEASE
|
||||||
|
ARG K8S_RELEASE
|
||||||
|
ARG ETCD_VERSION
|
||||||
|
|
||||||
|
RUN wget https://storage.googleapis.com/kubernetes-release/release/${K8S_RELEASE}/bin/linux/amd64/kubectl -O /usr/local/bin/kubectl \
|
||||||
|
&& chmod +x /usr/local/bin/kubectl
|
||||||
|
|
||||||
|
RUN wget https://storage.googleapis.com/kubernetes-release/release/${K8S_RELEASE}/bin/linux/amd64/kube-apiserver -O /usr/local/bin/kube-apiserver \
|
||||||
|
&& chmod +x /usr/local/bin/kube-apiserver
|
||||||
|
|
||||||
|
RUN curl -L https://storage.googleapis.com/etcd/${ETCD_VERSION}/etcd-${ETCD_VERSION}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VERSION}-linux-amd64.tar.gz \
|
||||||
|
&& mkdir -p /tmp/etcd-download \
|
||||||
|
&& tar xzvf /tmp/etcd-${ETCD_VERSION}-linux-amd64.tar.gz -C /tmp/etcd-download --strip-components=1 \
|
||||||
|
&& cp /tmp/etcd-download/etcd /usr/local/bin \
|
||||||
|
&& rm -rf /tmp/etcd-download
|
||||||
|
|
||||||
|
# install go
|
||||||
|
ENV GO_VERSION 1.12.5
|
||||||
|
ENV GO_TARBALL "go${GO_VERSION}.linux-amd64.tar.gz"
|
||||||
|
RUN wget -q "https://storage.googleapis.com/golang/${GO_TARBALL}" && \
|
||||||
|
tar xzf "${GO_TARBALL}" -C /usr/local && \
|
||||||
|
rm "${GO_TARBALL}"
|
||||||
|
|
||||||
|
RUN go get github.com/onsi/ginkgo/ginkgo \
|
||||||
|
&& go get golang.org/x/lint/golint \
|
||||||
|
&& GO111MODULE="on" go get -u sigs.k8s.io/kind@master \
|
||||||
|
&& rm -rf /go/src/github.com
|
||||||
|
|
||||||
|
ENV KUBEBUILDER_ASSETS /usr/local/bin
|
17
test/e2e-prow/Makefile
Normal file
17
test/e2e-prow/Makefile
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
TAG ?=v$(shell date +%m%d%Y)-$(shell git rev-parse --short HEAD)
|
||||||
|
REGISTRY ?= quay.io/kubernetes-ingress-controller
|
||||||
|
DOCKER ?= docker
|
||||||
|
|
||||||
|
IMAGE = $(REGISTRY)/e2e-prow
|
||||||
|
|
||||||
|
all: docker-build docker-push
|
||||||
|
|
||||||
|
docker-build:
|
||||||
|
$(DOCKER) build \
|
||||||
|
--pull \
|
||||||
|
--build-arg K8S_RELEASE=v1.14.1 \
|
||||||
|
--build-arg ETCD_VERSION=v3.3.12 \
|
||||||
|
-t $(IMAGE):$(TAG) .
|
||||||
|
|
||||||
|
docker-push:
|
||||||
|
$(DOCKER) push $(IMAGE):$(TAG)
|
|
@ -3,4 +3,4 @@ apiVersion: kind.sigs.k8s.io/v1alpha2
|
||||||
nodes:
|
nodes:
|
||||||
- role: control-plane
|
- role: control-plane
|
||||||
- role: worker
|
- role: worker
|
||||||
replicas: 3
|
replicas: 2
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Copyright 2017 The Kubernetes Authors.
|
# Copyright 2019 The Kubernetes Authors.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -14,42 +14,55 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
set -e
|
KIND_LOG_LEVEL="info"
|
||||||
|
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
|
set -x
|
||||||
|
KIND_LOG_LEVEL="debug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
export TAG=dev
|
export TAG=dev
|
||||||
export ARCH=amd64
|
export ARCH=amd64
|
||||||
export REGISTRY=${REGISTRY:-ingress-controller}
|
export REGISTRY=ingress-controller
|
||||||
|
|
||||||
|
export K8S_VERSION=${K8S_VERSION:-v1.14.1}
|
||||||
|
|
||||||
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
KIND_CLUSTER_NAME="ingress-nginx-dev"
|
||||||
|
|
||||||
kind --version || $(echo "Please install kind before running e2e tests";exit 1)
|
kind --version || $(echo "Please install kind before running e2e tests";exit 1)
|
||||||
|
|
||||||
SKIP_CLUSTER_CREATION=${SKIP_CLUSTER_CREATION:-}
|
|
||||||
if [ -z "${SKIP_CLUSTER_CREATION}" ]; then
|
|
||||||
echo "[dev-env] creating Kubernetes cluster with kind"
|
echo "[dev-env] creating Kubernetes cluster with kind"
|
||||||
kind create cluster --name ${KIND_CLUSTER_NAME} --config ${DIR}/kind.yaml
|
# TODO: replace the custom images after https://github.com/kubernetes-sigs/kind/issues/531
|
||||||
fi
|
kind create cluster \
|
||||||
|
--loglevel=${KIND_LOG_LEVEL} \
|
||||||
|
--name ${KIND_CLUSTER_NAME} \
|
||||||
|
--config ${DIR}/kind.yaml \
|
||||||
|
--image "aledbf/kind-node:${K8S_VERSION}"
|
||||||
|
|
||||||
export KUBECONFIG="$(kind get kubeconfig-path --name="${KIND_CLUSTER_NAME}")"
|
export KUBECONFIG="$(kind get kubeconfig-path --name="${KIND_CLUSTER_NAME}")"
|
||||||
|
|
||||||
sleep 60
|
|
||||||
|
|
||||||
echo "Kubernetes cluster:"
|
echo "Kubernetes cluster:"
|
||||||
kubectl get nodes -o wide
|
kubectl get nodes -o wide
|
||||||
|
|
||||||
echo "[dev-env] installing kubectl"
|
|
||||||
kubectl version || $(echo "Please install kubectl before running e2e tests";exit 1)
|
|
||||||
|
|
||||||
kubectl config set-context kubernetes-admin@${KIND_CLUSTER_NAME}
|
kubectl config set-context kubernetes-admin@${KIND_CLUSTER_NAME}
|
||||||
|
|
||||||
echo "[dev-env] building container"
|
echo "[dev-env] building container"
|
||||||
make -C ${DIR}/../../ build container
|
make -C ${DIR}/../../ build container
|
||||||
make -C ${DIR}/../../ e2e-test-image
|
make -C ${DIR}/../../ e2e-test-image
|
||||||
|
|
||||||
echo "copying docker images to cluster..."
|
echo "[dev-env] copying docker images to cluster..."
|
||||||
kind load docker-image --name="${KIND_CLUSTER_NAME}" ${REGISTRY}/nginx-ingress-controller:${TAG}
|
|
||||||
kind load docker-image --name="${KIND_CLUSTER_NAME}" nginx-ingress-controller:e2e
|
kind load docker-image --name="${KIND_CLUSTER_NAME}" nginx-ingress-controller:e2e
|
||||||
|
kind load docker-image --name="${KIND_CLUSTER_NAME}" ${REGISTRY}/nginx-ingress-controller:${TAG}
|
||||||
|
|
||||||
|
echo "[dev-env] running e2e tests..."
|
||||||
make -C ${DIR}/../../ e2e-test
|
make -C ${DIR}/../../ e2e-test
|
||||||
|
|
||||||
|
kind delete cluster \
|
||||||
|
--loglevel=${KIND_LOG_LEVEL} \
|
||||||
|
--name ${KIND_CLUSTER_NAME}
|
||||||
|
|
|
@ -15,7 +15,9 @@
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
if ! [ -z $DEBUG ]; then
|
||||||
set -x
|
set -x
|
||||||
|
fi
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
|
4
vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
4
vendor/golang.org/x/sys/unix/mkall.sh
generated
vendored
|
@ -207,8 +207,6 @@ esac
|
||||||
esac
|
esac
|
||||||
if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
|
if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
|
||||||
if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
|
if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
|
||||||
if [ -n "$mktypes" ]; then
|
if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi
|
||||||
echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go";
|
|
||||||
if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi
|
if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi
|
||||||
fi
|
|
||||||
) | $run
|
) | $run
|
||||||
|
|
2
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
2
vendor/golang.org/x/sys/unix/mkerrors.sh
generated
vendored
|
@ -192,6 +192,7 @@ struct ltchars {
|
||||||
#include <linux/if_packet.h>
|
#include <linux/if_packet.h>
|
||||||
#include <linux/if_addr.h>
|
#include <linux/if_addr.h>
|
||||||
#include <linux/falloc.h>
|
#include <linux/falloc.h>
|
||||||
|
#include <linux/fanotify.h>
|
||||||
#include <linux/filter.h>
|
#include <linux/filter.h>
|
||||||
#include <linux/fs.h>
|
#include <linux/fs.h>
|
||||||
#include <linux/kexec.h>
|
#include <linux/kexec.h>
|
||||||
|
@ -501,6 +502,7 @@ ccflags="$@"
|
||||||
$2 !~ "WMESGLEN" &&
|
$2 !~ "WMESGLEN" &&
|
||||||
$2 ~ /^W[A-Z0-9]+$/ ||
|
$2 ~ /^W[A-Z0-9]+$/ ||
|
||||||
$2 ~/^PPPIOC/ ||
|
$2 ~/^PPPIOC/ ||
|
||||||
|
$2 ~ /^FAN_|FANOTIFY_/ ||
|
||||||
$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)}
|
$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)}
|
||||||
$2 ~ /^__WCOREFLAG$/ {next}
|
$2 ~ /^__WCOREFLAG$/ {next}
|
||||||
$2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)}
|
$2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)}
|
||||||
|
|
2
vendor/golang.org/x/sys/unix/mksyscall.go
generated
vendored
2
vendor/golang.org/x/sys/unix/mksyscall.go
generated
vendored
|
@ -228,7 +228,7 @@ func main() {
|
||||||
} else {
|
} else {
|
||||||
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
|
||||||
}
|
}
|
||||||
} else if p.Type == "int64" && endianness != "" {
|
} else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" {
|
||||||
if len(args)%2 == 1 && *arm {
|
if len(args)%2 == 1 && *arm {
|
||||||
// arm abi specifies 64-bit argument uses
|
// arm abi specifies 64-bit argument uses
|
||||||
// (even, odd) pair
|
// (even, odd) pair
|
||||||
|
|
4
vendor/golang.org/x/sys/unix/sockcmsg_unix.go
generated
vendored
4
vendor/golang.org/x/sys/unix/sockcmsg_unix.go
generated
vendored
|
@ -25,8 +25,8 @@ func cmsgAlignOf(salen int) int {
|
||||||
if SizeofPtr == 8 {
|
if SizeofPtr == 8 {
|
||||||
salign = 4
|
salign = 4
|
||||||
}
|
}
|
||||||
case "openbsd":
|
case "netbsd", "openbsd":
|
||||||
// OpenBSD armv7 requires 64-bit alignment.
|
// NetBSD and OpenBSD armv7 require 64-bit alignment.
|
||||||
if runtime.GOARCH == "arm" {
|
if runtime.GOARCH == "arm" {
|
||||||
salign = 8
|
salign = 8
|
||||||
}
|
}
|
||||||
|
|
2
vendor/golang.org/x/sys/unix/syscall_aix.go
generated
vendored
2
vendor/golang.org/x/sys/unix/syscall_aix.go
generated
vendored
|
@ -545,3 +545,5 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
|
||||||
//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error)
|
//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error)
|
||||||
//sysnb Time(t *Time_t) (tt Time_t, err error)
|
//sysnb Time(t *Time_t) (tt Time_t, err error)
|
||||||
//sys Utime(path string, buf *Utimbuf) (err error)
|
//sys Utime(path string, buf *Utimbuf) (err error)
|
||||||
|
|
||||||
|
//sys Getsystemcfg(label int) (n uint64)
|
||||||
|
|
54
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
54
vendor/golang.org/x/sys/unix/syscall_linux.go
generated
vendored
|
@ -39,6 +39,20 @@ func Creat(path string, mode uint32) (fd int, err error) {
|
||||||
return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
|
return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error)
|
||||||
|
//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)
|
||||||
|
|
||||||
|
func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {
|
||||||
|
if pathname == "" {
|
||||||
|
return fanotifyMark(fd, flags, mask, dirFd, nil)
|
||||||
|
}
|
||||||
|
p, err := BytePtrFromString(pathname)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return fanotifyMark(fd, flags, mask, dirFd, p)
|
||||||
|
}
|
||||||
|
|
||||||
//sys fchmodat(dirfd int, path string, mode uint32) (err error)
|
//sys fchmodat(dirfd int, path string, mode uint32) (err error)
|
||||||
|
|
||||||
func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
|
func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
|
||||||
|
@ -990,10 +1004,50 @@ func GetsockoptString(fd, level, opt int) (string, error) {
|
||||||
return string(buf[:vallen-1]), nil
|
return string(buf[:vallen-1]), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {
|
||||||
|
var value TpacketStats
|
||||||
|
vallen := _Socklen(SizeofTpacketStats)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {
|
||||||
|
var value TpacketStatsV3
|
||||||
|
vallen := _Socklen(SizeofTpacketStatsV3)
|
||||||
|
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
|
||||||
|
return &value, err
|
||||||
|
}
|
||||||
|
|
||||||
func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
|
func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
|
||||||
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
|
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {
|
||||||
|
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a
|
||||||
|
// socket to filter incoming packets. See 'man 7 socket' for usage information.
|
||||||
|
func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {
|
||||||
|
return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog))
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {
|
||||||
|
var p unsafe.Pointer
|
||||||
|
if len(filter) > 0 {
|
||||||
|
p = unsafe.Pointer(&filter[0])
|
||||||
|
}
|
||||||
|
return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {
|
||||||
|
return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {
|
||||||
|
return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
|
||||||
|
}
|
||||||
|
|
||||||
// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
|
// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
|
||||||
|
|
||||||
// KeyctlInt calls keyctl commands in which each argument is an int.
|
// KeyctlInt calls keyctl commands in which each argument is an int.
|
||||||
|
|
6
vendor/golang.org/x/sys/unix/syscall_linux_arm.go
generated
vendored
6
vendor/golang.org/x/sys/unix/syscall_linux_arm.go
generated
vendored
|
@ -19,12 +19,18 @@ func setTimeval(sec, usec int64) Timeval {
|
||||||
return Timeval{Sec: int32(sec), Usec: int32(usec)}
|
return Timeval{Sec: int32(sec), Usec: int32(usec)}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sysnb pipe(p *[2]_C_int) (err error)
|
||||||
|
|
||||||
func Pipe(p []int) (err error) {
|
func Pipe(p []int) (err error) {
|
||||||
if len(p) != 2 {
|
if len(p) != 2 {
|
||||||
return EINVAL
|
return EINVAL
|
||||||
}
|
}
|
||||||
var pp [2]_C_int
|
var pp [2]_C_int
|
||||||
|
// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
|
||||||
err = pipe2(&pp, 0)
|
err = pipe2(&pp, 0)
|
||||||
|
if err == ENOSYS {
|
||||||
|
err = pipe(&pp)
|
||||||
|
}
|
||||||
p[0] = int(pp[0])
|
p[0] = int(pp[0])
|
||||||
p[1] = int(pp[1])
|
p[1] = int(pp[1])
|
||||||
return
|
return
|
||||||
|
|
13
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
generated
vendored
13
vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
generated
vendored
|
@ -208,3 +208,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
|
||||||
}
|
}
|
||||||
return ppoll(&fds[0], len(fds), ts, nil)
|
return ppoll(&fds[0], len(fds), ts, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
|
||||||
|
|
||||||
|
func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
|
||||||
|
cmdlineLen := len(cmdline)
|
||||||
|
if cmdlineLen > 0 {
|
||||||
|
// Account for the additional NULL byte added by
|
||||||
|
// BytePtrFromString in kexecFileLoad. The kexec_file_load
|
||||||
|
// syscall expects a NULL-terminated string.
|
||||||
|
cmdlineLen++
|
||||||
|
}
|
||||||
|
return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
|
||||||
|
}
|
||||||
|
|
13
vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
generated
vendored
13
vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go
generated
vendored
|
@ -211,3 +211,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
|
||||||
func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
|
func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
|
||||||
return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
|
return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
|
||||||
|
|
||||||
|
func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error {
|
||||||
|
cmdlineLen := len(cmdline)
|
||||||
|
if cmdlineLen > 0 {
|
||||||
|
// Account for the additional NULL byte added by
|
||||||
|
// BytePtrFromString in kexecFileLoad. The kexec_file_load
|
||||||
|
// syscall expects a NULL-terminated string.
|
||||||
|
cmdlineLen++
|
||||||
|
}
|
||||||
|
return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags)
|
||||||
|
}
|
||||||
|
|
37
vendor/golang.org/x/sys/unix/syscall_unix.go
generated
vendored
37
vendor/golang.org/x/sys/unix/syscall_unix.go
generated
vendored
|
@ -28,6 +28,11 @@ var (
|
||||||
errENOENT error = syscall.ENOENT
|
errENOENT error = syscall.ENOENT
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
signalNameMapOnce sync.Once
|
||||||
|
signalNameMap map[string]syscall.Signal
|
||||||
|
)
|
||||||
|
|
||||||
// errnoErr returns common boxed Errno values, to prevent
|
// errnoErr returns common boxed Errno values, to prevent
|
||||||
// allocations at runtime.
|
// allocations at runtime.
|
||||||
func errnoErr(e syscall.Errno) error {
|
func errnoErr(e syscall.Errno) error {
|
||||||
|
@ -66,6 +71,19 @@ func SignalName(s syscall.Signal) string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SignalNum returns the syscall.Signal for signal named s,
|
||||||
|
// or 0 if a signal with such name is not found.
|
||||||
|
// The signal name should start with "SIG".
|
||||||
|
func SignalNum(s string) syscall.Signal {
|
||||||
|
signalNameMapOnce.Do(func() {
|
||||||
|
signalNameMap = make(map[string]syscall.Signal)
|
||||||
|
for _, signal := range signalList {
|
||||||
|
signalNameMap[signal.name] = signal.num
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return signalNameMap[s]
|
||||||
|
}
|
||||||
|
|
||||||
// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
|
// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
|
||||||
func clen(n []byte) int {
|
func clen(n []byte) int {
|
||||||
i := bytes.IndexByte(n, 0)
|
i := bytes.IndexByte(n, 0)
|
||||||
|
@ -377,3 +395,22 @@ func SetNonblock(fd int, nonblocking bool) (err error) {
|
||||||
func Exec(argv0 string, argv []string, envv []string) error {
|
func Exec(argv0 string, argv []string, envv []string) error {
|
||||||
return syscall.Exec(argv0, argv, envv)
|
return syscall.Exec(argv0, argv, envv)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Lutimes sets the access and modification times tv on path. If path refers to
|
||||||
|
// a symlink, it is not dereferenced and the timestamps are set on the symlink.
|
||||||
|
// If tv is nil, the access and modification times are set to the current time.
|
||||||
|
// Otherwise tv must contain exactly 2 elements, with access time as the first
|
||||||
|
// element and modification time as the second element.
|
||||||
|
func Lutimes(path string, tv []Timeval) error {
|
||||||
|
if tv == nil {
|
||||||
|
return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)
|
||||||
|
}
|
||||||
|
if len(tv) != 2 {
|
||||||
|
return EINVAL
|
||||||
|
}
|
||||||
|
ts := []Timespec{
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[0])),
|
||||||
|
NsecToTimespec(TimevalToNsec(tv[1])),
|
||||||
|
}
|
||||||
|
return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)
|
||||||
|
}
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_386.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80041270
|
BLKBSZGET = 0x80041270
|
||||||
BLKBSZSET = 0x40041271
|
BLKBSZSET = 0x40041271
|
||||||
|
@ -486,6 +487,50 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
|
@ -493,6 +538,7 @@ const (
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
FP_XSTATE_MAGIC2 = 0x46505845
|
FP_XSTATE_MAGIC2 = 0x46505845
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -514,7 +560,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1134,7 +1180,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1398,6 +1444,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2232,6 +2284,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80081270
|
BLKBSZGET = 0x80081270
|
||||||
BLKBSZSET = 0x40081271
|
BLKBSZSET = 0x40081271
|
||||||
|
@ -486,6 +487,50 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
|
@ -493,6 +538,7 @@ const (
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
FP_XSTATE_MAGIC2 = 0x46505845
|
FP_XSTATE_MAGIC2 = 0x46505845
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -514,7 +560,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1134,7 +1180,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1398,6 +1444,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2233,6 +2285,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80041270
|
BLKBSZGET = 0x80041270
|
||||||
BLKBSZSET = 0x40041271
|
BLKBSZSET = 0x40041271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2239,6 +2291,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80081270
|
BLKBSZGET = 0x80081270
|
||||||
BLKBSZSET = 0x40081271
|
BLKBSZSET = 0x40081271
|
||||||
|
@ -488,6 +489,50 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
|
@ -495,6 +540,7 @@ const (
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
FPSIMD_MAGIC = 0x46508001
|
FPSIMD_MAGIC = 0x46508001
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -516,7 +562,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1135,7 +1181,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1399,6 +1445,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2224,6 +2276,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40041270
|
BLKBSZGET = 0x40041270
|
||||||
BLKBSZSET = 0x80041271
|
BLKBSZSET = 0x80041271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x2000
|
FLUSHO = 0x2000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2234,6 +2286,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40081270
|
BLKBSZGET = 0x40081270
|
||||||
BLKBSZSET = 0x80081271
|
BLKBSZSET = 0x80081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x2000
|
FLUSHO = 0x2000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2234,6 +2286,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40081270
|
BLKBSZGET = 0x40081270
|
||||||
BLKBSZSET = 0x80081271
|
BLKBSZSET = 0x80081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x2000
|
FLUSHO = 0x2000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2234,6 +2286,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40041270
|
BLKBSZGET = 0x40041270
|
||||||
BLKBSZSET = 0x80041271
|
BLKBSZSET = 0x80041271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x2000
|
FLUSHO = 0x2000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2234,6 +2286,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40081270
|
BLKBSZGET = 0x40081270
|
||||||
BLKBSZSET = 0x80081271
|
BLKBSZSET = 0x80081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x4000
|
FF1 = 0x4000
|
||||||
FFDLY = 0x4000
|
FFDLY = 0x4000
|
||||||
FLUSHO = 0x800000
|
FLUSHO = 0x800000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1131,7 +1177,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1398,6 +1444,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2294,6 +2346,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40081270
|
BLKBSZGET = 0x40081270
|
||||||
BLKBSZSET = 0x80081271
|
BLKBSZSET = 0x80081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x4000
|
FF1 = 0x4000
|
||||||
FFDLY = 0x4000
|
FFDLY = 0x4000
|
||||||
FLUSHO = 0x800000
|
FLUSHO = 0x800000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1131,7 +1177,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1398,6 +1444,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2294,6 +2346,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80081270
|
BLKBSZGET = 0x80081270
|
||||||
BLKBSZSET = 0x40081271
|
BLKBSZSET = 0x40081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2220,6 +2272,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
generated
vendored
|
@ -174,6 +174,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x80081270
|
BLKBSZGET = 0x80081270
|
||||||
BLKBSZSET = 0x40081271
|
BLKBSZSET = 0x40081271
|
||||||
|
@ -486,12 +487,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -513,7 +559,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1132,7 +1178,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1396,6 +1442,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2293,6 +2345,7 @@ const (
|
||||||
TUNGETVNETBE = 0x800454df
|
TUNGETVNETBE = 0x800454df
|
||||||
TUNGETVNETHDRSZ = 0x800454d7
|
TUNGETVNETHDRSZ = 0x800454d7
|
||||||
TUNGETVNETLE = 0x800454dd
|
TUNGETVNETLE = 0x800454dd
|
||||||
|
TUNSETCARRIER = 0x400454e2
|
||||||
TUNSETDEBUG = 0x400454c9
|
TUNSETDEBUG = 0x400454c9
|
||||||
TUNSETFILTEREBPF = 0x800454e1
|
TUNSETFILTEREBPF = 0x800454e1
|
||||||
TUNSETGROUP = 0x400454ce
|
TUNSETGROUP = 0x400454ce
|
||||||
|
|
57
vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
generated
vendored
57
vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
generated
vendored
|
@ -177,6 +177,7 @@ const (
|
||||||
B9600 = 0xd
|
B9600 = 0xd
|
||||||
BALLOON_KVM_MAGIC = 0x13661366
|
BALLOON_KVM_MAGIC = 0x13661366
|
||||||
BDEVFS_MAGIC = 0x62646576
|
BDEVFS_MAGIC = 0x62646576
|
||||||
|
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
|
||||||
BINFMTFS_MAGIC = 0x42494e4d
|
BINFMTFS_MAGIC = 0x42494e4d
|
||||||
BLKBSZGET = 0x40081270
|
BLKBSZGET = 0x40081270
|
||||||
BLKBSZSET = 0x80081271
|
BLKBSZSET = 0x80081271
|
||||||
|
@ -490,12 +491,57 @@ const (
|
||||||
FALLOC_FL_PUNCH_HOLE = 0x2
|
FALLOC_FL_PUNCH_HOLE = 0x2
|
||||||
FALLOC_FL_UNSHARE_RANGE = 0x40
|
FALLOC_FL_UNSHARE_RANGE = 0x40
|
||||||
FALLOC_FL_ZERO_RANGE = 0x10
|
FALLOC_FL_ZERO_RANGE = 0x10
|
||||||
|
FANOTIFY_METADATA_VERSION = 0x3
|
||||||
|
FAN_ACCESS = 0x1
|
||||||
|
FAN_ACCESS_PERM = 0x20000
|
||||||
|
FAN_ALLOW = 0x1
|
||||||
|
FAN_ALL_CLASS_BITS = 0xc
|
||||||
|
FAN_ALL_EVENTS = 0x3b
|
||||||
|
FAN_ALL_INIT_FLAGS = 0x3f
|
||||||
|
FAN_ALL_MARK_FLAGS = 0xff
|
||||||
|
FAN_ALL_OUTGOING_EVENTS = 0x3403b
|
||||||
|
FAN_ALL_PERM_EVENTS = 0x30000
|
||||||
|
FAN_AUDIT = 0x10
|
||||||
|
FAN_CLASS_CONTENT = 0x4
|
||||||
|
FAN_CLASS_NOTIF = 0x0
|
||||||
|
FAN_CLASS_PRE_CONTENT = 0x8
|
||||||
|
FAN_CLOEXEC = 0x1
|
||||||
|
FAN_CLOSE = 0x18
|
||||||
|
FAN_CLOSE_NOWRITE = 0x10
|
||||||
|
FAN_CLOSE_WRITE = 0x8
|
||||||
|
FAN_DENY = 0x2
|
||||||
|
FAN_ENABLE_AUDIT = 0x40
|
||||||
|
FAN_EVENT_METADATA_LEN = 0x18
|
||||||
|
FAN_EVENT_ON_CHILD = 0x8000000
|
||||||
|
FAN_MARK_ADD = 0x1
|
||||||
|
FAN_MARK_DONT_FOLLOW = 0x4
|
||||||
|
FAN_MARK_FILESYSTEM = 0x100
|
||||||
|
FAN_MARK_FLUSH = 0x80
|
||||||
|
FAN_MARK_IGNORED_MASK = 0x20
|
||||||
|
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
|
||||||
|
FAN_MARK_INODE = 0x0
|
||||||
|
FAN_MARK_MOUNT = 0x10
|
||||||
|
FAN_MARK_ONLYDIR = 0x8
|
||||||
|
FAN_MARK_REMOVE = 0x2
|
||||||
|
FAN_MODIFY = 0x2
|
||||||
|
FAN_NOFD = -0x1
|
||||||
|
FAN_NONBLOCK = 0x2
|
||||||
|
FAN_ONDIR = 0x40000000
|
||||||
|
FAN_OPEN = 0x20
|
||||||
|
FAN_OPEN_EXEC = 0x1000
|
||||||
|
FAN_OPEN_EXEC_PERM = 0x40000
|
||||||
|
FAN_OPEN_PERM = 0x10000
|
||||||
|
FAN_Q_OVERFLOW = 0x4000
|
||||||
|
FAN_REPORT_TID = 0x100
|
||||||
|
FAN_UNLIMITED_MARKS = 0x20
|
||||||
|
FAN_UNLIMITED_QUEUE = 0x10
|
||||||
FD_CLOEXEC = 0x1
|
FD_CLOEXEC = 0x1
|
||||||
FD_SETSIZE = 0x400
|
FD_SETSIZE = 0x400
|
||||||
FF0 = 0x0
|
FF0 = 0x0
|
||||||
FF1 = 0x8000
|
FF1 = 0x8000
|
||||||
FFDLY = 0x8000
|
FFDLY = 0x8000
|
||||||
FLUSHO = 0x1000
|
FLUSHO = 0x1000
|
||||||
|
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
|
||||||
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
|
||||||
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
|
||||||
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
|
||||||
|
@ -517,7 +563,7 @@ const (
|
||||||
FS_POLICY_FLAGS_PAD_4 = 0x0
|
FS_POLICY_FLAGS_PAD_4 = 0x0
|
||||||
FS_POLICY_FLAGS_PAD_8 = 0x1
|
FS_POLICY_FLAGS_PAD_8 = 0x1
|
||||||
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
FS_POLICY_FLAGS_PAD_MASK = 0x3
|
||||||
FS_POLICY_FLAGS_VALID = 0x3
|
FS_POLICY_FLAGS_VALID = 0x7
|
||||||
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
FUTEXFS_SUPER_MAGIC = 0xbad1dea
|
||||||
F_ADD_SEALS = 0x409
|
F_ADD_SEALS = 0x409
|
||||||
F_DUPFD = 0x0
|
F_DUPFD = 0x0
|
||||||
|
@ -1136,7 +1182,7 @@ const (
|
||||||
NETLINK_UNUSED = 0x1
|
NETLINK_UNUSED = 0x1
|
||||||
NETLINK_USERSOCK = 0x2
|
NETLINK_USERSOCK = 0x2
|
||||||
NETLINK_XFRM = 0x6
|
NETLINK_XFRM = 0x6
|
||||||
NETNSA_MAX = 0x3
|
NETNSA_MAX = 0x5
|
||||||
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
NETNSA_NSID_NOT_ASSIGNED = -0x1
|
||||||
NFNETLINK_V0 = 0x0
|
NFNETLINK_V0 = 0x0
|
||||||
NFNLGRP_ACCT_QUOTA = 0x8
|
NFNLGRP_ACCT_QUOTA = 0x8
|
||||||
|
@ -1400,6 +1446,12 @@ const (
|
||||||
PR_MCE_KILL_SET = 0x1
|
PR_MCE_KILL_SET = 0x1
|
||||||
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
PR_MPX_DISABLE_MANAGEMENT = 0x2c
|
||||||
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
PR_MPX_ENABLE_MANAGEMENT = 0x2b
|
||||||
|
PR_PAC_APDAKEY = 0x4
|
||||||
|
PR_PAC_APDBKEY = 0x8
|
||||||
|
PR_PAC_APGAKEY = 0x10
|
||||||
|
PR_PAC_APIAKEY = 0x1
|
||||||
|
PR_PAC_APIBKEY = 0x2
|
||||||
|
PR_PAC_RESET_KEYS = 0x36
|
||||||
PR_SET_CHILD_SUBREAPER = 0x24
|
PR_SET_CHILD_SUBREAPER = 0x24
|
||||||
PR_SET_DUMPABLE = 0x4
|
PR_SET_DUMPABLE = 0x4
|
||||||
PR_SET_ENDIAN = 0x14
|
PR_SET_ENDIAN = 0x14
|
||||||
|
@ -2282,6 +2334,7 @@ const (
|
||||||
TUNGETVNETBE = 0x400454df
|
TUNGETVNETBE = 0x400454df
|
||||||
TUNGETVNETHDRSZ = 0x400454d7
|
TUNGETVNETHDRSZ = 0x400454d7
|
||||||
TUNGETVNETLE = 0x400454dd
|
TUNGETVNETLE = 0x400454dd
|
||||||
|
TUNSETCARRIER = 0x800454e2
|
||||||
TUNSETDEBUG = 0x800454c9
|
TUNSETDEBUG = 0x800454c9
|
||||||
TUNSETFILTEREBPF = 0x400454e1
|
TUNSETFILTEREBPF = 0x400454e1
|
||||||
TUNSETGROUP = 0x800454ce
|
TUNSETGROUP = 0x800454ce
|
||||||
|
|
8
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
generated
vendored
8
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go
generated
vendored
|
@ -1367,6 +1367,14 @@ func Utime(path string, buf *Utimbuf) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func Getsystemcfg(label int) (n uint64) {
|
||||||
|
r0, _ := callgetsystemcfg(label)
|
||||||
|
n = uint64(r0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
func Getrlimit(resource int, rlim *Rlimit) (err error) {
|
||||||
_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
|
_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
|
10
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
generated
vendored
10
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go
generated
vendored
|
@ -120,6 +120,7 @@ import (
|
||||||
//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
|
||||||
|
//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
|
||||||
//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
|
//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
|
||||||
|
@ -235,6 +236,7 @@ import (
|
||||||
//go:linkname libc_gettimeofday libc_gettimeofday
|
//go:linkname libc_gettimeofday libc_gettimeofday
|
||||||
//go:linkname libc_time libc_time
|
//go:linkname libc_time libc_time
|
||||||
//go:linkname libc_utime libc_utime
|
//go:linkname libc_utime libc_utime
|
||||||
|
//go:linkname libc_getsystemcfg libc_getsystemcfg
|
||||||
//go:linkname libc_getrlimit libc_getrlimit
|
//go:linkname libc_getrlimit libc_getrlimit
|
||||||
//go:linkname libc_setrlimit libc_setrlimit
|
//go:linkname libc_setrlimit libc_setrlimit
|
||||||
//go:linkname libc_lseek libc_lseek
|
//go:linkname libc_lseek libc_lseek
|
||||||
|
@ -353,6 +355,7 @@ var (
|
||||||
libc_gettimeofday,
|
libc_gettimeofday,
|
||||||
libc_time,
|
libc_time,
|
||||||
libc_utime,
|
libc_utime,
|
||||||
|
libc_getsystemcfg,
|
||||||
libc_getrlimit,
|
libc_getrlimit,
|
||||||
libc_setrlimit,
|
libc_setrlimit,
|
||||||
libc_lseek,
|
libc_lseek,
|
||||||
|
@ -1135,6 +1138,13 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
|
||||||
|
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
|
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
|
||||||
r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
|
r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
|
||||||
return
|
return
|
||||||
|
|
9
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
generated
vendored
9
vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go
generated
vendored
|
@ -118,6 +118,7 @@ int poll(uintptr_t, int, int);
|
||||||
int gettimeofday(uintptr_t, uintptr_t);
|
int gettimeofday(uintptr_t, uintptr_t);
|
||||||
int time(uintptr_t);
|
int time(uintptr_t);
|
||||||
int utime(uintptr_t, uintptr_t);
|
int utime(uintptr_t, uintptr_t);
|
||||||
|
unsigned long long getsystemcfg(int);
|
||||||
int getrlimit(int, uintptr_t);
|
int getrlimit(int, uintptr_t);
|
||||||
int setrlimit(int, uintptr_t);
|
int setrlimit(int, uintptr_t);
|
||||||
long long lseek(int, long long, int);
|
long long lseek(int, long long, int);
|
||||||
|
@ -1011,6 +1012,14 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
|
||||||
|
r1 = uintptr(C.getsystemcfg(C.int(label)))
|
||||||
|
e1 = syscall.GetErrno()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
|
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
|
||||||
r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
|
r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
|
||||||
e1 = syscall.GetErrno()
|
e1 = syscall.GetErrno()
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
31
vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
generated
vendored
31
vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
@ -1658,6 +1679,16 @@ func faccessat(dirfd int, path string, mode uint32) (err error) {
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func pipe(p *[2]_C_int) (err error) {
|
||||||
|
_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func pipe2(p *[2]_C_int, flags int) (err error) {
|
func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
|
||||||
if e1 != 0 {
|
if e1 != 0 {
|
||||||
|
|
36
vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
generated
vendored
36
vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
@ -2206,3 +2227,18 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(cmdline)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
36
vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
generated
vendored
36
vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
@ -2186,3 +2207,18 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
|
||||||
|
var _p0 *byte
|
||||||
|
_p0, err = BytePtrFromString(cmdline)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
21
vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
generated
vendored
21
vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
generated
vendored
|
@ -14,6 +14,27 @@ var _ syscall.Errno
|
||||||
|
|
||||||
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
|
||||||
|
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0)
|
||||||
|
fd = int(r0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
|
func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
|
||||||
|
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
|
||||||
|
|
||||||
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
func fchmodat(dirfd int, path string, mode uint32) (err error) {
|
||||||
var _p0 *byte
|
var _p0 *byte
|
||||||
_p0, err = BytePtrFromString(path)
|
_p0, err = BytePtrFromString(path)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
generated
vendored
|
@ -285,4 +285,5 @@ const (
|
||||||
SYS_STATX = 291
|
SYS_STATX = 291
|
||||||
SYS_IO_PGETEVENTS = 292
|
SYS_IO_PGETEVENTS = 292
|
||||||
SYS_RSEQ = 293
|
SYS_RSEQ = 293
|
||||||
|
SYS_KEXEC_FILE_LOAD = 294
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go
generated
vendored
|
@ -284,4 +284,5 @@ const (
|
||||||
SYS_STATX = 291
|
SYS_STATX = 291
|
||||||
SYS_IO_PGETEVENTS = 292
|
SYS_IO_PGETEVENTS = 292
|
||||||
SYS_RSEQ = 293
|
SYS_RSEQ = 293
|
||||||
|
SYS_KEXEC_FILE_LOAD = 294
|
||||||
)
|
)
|
||||||
|
|
1
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
generated
vendored
1
vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
generated
vendored
|
@ -253,6 +253,7 @@ const (
|
||||||
SYS_TIMER_GETOVERRUN = 264
|
SYS_TIMER_GETOVERRUN = 264
|
||||||
SYS_TIMER_DELETE = 265
|
SYS_TIMER_DELETE = 265
|
||||||
SYS_TIMER_CREATE = 266
|
SYS_TIMER_CREATE = 266
|
||||||
|
SYS_VSERVER = 267
|
||||||
SYS_IO_SETUP = 268
|
SYS_IO_SETUP = 268
|
||||||
SYS_IO_DESTROY = 269
|
SYS_IO_DESTROY = 269
|
||||||
SYS_IO_SUBMIT = 270
|
SYS_IO_SUBMIT = 270
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_386.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_386.go
generated
vendored
|
@ -405,6 +405,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -434,6 +439,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -569,6 +575,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -634,6 +641,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x8
|
SizeofSockFprog = 0x8
|
||||||
|
@ -955,7 +973,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1058,6 +1077,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1079,6 +1099,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1094,6 +1124,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1106,6 +1143,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1410,6 +1448,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x18
|
SizeofTpacketHdr = 0x18
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2025,3 +2066,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
generated
vendored
|
@ -406,6 +406,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -435,6 +440,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -570,6 +576,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -635,6 +642,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -966,7 +984,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1069,6 +1088,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1090,6 +1110,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1105,6 +1135,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1117,6 +1154,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1422,6 +1460,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2038,3 +2079,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
generated
vendored
|
@ -409,6 +409,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -438,6 +443,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -573,6 +579,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -638,6 +645,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x8
|
SizeofSockFprog = 0x8
|
||||||
|
@ -944,7 +962,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1047,6 +1066,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1068,6 +1088,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1083,6 +1113,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1095,6 +1132,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1400,6 +1438,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x18
|
SizeofTpacketHdr = 0x18
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2016,3 +2057,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
generated
vendored
|
@ -407,6 +407,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -436,6 +441,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -571,6 +577,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -636,6 +643,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -945,7 +963,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1048,6 +1067,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1069,6 +1089,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1084,6 +1114,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1096,6 +1133,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1401,6 +1439,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2017,3 +2058,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
generated
vendored
|
@ -408,6 +408,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -437,6 +442,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -572,6 +578,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -637,6 +644,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x8
|
SizeofSockFprog = 0x8
|
||||||
|
@ -949,7 +967,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1052,6 +1071,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1073,6 +1093,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1088,6 +1118,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1100,6 +1137,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1406,6 +1444,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x18
|
SizeofTpacketHdr = 0x18
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2022,3 +2063,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
generated
vendored
|
@ -407,6 +407,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -436,6 +441,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -571,6 +577,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -636,6 +643,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -947,7 +965,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1050,6 +1069,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1071,6 +1091,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1086,6 +1116,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1098,6 +1135,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1403,6 +1441,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2019,3 +2060,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
generated
vendored
|
@ -407,6 +407,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -436,6 +441,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -571,6 +577,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -636,6 +643,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -947,7 +965,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1050,6 +1069,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1071,6 +1091,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1086,6 +1116,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1098,6 +1135,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1403,6 +1441,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2019,3 +2060,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
generated
vendored
|
@ -408,6 +408,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -437,6 +442,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -572,6 +578,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -637,6 +644,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x8
|
SizeofSockFprog = 0x8
|
||||||
|
@ -949,7 +967,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1052,6 +1071,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1073,6 +1093,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1088,6 +1118,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1100,6 +1137,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1406,6 +1444,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x18
|
SizeofTpacketHdr = 0x18
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2022,3 +2063,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
generated
vendored
|
@ -408,6 +408,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -437,6 +442,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -572,6 +578,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -637,6 +644,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -955,7 +973,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1058,6 +1077,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1079,6 +1099,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1094,6 +1124,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1106,6 +1143,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1411,6 +1449,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2027,3 +2068,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
generated
vendored
|
@ -408,6 +408,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -437,6 +442,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -572,6 +578,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -637,6 +644,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -955,7 +973,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1058,6 +1077,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1079,6 +1099,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1094,6 +1124,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1106,6 +1143,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1411,6 +1449,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2027,3 +2068,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
generated
vendored
|
@ -407,6 +407,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -436,6 +441,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -571,6 +577,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -636,6 +643,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -972,7 +990,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1075,6 +1094,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1096,6 +1116,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1111,6 +1141,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1123,6 +1160,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1428,6 +1466,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2044,3 +2085,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
generated
vendored
|
@ -406,6 +406,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -435,6 +440,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -570,6 +576,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -635,6 +642,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -968,7 +986,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1071,6 +1090,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1092,6 +1112,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1107,6 +1137,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1119,6 +1156,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1425,6 +1463,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2041,3 +2082,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
58
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
generated
vendored
58
vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
generated
vendored
|
@ -410,6 +410,11 @@ type TCPInfo struct {
|
||||||
Total_retrans uint32
|
Total_retrans uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type CanFilter struct {
|
||||||
|
Id uint32
|
||||||
|
Mask uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockaddrInet4 = 0x10
|
SizeofSockaddrInet4 = 0x10
|
||||||
SizeofSockaddrInet6 = 0x1c
|
SizeofSockaddrInet6 = 0x1c
|
||||||
|
@ -439,6 +444,7 @@ const (
|
||||||
SizeofICMPv6Filter = 0x20
|
SizeofICMPv6Filter = 0x20
|
||||||
SizeofUcred = 0xc
|
SizeofUcred = 0xc
|
||||||
SizeofTCPInfo = 0x68
|
SizeofTCPInfo = 0x68
|
||||||
|
SizeofCanFilter = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -574,6 +580,7 @@ const (
|
||||||
SizeofIfAddrmsg = 0x8
|
SizeofIfAddrmsg = 0x8
|
||||||
SizeofRtMsg = 0xc
|
SizeofRtMsg = 0xc
|
||||||
SizeofRtNexthop = 0x8
|
SizeofRtNexthop = 0x8
|
||||||
|
SizeofNdUseroptmsg = 0x10
|
||||||
)
|
)
|
||||||
|
|
||||||
type NlMsghdr struct {
|
type NlMsghdr struct {
|
||||||
|
@ -639,6 +646,17 @@ type RtNexthop struct {
|
||||||
Ifindex int32
|
Ifindex int32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type NdUseroptmsg struct {
|
||||||
|
Family uint8
|
||||||
|
Pad1 uint8
|
||||||
|
Opts_len uint16
|
||||||
|
Ifindex int32
|
||||||
|
Icmp_type uint8
|
||||||
|
Icmp_code uint8
|
||||||
|
Pad2 uint16
|
||||||
|
Pad3 uint32
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
SizeofSockFilter = 0x8
|
SizeofSockFilter = 0x8
|
||||||
SizeofSockFprog = 0x10
|
SizeofSockFprog = 0x10
|
||||||
|
@ -950,7 +968,8 @@ type PerfEventAttr struct {
|
||||||
Clockid int32
|
Clockid int32
|
||||||
Sample_regs_intr uint64
|
Sample_regs_intr uint64
|
||||||
Aux_watermark uint32
|
Aux_watermark uint32
|
||||||
_ uint32
|
Sample_max_stack uint16
|
||||||
|
_ uint16
|
||||||
}
|
}
|
||||||
|
|
||||||
type PerfEventMmapPage struct {
|
type PerfEventMmapPage struct {
|
||||||
|
@ -1053,6 +1072,7 @@ const (
|
||||||
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
|
||||||
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
PERF_COUNT_SW_EMULATION_FAULTS = 0x8
|
||||||
PERF_COUNT_SW_DUMMY = 0x9
|
PERF_COUNT_SW_DUMMY = 0x9
|
||||||
|
PERF_COUNT_SW_BPF_OUTPUT = 0xa
|
||||||
|
|
||||||
PERF_SAMPLE_IP = 0x1
|
PERF_SAMPLE_IP = 0x1
|
||||||
PERF_SAMPLE_TID = 0x2
|
PERF_SAMPLE_TID = 0x2
|
||||||
|
@ -1074,6 +1094,16 @@ const (
|
||||||
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
|
||||||
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
|
||||||
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
PERF_SAMPLE_BRANCH_IND_CALL = 0x40
|
||||||
|
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
|
||||||
|
PERF_SAMPLE_BRANCH_IN_TX = 0x100
|
||||||
|
PERF_SAMPLE_BRANCH_NO_TX = 0x200
|
||||||
|
PERF_SAMPLE_BRANCH_COND = 0x400
|
||||||
|
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
|
||||||
|
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
|
||||||
|
PERF_SAMPLE_BRANCH_CALL = 0x2000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
|
||||||
|
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
|
||||||
|
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
|
||||||
|
|
||||||
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
|
||||||
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
|
||||||
|
@ -1089,6 +1119,13 @@ const (
|
||||||
PERF_RECORD_FORK = 0x7
|
PERF_RECORD_FORK = 0x7
|
||||||
PERF_RECORD_READ = 0x8
|
PERF_RECORD_READ = 0x8
|
||||||
PERF_RECORD_SAMPLE = 0x9
|
PERF_RECORD_SAMPLE = 0x9
|
||||||
|
PERF_RECORD_MMAP2 = 0xa
|
||||||
|
PERF_RECORD_AUX = 0xb
|
||||||
|
PERF_RECORD_ITRACE_START = 0xc
|
||||||
|
PERF_RECORD_LOST_SAMPLES = 0xd
|
||||||
|
PERF_RECORD_SWITCH = 0xe
|
||||||
|
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
|
||||||
|
PERF_RECORD_NAMESPACES = 0x10
|
||||||
|
|
||||||
PERF_CONTEXT_HV = -0x20
|
PERF_CONTEXT_HV = -0x20
|
||||||
PERF_CONTEXT_KERNEL = -0x80
|
PERF_CONTEXT_KERNEL = -0x80
|
||||||
|
@ -1101,6 +1138,7 @@ const (
|
||||||
PERF_FLAG_FD_NO_GROUP = 0x1
|
PERF_FLAG_FD_NO_GROUP = 0x1
|
||||||
PERF_FLAG_FD_OUTPUT = 0x2
|
PERF_FLAG_FD_OUTPUT = 0x2
|
||||||
PERF_FLAG_PID_CGROUP = 0x4
|
PERF_FLAG_PID_CGROUP = 0x4
|
||||||
|
PERF_FLAG_FD_CLOEXEC = 0x8
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -1406,6 +1444,9 @@ const (
|
||||||
SizeofTpacketHdr = 0x20
|
SizeofTpacketHdr = 0x20
|
||||||
SizeofTpacket2Hdr = 0x20
|
SizeofTpacket2Hdr = 0x20
|
||||||
SizeofTpacket3Hdr = 0x30
|
SizeofTpacket3Hdr = 0x30
|
||||||
|
|
||||||
|
SizeofTpacketStats = 0x8
|
||||||
|
SizeofTpacketStatsV3 = 0xc
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -2022,3 +2063,18 @@ type SockExtendedErr struct {
|
||||||
Info uint32
|
Info uint32
|
||||||
Data uint32
|
Data uint32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FanotifyEventMetadata struct {
|
||||||
|
Event_len uint32
|
||||||
|
Vers uint8
|
||||||
|
Reserved uint8
|
||||||
|
Metadata_len uint16
|
||||||
|
Mask uint64
|
||||||
|
Fd int32
|
||||||
|
Pid int32
|
||||||
|
}
|
||||||
|
|
||||||
|
type FanotifyResponse struct {
|
||||||
|
Fd int32
|
||||||
|
Response uint32
|
||||||
|
}
|
||||||
|
|
8
vendor/golang.org/x/sys/windows/dll_windows.go
generated
vendored
8
vendor/golang.org/x/sys/windows/dll_windows.go
generated
vendored
|
@ -359,11 +359,11 @@ func loadLibraryEx(name string, system bool) (*DLL, error) {
|
||||||
// trying to load "foo.dll" out of the system
|
// trying to load "foo.dll" out of the system
|
||||||
// folder, but LoadLibraryEx doesn't support
|
// folder, but LoadLibraryEx doesn't support
|
||||||
// that yet on their system, so emulate it.
|
// that yet on their system, so emulate it.
|
||||||
windir, _ := Getenv("WINDIR") // old var; apparently works on XP
|
systemdir, err := GetSystemDirectory()
|
||||||
if windir == "" {
|
if err != nil {
|
||||||
return nil, errString("%WINDIR% not defined")
|
return nil, err
|
||||||
}
|
}
|
||||||
loadDLL = windir + "\\System32\\" + name
|
loadDLL = systemdir + "\\" + name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
h, err := LoadLibraryEx(loadDLL, 0, flags)
|
h, err := LoadLibraryEx(loadDLL, 0, flags)
|
||||||
|
|
20
vendor/golang.org/x/sys/windows/security_windows.go
generated
vendored
20
vendor/golang.org/x/sys/windows/security_windows.go
generated
vendored
|
@ -149,7 +149,7 @@ const (
|
||||||
DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b
|
DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b
|
||||||
DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c
|
DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c
|
||||||
DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d
|
DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d
|
||||||
DOMAIN_ALIAS_RID_MONITORING_USERS = 0X22e
|
DOMAIN_ALIAS_RID_MONITORING_USERS = 0x22e
|
||||||
DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f
|
DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f
|
||||||
DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230
|
DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230
|
||||||
DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231
|
DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231
|
||||||
|
@ -372,6 +372,7 @@ type Tokengroups struct {
|
||||||
//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken
|
//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken
|
||||||
//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation
|
//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation
|
||||||
//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW
|
//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW
|
||||||
|
//sys getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) = kernel32.GetSystemDirectoryW
|
||||||
|
|
||||||
// An access token contains the security information for a logon session.
|
// An access token contains the security information for a logon session.
|
||||||
// The system creates an access token when a user logs on, and every
|
// The system creates an access token when a user logs on, and every
|
||||||
|
@ -468,6 +469,23 @@ func (t Token) GetUserProfileDirectory() (string, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetSystemDirectory retrieves path to current location of the system
|
||||||
|
// directory, which is typically, though not always, C:\Windows\System32.
|
||||||
|
func GetSystemDirectory() (string, error) {
|
||||||
|
n := uint32(MAX_PATH)
|
||||||
|
for {
|
||||||
|
b := make([]uint16, n)
|
||||||
|
l, e := getSystemDirectory(&b[0], n)
|
||||||
|
if e != nil {
|
||||||
|
return "", e
|
||||||
|
}
|
||||||
|
if l <= n {
|
||||||
|
return UTF16ToString(b[:l]), nil
|
||||||
|
}
|
||||||
|
n = l
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// IsMember reports whether the access token t is a member of the provided SID.
|
// IsMember reports whether the access token t is a member of the provided SID.
|
||||||
func (t Token) IsMember(sid *SID) (bool, error) {
|
func (t Token) IsMember(sid *SID) (bool, error) {
|
||||||
var b int32
|
var b int32
|
||||||
|
|
14
vendor/golang.org/x/sys/windows/zsyscall_windows.go
generated
vendored
14
vendor/golang.org/x/sys/windows/zsyscall_windows.go
generated
vendored
|
@ -252,6 +252,7 @@ var (
|
||||||
procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken")
|
procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken")
|
||||||
procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation")
|
procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation")
|
||||||
procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW")
|
procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW")
|
||||||
|
procGetSystemDirectoryW = modkernel32.NewProc("GetSystemDirectoryW")
|
||||||
)
|
)
|
||||||
|
|
||||||
func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
|
func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) {
|
||||||
|
@ -2718,3 +2719,16 @@ func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getSystemDirectory(dir *uint16, dirLen uint32) (len uint32, err error) {
|
||||||
|
r0, _, e1 := syscall.Syscall(procGetSystemDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(dir)), uintptr(dirLen), 0)
|
||||||
|
len = uint32(r0)
|
||||||
|
if len == 0 {
|
||||||
|
if e1 != 0 {
|
||||||
|
err = errnoErr(e1)
|
||||||
|
} else {
|
||||||
|
err = syscall.EINVAL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
3
vendor/golang.org/x/tools/AUTHORS
generated
vendored
Normal file
3
vendor/golang.org/x/tools/AUTHORS
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# This source code refers to The Go Authors for copyright purposes.
|
||||||
|
# The master list of authors is in the main Go distribution,
|
||||||
|
# visible at http://tip.golang.org/AUTHORS.
|
3
vendor/golang.org/x/tools/CONTRIBUTORS
generated
vendored
Normal file
3
vendor/golang.org/x/tools/CONTRIBUTORS
generated
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# This source code was written by the Go contributors.
|
||||||
|
# The master list of contributors is in the main Go distribution,
|
||||||
|
# visible at http://tip.golang.org/CONTRIBUTORS.
|
27
vendor/golang.org/x/tools/LICENSE
generated
vendored
Normal file
27
vendor/golang.org/x/tools/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
Copyright (c) 2009 The Go Authors. All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above
|
||||||
|
copyright notice, this list of conditions and the following disclaimer
|
||||||
|
in the documentation and/or other materials provided with the
|
||||||
|
distribution.
|
||||||
|
* Neither the name of Google Inc. nor the names of its
|
||||||
|
contributors may be used to endorse or promote products derived from
|
||||||
|
this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
22
vendor/golang.org/x/tools/PATENTS
generated
vendored
Normal file
22
vendor/golang.org/x/tools/PATENTS
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
Additional IP Rights Grant (Patents)
|
||||||
|
|
||||||
|
"This implementation" means the copyrightable works distributed by
|
||||||
|
Google as part of the Go project.
|
||||||
|
|
||||||
|
Google hereby grants to You a perpetual, worldwide, non-exclusive,
|
||||||
|
no-charge, royalty-free, irrevocable (except as stated in this section)
|
||||||
|
patent license to make, have made, use, offer to sell, sell, import,
|
||||||
|
transfer and otherwise run, modify and propagate the contents of this
|
||||||
|
implementation of Go, where such license applies only to those patent
|
||||||
|
claims, both currently owned or controlled by Google and acquired in
|
||||||
|
the future, licensable by Google that are necessarily infringed by this
|
||||||
|
implementation of Go. This grant does not include claims that would be
|
||||||
|
infringed only as a consequence of further modification of this
|
||||||
|
implementation. If you or your agent or exclusive licensee institute or
|
||||||
|
order or agree to the institution of patent litigation against any
|
||||||
|
entity (including a cross-claim or counterclaim in a lawsuit) alleging
|
||||||
|
that this implementation of Go or any code incorporated within this
|
||||||
|
implementation of Go constitutes direct or contributory patent
|
||||||
|
infringement, or inducement of patent infringement, then any patent
|
||||||
|
rights granted to you under this License for this implementation of Go
|
||||||
|
shall terminate as of the date such litigation is filed.
|
627
vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
generated
vendored
Normal file
627
vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
generated
vendored
Normal file
|
@ -0,0 +1,627 @@
|
||||||
|
// Copyright 2013 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package astutil
|
||||||
|
|
||||||
|
// This file defines utilities for working with source positions.
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/ast"
|
||||||
|
"go/token"
|
||||||
|
"sort"
|
||||||
|
)
|
||||||
|
|
||||||
|
// PathEnclosingInterval returns the node that encloses the source
|
||||||
|
// interval [start, end), and all its ancestors up to the AST root.
|
||||||
|
//
|
||||||
|
// The definition of "enclosing" used by this function considers
|
||||||
|
// additional whitespace abutting a node to be enclosed by it.
|
||||||
|
// In this example:
|
||||||
|
//
|
||||||
|
// z := x + y // add them
|
||||||
|
// <-A->
|
||||||
|
// <----B----->
|
||||||
|
//
|
||||||
|
// the ast.BinaryExpr(+) node is considered to enclose interval B
|
||||||
|
// even though its [Pos()..End()) is actually only interval A.
|
||||||
|
// This behaviour makes user interfaces more tolerant of imperfect
|
||||||
|
// input.
|
||||||
|
//
|
||||||
|
// This function treats tokens as nodes, though they are not included
|
||||||
|
// in the result. e.g. PathEnclosingInterval("+") returns the
|
||||||
|
// enclosing ast.BinaryExpr("x + y").
|
||||||
|
//
|
||||||
|
// If start==end, the 1-char interval following start is used instead.
|
||||||
|
//
|
||||||
|
// The 'exact' result is true if the interval contains only path[0]
|
||||||
|
// and perhaps some adjacent whitespace. It is false if the interval
|
||||||
|
// overlaps multiple children of path[0], or if it contains only
|
||||||
|
// interior whitespace of path[0].
|
||||||
|
// In this example:
|
||||||
|
//
|
||||||
|
// z := x + y // add them
|
||||||
|
// <--C--> <---E-->
|
||||||
|
// ^
|
||||||
|
// D
|
||||||
|
//
|
||||||
|
// intervals C, D and E are inexact. C is contained by the
|
||||||
|
// z-assignment statement, because it spans three of its children (:=,
|
||||||
|
// x, +). So too is the 1-char interval D, because it contains only
|
||||||
|
// interior whitespace of the assignment. E is considered interior
|
||||||
|
// whitespace of the BlockStmt containing the assignment.
|
||||||
|
//
|
||||||
|
// Precondition: [start, end) both lie within the same file as root.
|
||||||
|
// TODO(adonovan): return (nil, false) in this case and remove precond.
|
||||||
|
// Requires FileSet; see loader.tokenFileContainsPos.
|
||||||
|
//
|
||||||
|
// Postcondition: path is never nil; it always contains at least 'root'.
|
||||||
|
//
|
||||||
|
func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) {
|
||||||
|
// fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging
|
||||||
|
|
||||||
|
// Precondition: node.[Pos..End) and adjoining whitespace contain [start, end).
|
||||||
|
var visit func(node ast.Node) bool
|
||||||
|
visit = func(node ast.Node) bool {
|
||||||
|
path = append(path, node)
|
||||||
|
|
||||||
|
nodePos := node.Pos()
|
||||||
|
nodeEnd := node.End()
|
||||||
|
|
||||||
|
// fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging
|
||||||
|
|
||||||
|
// Intersect [start, end) with interval of node.
|
||||||
|
if start < nodePos {
|
||||||
|
start = nodePos
|
||||||
|
}
|
||||||
|
if end > nodeEnd {
|
||||||
|
end = nodeEnd
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find sole child that contains [start, end).
|
||||||
|
children := childrenOf(node)
|
||||||
|
l := len(children)
|
||||||
|
for i, child := range children {
|
||||||
|
// [childPos, childEnd) is unaugmented interval of child.
|
||||||
|
childPos := child.Pos()
|
||||||
|
childEnd := child.End()
|
||||||
|
|
||||||
|
// [augPos, augEnd) is whitespace-augmented interval of child.
|
||||||
|
augPos := childPos
|
||||||
|
augEnd := childEnd
|
||||||
|
if i > 0 {
|
||||||
|
augPos = children[i-1].End() // start of preceding whitespace
|
||||||
|
}
|
||||||
|
if i < l-1 {
|
||||||
|
nextChildPos := children[i+1].Pos()
|
||||||
|
// Does [start, end) lie between child and next child?
|
||||||
|
if start >= augEnd && end <= nextChildPos {
|
||||||
|
return false // inexact match
|
||||||
|
}
|
||||||
|
augEnd = nextChildPos // end of following whitespace
|
||||||
|
}
|
||||||
|
|
||||||
|
// fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n",
|
||||||
|
// i, augPos, augEnd, start, end) // debugging
|
||||||
|
|
||||||
|
// Does augmented child strictly contain [start, end)?
|
||||||
|
if augPos <= start && end <= augEnd {
|
||||||
|
_, isToken := child.(tokenNode)
|
||||||
|
return isToken || visit(child)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Does [start, end) overlap multiple children?
|
||||||
|
// i.e. left-augmented child contains start
|
||||||
|
// but LR-augmented child does not contain end.
|
||||||
|
if start < childEnd && end > augEnd {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// No single child contained [start, end),
|
||||||
|
// so node is the result. Is it exact?
|
||||||
|
|
||||||
|
// (It's tempting to put this condition before the
|
||||||
|
// child loop, but it gives the wrong result in the
|
||||||
|
// case where a node (e.g. ExprStmt) and its sole
|
||||||
|
// child have equal intervals.)
|
||||||
|
if start == nodePos && end == nodeEnd {
|
||||||
|
return true // exact match
|
||||||
|
}
|
||||||
|
|
||||||
|
return false // inexact: overlaps multiple children
|
||||||
|
}
|
||||||
|
|
||||||
|
if start > end {
|
||||||
|
start, end = end, start
|
||||||
|
}
|
||||||
|
|
||||||
|
if start < root.End() && end > root.Pos() {
|
||||||
|
if start == end {
|
||||||
|
end = start + 1 // empty interval => interval of size 1
|
||||||
|
}
|
||||||
|
exact = visit(root)
|
||||||
|
|
||||||
|
// Reverse the path:
|
||||||
|
for i, l := 0, len(path); i < l/2; i++ {
|
||||||
|
path[i], path[l-1-i] = path[l-1-i], path[i]
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Selection lies within whitespace preceding the
|
||||||
|
// first (or following the last) declaration in the file.
|
||||||
|
// The result nonetheless always includes the ast.File.
|
||||||
|
path = append(path, root)
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// tokenNode is a dummy implementation of ast.Node for a single token.
|
||||||
|
// They are used transiently by PathEnclosingInterval but never escape
|
||||||
|
// this package.
|
||||||
|
//
|
||||||
|
type tokenNode struct {
|
||||||
|
pos token.Pos
|
||||||
|
end token.Pos
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n tokenNode) Pos() token.Pos {
|
||||||
|
return n.pos
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n tokenNode) End() token.Pos {
|
||||||
|
return n.end
|
||||||
|
}
|
||||||
|
|
||||||
|
func tok(pos token.Pos, len int) ast.Node {
|
||||||
|
return tokenNode{pos, pos + token.Pos(len)}
|
||||||
|
}
|
||||||
|
|
||||||
|
// childrenOf returns the direct non-nil children of ast.Node n.
|
||||||
|
// It may include fake ast.Node implementations for bare tokens.
|
||||||
|
// it is not safe to call (e.g.) ast.Walk on such nodes.
|
||||||
|
//
|
||||||
|
func childrenOf(n ast.Node) []ast.Node {
|
||||||
|
var children []ast.Node
|
||||||
|
|
||||||
|
// First add nodes for all true subtrees.
|
||||||
|
ast.Inspect(n, func(node ast.Node) bool {
|
||||||
|
if node == n { // push n
|
||||||
|
return true // recur
|
||||||
|
}
|
||||||
|
if node != nil { // push child
|
||||||
|
children = append(children, node)
|
||||||
|
}
|
||||||
|
return false // no recursion
|
||||||
|
})
|
||||||
|
|
||||||
|
// Then add fake Nodes for bare tokens.
|
||||||
|
switch n := n.(type) {
|
||||||
|
case *ast.ArrayType:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lbrack, len("[")),
|
||||||
|
tok(n.Elt.End(), len("]")))
|
||||||
|
|
||||||
|
case *ast.AssignStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.TokPos, len(n.Tok.String())))
|
||||||
|
|
||||||
|
case *ast.BasicLit:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.ValuePos, len(n.Value)))
|
||||||
|
|
||||||
|
case *ast.BinaryExpr:
|
||||||
|
children = append(children, tok(n.OpPos, len(n.Op.String())))
|
||||||
|
|
||||||
|
case *ast.BlockStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lbrace, len("{")),
|
||||||
|
tok(n.Rbrace, len("}")))
|
||||||
|
|
||||||
|
case *ast.BranchStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.TokPos, len(n.Tok.String())))
|
||||||
|
|
||||||
|
case *ast.CallExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lparen, len("(")),
|
||||||
|
tok(n.Rparen, len(")")))
|
||||||
|
if n.Ellipsis != 0 {
|
||||||
|
children = append(children, tok(n.Ellipsis, len("...")))
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.CaseClause:
|
||||||
|
if n.List == nil {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Case, len("default")))
|
||||||
|
} else {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Case, len("case")))
|
||||||
|
}
|
||||||
|
children = append(children, tok(n.Colon, len(":")))
|
||||||
|
|
||||||
|
case *ast.ChanType:
|
||||||
|
switch n.Dir {
|
||||||
|
case ast.RECV:
|
||||||
|
children = append(children, tok(n.Begin, len("<-chan")))
|
||||||
|
case ast.SEND:
|
||||||
|
children = append(children, tok(n.Begin, len("chan<-")))
|
||||||
|
case ast.RECV | ast.SEND:
|
||||||
|
children = append(children, tok(n.Begin, len("chan")))
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.CommClause:
|
||||||
|
if n.Comm == nil {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Case, len("default")))
|
||||||
|
} else {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Case, len("case")))
|
||||||
|
}
|
||||||
|
children = append(children, tok(n.Colon, len(":")))
|
||||||
|
|
||||||
|
case *ast.Comment:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.CommentGroup:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.CompositeLit:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lbrace, len("{")),
|
||||||
|
tok(n.Rbrace, len("{")))
|
||||||
|
|
||||||
|
case *ast.DeclStmt:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.DeferStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Defer, len("defer")))
|
||||||
|
|
||||||
|
case *ast.Ellipsis:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Ellipsis, len("...")))
|
||||||
|
|
||||||
|
case *ast.EmptyStmt:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.ExprStmt:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.Field:
|
||||||
|
// TODO(adonovan): Field.{Doc,Comment,Tag}?
|
||||||
|
|
||||||
|
case *ast.FieldList:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Opening, len("(")),
|
||||||
|
tok(n.Closing, len(")")))
|
||||||
|
|
||||||
|
case *ast.File:
|
||||||
|
// TODO test: Doc
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Package, len("package")))
|
||||||
|
|
||||||
|
case *ast.ForStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.For, len("for")))
|
||||||
|
|
||||||
|
case *ast.FuncDecl:
|
||||||
|
// TODO(adonovan): FuncDecl.Comment?
|
||||||
|
|
||||||
|
// Uniquely, FuncDecl breaks the invariant that
|
||||||
|
// preorder traversal yields tokens in lexical order:
|
||||||
|
// in fact, FuncDecl.Recv precedes FuncDecl.Type.Func.
|
||||||
|
//
|
||||||
|
// As a workaround, we inline the case for FuncType
|
||||||
|
// here and order things correctly.
|
||||||
|
//
|
||||||
|
children = nil // discard ast.Walk(FuncDecl) info subtrees
|
||||||
|
children = append(children, tok(n.Type.Func, len("func")))
|
||||||
|
if n.Recv != nil {
|
||||||
|
children = append(children, n.Recv)
|
||||||
|
}
|
||||||
|
children = append(children, n.Name)
|
||||||
|
if n.Type.Params != nil {
|
||||||
|
children = append(children, n.Type.Params)
|
||||||
|
}
|
||||||
|
if n.Type.Results != nil {
|
||||||
|
children = append(children, n.Type.Results)
|
||||||
|
}
|
||||||
|
if n.Body != nil {
|
||||||
|
children = append(children, n.Body)
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.FuncLit:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.FuncType:
|
||||||
|
if n.Func != 0 {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Func, len("func")))
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.GenDecl:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.TokPos, len(n.Tok.String())))
|
||||||
|
if n.Lparen != 0 {
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lparen, len("(")),
|
||||||
|
tok(n.Rparen, len(")")))
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.GoStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Go, len("go")))
|
||||||
|
|
||||||
|
case *ast.Ident:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.NamePos, len(n.Name)))
|
||||||
|
|
||||||
|
case *ast.IfStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.If, len("if")))
|
||||||
|
|
||||||
|
case *ast.ImportSpec:
|
||||||
|
// TODO(adonovan): ImportSpec.{Doc,EndPos}?
|
||||||
|
|
||||||
|
case *ast.IncDecStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.TokPos, len(n.Tok.String())))
|
||||||
|
|
||||||
|
case *ast.IndexExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lbrack, len("{")),
|
||||||
|
tok(n.Rbrack, len("}")))
|
||||||
|
|
||||||
|
case *ast.InterfaceType:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Interface, len("interface")))
|
||||||
|
|
||||||
|
case *ast.KeyValueExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Colon, len(":")))
|
||||||
|
|
||||||
|
case *ast.LabeledStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Colon, len(":")))
|
||||||
|
|
||||||
|
case *ast.MapType:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Map, len("map")))
|
||||||
|
|
||||||
|
case *ast.ParenExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lparen, len("(")),
|
||||||
|
tok(n.Rparen, len(")")))
|
||||||
|
|
||||||
|
case *ast.RangeStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.For, len("for")),
|
||||||
|
tok(n.TokPos, len(n.Tok.String())))
|
||||||
|
|
||||||
|
case *ast.ReturnStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Return, len("return")))
|
||||||
|
|
||||||
|
case *ast.SelectStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Select, len("select")))
|
||||||
|
|
||||||
|
case *ast.SelectorExpr:
|
||||||
|
// nop
|
||||||
|
|
||||||
|
case *ast.SendStmt:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Arrow, len("<-")))
|
||||||
|
|
||||||
|
case *ast.SliceExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lbrack, len("[")),
|
||||||
|
tok(n.Rbrack, len("]")))
|
||||||
|
|
||||||
|
case *ast.StarExpr:
|
||||||
|
children = append(children, tok(n.Star, len("*")))
|
||||||
|
|
||||||
|
case *ast.StructType:
|
||||||
|
children = append(children, tok(n.Struct, len("struct")))
|
||||||
|
|
||||||
|
case *ast.SwitchStmt:
|
||||||
|
children = append(children, tok(n.Switch, len("switch")))
|
||||||
|
|
||||||
|
case *ast.TypeAssertExpr:
|
||||||
|
children = append(children,
|
||||||
|
tok(n.Lparen-1, len(".")),
|
||||||
|
tok(n.Lparen, len("(")),
|
||||||
|
tok(n.Rparen, len(")")))
|
||||||
|
|
||||||
|
case *ast.TypeSpec:
|
||||||
|
// TODO(adonovan): TypeSpec.{Doc,Comment}?
|
||||||
|
|
||||||
|
case *ast.TypeSwitchStmt:
|
||||||
|
children = append(children, tok(n.Switch, len("switch")))
|
||||||
|
|
||||||
|
case *ast.UnaryExpr:
|
||||||
|
children = append(children, tok(n.OpPos, len(n.Op.String())))
|
||||||
|
|
||||||
|
case *ast.ValueSpec:
|
||||||
|
// TODO(adonovan): ValueSpec.{Doc,Comment}?
|
||||||
|
|
||||||
|
case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt:
|
||||||
|
// nop
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO(adonovan): opt: merge the logic of ast.Inspect() into
|
||||||
|
// the switch above so we can make interleaved callbacks for
|
||||||
|
// both Nodes and Tokens in the right order and avoid the need
|
||||||
|
// to sort.
|
||||||
|
sort.Sort(byPos(children))
|
||||||
|
|
||||||
|
return children
|
||||||
|
}
|
||||||
|
|
||||||
|
type byPos []ast.Node
|
||||||
|
|
||||||
|
func (sl byPos) Len() int {
|
||||||
|
return len(sl)
|
||||||
|
}
|
||||||
|
func (sl byPos) Less(i, j int) bool {
|
||||||
|
return sl[i].Pos() < sl[j].Pos()
|
||||||
|
}
|
||||||
|
func (sl byPos) Swap(i, j int) {
|
||||||
|
sl[i], sl[j] = sl[j], sl[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
// NodeDescription returns a description of the concrete type of n suitable
|
||||||
|
// for a user interface.
|
||||||
|
//
|
||||||
|
// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident,
|
||||||
|
// StarExpr) we could be much more specific given the path to the AST
|
||||||
|
// root. Perhaps we should do that.
|
||||||
|
//
|
||||||
|
func NodeDescription(n ast.Node) string {
|
||||||
|
switch n := n.(type) {
|
||||||
|
case *ast.ArrayType:
|
||||||
|
return "array type"
|
||||||
|
case *ast.AssignStmt:
|
||||||
|
return "assignment"
|
||||||
|
case *ast.BadDecl:
|
||||||
|
return "bad declaration"
|
||||||
|
case *ast.BadExpr:
|
||||||
|
return "bad expression"
|
||||||
|
case *ast.BadStmt:
|
||||||
|
return "bad statement"
|
||||||
|
case *ast.BasicLit:
|
||||||
|
return "basic literal"
|
||||||
|
case *ast.BinaryExpr:
|
||||||
|
return fmt.Sprintf("binary %s operation", n.Op)
|
||||||
|
case *ast.BlockStmt:
|
||||||
|
return "block"
|
||||||
|
case *ast.BranchStmt:
|
||||||
|
switch n.Tok {
|
||||||
|
case token.BREAK:
|
||||||
|
return "break statement"
|
||||||
|
case token.CONTINUE:
|
||||||
|
return "continue statement"
|
||||||
|
case token.GOTO:
|
||||||
|
return "goto statement"
|
||||||
|
case token.FALLTHROUGH:
|
||||||
|
return "fall-through statement"
|
||||||
|
}
|
||||||
|
case *ast.CallExpr:
|
||||||
|
if len(n.Args) == 1 && !n.Ellipsis.IsValid() {
|
||||||
|
return "function call (or conversion)"
|
||||||
|
}
|
||||||
|
return "function call"
|
||||||
|
case *ast.CaseClause:
|
||||||
|
return "case clause"
|
||||||
|
case *ast.ChanType:
|
||||||
|
return "channel type"
|
||||||
|
case *ast.CommClause:
|
||||||
|
return "communication clause"
|
||||||
|
case *ast.Comment:
|
||||||
|
return "comment"
|
||||||
|
case *ast.CommentGroup:
|
||||||
|
return "comment group"
|
||||||
|
case *ast.CompositeLit:
|
||||||
|
return "composite literal"
|
||||||
|
case *ast.DeclStmt:
|
||||||
|
return NodeDescription(n.Decl) + " statement"
|
||||||
|
case *ast.DeferStmt:
|
||||||
|
return "defer statement"
|
||||||
|
case *ast.Ellipsis:
|
||||||
|
return "ellipsis"
|
||||||
|
case *ast.EmptyStmt:
|
||||||
|
return "empty statement"
|
||||||
|
case *ast.ExprStmt:
|
||||||
|
return "expression statement"
|
||||||
|
case *ast.Field:
|
||||||
|
// Can be any of these:
|
||||||
|
// struct {x, y int} -- struct field(s)
|
||||||
|
// struct {T} -- anon struct field
|
||||||
|
// interface {I} -- interface embedding
|
||||||
|
// interface {f()} -- interface method
|
||||||
|
// func (A) func(B) C -- receiver, param(s), result(s)
|
||||||
|
return "field/method/parameter"
|
||||||
|
case *ast.FieldList:
|
||||||
|
return "field/method/parameter list"
|
||||||
|
case *ast.File:
|
||||||
|
return "source file"
|
||||||
|
case *ast.ForStmt:
|
||||||
|
return "for loop"
|
||||||
|
case *ast.FuncDecl:
|
||||||
|
return "function declaration"
|
||||||
|
case *ast.FuncLit:
|
||||||
|
return "function literal"
|
||||||
|
case *ast.FuncType:
|
||||||
|
return "function type"
|
||||||
|
case *ast.GenDecl:
|
||||||
|
switch n.Tok {
|
||||||
|
case token.IMPORT:
|
||||||
|
return "import declaration"
|
||||||
|
case token.CONST:
|
||||||
|
return "constant declaration"
|
||||||
|
case token.TYPE:
|
||||||
|
return "type declaration"
|
||||||
|
case token.VAR:
|
||||||
|
return "variable declaration"
|
||||||
|
}
|
||||||
|
case *ast.GoStmt:
|
||||||
|
return "go statement"
|
||||||
|
case *ast.Ident:
|
||||||
|
return "identifier"
|
||||||
|
case *ast.IfStmt:
|
||||||
|
return "if statement"
|
||||||
|
case *ast.ImportSpec:
|
||||||
|
return "import specification"
|
||||||
|
case *ast.IncDecStmt:
|
||||||
|
if n.Tok == token.INC {
|
||||||
|
return "increment statement"
|
||||||
|
}
|
||||||
|
return "decrement statement"
|
||||||
|
case *ast.IndexExpr:
|
||||||
|
return "index expression"
|
||||||
|
case *ast.InterfaceType:
|
||||||
|
return "interface type"
|
||||||
|
case *ast.KeyValueExpr:
|
||||||
|
return "key/value association"
|
||||||
|
case *ast.LabeledStmt:
|
||||||
|
return "statement label"
|
||||||
|
case *ast.MapType:
|
||||||
|
return "map type"
|
||||||
|
case *ast.Package:
|
||||||
|
return "package"
|
||||||
|
case *ast.ParenExpr:
|
||||||
|
return "parenthesized " + NodeDescription(n.X)
|
||||||
|
case *ast.RangeStmt:
|
||||||
|
return "range loop"
|
||||||
|
case *ast.ReturnStmt:
|
||||||
|
return "return statement"
|
||||||
|
case *ast.SelectStmt:
|
||||||
|
return "select statement"
|
||||||
|
case *ast.SelectorExpr:
|
||||||
|
return "selector"
|
||||||
|
case *ast.SendStmt:
|
||||||
|
return "channel send"
|
||||||
|
case *ast.SliceExpr:
|
||||||
|
return "slice expression"
|
||||||
|
case *ast.StarExpr:
|
||||||
|
return "*-operation" // load/store expr or pointer type
|
||||||
|
case *ast.StructType:
|
||||||
|
return "struct type"
|
||||||
|
case *ast.SwitchStmt:
|
||||||
|
return "switch statement"
|
||||||
|
case *ast.TypeAssertExpr:
|
||||||
|
return "type assertion"
|
||||||
|
case *ast.TypeSpec:
|
||||||
|
return "type specification"
|
||||||
|
case *ast.TypeSwitchStmt:
|
||||||
|
return "type switch"
|
||||||
|
case *ast.UnaryExpr:
|
||||||
|
return fmt.Sprintf("unary %s operation", n.Op)
|
||||||
|
case *ast.ValueSpec:
|
||||||
|
return "value specification"
|
||||||
|
|
||||||
|
}
|
||||||
|
panic(fmt.Sprintf("unexpected node type: %T", n))
|
||||||
|
}
|
481
vendor/golang.org/x/tools/go/ast/astutil/imports.go
generated
vendored
Normal file
481
vendor/golang.org/x/tools/go/ast/astutil/imports.go
generated
vendored
Normal file
|
@ -0,0 +1,481 @@
|
||||||
|
// Copyright 2013 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Package astutil contains common utilities for working with the Go AST.
|
||||||
|
package astutil // import "golang.org/x/tools/go/ast/astutil"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/ast"
|
||||||
|
"go/token"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AddImport adds the import path to the file f, if absent.
|
||||||
|
func AddImport(fset *token.FileSet, f *ast.File, path string) (added bool) {
|
||||||
|
return AddNamedImport(fset, f, "", path)
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddNamedImport adds the import with the given name and path to the file f, if absent.
|
||||||
|
// If name is not empty, it is used to rename the import.
|
||||||
|
//
|
||||||
|
// For example, calling
|
||||||
|
// AddNamedImport(fset, f, "pathpkg", "path")
|
||||||
|
// adds
|
||||||
|
// import pathpkg "path"
|
||||||
|
func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added bool) {
|
||||||
|
if imports(f, name, path) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
newImport := &ast.ImportSpec{
|
||||||
|
Path: &ast.BasicLit{
|
||||||
|
Kind: token.STRING,
|
||||||
|
Value: strconv.Quote(path),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if name != "" {
|
||||||
|
newImport.Name = &ast.Ident{Name: name}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find an import decl to add to.
|
||||||
|
// The goal is to find an existing import
|
||||||
|
// whose import path has the longest shared
|
||||||
|
// prefix with path.
|
||||||
|
var (
|
||||||
|
bestMatch = -1 // length of longest shared prefix
|
||||||
|
lastImport = -1 // index in f.Decls of the file's final import decl
|
||||||
|
impDecl *ast.GenDecl // import decl containing the best match
|
||||||
|
impIndex = -1 // spec index in impDecl containing the best match
|
||||||
|
|
||||||
|
isThirdPartyPath = isThirdParty(path)
|
||||||
|
)
|
||||||
|
for i, decl := range f.Decls {
|
||||||
|
gen, ok := decl.(*ast.GenDecl)
|
||||||
|
if ok && gen.Tok == token.IMPORT {
|
||||||
|
lastImport = i
|
||||||
|
// Do not add to import "C", to avoid disrupting the
|
||||||
|
// association with its doc comment, breaking cgo.
|
||||||
|
if declImports(gen, "C") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// Match an empty import decl if that's all that is available.
|
||||||
|
if len(gen.Specs) == 0 && bestMatch == -1 {
|
||||||
|
impDecl = gen
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute longest shared prefix with imports in this group and find best
|
||||||
|
// matched import spec.
|
||||||
|
// 1. Always prefer import spec with longest shared prefix.
|
||||||
|
// 2. While match length is 0,
|
||||||
|
// - for stdlib package: prefer first import spec.
|
||||||
|
// - for third party package: prefer first third party import spec.
|
||||||
|
// We cannot use last import spec as best match for third party package
|
||||||
|
// because grouped imports are usually placed last by goimports -local
|
||||||
|
// flag.
|
||||||
|
// See issue #19190.
|
||||||
|
seenAnyThirdParty := false
|
||||||
|
for j, spec := range gen.Specs {
|
||||||
|
impspec := spec.(*ast.ImportSpec)
|
||||||
|
p := importPath(impspec)
|
||||||
|
n := matchLen(p, path)
|
||||||
|
if n > bestMatch || (bestMatch == 0 && !seenAnyThirdParty && isThirdPartyPath) {
|
||||||
|
bestMatch = n
|
||||||
|
impDecl = gen
|
||||||
|
impIndex = j
|
||||||
|
}
|
||||||
|
seenAnyThirdParty = seenAnyThirdParty || isThirdParty(p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no import decl found, add one after the last import.
|
||||||
|
if impDecl == nil {
|
||||||
|
impDecl = &ast.GenDecl{
|
||||||
|
Tok: token.IMPORT,
|
||||||
|
}
|
||||||
|
if lastImport >= 0 {
|
||||||
|
impDecl.TokPos = f.Decls[lastImport].End()
|
||||||
|
} else {
|
||||||
|
// There are no existing imports.
|
||||||
|
// Our new import, preceded by a blank line, goes after the package declaration
|
||||||
|
// and after the comment, if any, that starts on the same line as the
|
||||||
|
// package declaration.
|
||||||
|
impDecl.TokPos = f.Package
|
||||||
|
|
||||||
|
file := fset.File(f.Package)
|
||||||
|
pkgLine := file.Line(f.Package)
|
||||||
|
for _, c := range f.Comments {
|
||||||
|
if file.Line(c.Pos()) > pkgLine {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
// +2 for a blank line
|
||||||
|
impDecl.TokPos = c.End() + 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
f.Decls = append(f.Decls, nil)
|
||||||
|
copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:])
|
||||||
|
f.Decls[lastImport+1] = impDecl
|
||||||
|
}
|
||||||
|
|
||||||
|
// Insert new import at insertAt.
|
||||||
|
insertAt := 0
|
||||||
|
if impIndex >= 0 {
|
||||||
|
// insert after the found import
|
||||||
|
insertAt = impIndex + 1
|
||||||
|
}
|
||||||
|
impDecl.Specs = append(impDecl.Specs, nil)
|
||||||
|
copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:])
|
||||||
|
impDecl.Specs[insertAt] = newImport
|
||||||
|
pos := impDecl.Pos()
|
||||||
|
if insertAt > 0 {
|
||||||
|
// If there is a comment after an existing import, preserve the comment
|
||||||
|
// position by adding the new import after the comment.
|
||||||
|
if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil {
|
||||||
|
pos = spec.Comment.End()
|
||||||
|
} else {
|
||||||
|
// Assign same position as the previous import,
|
||||||
|
// so that the sorter sees it as being in the same block.
|
||||||
|
pos = impDecl.Specs[insertAt-1].Pos()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if newImport.Name != nil {
|
||||||
|
newImport.Name.NamePos = pos
|
||||||
|
}
|
||||||
|
newImport.Path.ValuePos = pos
|
||||||
|
newImport.EndPos = pos
|
||||||
|
|
||||||
|
// Clean up parens. impDecl contains at least one spec.
|
||||||
|
if len(impDecl.Specs) == 1 {
|
||||||
|
// Remove unneeded parens.
|
||||||
|
impDecl.Lparen = token.NoPos
|
||||||
|
} else if !impDecl.Lparen.IsValid() {
|
||||||
|
// impDecl needs parens added.
|
||||||
|
impDecl.Lparen = impDecl.Specs[0].Pos()
|
||||||
|
}
|
||||||
|
|
||||||
|
f.Imports = append(f.Imports, newImport)
|
||||||
|
|
||||||
|
if len(f.Decls) <= 1 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge all the import declarations into the first one.
|
||||||
|
var first *ast.GenDecl
|
||||||
|
for i := 0; i < len(f.Decls); i++ {
|
||||||
|
decl := f.Decls[i]
|
||||||
|
gen, ok := decl.(*ast.GenDecl)
|
||||||
|
if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if first == nil {
|
||||||
|
first = gen
|
||||||
|
continue // Don't touch the first one.
|
||||||
|
}
|
||||||
|
// We now know there is more than one package in this import
|
||||||
|
// declaration. Ensure that it ends up parenthesized.
|
||||||
|
first.Lparen = first.Pos()
|
||||||
|
// Move the imports of the other import declaration to the first one.
|
||||||
|
for _, spec := range gen.Specs {
|
||||||
|
spec.(*ast.ImportSpec).Path.ValuePos = first.Pos()
|
||||||
|
first.Specs = append(first.Specs, spec)
|
||||||
|
}
|
||||||
|
f.Decls = append(f.Decls[:i], f.Decls[i+1:]...)
|
||||||
|
i--
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func isThirdParty(importPath string) bool {
|
||||||
|
// Third party package import path usually contains "." (".com", ".org", ...)
|
||||||
|
// This logic is taken from golang.org/x/tools/imports package.
|
||||||
|
return strings.Contains(importPath, ".")
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteImport deletes the import path from the file f, if present.
|
||||||
|
// If there are duplicate import declarations, all matching ones are deleted.
|
||||||
|
func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) {
|
||||||
|
return DeleteNamedImport(fset, f, "", path)
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteNamedImport deletes the import with the given name and path from the file f, if present.
|
||||||
|
// If there are duplicate import declarations, all matching ones are deleted.
|
||||||
|
func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) {
|
||||||
|
var delspecs []*ast.ImportSpec
|
||||||
|
var delcomments []*ast.CommentGroup
|
||||||
|
|
||||||
|
// Find the import nodes that import path, if any.
|
||||||
|
for i := 0; i < len(f.Decls); i++ {
|
||||||
|
decl := f.Decls[i]
|
||||||
|
gen, ok := decl.(*ast.GenDecl)
|
||||||
|
if !ok || gen.Tok != token.IMPORT {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
for j := 0; j < len(gen.Specs); j++ {
|
||||||
|
spec := gen.Specs[j]
|
||||||
|
impspec := spec.(*ast.ImportSpec)
|
||||||
|
if importName(impspec) != name || importPath(impspec) != path {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
// We found an import spec that imports path.
|
||||||
|
// Delete it.
|
||||||
|
delspecs = append(delspecs, impspec)
|
||||||
|
deleted = true
|
||||||
|
copy(gen.Specs[j:], gen.Specs[j+1:])
|
||||||
|
gen.Specs = gen.Specs[:len(gen.Specs)-1]
|
||||||
|
|
||||||
|
// If this was the last import spec in this decl,
|
||||||
|
// delete the decl, too.
|
||||||
|
if len(gen.Specs) == 0 {
|
||||||
|
copy(f.Decls[i:], f.Decls[i+1:])
|
||||||
|
f.Decls = f.Decls[:len(f.Decls)-1]
|
||||||
|
i--
|
||||||
|
break
|
||||||
|
} else if len(gen.Specs) == 1 {
|
||||||
|
if impspec.Doc != nil {
|
||||||
|
delcomments = append(delcomments, impspec.Doc)
|
||||||
|
}
|
||||||
|
if impspec.Comment != nil {
|
||||||
|
delcomments = append(delcomments, impspec.Comment)
|
||||||
|
}
|
||||||
|
for _, cg := range f.Comments {
|
||||||
|
// Found comment on the same line as the import spec.
|
||||||
|
if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line {
|
||||||
|
delcomments = append(delcomments, cg)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
spec := gen.Specs[0].(*ast.ImportSpec)
|
||||||
|
|
||||||
|
// Move the documentation right after the import decl.
|
||||||
|
if spec.Doc != nil {
|
||||||
|
for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Doc.Pos()).Line {
|
||||||
|
fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for _, cg := range f.Comments {
|
||||||
|
if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line {
|
||||||
|
for fset.Position(gen.TokPos).Line+1 < fset.Position(spec.Pos()).Line {
|
||||||
|
fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if j > 0 {
|
||||||
|
lastImpspec := gen.Specs[j-1].(*ast.ImportSpec)
|
||||||
|
lastLine := fset.Position(lastImpspec.Path.ValuePos).Line
|
||||||
|
line := fset.Position(impspec.Path.ValuePos).Line
|
||||||
|
|
||||||
|
// We deleted an entry but now there may be
|
||||||
|
// a blank line-sized hole where the import was.
|
||||||
|
if line-lastLine > 1 {
|
||||||
|
// There was a blank line immediately preceding the deleted import,
|
||||||
|
// so there's no need to close the hole.
|
||||||
|
// Do nothing.
|
||||||
|
} else if line != fset.File(gen.Rparen).LineCount() {
|
||||||
|
// There was no blank line. Close the hole.
|
||||||
|
fset.File(gen.Rparen).MergeLine(line)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
j--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete imports from f.Imports.
|
||||||
|
for i := 0; i < len(f.Imports); i++ {
|
||||||
|
imp := f.Imports[i]
|
||||||
|
for j, del := range delspecs {
|
||||||
|
if imp == del {
|
||||||
|
copy(f.Imports[i:], f.Imports[i+1:])
|
||||||
|
f.Imports = f.Imports[:len(f.Imports)-1]
|
||||||
|
copy(delspecs[j:], delspecs[j+1:])
|
||||||
|
delspecs = delspecs[:len(delspecs)-1]
|
||||||
|
i--
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete comments from f.Comments.
|
||||||
|
for i := 0; i < len(f.Comments); i++ {
|
||||||
|
cg := f.Comments[i]
|
||||||
|
for j, del := range delcomments {
|
||||||
|
if cg == del {
|
||||||
|
copy(f.Comments[i:], f.Comments[i+1:])
|
||||||
|
f.Comments = f.Comments[:len(f.Comments)-1]
|
||||||
|
copy(delcomments[j:], delcomments[j+1:])
|
||||||
|
delcomments = delcomments[:len(delcomments)-1]
|
||||||
|
i--
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(delspecs) > 0 {
|
||||||
|
panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs))
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// RewriteImport rewrites any import of path oldPath to path newPath.
|
||||||
|
func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) {
|
||||||
|
for _, imp := range f.Imports {
|
||||||
|
if importPath(imp) == oldPath {
|
||||||
|
rewrote = true
|
||||||
|
// record old End, because the default is to compute
|
||||||
|
// it using the length of imp.Path.Value.
|
||||||
|
imp.EndPos = imp.End()
|
||||||
|
imp.Path.Value = strconv.Quote(newPath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UsesImport reports whether a given import is used.
|
||||||
|
func UsesImport(f *ast.File, path string) (used bool) {
|
||||||
|
spec := importSpec(f, path)
|
||||||
|
if spec == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
name := spec.Name.String()
|
||||||
|
switch name {
|
||||||
|
case "<nil>":
|
||||||
|
// If the package name is not explicitly specified,
|
||||||
|
// make an educated guess. This is not guaranteed to be correct.
|
||||||
|
lastSlash := strings.LastIndex(path, "/")
|
||||||
|
if lastSlash == -1 {
|
||||||
|
name = path
|
||||||
|
} else {
|
||||||
|
name = path[lastSlash+1:]
|
||||||
|
}
|
||||||
|
case "_", ".":
|
||||||
|
// Not sure if this import is used - err on the side of caution.
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
ast.Walk(visitFn(func(n ast.Node) {
|
||||||
|
sel, ok := n.(*ast.SelectorExpr)
|
||||||
|
if ok && isTopName(sel.X, name) {
|
||||||
|
used = true
|
||||||
|
}
|
||||||
|
}), f)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
type visitFn func(node ast.Node)
|
||||||
|
|
||||||
|
func (fn visitFn) Visit(node ast.Node) ast.Visitor {
|
||||||
|
fn(node)
|
||||||
|
return fn
|
||||||
|
}
|
||||||
|
|
||||||
|
// imports reports whether f has an import with the specified name and path.
|
||||||
|
func imports(f *ast.File, name, path string) bool {
|
||||||
|
for _, s := range f.Imports {
|
||||||
|
if importName(s) == name && importPath(s) == path {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// importSpec returns the import spec if f imports path,
|
||||||
|
// or nil otherwise.
|
||||||
|
func importSpec(f *ast.File, path string) *ast.ImportSpec {
|
||||||
|
for _, s := range f.Imports {
|
||||||
|
if importPath(s) == path {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// importName returns the name of s,
|
||||||
|
// or "" if the import is not named.
|
||||||
|
func importName(s *ast.ImportSpec) string {
|
||||||
|
if s.Name == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return s.Name.Name
|
||||||
|
}
|
||||||
|
|
||||||
|
// importPath returns the unquoted import path of s,
|
||||||
|
// or "" if the path is not properly quoted.
|
||||||
|
func importPath(s *ast.ImportSpec) string {
|
||||||
|
t, err := strconv.Unquote(s.Path.Value)
|
||||||
|
if err != nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return t
|
||||||
|
}
|
||||||
|
|
||||||
|
// declImports reports whether gen contains an import of path.
|
||||||
|
func declImports(gen *ast.GenDecl, path string) bool {
|
||||||
|
if gen.Tok != token.IMPORT {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
for _, spec := range gen.Specs {
|
||||||
|
impspec := spec.(*ast.ImportSpec)
|
||||||
|
if importPath(impspec) == path {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// matchLen returns the length of the longest path segment prefix shared by x and y.
|
||||||
|
func matchLen(x, y string) int {
|
||||||
|
n := 0
|
||||||
|
for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ {
|
||||||
|
if x[i] == '/' {
|
||||||
|
n++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return n
|
||||||
|
}
|
||||||
|
|
||||||
|
// isTopName returns true if n is a top-level unresolved identifier with the given name.
|
||||||
|
func isTopName(n ast.Expr, name string) bool {
|
||||||
|
id, ok := n.(*ast.Ident)
|
||||||
|
return ok && id.Name == name && id.Obj == nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Imports returns the file imports grouped by paragraph.
|
||||||
|
func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec {
|
||||||
|
var groups [][]*ast.ImportSpec
|
||||||
|
|
||||||
|
for _, decl := range f.Decls {
|
||||||
|
genDecl, ok := decl.(*ast.GenDecl)
|
||||||
|
if !ok || genDecl.Tok != token.IMPORT {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
group := []*ast.ImportSpec{}
|
||||||
|
|
||||||
|
var lastLine int
|
||||||
|
for _, spec := range genDecl.Specs {
|
||||||
|
importSpec := spec.(*ast.ImportSpec)
|
||||||
|
pos := importSpec.Path.ValuePos
|
||||||
|
line := fset.Position(pos).Line
|
||||||
|
if lastLine > 0 && pos > 0 && line-lastLine > 1 {
|
||||||
|
groups = append(groups, group)
|
||||||
|
group = []*ast.ImportSpec{}
|
||||||
|
}
|
||||||
|
group = append(group, importSpec)
|
||||||
|
lastLine = line
|
||||||
|
}
|
||||||
|
groups = append(groups, group)
|
||||||
|
}
|
||||||
|
|
||||||
|
return groups
|
||||||
|
}
|
477
vendor/golang.org/x/tools/go/ast/astutil/rewrite.go
generated
vendored
Normal file
477
vendor/golang.org/x/tools/go/ast/astutil/rewrite.go
generated
vendored
Normal file
|
@ -0,0 +1,477 @@
|
||||||
|
// Copyright 2017 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package astutil
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/ast"
|
||||||
|
"reflect"
|
||||||
|
"sort"
|
||||||
|
)
|
||||||
|
|
||||||
|
// An ApplyFunc is invoked by Apply for each node n, even if n is nil,
|
||||||
|
// before and/or after the node's children, using a Cursor describing
|
||||||
|
// the current node and providing operations on it.
|
||||||
|
//
|
||||||
|
// The return value of ApplyFunc controls the syntax tree traversal.
|
||||||
|
// See Apply for details.
|
||||||
|
type ApplyFunc func(*Cursor) bool
|
||||||
|
|
||||||
|
// Apply traverses a syntax tree recursively, starting with root,
|
||||||
|
// and calling pre and post for each node as described below.
|
||||||
|
// Apply returns the syntax tree, possibly modified.
|
||||||
|
//
|
||||||
|
// If pre is not nil, it is called for each node before the node's
|
||||||
|
// children are traversed (pre-order). If pre returns false, no
|
||||||
|
// children are traversed, and post is not called for that node.
|
||||||
|
//
|
||||||
|
// If post is not nil, and a prior call of pre didn't return false,
|
||||||
|
// post is called for each node after its children are traversed
|
||||||
|
// (post-order). If post returns false, traversal is terminated and
|
||||||
|
// Apply returns immediately.
|
||||||
|
//
|
||||||
|
// Only fields that refer to AST nodes are considered children;
|
||||||
|
// i.e., token.Pos, Scopes, Objects, and fields of basic types
|
||||||
|
// (strings, etc.) are ignored.
|
||||||
|
//
|
||||||
|
// Children are traversed in the order in which they appear in the
|
||||||
|
// respective node's struct definition. A package's files are
|
||||||
|
// traversed in the filenames' alphabetical order.
|
||||||
|
//
|
||||||
|
func Apply(root ast.Node, pre, post ApplyFunc) (result ast.Node) {
|
||||||
|
parent := &struct{ ast.Node }{root}
|
||||||
|
defer func() {
|
||||||
|
if r := recover(); r != nil && r != abort {
|
||||||
|
panic(r)
|
||||||
|
}
|
||||||
|
result = parent.Node
|
||||||
|
}()
|
||||||
|
a := &application{pre: pre, post: post}
|
||||||
|
a.apply(parent, "Node", nil, root)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var abort = new(int) // singleton, to signal termination of Apply
|
||||||
|
|
||||||
|
// A Cursor describes a node encountered during Apply.
|
||||||
|
// Information about the node and its parent is available
|
||||||
|
// from the Node, Parent, Name, and Index methods.
|
||||||
|
//
|
||||||
|
// If p is a variable of type and value of the current parent node
|
||||||
|
// c.Parent(), and f is the field identifier with name c.Name(),
|
||||||
|
// the following invariants hold:
|
||||||
|
//
|
||||||
|
// p.f == c.Node() if c.Index() < 0
|
||||||
|
// p.f[c.Index()] == c.Node() if c.Index() >= 0
|
||||||
|
//
|
||||||
|
// The methods Replace, Delete, InsertBefore, and InsertAfter
|
||||||
|
// can be used to change the AST without disrupting Apply.
|
||||||
|
type Cursor struct {
|
||||||
|
parent ast.Node
|
||||||
|
name string
|
||||||
|
iter *iterator // valid if non-nil
|
||||||
|
node ast.Node
|
||||||
|
}
|
||||||
|
|
||||||
|
// Node returns the current Node.
|
||||||
|
func (c *Cursor) Node() ast.Node { return c.node }
|
||||||
|
|
||||||
|
// Parent returns the parent of the current Node.
|
||||||
|
func (c *Cursor) Parent() ast.Node { return c.parent }
|
||||||
|
|
||||||
|
// Name returns the name of the parent Node field that contains the current Node.
|
||||||
|
// If the parent is a *ast.Package and the current Node is a *ast.File, Name returns
|
||||||
|
// the filename for the current Node.
|
||||||
|
func (c *Cursor) Name() string { return c.name }
|
||||||
|
|
||||||
|
// Index reports the index >= 0 of the current Node in the slice of Nodes that
|
||||||
|
// contains it, or a value < 0 if the current Node is not part of a slice.
|
||||||
|
// The index of the current node changes if InsertBefore is called while
|
||||||
|
// processing the current node.
|
||||||
|
func (c *Cursor) Index() int {
|
||||||
|
if c.iter != nil {
|
||||||
|
return c.iter.index
|
||||||
|
}
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
// field returns the current node's parent field value.
|
||||||
|
func (c *Cursor) field() reflect.Value {
|
||||||
|
return reflect.Indirect(reflect.ValueOf(c.parent)).FieldByName(c.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace replaces the current Node with n.
|
||||||
|
// The replacement node is not walked by Apply.
|
||||||
|
func (c *Cursor) Replace(n ast.Node) {
|
||||||
|
if _, ok := c.node.(*ast.File); ok {
|
||||||
|
file, ok := n.(*ast.File)
|
||||||
|
if !ok {
|
||||||
|
panic("attempt to replace *ast.File with non-*ast.File")
|
||||||
|
}
|
||||||
|
c.parent.(*ast.Package).Files[c.name] = file
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
v := c.field()
|
||||||
|
if i := c.Index(); i >= 0 {
|
||||||
|
v = v.Index(i)
|
||||||
|
}
|
||||||
|
v.Set(reflect.ValueOf(n))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete deletes the current Node from its containing slice.
|
||||||
|
// If the current Node is not part of a slice, Delete panics.
|
||||||
|
// As a special case, if the current node is a package file,
|
||||||
|
// Delete removes it from the package's Files map.
|
||||||
|
func (c *Cursor) Delete() {
|
||||||
|
if _, ok := c.node.(*ast.File); ok {
|
||||||
|
delete(c.parent.(*ast.Package).Files, c.name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
i := c.Index()
|
||||||
|
if i < 0 {
|
||||||
|
panic("Delete node not contained in slice")
|
||||||
|
}
|
||||||
|
v := c.field()
|
||||||
|
l := v.Len()
|
||||||
|
reflect.Copy(v.Slice(i, l), v.Slice(i+1, l))
|
||||||
|
v.Index(l - 1).Set(reflect.Zero(v.Type().Elem()))
|
||||||
|
v.SetLen(l - 1)
|
||||||
|
c.iter.step--
|
||||||
|
}
|
||||||
|
|
||||||
|
// InsertAfter inserts n after the current Node in its containing slice.
|
||||||
|
// If the current Node is not part of a slice, InsertAfter panics.
|
||||||
|
// Apply does not walk n.
|
||||||
|
func (c *Cursor) InsertAfter(n ast.Node) {
|
||||||
|
i := c.Index()
|
||||||
|
if i < 0 {
|
||||||
|
panic("InsertAfter node not contained in slice")
|
||||||
|
}
|
||||||
|
v := c.field()
|
||||||
|
v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))
|
||||||
|
l := v.Len()
|
||||||
|
reflect.Copy(v.Slice(i+2, l), v.Slice(i+1, l))
|
||||||
|
v.Index(i + 1).Set(reflect.ValueOf(n))
|
||||||
|
c.iter.step++
|
||||||
|
}
|
||||||
|
|
||||||
|
// InsertBefore inserts n before the current Node in its containing slice.
|
||||||
|
// If the current Node is not part of a slice, InsertBefore panics.
|
||||||
|
// Apply will not walk n.
|
||||||
|
func (c *Cursor) InsertBefore(n ast.Node) {
|
||||||
|
i := c.Index()
|
||||||
|
if i < 0 {
|
||||||
|
panic("InsertBefore node not contained in slice")
|
||||||
|
}
|
||||||
|
v := c.field()
|
||||||
|
v.Set(reflect.Append(v, reflect.Zero(v.Type().Elem())))
|
||||||
|
l := v.Len()
|
||||||
|
reflect.Copy(v.Slice(i+1, l), v.Slice(i, l))
|
||||||
|
v.Index(i).Set(reflect.ValueOf(n))
|
||||||
|
c.iter.index++
|
||||||
|
}
|
||||||
|
|
||||||
|
// application carries all the shared data so we can pass it around cheaply.
|
||||||
|
type application struct {
|
||||||
|
pre, post ApplyFunc
|
||||||
|
cursor Cursor
|
||||||
|
iter iterator
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *application) apply(parent ast.Node, name string, iter *iterator, n ast.Node) {
|
||||||
|
// convert typed nil into untyped nil
|
||||||
|
if v := reflect.ValueOf(n); v.Kind() == reflect.Ptr && v.IsNil() {
|
||||||
|
n = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// avoid heap-allocating a new cursor for each apply call; reuse a.cursor instead
|
||||||
|
saved := a.cursor
|
||||||
|
a.cursor.parent = parent
|
||||||
|
a.cursor.name = name
|
||||||
|
a.cursor.iter = iter
|
||||||
|
a.cursor.node = n
|
||||||
|
|
||||||
|
if a.pre != nil && !a.pre(&a.cursor) {
|
||||||
|
a.cursor = saved
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// walk children
|
||||||
|
// (the order of the cases matches the order of the corresponding node types in go/ast)
|
||||||
|
switch n := n.(type) {
|
||||||
|
case nil:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
// Comments and fields
|
||||||
|
case *ast.Comment:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
case *ast.CommentGroup:
|
||||||
|
if n != nil {
|
||||||
|
a.applyList(n, "List")
|
||||||
|
}
|
||||||
|
|
||||||
|
case *ast.Field:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.applyList(n, "Names")
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.apply(n, "Tag", nil, n.Tag)
|
||||||
|
a.apply(n, "Comment", nil, n.Comment)
|
||||||
|
|
||||||
|
case *ast.FieldList:
|
||||||
|
a.applyList(n, "List")
|
||||||
|
|
||||||
|
// Expressions
|
||||||
|
case *ast.BadExpr, *ast.Ident, *ast.BasicLit:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
case *ast.Ellipsis:
|
||||||
|
a.apply(n, "Elt", nil, n.Elt)
|
||||||
|
|
||||||
|
case *ast.FuncLit:
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
case *ast.CompositeLit:
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.applyList(n, "Elts")
|
||||||
|
|
||||||
|
case *ast.ParenExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
|
||||||
|
case *ast.SelectorExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Sel", nil, n.Sel)
|
||||||
|
|
||||||
|
case *ast.IndexExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Index", nil, n.Index)
|
||||||
|
|
||||||
|
case *ast.SliceExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Low", nil, n.Low)
|
||||||
|
a.apply(n, "High", nil, n.High)
|
||||||
|
a.apply(n, "Max", nil, n.Max)
|
||||||
|
|
||||||
|
case *ast.TypeAssertExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
|
||||||
|
case *ast.CallExpr:
|
||||||
|
a.apply(n, "Fun", nil, n.Fun)
|
||||||
|
a.applyList(n, "Args")
|
||||||
|
|
||||||
|
case *ast.StarExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
|
||||||
|
case *ast.UnaryExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
|
||||||
|
case *ast.BinaryExpr:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Y", nil, n.Y)
|
||||||
|
|
||||||
|
case *ast.KeyValueExpr:
|
||||||
|
a.apply(n, "Key", nil, n.Key)
|
||||||
|
a.apply(n, "Value", nil, n.Value)
|
||||||
|
|
||||||
|
// Types
|
||||||
|
case *ast.ArrayType:
|
||||||
|
a.apply(n, "Len", nil, n.Len)
|
||||||
|
a.apply(n, "Elt", nil, n.Elt)
|
||||||
|
|
||||||
|
case *ast.StructType:
|
||||||
|
a.apply(n, "Fields", nil, n.Fields)
|
||||||
|
|
||||||
|
case *ast.FuncType:
|
||||||
|
a.apply(n, "Params", nil, n.Params)
|
||||||
|
a.apply(n, "Results", nil, n.Results)
|
||||||
|
|
||||||
|
case *ast.InterfaceType:
|
||||||
|
a.apply(n, "Methods", nil, n.Methods)
|
||||||
|
|
||||||
|
case *ast.MapType:
|
||||||
|
a.apply(n, "Key", nil, n.Key)
|
||||||
|
a.apply(n, "Value", nil, n.Value)
|
||||||
|
|
||||||
|
case *ast.ChanType:
|
||||||
|
a.apply(n, "Value", nil, n.Value)
|
||||||
|
|
||||||
|
// Statements
|
||||||
|
case *ast.BadStmt:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
case *ast.DeclStmt:
|
||||||
|
a.apply(n, "Decl", nil, n.Decl)
|
||||||
|
|
||||||
|
case *ast.EmptyStmt:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
case *ast.LabeledStmt:
|
||||||
|
a.apply(n, "Label", nil, n.Label)
|
||||||
|
a.apply(n, "Stmt", nil, n.Stmt)
|
||||||
|
|
||||||
|
case *ast.ExprStmt:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
|
||||||
|
case *ast.SendStmt:
|
||||||
|
a.apply(n, "Chan", nil, n.Chan)
|
||||||
|
a.apply(n, "Value", nil, n.Value)
|
||||||
|
|
||||||
|
case *ast.IncDecStmt:
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
|
||||||
|
case *ast.AssignStmt:
|
||||||
|
a.applyList(n, "Lhs")
|
||||||
|
a.applyList(n, "Rhs")
|
||||||
|
|
||||||
|
case *ast.GoStmt:
|
||||||
|
a.apply(n, "Call", nil, n.Call)
|
||||||
|
|
||||||
|
case *ast.DeferStmt:
|
||||||
|
a.apply(n, "Call", nil, n.Call)
|
||||||
|
|
||||||
|
case *ast.ReturnStmt:
|
||||||
|
a.applyList(n, "Results")
|
||||||
|
|
||||||
|
case *ast.BranchStmt:
|
||||||
|
a.apply(n, "Label", nil, n.Label)
|
||||||
|
|
||||||
|
case *ast.BlockStmt:
|
||||||
|
a.applyList(n, "List")
|
||||||
|
|
||||||
|
case *ast.IfStmt:
|
||||||
|
a.apply(n, "Init", nil, n.Init)
|
||||||
|
a.apply(n, "Cond", nil, n.Cond)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
a.apply(n, "Else", nil, n.Else)
|
||||||
|
|
||||||
|
case *ast.CaseClause:
|
||||||
|
a.applyList(n, "List")
|
||||||
|
a.applyList(n, "Body")
|
||||||
|
|
||||||
|
case *ast.SwitchStmt:
|
||||||
|
a.apply(n, "Init", nil, n.Init)
|
||||||
|
a.apply(n, "Tag", nil, n.Tag)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
case *ast.TypeSwitchStmt:
|
||||||
|
a.apply(n, "Init", nil, n.Init)
|
||||||
|
a.apply(n, "Assign", nil, n.Assign)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
case *ast.CommClause:
|
||||||
|
a.apply(n, "Comm", nil, n.Comm)
|
||||||
|
a.applyList(n, "Body")
|
||||||
|
|
||||||
|
case *ast.SelectStmt:
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
case *ast.ForStmt:
|
||||||
|
a.apply(n, "Init", nil, n.Init)
|
||||||
|
a.apply(n, "Cond", nil, n.Cond)
|
||||||
|
a.apply(n, "Post", nil, n.Post)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
case *ast.RangeStmt:
|
||||||
|
a.apply(n, "Key", nil, n.Key)
|
||||||
|
a.apply(n, "Value", nil, n.Value)
|
||||||
|
a.apply(n, "X", nil, n.X)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
// Declarations
|
||||||
|
case *ast.ImportSpec:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.apply(n, "Name", nil, n.Name)
|
||||||
|
a.apply(n, "Path", nil, n.Path)
|
||||||
|
a.apply(n, "Comment", nil, n.Comment)
|
||||||
|
|
||||||
|
case *ast.ValueSpec:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.applyList(n, "Names")
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.applyList(n, "Values")
|
||||||
|
a.apply(n, "Comment", nil, n.Comment)
|
||||||
|
|
||||||
|
case *ast.TypeSpec:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.apply(n, "Name", nil, n.Name)
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.apply(n, "Comment", nil, n.Comment)
|
||||||
|
|
||||||
|
case *ast.BadDecl:
|
||||||
|
// nothing to do
|
||||||
|
|
||||||
|
case *ast.GenDecl:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.applyList(n, "Specs")
|
||||||
|
|
||||||
|
case *ast.FuncDecl:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.apply(n, "Recv", nil, n.Recv)
|
||||||
|
a.apply(n, "Name", nil, n.Name)
|
||||||
|
a.apply(n, "Type", nil, n.Type)
|
||||||
|
a.apply(n, "Body", nil, n.Body)
|
||||||
|
|
||||||
|
// Files and packages
|
||||||
|
case *ast.File:
|
||||||
|
a.apply(n, "Doc", nil, n.Doc)
|
||||||
|
a.apply(n, "Name", nil, n.Name)
|
||||||
|
a.applyList(n, "Decls")
|
||||||
|
// Don't walk n.Comments; they have either been walked already if
|
||||||
|
// they are Doc comments, or they can be easily walked explicitly.
|
||||||
|
|
||||||
|
case *ast.Package:
|
||||||
|
// collect and sort names for reproducible behavior
|
||||||
|
var names []string
|
||||||
|
for name := range n.Files {
|
||||||
|
names = append(names, name)
|
||||||
|
}
|
||||||
|
sort.Strings(names)
|
||||||
|
for _, name := range names {
|
||||||
|
a.apply(n, name, nil, n.Files[name])
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("Apply: unexpected node type %T", n))
|
||||||
|
}
|
||||||
|
|
||||||
|
if a.post != nil && !a.post(&a.cursor) {
|
||||||
|
panic(abort)
|
||||||
|
}
|
||||||
|
|
||||||
|
a.cursor = saved
|
||||||
|
}
|
||||||
|
|
||||||
|
// An iterator controls iteration over a slice of nodes.
|
||||||
|
type iterator struct {
|
||||||
|
index, step int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *application) applyList(parent ast.Node, name string) {
|
||||||
|
// avoid heap-allocating a new iterator for each applyList call; reuse a.iter instead
|
||||||
|
saved := a.iter
|
||||||
|
a.iter.index = 0
|
||||||
|
for {
|
||||||
|
// must reload parent.name each time, since cursor modifications might change it
|
||||||
|
v := reflect.Indirect(reflect.ValueOf(parent)).FieldByName(name)
|
||||||
|
if a.iter.index >= v.Len() {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
// element x may be nil in a bad AST - be cautious
|
||||||
|
var x ast.Node
|
||||||
|
if e := v.Index(a.iter.index); e.IsValid() {
|
||||||
|
x = e.Interface().(ast.Node)
|
||||||
|
}
|
||||||
|
|
||||||
|
a.iter.step = 1
|
||||||
|
a.apply(parent, name, &a.iter, x)
|
||||||
|
a.iter.index += a.iter.step
|
||||||
|
}
|
||||||
|
a.iter = saved
|
||||||
|
}
|
14
vendor/golang.org/x/tools/go/ast/astutil/util.go
generated
vendored
Normal file
14
vendor/golang.org/x/tools/go/ast/astutil/util.go
generated
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
package astutil
|
||||||
|
|
||||||
|
import "go/ast"
|
||||||
|
|
||||||
|
// Unparen returns e with any enclosing parentheses stripped.
|
||||||
|
func Unparen(e ast.Expr) ast.Expr {
|
||||||
|
for {
|
||||||
|
p, ok := e.(*ast.ParenExpr)
|
||||||
|
if !ok {
|
||||||
|
return e
|
||||||
|
}
|
||||||
|
e = p.X
|
||||||
|
}
|
||||||
|
}
|
109
vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
generated
vendored
Normal file
109
vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
generated
vendored
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
// Copyright 2016 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Package gcexportdata provides functions for locating, reading, and
|
||||||
|
// writing export data files containing type information produced by the
|
||||||
|
// gc compiler. This package supports go1.7 export data format and all
|
||||||
|
// later versions.
|
||||||
|
//
|
||||||
|
// Although it might seem convenient for this package to live alongside
|
||||||
|
// go/types in the standard library, this would cause version skew
|
||||||
|
// problems for developer tools that use it, since they must be able to
|
||||||
|
// consume the outputs of the gc compiler both before and after a Go
|
||||||
|
// update such as from Go 1.7 to Go 1.8. Because this package lives in
|
||||||
|
// golang.org/x/tools, sites can update their version of this repo some
|
||||||
|
// time before the Go 1.8 release and rebuild and redeploy their
|
||||||
|
// developer tools, which will then be able to consume both Go 1.7 and
|
||||||
|
// Go 1.8 export data files, so they will work before and after the
|
||||||
|
// Go update. (See discussion at https://golang.org/issue/15651.)
|
||||||
|
//
|
||||||
|
package gcexportdata // import "golang.org/x/tools/go/gcexportdata"
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
"go/token"
|
||||||
|
"go/types"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
|
||||||
|
"golang.org/x/tools/go/internal/gcimporter"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Find returns the name of an object (.o) or archive (.a) file
|
||||||
|
// containing type information for the specified import path,
|
||||||
|
// using the workspace layout conventions of go/build.
|
||||||
|
// If no file was found, an empty filename is returned.
|
||||||
|
//
|
||||||
|
// A relative srcDir is interpreted relative to the current working directory.
|
||||||
|
//
|
||||||
|
// Find also returns the package's resolved (canonical) import path,
|
||||||
|
// reflecting the effects of srcDir and vendoring on importPath.
|
||||||
|
func Find(importPath, srcDir string) (filename, path string) {
|
||||||
|
return gcimporter.FindPkg(importPath, srcDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewReader returns a reader for the export data section of an object
|
||||||
|
// (.o) or archive (.a) file read from r. The new reader may provide
|
||||||
|
// additional trailing data beyond the end of the export data.
|
||||||
|
func NewReader(r io.Reader) (io.Reader, error) {
|
||||||
|
buf := bufio.NewReader(r)
|
||||||
|
_, err := gcimporter.FindExportData(buf)
|
||||||
|
// If we ever switch to a zip-like archive format with the ToC
|
||||||
|
// at the end, we can return the correct portion of export data,
|
||||||
|
// but for now we must return the entire rest of the file.
|
||||||
|
return buf, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read reads export data from in, decodes it, and returns type
|
||||||
|
// information for the package.
|
||||||
|
// The package name is specified by path.
|
||||||
|
// File position information is added to fset.
|
||||||
|
//
|
||||||
|
// Read may inspect and add to the imports map to ensure that references
|
||||||
|
// within the export data to other packages are consistent. The caller
|
||||||
|
// must ensure that imports[path] does not exist, or exists but is
|
||||||
|
// incomplete (see types.Package.Complete), and Read inserts the
|
||||||
|
// resulting package into this map entry.
|
||||||
|
//
|
||||||
|
// On return, the state of the reader is undefined.
|
||||||
|
func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) {
|
||||||
|
data, err := ioutil.ReadAll(in)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("reading export data for %q: %v", path, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if bytes.HasPrefix(data, []byte("!<arch>")) {
|
||||||
|
return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path)
|
||||||
|
}
|
||||||
|
|
||||||
|
// The App Engine Go runtime v1.6 uses the old export data format.
|
||||||
|
// TODO(adonovan): delete once v1.7 has been around for a while.
|
||||||
|
if bytes.HasPrefix(data, []byte("package ")) {
|
||||||
|
return gcimporter.ImportData(imports, path, path, bytes.NewReader(data))
|
||||||
|
}
|
||||||
|
|
||||||
|
// The indexed export format starts with an 'i'; the older
|
||||||
|
// binary export format starts with a 'c', 'd', or 'v'
|
||||||
|
// (from "version"). Select appropriate importer.
|
||||||
|
if len(data) > 0 && data[0] == 'i' {
|
||||||
|
_, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path)
|
||||||
|
return pkg, err
|
||||||
|
}
|
||||||
|
|
||||||
|
_, pkg, err := gcimporter.BImportData(fset, imports, data, path)
|
||||||
|
return pkg, err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write writes encoded type information for the specified package to out.
|
||||||
|
// The FileSet provides file position information for named objects.
|
||||||
|
func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error {
|
||||||
|
b, err := gcimporter.BExportData(fset, pkg)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
_, err = out.Write(b)
|
||||||
|
return err
|
||||||
|
}
|
73
vendor/golang.org/x/tools/go/gcexportdata/importer.go
generated
vendored
Normal file
73
vendor/golang.org/x/tools/go/gcexportdata/importer.go
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
// Copyright 2016 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package gcexportdata
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"go/token"
|
||||||
|
"go/types"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewImporter returns a new instance of the types.Importer interface
|
||||||
|
// that reads type information from export data files written by gc.
|
||||||
|
// The Importer also satisfies types.ImporterFrom.
|
||||||
|
//
|
||||||
|
// Export data files are located using "go build" workspace conventions
|
||||||
|
// and the build.Default context.
|
||||||
|
//
|
||||||
|
// Use this importer instead of go/importer.For("gc", ...) to avoid the
|
||||||
|
// version-skew problems described in the documentation of this package,
|
||||||
|
// or to control the FileSet or access the imports map populated during
|
||||||
|
// package loading.
|
||||||
|
//
|
||||||
|
func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom {
|
||||||
|
return importer{fset, imports}
|
||||||
|
}
|
||||||
|
|
||||||
|
type importer struct {
|
||||||
|
fset *token.FileSet
|
||||||
|
imports map[string]*types.Package
|
||||||
|
}
|
||||||
|
|
||||||
|
func (imp importer) Import(importPath string) (*types.Package, error) {
|
||||||
|
return imp.ImportFrom(importPath, "", 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) {
|
||||||
|
filename, path := Find(importPath, srcDir)
|
||||||
|
if filename == "" {
|
||||||
|
if importPath == "unsafe" {
|
||||||
|
// Even for unsafe, call Find first in case
|
||||||
|
// the package was vendored.
|
||||||
|
return types.Unsafe, nil
|
||||||
|
}
|
||||||
|
return nil, fmt.Errorf("can't find import: %s", importPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
if pkg, ok := imp.imports[path]; ok && pkg.Complete() {
|
||||||
|
return pkg, nil // cache hit
|
||||||
|
}
|
||||||
|
|
||||||
|
// open file
|
||||||
|
f, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
f.Close()
|
||||||
|
if err != nil {
|
||||||
|
// add file name to error
|
||||||
|
err = fmt.Errorf("reading export data: %s: %v", filename, err)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
r, err := NewReader(f)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return Read(r, imp.fset, imp.imports, path)
|
||||||
|
}
|
99
vendor/golang.org/x/tools/go/gcexportdata/main.go
generated
vendored
Normal file
99
vendor/golang.org/x/tools/go/gcexportdata/main.go
generated
vendored
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
// Copyright 2017 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build ignore
|
||||||
|
|
||||||
|
// The gcexportdata command is a diagnostic tool that displays the
|
||||||
|
// contents of gc export data files.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"go/token"
|
||||||
|
"go/types"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"golang.org/x/tools/go/gcexportdata"
|
||||||
|
"golang.org/x/tools/go/types/typeutil"
|
||||||
|
)
|
||||||
|
|
||||||
|
var packageFlag = flag.String("package", "", "alternative package to print")
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
log.SetPrefix("gcexportdata: ")
|
||||||
|
log.SetFlags(0)
|
||||||
|
flag.Usage = func() {
|
||||||
|
fmt.Fprintln(os.Stderr, "usage: gcexportdata [-package path] file.a")
|
||||||
|
}
|
||||||
|
flag.Parse()
|
||||||
|
if flag.NArg() != 1 {
|
||||||
|
flag.Usage()
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
filename := flag.Args()[0]
|
||||||
|
|
||||||
|
f, err := os.Open(filename)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
r, err := gcexportdata.NewReader(f)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("%s: %s", filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Decode the package.
|
||||||
|
const primary = "<primary>"
|
||||||
|
imports := make(map[string]*types.Package)
|
||||||
|
fset := token.NewFileSet()
|
||||||
|
pkg, err := gcexportdata.Read(r, fset, imports, primary)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("%s: %s", filename, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Optionally select an indirectly mentioned package.
|
||||||
|
if *packageFlag != "" {
|
||||||
|
pkg = imports[*packageFlag]
|
||||||
|
if pkg == nil {
|
||||||
|
fmt.Fprintf(os.Stderr, "export data file %s does not mention %s; has:\n",
|
||||||
|
filename, *packageFlag)
|
||||||
|
for p := range imports {
|
||||||
|
if p != primary {
|
||||||
|
fmt.Fprintf(os.Stderr, "\t%s\n", p)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Print all package-level declarations, including non-exported ones.
|
||||||
|
fmt.Printf("package %s\n", pkg.Name())
|
||||||
|
for _, imp := range pkg.Imports() {
|
||||||
|
fmt.Printf("import %q\n", imp.Path())
|
||||||
|
}
|
||||||
|
qual := func(p *types.Package) string {
|
||||||
|
if pkg == p {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return p.Name()
|
||||||
|
}
|
||||||
|
scope := pkg.Scope()
|
||||||
|
for _, name := range scope.Names() {
|
||||||
|
obj := scope.Lookup(name)
|
||||||
|
fmt.Printf("%s: %s\n",
|
||||||
|
fset.Position(obj.Pos()),
|
||||||
|
types.ObjectString(obj, qual))
|
||||||
|
|
||||||
|
// For types, print each method.
|
||||||
|
if _, ok := obj.(*types.TypeName); ok {
|
||||||
|
for _, method := range typeutil.IntuitiveMethodSet(obj.Type(), nil) {
|
||||||
|
fmt.Printf("%s: %s\n",
|
||||||
|
fset.Position(method.Obj().Pos()),
|
||||||
|
types.SelectionString(method, qual))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
852
vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
generated
vendored
Normal file
852
vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
generated
vendored
Normal file
|
@ -0,0 +1,852 @@
|
||||||
|
// Copyright 2016 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// Binary package export.
|
||||||
|
// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go;
|
||||||
|
// see that file for specification of the format.
|
||||||
|
|
||||||
|
package gcimporter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/binary"
|
||||||
|
"fmt"
|
||||||
|
"go/ast"
|
||||||
|
"go/constant"
|
||||||
|
"go/token"
|
||||||
|
"go/types"
|
||||||
|
"math"
|
||||||
|
"math/big"
|
||||||
|
"sort"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
// If debugFormat is set, each integer and string value is preceded by a marker
|
||||||
|
// and position information in the encoding. This mechanism permits an importer
|
||||||
|
// to recognize immediately when it is out of sync. The importer recognizes this
|
||||||
|
// mode automatically (i.e., it can import export data produced with debugging
|
||||||
|
// support even if debugFormat is not set at the time of import). This mode will
|
||||||
|
// lead to massively larger export data (by a factor of 2 to 3) and should only
|
||||||
|
// be enabled during development and debugging.
|
||||||
|
//
|
||||||
|
// NOTE: This flag is the first flag to enable if importing dies because of
|
||||||
|
// (suspected) format errors, and whenever a change is made to the format.
|
||||||
|
const debugFormat = false // default: false
|
||||||
|
|
||||||
|
// If trace is set, debugging output is printed to std out.
|
||||||
|
const trace = false // default: false
|
||||||
|
|
||||||
|
// Current export format version. Increase with each format change.
|
||||||
|
// Note: The latest binary (non-indexed) export format is at version 6.
|
||||||
|
// This exporter is still at level 4, but it doesn't matter since
|
||||||
|
// the binary importer can handle older versions just fine.
|
||||||
|
// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE
|
||||||
|
// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMEMTED HERE
|
||||||
|
// 4: type name objects support type aliases, uses aliasTag
|
||||||
|
// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used)
|
||||||
|
// 2: removed unused bool in ODCL export (compiler only)
|
||||||
|
// 1: header format change (more regular), export package for _ struct fields
|
||||||
|
// 0: Go1.7 encoding
|
||||||
|
const exportVersion = 4
|
||||||
|
|
||||||
|
// trackAllTypes enables cycle tracking for all types, not just named
|
||||||
|
// types. The existing compiler invariants assume that unnamed types
|
||||||
|
// that are not completely set up are not used, or else there are spurious
|
||||||
|
// errors.
|
||||||
|
// If disabled, only named types are tracked, possibly leading to slightly
|
||||||
|
// less efficient encoding in rare cases. It also prevents the export of
|
||||||
|
// some corner-case type declarations (but those are not handled correctly
|
||||||
|
// with with the textual export format either).
|
||||||
|
// TODO(gri) enable and remove once issues caused by it are fixed
|
||||||
|
const trackAllTypes = false
|
||||||
|
|
||||||
|
type exporter struct {
|
||||||
|
fset *token.FileSet
|
||||||
|
out bytes.Buffer
|
||||||
|
|
||||||
|
// object -> index maps, indexed in order of serialization
|
||||||
|
strIndex map[string]int
|
||||||
|
pkgIndex map[*types.Package]int
|
||||||
|
typIndex map[types.Type]int
|
||||||
|
|
||||||
|
// position encoding
|
||||||
|
posInfoFormat bool
|
||||||
|
prevFile string
|
||||||
|
prevLine int
|
||||||
|
|
||||||
|
// debugging support
|
||||||
|
written int // bytes written
|
||||||
|
indent int // for trace
|
||||||
|
}
|
||||||
|
|
||||||
|
// internalError represents an error generated inside this package.
|
||||||
|
type internalError string
|
||||||
|
|
||||||
|
func (e internalError) Error() string { return "gcimporter: " + string(e) }
|
||||||
|
|
||||||
|
func internalErrorf(format string, args ...interface{}) error {
|
||||||
|
return internalError(fmt.Sprintf(format, args...))
|
||||||
|
}
|
||||||
|
|
||||||
|
// BExportData returns binary export data for pkg.
|
||||||
|
// If no file set is provided, position info will be missing.
|
||||||
|
func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) {
|
||||||
|
defer func() {
|
||||||
|
if e := recover(); e != nil {
|
||||||
|
if ierr, ok := e.(internalError); ok {
|
||||||
|
err = ierr
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Not an internal error; panic again.
|
||||||
|
panic(e)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
p := exporter{
|
||||||
|
fset: fset,
|
||||||
|
strIndex: map[string]int{"": 0}, // empty string is mapped to 0
|
||||||
|
pkgIndex: make(map[*types.Package]int),
|
||||||
|
typIndex: make(map[types.Type]int),
|
||||||
|
posInfoFormat: true, // TODO(gri) might become a flag, eventually
|
||||||
|
}
|
||||||
|
|
||||||
|
// write version info
|
||||||
|
// The version string must start with "version %d" where %d is the version
|
||||||
|
// number. Additional debugging information may follow after a blank; that
|
||||||
|
// text is ignored by the importer.
|
||||||
|
p.rawStringln(fmt.Sprintf("version %d", exportVersion))
|
||||||
|
var debug string
|
||||||
|
if debugFormat {
|
||||||
|
debug = "debug"
|
||||||
|
}
|
||||||
|
p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly
|
||||||
|
p.bool(trackAllTypes)
|
||||||
|
p.bool(p.posInfoFormat)
|
||||||
|
|
||||||
|
// --- generic export data ---
|
||||||
|
|
||||||
|
// populate type map with predeclared "known" types
|
||||||
|
for index, typ := range predeclared() {
|
||||||
|
p.typIndex[typ] = index
|
||||||
|
}
|
||||||
|
if len(p.typIndex) != len(predeclared()) {
|
||||||
|
return nil, internalError("duplicate entries in type map?")
|
||||||
|
}
|
||||||
|
|
||||||
|
// write package data
|
||||||
|
p.pkg(pkg, true)
|
||||||
|
if trace {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
// write objects
|
||||||
|
objcount := 0
|
||||||
|
scope := pkg.Scope()
|
||||||
|
for _, name := range scope.Names() {
|
||||||
|
if !ast.IsExported(name) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if trace {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
p.obj(scope.Lookup(name))
|
||||||
|
objcount++
|
||||||
|
}
|
||||||
|
|
||||||
|
// indicate end of list
|
||||||
|
if trace {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
p.tag(endTag)
|
||||||
|
|
||||||
|
// for self-verification only (redundant)
|
||||||
|
p.int(objcount)
|
||||||
|
|
||||||
|
if trace {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- end of export data ---
|
||||||
|
|
||||||
|
return p.out.Bytes(), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) pkg(pkg *types.Package, emptypath bool) {
|
||||||
|
if pkg == nil {
|
||||||
|
panic(internalError("unexpected nil pkg"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// if we saw the package before, write its index (>= 0)
|
||||||
|
if i, ok := p.pkgIndex[pkg]; ok {
|
||||||
|
p.index('P', i)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// otherwise, remember the package, write the package tag (< 0) and package data
|
||||||
|
if trace {
|
||||||
|
p.tracef("P%d = { ", len(p.pkgIndex))
|
||||||
|
defer p.tracef("} ")
|
||||||
|
}
|
||||||
|
p.pkgIndex[pkg] = len(p.pkgIndex)
|
||||||
|
|
||||||
|
p.tag(packageTag)
|
||||||
|
p.string(pkg.Name())
|
||||||
|
if emptypath {
|
||||||
|
p.string("")
|
||||||
|
} else {
|
||||||
|
p.string(pkg.Path())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) obj(obj types.Object) {
|
||||||
|
switch obj := obj.(type) {
|
||||||
|
case *types.Const:
|
||||||
|
p.tag(constTag)
|
||||||
|
p.pos(obj)
|
||||||
|
p.qualifiedName(obj)
|
||||||
|
p.typ(obj.Type())
|
||||||
|
p.value(obj.Val())
|
||||||
|
|
||||||
|
case *types.TypeName:
|
||||||
|
if obj.IsAlias() {
|
||||||
|
p.tag(aliasTag)
|
||||||
|
p.pos(obj)
|
||||||
|
p.qualifiedName(obj)
|
||||||
|
} else {
|
||||||
|
p.tag(typeTag)
|
||||||
|
}
|
||||||
|
p.typ(obj.Type())
|
||||||
|
|
||||||
|
case *types.Var:
|
||||||
|
p.tag(varTag)
|
||||||
|
p.pos(obj)
|
||||||
|
p.qualifiedName(obj)
|
||||||
|
p.typ(obj.Type())
|
||||||
|
|
||||||
|
case *types.Func:
|
||||||
|
p.tag(funcTag)
|
||||||
|
p.pos(obj)
|
||||||
|
p.qualifiedName(obj)
|
||||||
|
sig := obj.Type().(*types.Signature)
|
||||||
|
p.paramList(sig.Params(), sig.Variadic())
|
||||||
|
p.paramList(sig.Results(), false)
|
||||||
|
|
||||||
|
default:
|
||||||
|
panic(internalErrorf("unexpected object %v (%T)", obj, obj))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) pos(obj types.Object) {
|
||||||
|
if !p.posInfoFormat {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
file, line := p.fileLine(obj)
|
||||||
|
if file == p.prevFile {
|
||||||
|
// common case: write line delta
|
||||||
|
// delta == 0 means different file or no line change
|
||||||
|
delta := line - p.prevLine
|
||||||
|
p.int(delta)
|
||||||
|
if delta == 0 {
|
||||||
|
p.int(-1) // -1 means no file change
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// different file
|
||||||
|
p.int(0)
|
||||||
|
// Encode filename as length of common prefix with previous
|
||||||
|
// filename, followed by (possibly empty) suffix. Filenames
|
||||||
|
// frequently share path prefixes, so this can save a lot
|
||||||
|
// of space and make export data size less dependent on file
|
||||||
|
// path length. The suffix is unlikely to be empty because
|
||||||
|
// file names tend to end in ".go".
|
||||||
|
n := commonPrefixLen(p.prevFile, file)
|
||||||
|
p.int(n) // n >= 0
|
||||||
|
p.string(file[n:]) // write suffix only
|
||||||
|
p.prevFile = file
|
||||||
|
p.int(line)
|
||||||
|
}
|
||||||
|
p.prevLine = line
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) fileLine(obj types.Object) (file string, line int) {
|
||||||
|
if p.fset != nil {
|
||||||
|
pos := p.fset.Position(obj.Pos())
|
||||||
|
file = pos.Filename
|
||||||
|
line = pos.Line
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func commonPrefixLen(a, b string) int {
|
||||||
|
if len(a) > len(b) {
|
||||||
|
a, b = b, a
|
||||||
|
}
|
||||||
|
// len(a) <= len(b)
|
||||||
|
i := 0
|
||||||
|
for i < len(a) && a[i] == b[i] {
|
||||||
|
i++
|
||||||
|
}
|
||||||
|
return i
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) qualifiedName(obj types.Object) {
|
||||||
|
p.string(obj.Name())
|
||||||
|
p.pkg(obj.Pkg(), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) typ(t types.Type) {
|
||||||
|
if t == nil {
|
||||||
|
panic(internalError("nil type"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Possible optimization: Anonymous pointer types *T where
|
||||||
|
// T is a named type are common. We could canonicalize all
|
||||||
|
// such types *T to a single type PT = *T. This would lead
|
||||||
|
// to at most one *T entry in typIndex, and all future *T's
|
||||||
|
// would be encoded as the respective index directly. Would
|
||||||
|
// save 1 byte (pointerTag) per *T and reduce the typIndex
|
||||||
|
// size (at the cost of a canonicalization map). We can do
|
||||||
|
// this later, without encoding format change.
|
||||||
|
|
||||||
|
// if we saw the type before, write its index (>= 0)
|
||||||
|
if i, ok := p.typIndex[t]; ok {
|
||||||
|
p.index('T', i)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// otherwise, remember the type, write the type tag (< 0) and type data
|
||||||
|
if trackAllTypes {
|
||||||
|
if trace {
|
||||||
|
p.tracef("T%d = {>\n", len(p.typIndex))
|
||||||
|
defer p.tracef("<\n} ")
|
||||||
|
}
|
||||||
|
p.typIndex[t] = len(p.typIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch t := t.(type) {
|
||||||
|
case *types.Named:
|
||||||
|
if !trackAllTypes {
|
||||||
|
// if we don't track all types, track named types now
|
||||||
|
p.typIndex[t] = len(p.typIndex)
|
||||||
|
}
|
||||||
|
|
||||||
|
p.tag(namedTag)
|
||||||
|
p.pos(t.Obj())
|
||||||
|
p.qualifiedName(t.Obj())
|
||||||
|
p.typ(t.Underlying())
|
||||||
|
if !types.IsInterface(t) {
|
||||||
|
p.assocMethods(t)
|
||||||
|
}
|
||||||
|
|
||||||
|
case *types.Array:
|
||||||
|
p.tag(arrayTag)
|
||||||
|
p.int64(t.Len())
|
||||||
|
p.typ(t.Elem())
|
||||||
|
|
||||||
|
case *types.Slice:
|
||||||
|
p.tag(sliceTag)
|
||||||
|
p.typ(t.Elem())
|
||||||
|
|
||||||
|
case *dddSlice:
|
||||||
|
p.tag(dddTag)
|
||||||
|
p.typ(t.elem)
|
||||||
|
|
||||||
|
case *types.Struct:
|
||||||
|
p.tag(structTag)
|
||||||
|
p.fieldList(t)
|
||||||
|
|
||||||
|
case *types.Pointer:
|
||||||
|
p.tag(pointerTag)
|
||||||
|
p.typ(t.Elem())
|
||||||
|
|
||||||
|
case *types.Signature:
|
||||||
|
p.tag(signatureTag)
|
||||||
|
p.paramList(t.Params(), t.Variadic())
|
||||||
|
p.paramList(t.Results(), false)
|
||||||
|
|
||||||
|
case *types.Interface:
|
||||||
|
p.tag(interfaceTag)
|
||||||
|
p.iface(t)
|
||||||
|
|
||||||
|
case *types.Map:
|
||||||
|
p.tag(mapTag)
|
||||||
|
p.typ(t.Key())
|
||||||
|
p.typ(t.Elem())
|
||||||
|
|
||||||
|
case *types.Chan:
|
||||||
|
p.tag(chanTag)
|
||||||
|
p.int(int(3 - t.Dir())) // hack
|
||||||
|
p.typ(t.Elem())
|
||||||
|
|
||||||
|
default:
|
||||||
|
panic(internalErrorf("unexpected type %T: %s", t, t))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) assocMethods(named *types.Named) {
|
||||||
|
// Sort methods (for determinism).
|
||||||
|
var methods []*types.Func
|
||||||
|
for i := 0; i < named.NumMethods(); i++ {
|
||||||
|
methods = append(methods, named.Method(i))
|
||||||
|
}
|
||||||
|
sort.Sort(methodsByName(methods))
|
||||||
|
|
||||||
|
p.int(len(methods))
|
||||||
|
|
||||||
|
if trace && methods != nil {
|
||||||
|
p.tracef("associated methods {>\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, m := range methods {
|
||||||
|
if trace && i > 0 {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
|
||||||
|
p.pos(m)
|
||||||
|
name := m.Name()
|
||||||
|
p.string(name)
|
||||||
|
if !exported(name) {
|
||||||
|
p.pkg(m.Pkg(), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
sig := m.Type().(*types.Signature)
|
||||||
|
p.paramList(types.NewTuple(sig.Recv()), false)
|
||||||
|
p.paramList(sig.Params(), sig.Variadic())
|
||||||
|
p.paramList(sig.Results(), false)
|
||||||
|
p.int(0) // dummy value for go:nointerface pragma - ignored by importer
|
||||||
|
}
|
||||||
|
|
||||||
|
if trace && methods != nil {
|
||||||
|
p.tracef("<\n} ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type methodsByName []*types.Func
|
||||||
|
|
||||||
|
func (x methodsByName) Len() int { return len(x) }
|
||||||
|
func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
|
||||||
|
func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() }
|
||||||
|
|
||||||
|
func (p *exporter) fieldList(t *types.Struct) {
|
||||||
|
if trace && t.NumFields() > 0 {
|
||||||
|
p.tracef("fields {>\n")
|
||||||
|
defer p.tracef("<\n} ")
|
||||||
|
}
|
||||||
|
|
||||||
|
p.int(t.NumFields())
|
||||||
|
for i := 0; i < t.NumFields(); i++ {
|
||||||
|
if trace && i > 0 {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
p.field(t.Field(i))
|
||||||
|
p.string(t.Tag(i))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) field(f *types.Var) {
|
||||||
|
if !f.IsField() {
|
||||||
|
panic(internalError("field expected"))
|
||||||
|
}
|
||||||
|
|
||||||
|
p.pos(f)
|
||||||
|
p.fieldName(f)
|
||||||
|
p.typ(f.Type())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) iface(t *types.Interface) {
|
||||||
|
// TODO(gri): enable importer to load embedded interfaces,
|
||||||
|
// then emit Embeddeds and ExplicitMethods separately here.
|
||||||
|
p.int(0)
|
||||||
|
|
||||||
|
n := t.NumMethods()
|
||||||
|
if trace && n > 0 {
|
||||||
|
p.tracef("methods {>\n")
|
||||||
|
defer p.tracef("<\n} ")
|
||||||
|
}
|
||||||
|
p.int(n)
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
if trace && i > 0 {
|
||||||
|
p.tracef("\n")
|
||||||
|
}
|
||||||
|
p.method(t.Method(i))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) method(m *types.Func) {
|
||||||
|
sig := m.Type().(*types.Signature)
|
||||||
|
if sig.Recv() == nil {
|
||||||
|
panic(internalError("method expected"))
|
||||||
|
}
|
||||||
|
|
||||||
|
p.pos(m)
|
||||||
|
p.string(m.Name())
|
||||||
|
if m.Name() != "_" && !ast.IsExported(m.Name()) {
|
||||||
|
p.pkg(m.Pkg(), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// interface method; no need to encode receiver.
|
||||||
|
p.paramList(sig.Params(), sig.Variadic())
|
||||||
|
p.paramList(sig.Results(), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) fieldName(f *types.Var) {
|
||||||
|
name := f.Name()
|
||||||
|
|
||||||
|
if f.Anonymous() {
|
||||||
|
// anonymous field - we distinguish between 3 cases:
|
||||||
|
// 1) field name matches base type name and is exported
|
||||||
|
// 2) field name matches base type name and is not exported
|
||||||
|
// 3) field name doesn't match base type name (alias name)
|
||||||
|
bname := basetypeName(f.Type())
|
||||||
|
if name == bname {
|
||||||
|
if ast.IsExported(name) {
|
||||||
|
name = "" // 1) we don't need to know the field name or package
|
||||||
|
} else {
|
||||||
|
name = "?" // 2) use unexported name "?" to force package export
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 3) indicate alias and export name as is
|
||||||
|
// (this requires an extra "@" but this is a rare case)
|
||||||
|
p.string("@")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p.string(name)
|
||||||
|
if name != "" && !ast.IsExported(name) {
|
||||||
|
p.pkg(f.Pkg(), false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func basetypeName(typ types.Type) string {
|
||||||
|
switch typ := deref(typ).(type) {
|
||||||
|
case *types.Basic:
|
||||||
|
return typ.Name()
|
||||||
|
case *types.Named:
|
||||||
|
return typ.Obj().Name()
|
||||||
|
default:
|
||||||
|
return "" // unnamed type
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) paramList(params *types.Tuple, variadic bool) {
|
||||||
|
// use negative length to indicate unnamed parameters
|
||||||
|
// (look at the first parameter only since either all
|
||||||
|
// names are present or all are absent)
|
||||||
|
n := params.Len()
|
||||||
|
if n > 0 && params.At(0).Name() == "" {
|
||||||
|
n = -n
|
||||||
|
}
|
||||||
|
p.int(n)
|
||||||
|
for i := 0; i < params.Len(); i++ {
|
||||||
|
q := params.At(i)
|
||||||
|
t := q.Type()
|
||||||
|
if variadic && i == params.Len()-1 {
|
||||||
|
t = &dddSlice{t.(*types.Slice).Elem()}
|
||||||
|
}
|
||||||
|
p.typ(t)
|
||||||
|
if n > 0 {
|
||||||
|
name := q.Name()
|
||||||
|
p.string(name)
|
||||||
|
if name != "_" {
|
||||||
|
p.pkg(q.Pkg(), false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p.string("") // no compiler-specific info
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) value(x constant.Value) {
|
||||||
|
if trace {
|
||||||
|
p.tracef("= ")
|
||||||
|
}
|
||||||
|
|
||||||
|
switch x.Kind() {
|
||||||
|
case constant.Bool:
|
||||||
|
tag := falseTag
|
||||||
|
if constant.BoolVal(x) {
|
||||||
|
tag = trueTag
|
||||||
|
}
|
||||||
|
p.tag(tag)
|
||||||
|
|
||||||
|
case constant.Int:
|
||||||
|
if v, exact := constant.Int64Val(x); exact {
|
||||||
|
// common case: x fits into an int64 - use compact encoding
|
||||||
|
p.tag(int64Tag)
|
||||||
|
p.int64(v)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// uncommon case: large x - use float encoding
|
||||||
|
// (powers of 2 will be encoded efficiently with exponent)
|
||||||
|
p.tag(floatTag)
|
||||||
|
p.float(constant.ToFloat(x))
|
||||||
|
|
||||||
|
case constant.Float:
|
||||||
|
p.tag(floatTag)
|
||||||
|
p.float(x)
|
||||||
|
|
||||||
|
case constant.Complex:
|
||||||
|
p.tag(complexTag)
|
||||||
|
p.float(constant.Real(x))
|
||||||
|
p.float(constant.Imag(x))
|
||||||
|
|
||||||
|
case constant.String:
|
||||||
|
p.tag(stringTag)
|
||||||
|
p.string(constant.StringVal(x))
|
||||||
|
|
||||||
|
case constant.Unknown:
|
||||||
|
// package contains type errors
|
||||||
|
p.tag(unknownTag)
|
||||||
|
|
||||||
|
default:
|
||||||
|
panic(internalErrorf("unexpected value %v (%T)", x, x))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) float(x constant.Value) {
|
||||||
|
if x.Kind() != constant.Float {
|
||||||
|
panic(internalErrorf("unexpected constant %v, want float", x))
|
||||||
|
}
|
||||||
|
// extract sign (there is no -0)
|
||||||
|
sign := constant.Sign(x)
|
||||||
|
if sign == 0 {
|
||||||
|
// x == 0
|
||||||
|
p.int(0)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// x != 0
|
||||||
|
|
||||||
|
var f big.Float
|
||||||
|
if v, exact := constant.Float64Val(x); exact {
|
||||||
|
// float64
|
||||||
|
f.SetFloat64(v)
|
||||||
|
} else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int {
|
||||||
|
// TODO(gri): add big.Rat accessor to constant.Value.
|
||||||
|
r := valueToRat(num)
|
||||||
|
f.SetRat(r.Quo(r, valueToRat(denom)))
|
||||||
|
} else {
|
||||||
|
// Value too large to represent as a fraction => inaccessible.
|
||||||
|
// TODO(gri): add big.Float accessor to constant.Value.
|
||||||
|
f.SetFloat64(math.MaxFloat64) // FIXME
|
||||||
|
}
|
||||||
|
|
||||||
|
// extract exponent such that 0.5 <= m < 1.0
|
||||||
|
var m big.Float
|
||||||
|
exp := f.MantExp(&m)
|
||||||
|
|
||||||
|
// extract mantissa as *big.Int
|
||||||
|
// - set exponent large enough so mant satisfies mant.IsInt()
|
||||||
|
// - get *big.Int from mant
|
||||||
|
m.SetMantExp(&m, int(m.MinPrec()))
|
||||||
|
mant, acc := m.Int(nil)
|
||||||
|
if acc != big.Exact {
|
||||||
|
panic(internalError("internal error"))
|
||||||
|
}
|
||||||
|
|
||||||
|
p.int(sign)
|
||||||
|
p.int(exp)
|
||||||
|
p.string(string(mant.Bytes()))
|
||||||
|
}
|
||||||
|
|
||||||
|
func valueToRat(x constant.Value) *big.Rat {
|
||||||
|
// Convert little-endian to big-endian.
|
||||||
|
// I can't believe this is necessary.
|
||||||
|
bytes := constant.Bytes(x)
|
||||||
|
for i := 0; i < len(bytes)/2; i++ {
|
||||||
|
bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i]
|
||||||
|
}
|
||||||
|
return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) bool(b bool) bool {
|
||||||
|
if trace {
|
||||||
|
p.tracef("[")
|
||||||
|
defer p.tracef("= %v] ", b)
|
||||||
|
}
|
||||||
|
|
||||||
|
x := 0
|
||||||
|
if b {
|
||||||
|
x = 1
|
||||||
|
}
|
||||||
|
p.int(x)
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// Low-level encoders
|
||||||
|
|
||||||
|
func (p *exporter) index(marker byte, index int) {
|
||||||
|
if index < 0 {
|
||||||
|
panic(internalError("invalid index < 0"))
|
||||||
|
}
|
||||||
|
if debugFormat {
|
||||||
|
p.marker('t')
|
||||||
|
}
|
||||||
|
if trace {
|
||||||
|
p.tracef("%c%d ", marker, index)
|
||||||
|
}
|
||||||
|
p.rawInt64(int64(index))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) tag(tag int) {
|
||||||
|
if tag >= 0 {
|
||||||
|
panic(internalError("invalid tag >= 0"))
|
||||||
|
}
|
||||||
|
if debugFormat {
|
||||||
|
p.marker('t')
|
||||||
|
}
|
||||||
|
if trace {
|
||||||
|
p.tracef("%s ", tagString[-tag])
|
||||||
|
}
|
||||||
|
p.rawInt64(int64(tag))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) int(x int) {
|
||||||
|
p.int64(int64(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) int64(x int64) {
|
||||||
|
if debugFormat {
|
||||||
|
p.marker('i')
|
||||||
|
}
|
||||||
|
if trace {
|
||||||
|
p.tracef("%d ", x)
|
||||||
|
}
|
||||||
|
p.rawInt64(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *exporter) string(s string) {
|
||||||
|
if debugFormat {
|
||||||
|
p.marker('s')
|
||||||
|
}
|
||||||
|
if trace {
|
||||||
|
p.tracef("%q ", s)
|
||||||
|
}
|
||||||
|
// if we saw the string before, write its index (>= 0)
|
||||||
|
// (the empty string is mapped to 0)
|
||||||
|
if i, ok := p.strIndex[s]; ok {
|
||||||
|
p.rawInt64(int64(i))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// otherwise, remember string and write its negative length and bytes
|
||||||
|
p.strIndex[s] = len(p.strIndex)
|
||||||
|
p.rawInt64(-int64(len(s)))
|
||||||
|
for i := 0; i < len(s); i++ {
|
||||||
|
p.rawByte(s[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// marker emits a marker byte and position information which makes
|
||||||
|
// it easy for a reader to detect if it is "out of sync". Used for
|
||||||
|
// debugFormat format only.
|
||||||
|
func (p *exporter) marker(m byte) {
|
||||||
|
p.rawByte(m)
|
||||||
|
// Enable this for help tracking down the location
|
||||||
|
// of an incorrect marker when running in debugFormat.
|
||||||
|
if false && trace {
|
||||||
|
p.tracef("#%d ", p.written)
|
||||||
|
}
|
||||||
|
p.rawInt64(int64(p.written))
|
||||||
|
}
|
||||||
|
|
||||||
|
// rawInt64 should only be used by low-level encoders.
|
||||||
|
func (p *exporter) rawInt64(x int64) {
|
||||||
|
var tmp [binary.MaxVarintLen64]byte
|
||||||
|
n := binary.PutVarint(tmp[:], x)
|
||||||
|
for i := 0; i < n; i++ {
|
||||||
|
p.rawByte(tmp[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// rawStringln should only be used to emit the initial version string.
|
||||||
|
func (p *exporter) rawStringln(s string) {
|
||||||
|
for i := 0; i < len(s); i++ {
|
||||||
|
p.rawByte(s[i])
|
||||||
|
}
|
||||||
|
p.rawByte('\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
// rawByte is the bottleneck interface to write to p.out.
|
||||||
|
// rawByte escapes b as follows (any encoding does that
|
||||||
|
// hides '$'):
|
||||||
|
//
|
||||||
|
// '$' => '|' 'S'
|
||||||
|
// '|' => '|' '|'
|
||||||
|
//
|
||||||
|
// Necessary so other tools can find the end of the
|
||||||
|
// export data by searching for "$$".
|
||||||
|
// rawByte should only be used by low-level encoders.
|
||||||
|
func (p *exporter) rawByte(b byte) {
|
||||||
|
switch b {
|
||||||
|
case '$':
|
||||||
|
// write '$' as '|' 'S'
|
||||||
|
b = 'S'
|
||||||
|
fallthrough
|
||||||
|
case '|':
|
||||||
|
// write '|' as '|' '|'
|
||||||
|
p.out.WriteByte('|')
|
||||||
|
p.written++
|
||||||
|
}
|
||||||
|
p.out.WriteByte(b)
|
||||||
|
p.written++
|
||||||
|
}
|
||||||
|
|
||||||
|
// tracef is like fmt.Printf but it rewrites the format string
|
||||||
|
// to take care of indentation.
|
||||||
|
func (p *exporter) tracef(format string, args ...interface{}) {
|
||||||
|
if strings.ContainsAny(format, "<>\n") {
|
||||||
|
var buf bytes.Buffer
|
||||||
|
for i := 0; i < len(format); i++ {
|
||||||
|
// no need to deal with runes
|
||||||
|
ch := format[i]
|
||||||
|
switch ch {
|
||||||
|
case '>':
|
||||||
|
p.indent++
|
||||||
|
continue
|
||||||
|
case '<':
|
||||||
|
p.indent--
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
buf.WriteByte(ch)
|
||||||
|
if ch == '\n' {
|
||||||
|
for j := p.indent; j > 0; j-- {
|
||||||
|
buf.WriteString(". ")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
format = buf.String()
|
||||||
|
}
|
||||||
|
fmt.Printf(format, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Debugging support.
|
||||||
|
// (tagString is only used when tracing is enabled)
|
||||||
|
var tagString = [...]string{
|
||||||
|
// Packages
|
||||||
|
-packageTag: "package",
|
||||||
|
|
||||||
|
// Types
|
||||||
|
-namedTag: "named type",
|
||||||
|
-arrayTag: "array",
|
||||||
|
-sliceTag: "slice",
|
||||||
|
-dddTag: "ddd",
|
||||||
|
-structTag: "struct",
|
||||||
|
-pointerTag: "pointer",
|
||||||
|
-signatureTag: "signature",
|
||||||
|
-interfaceTag: "interface",
|
||||||
|
-mapTag: "map",
|
||||||
|
-chanTag: "chan",
|
||||||
|
|
||||||
|
// Values
|
||||||
|
-falseTag: "false",
|
||||||
|
-trueTag: "true",
|
||||||
|
-int64Tag: "int64",
|
||||||
|
-floatTag: "float",
|
||||||
|
-fractionTag: "fraction",
|
||||||
|
-complexTag: "complex",
|
||||||
|
-stringTag: "string",
|
||||||
|
-unknownTag: "unknown",
|
||||||
|
|
||||||
|
// Type aliases
|
||||||
|
-aliasTag: "alias",
|
||||||
|
}
|
1036
vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
generated
vendored
Normal file
1036
vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
93
vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go
generated
vendored
Normal file
93
vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go
generated
vendored
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
// Copyright 2011 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// This file is a copy of $GOROOT/src/go/internal/gcimporter/exportdata.go.
|
||||||
|
|
||||||
|
// This file implements FindExportData.
|
||||||
|
|
||||||
|
package gcimporter
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bufio"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func readGopackHeader(r *bufio.Reader) (name string, size int, err error) {
|
||||||
|
// See $GOROOT/include/ar.h.
|
||||||
|
hdr := make([]byte, 16+12+6+6+8+10+2)
|
||||||
|
_, err = io.ReadFull(r, hdr)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// leave for debugging
|
||||||
|
if false {
|
||||||
|
fmt.Printf("header: %s", hdr)
|
||||||
|
}
|
||||||
|
s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10]))
|
||||||
|
size, err = strconv.Atoi(s)
|
||||||
|
if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' {
|
||||||
|
err = fmt.Errorf("invalid archive header")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
name = strings.TrimSpace(string(hdr[:16]))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// FindExportData positions the reader r at the beginning of the
|
||||||
|
// export data section of an underlying GC-created object/archive
|
||||||
|
// file by reading from it. The reader must be positioned at the
|
||||||
|
// start of the file before calling this function. The hdr result
|
||||||
|
// is the string before the export data, either "$$" or "$$B".
|
||||||
|
//
|
||||||
|
func FindExportData(r *bufio.Reader) (hdr string, err error) {
|
||||||
|
// Read first line to make sure this is an object file.
|
||||||
|
line, err := r.ReadSlice('\n')
|
||||||
|
if err != nil {
|
||||||
|
err = fmt.Errorf("can't find export data (%v)", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if string(line) == "!<arch>\n" {
|
||||||
|
// Archive file. Scan to __.PKGDEF.
|
||||||
|
var name string
|
||||||
|
if name, _, err = readGopackHeader(r); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// First entry should be __.PKGDEF.
|
||||||
|
if name != "__.PKGDEF" {
|
||||||
|
err = fmt.Errorf("go archive is missing __.PKGDEF")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read first line of __.PKGDEF data, so that line
|
||||||
|
// is once again the first line of the input.
|
||||||
|
if line, err = r.ReadSlice('\n'); err != nil {
|
||||||
|
err = fmt.Errorf("can't find export data (%v)", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now at __.PKGDEF in archive or still at beginning of file.
|
||||||
|
// Either way, line should begin with "go object ".
|
||||||
|
if !strings.HasPrefix(string(line), "go object ") {
|
||||||
|
err = fmt.Errorf("not a Go object file")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// Skip over object header to export data.
|
||||||
|
// Begins after first line starting with $$.
|
||||||
|
for line[0] != '$' {
|
||||||
|
if line, err = r.ReadSlice('\n'); err != nil {
|
||||||
|
err = fmt.Errorf("can't find export data (%v)", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
hdr = string(line)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
1078
vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go
generated
vendored
Normal file
1078
vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue