Convert to Go modules (#1178)
* Convert to Go modules * Update promu config. * Convert to Go modules. * Update vendoring. * Update Makefile.common. * Update circleci config. * Use Prometheus release tar for promtool. * Fixup unpack * Use temp dir for unpacking tools. * Use BSD compatible tar command. * OpenBSD mkdir doesn't support `-v`. Signed-off-by: Ben Kochie <superq@gmail.com>release-0.17
parent
6f4481b2b5
commit
d7c41fa49f
@ -0,0 +1,32 @@ |
||||
module github.com/prometheus/node_exporter |
||||
|
||||
require ( |
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect |
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect |
||||
github.com/beevik/ntp v0.2.0 |
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 // indirect |
||||
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 |
||||
github.com/ema/qdisc v0.0.0-20180104102928-b307c22d3ce7 |
||||
github.com/godbus/dbus v4.1.0+incompatible |
||||
github.com/gogo/protobuf v1.1.1 // indirect |
||||
github.com/golang/protobuf v1.2.0 // indirect |
||||
github.com/google/go-cmp v0.2.0 // indirect |
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 // indirect |
||||
github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 |
||||
github.com/mattn/go-xmlrpc v0.0.0-20180913190254-6e944673e4c0 |
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect |
||||
github.com/mdlayher/genetlink v0.0.0-20180917171408-7615bc153978 // indirect |
||||
github.com/mdlayher/netlink v0.0.0-20180920202405-794849f2d5bf // indirect |
||||
github.com/mdlayher/wifi v0.0.0-20180727163819-efdf3f4195d9 |
||||
github.com/prometheus/client_golang v0.9.1 |
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 |
||||
github.com/prometheus/common v0.0.0-20181015124227-bcb74de08d37 |
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d |
||||
github.com/sirupsen/logrus v1.1.1 // indirect |
||||
github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a |
||||
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941 // indirect |
||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58 // indirect |
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect |
||||
golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e |
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6 |
||||
) |
@ -0,0 +1,65 @@ |
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU= |
||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= |
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY= |
||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= |
||||
github.com/beevik/ntp v0.2.0 h1:sGsd+kAXzT0bfVfzJfce04g+dSRfrs+tbQW8lweuYgw= |
||||
github.com/beevik/ntp v0.2.0/go.mod h1:hIHWr+l3+/clUnF44zdK+CWW7fO8dR5cIylAQ76NRpg= |
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 h1:xJ4a3vCFaGF/jqvzLMYoU8P317H5OQ+Via4RmuPwCS0= |
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= |
||||
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 h1:u9SHYsPQNyt5tgDm3YN7+9dYrpK96E5wFilTFWIDZOM= |
||||
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= |
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= |
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= |
||||
github.com/ema/qdisc v0.0.0-20180104102928-b307c22d3ce7 h1:jzWRD7cjz7ditpwbTbQdnHzFFW3KIFAVw9Ia5C0n/zs= |
||||
github.com/ema/qdisc v0.0.0-20180104102928-b307c22d3ce7/go.mod h1:kXuKAameaga9ciOgiYWAM85FQP+wt5aN4uX+9OHVJe4= |
||||
github.com/godbus/dbus v4.1.0+incompatible h1:WqqLRTsQic3apZUK9qC5sGNfXthmPXzUZ7nQPrNITa4= |
||||
github.com/godbus/dbus v4.1.0+incompatible/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= |
||||
github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= |
||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= |
||||
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= |
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= |
||||
github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= |
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= |
||||
github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f2633dfe/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= |
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= |
||||
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= |
||||
github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 h1:XGhvld9vIpj929Gri5ybjukYZeyZwKkFkqgATqBQiOs= |
||||
github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3/go.mod h1:lRgtFVamD7L7GaXOSwBiuXMwU3Aicfn5h66LVs4u2SA= |
||||
github.com/mattn/go-xmlrpc v0.0.0-20180913190254-6e944673e4c0 h1:Yd5lxbX77o10QFKctZpOQqT4D2x6kzfmnjwtz0NUTIU= |
||||
github.com/mattn/go-xmlrpc v0.0.0-20180913190254-6e944673e4c0/go.mod h1:jPxKbOGukjFCw9jFB7RRh3ZRQUehV22ryHP8IpREEx4= |
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= |
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= |
||||
github.com/mdlayher/genetlink v0.0.0-20180917171408-7615bc153978 h1:tC5iKGVD0TDZhKsBarp21Qox0Czip4m4i8kxfiqmqgY= |
||||
github.com/mdlayher/genetlink v0.0.0-20180917171408-7615bc153978/go.mod h1:EOrmeik1bDMaRduo2B+uAYe1HmTq6yF2IMDmJi1GoWk= |
||||
github.com/mdlayher/netlink v0.0.0-20180920202405-794849f2d5bf h1:lYA2LopQshi99ahuhhIyfvWRC9IzHRtC9Bk1OSP436w= |
||||
github.com/mdlayher/netlink v0.0.0-20180920202405-794849f2d5bf/go.mod h1:a3TlQHkJH2m32RF224Z7LhD5N4mpyR8eUbCoYHywrwg= |
||||
github.com/mdlayher/wifi v0.0.0-20180727163819-efdf3f4195d9 h1:ag57ienknXLMhoSbkYvaZLF9Taxu9GtBHUJ4jP5ER8s= |
||||
github.com/mdlayher/wifi v0.0.0-20180727163819-efdf3f4195d9/go.mod h1:Evt/EIne46u9PtQbeTx2NTcqURpr5K4SvKtGmBuDPN8= |
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= |
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= |
||||
github.com/prometheus/client_golang v0.9.1 h1:K47Rk0v/fkEfwfQet2KWhscE0cJzjgCCDBG2KHZoVno= |
||||
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= |
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 h1:idejC8f05m9MGOsuEi1ATq9shN03HrxNkD/luQvxCv8= |
||||
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= |
||||
github.com/prometheus/common v0.0.0-20181015124227-bcb74de08d37 h1:Y7YdJ9Xb3MoQOzAWXnDunAJYpvhVwZdTirNfGUgPKaA= |
||||
github.com/prometheus/common v0.0.0-20181015124227-bcb74de08d37/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= |
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d h1:GoAlyOgbOEIFdaDqxJVlbOQ1DtGmZWs/Qau0hIlk+WQ= |
||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= |
||||
github.com/sirupsen/logrus v1.1.1 h1:VzGj7lhU7KEB9e9gMpAV/v5XT2NVSvLJhJLCWbnkgXg= |
||||
github.com/sirupsen/logrus v1.1.1/go.mod h1:zrgwTnHtNr00buQ1vSptGe8m1f/BbgsPukg8qsT7A+A= |
||||
github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a h1:TGsOnmXp0mo82KbjaDcsTibGxWIdZNXbKJB18gFn1RM= |
||||
github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a/go.mod h1:LeFCbQYJ3KJlPs/FvPz2dy1tkpxyeNESVyCNNzRXFR0= |
||||
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= |
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= |
||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= |
||||
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941 h1:qBTHLajHecfu+xzRI9PqVDcqx7SdHj9d4B+EzSn3tAc= |
||||
golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= |
||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58 h1:otZG8yDCO4LVps5+9bxOeNiCvgmOyt96J3roHTYs7oE= |
||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= |
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ= |
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= |
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= |
||||
golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e h1:EfdBzeKbFSvOjoIqSZcfS8wp0FBLokGBEs9lz1OtSg0= |
||||
golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= |
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= |
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= |
@ -0,0 +1,15 @@ |
||||
language: go |
||||
sudo: false |
||||
|
||||
go: |
||||
- 1.7.x |
||||
- 1.8.x |
||||
- 1.9.x |
||||
- tip |
||||
|
||||
matrix: |
||||
allow_failures: |
||||
- go: tip |
||||
|
||||
script: |
||||
- go test -v ./... |
@ -0,0 +1,16 @@ |
||||
language: go |
||||
go: |
||||
- 1.x |
||||
os: |
||||
- linux |
||||
sudo: required |
||||
before_install: |
||||
- go get github.com/golang/lint/golint |
||||
- go get honnef.co/go/tools/cmd/staticcheck |
||||
- go get -d ./... |
||||
script: |
||||
- go build -tags=gofuzz ./... |
||||
- go vet ./... |
||||
- staticcheck ./... |
||||
#- golint -set_exit_status ./... |
||||
- go test -v -race -tags=integration ./... |
@ -0,0 +1,40 @@ |
||||
dist: precise |
||||
language: go |
||||
go_import_path: github.com/godbus/dbus |
||||
sudo: true |
||||
|
||||
go: |
||||
- 1.6.3 |
||||
- 1.7.3 |
||||
- tip |
||||
|
||||
env: |
||||
global: |
||||
matrix: |
||||
- TARGET=amd64 |
||||
- TARGET=arm64 |
||||
- TARGET=arm |
||||
- TARGET=386 |
||||
- TARGET=ppc64le |
||||
|
||||
matrix: |
||||
fast_finish: true |
||||
allow_failures: |
||||
- go: tip |
||||
exclude: |
||||
- go: tip |
||||
env: TARGET=arm |
||||
- go: tip |
||||
env: TARGET=arm64 |
||||
- go: tip |
||||
env: TARGET=386 |
||||
- go: tip |
||||
env: TARGET=ppc64le |
||||
|
||||
addons: |
||||
apt: |
||||
packages: |
||||
- dbus |
||||
- dbus-x11 |
||||
|
||||
before_install: |
@ -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. |
@ -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. |
@ -0,0 +1,14 @@ |
||||
# Binaries for programs and plugins |
||||
*.exe |
||||
*.dll |
||||
*.so |
||||
*.dylib |
||||
|
||||
# Test binary, build with `go test -c` |
||||
*.test |
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE |
||||
*.out |
||||
|
||||
# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 |
||||
.glide/ |
@ -0,0 +1,5 @@ |
||||
language: go |
||||
go: |
||||
- tip |
||||
before_install: |
||||
- go test |
@ -0,0 +1 @@ |
||||
cover.dat |
@ -0,0 +1,7 @@ |
||||
all: |
||||
|
||||
cover: |
||||
go test -cover -v -coverprofile=cover.dat ./...
|
||||
go tool cover -func cover.dat
|
||||
|
||||
.PHONY: cover |
@ -0,0 +1,16 @@ |
||||
language: go |
||||
go: |
||||
- 1.x |
||||
os: |
||||
- linux |
||||
sudo: required |
||||
before_install: |
||||
- go get github.com/golang/lint/golint |
||||
- go get honnef.co/go/tools/cmd/staticcheck |
||||
- go get -d ./... |
||||
script: |
||||
- go build -tags=gofuzz ./... |
||||
- go vet ./... |
||||
- staticcheck ./... |
||||
- golint -set_exit_status ./... |
||||
- go test -v -race -tags=integration ./... |
@ -0,0 +1 @@ |
||||
cmd/nlstress/nlstress |
@ -0,0 +1,17 @@ |
||||
language: go |
||||
go: |
||||
- "1.x" |
||||
os: |
||||
- linux |
||||
- osx |
||||
sudo: required |
||||
before_install: |
||||
- go get github.com/golang/lint/golint |
||||
- go get honnef.co/go/tools/cmd/staticcheck |
||||
- go get -d ./... |
||||
script: |
||||
- go build -tags=gofuzz ./... |
||||
- go vet ./... |
||||
- staticcheck ./... |
||||
- golint -set_exit_status ./... |
||||
- go test -v -race -tags=integration ./... |
@ -0,0 +1,16 @@ |
||||
language: go |
||||
go: |
||||
- 1.x |
||||
os: |
||||
- linux |
||||
sudo: required |
||||
before_install: |
||||
- go get github.com/golang/lint/golint |
||||
- go get honnef.co/go/tools/cmd/staticcheck |
||||
- go get -d -t ./... |
||||
script: |
||||
- go build ./... |
||||
- go vet ./... |
||||
- staticcheck ./... |
||||
- ./scripts/golint.sh |
||||
- go test -race -v ./... |
@ -0,0 +1 @@ |
||||
command-line-arguments.test |
@ -0,0 +1 @@ |
||||
/fixtures/ |
@ -1,29 +0,0 @@ |
||||
#!/bin/sh |
||||
# |
||||
# Copyright 2018 The Prometheus 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. |
||||
|
||||
check_license() { |
||||
local file="" |
||||
for file in $(find . -type f -iname '*.go' ! -path './vendor/*'); do |
||||
head -n3 "${file}" | grep -Eq "(Copyright|generated|GENERATED)" || echo " ${file}" |
||||
done |
||||
} |
||||
|
||||
licRes=$(check_license) |
||||
|
||||
if [ -n "${licRes}" ]; then |
||||
echo "license header checking failed:" |
||||
echo "${licRes}" |
||||
exit 255 |
||||
fi |
@ -0,0 +1 @@ |
||||
fixtures/ |
@ -0,0 +1 @@ |
||||
logrus |
@ -0,0 +1,51 @@ |
||||
language: go |
||||
env: |
||||
- GOMAXPROCS=4 GORACE=halt_on_error=1 |
||||
matrix: |
||||
include: |
||||
- go: 1.10.x |
||||
install: |
||||
- go get github.com/stretchr/testify/assert |
||||
- go get golang.org/x/crypto/ssh/terminal |
||||
- go get golang.org/x/sys/unix |
||||
- go get golang.org/x/sys/windows |
||||
script: |
||||
- go test -race -v ./... |
||||
- go: 1.11.x |
||||
env: GO111MODULE=on |
||||
install: |
||||
- go mod download |
||||
script: |
||||
- go test -race -v ./... |
||||
- go: 1.11.x |
||||
env: GO111MODULE=off |
||||
install: |
||||
- go get github.com/stretchr/testify/assert |
||||
- go get golang.org/x/crypto/ssh/terminal |
||||
- go get golang.org/x/sys/unix |
||||
- go get golang.org/x/sys/windows |
||||
script: |
||||
- go test -race -v ./... |
||||
- go: 1.10.x |
||||
install: |
||||
- go get github.com/stretchr/testify/assert |
||||
- go get golang.org/x/crypto/ssh/terminal |
||||
- go get golang.org/x/sys/unix |
||||
- go get golang.org/x/sys/windows |
||||
script: |
||||
- go test -race -v -tags appengine ./... |
||||
- go: 1.11.x |
||||
env: GO111MODULE=on |
||||
install: |
||||
- go mod download |
||||
script: |
||||
- go test -race -v -tags appengine ./... |
||||
- go: 1.11.x |
||||
env: GO111MODULE=off |
||||
install: |
||||
- go get github.com/stretchr/testify/assert |
||||
- go get golang.org/x/crypto/ssh/terminal |
||||
- go get golang.org/x/sys/unix |
||||
- go get golang.org/x/sys/windows |
||||
script: |
||||
- go test -race -v -tags appengine ./... |
@ -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 https://tip.golang.org/AUTHORS. |
@ -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 https://tip.golang.org/CONTRIBUTORS. |
@ -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. |
@ -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. |
@ -0,0 +1,383 @@ |
||||
// 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.
|
||||
|
||||
// +build ignore
|
||||
|
||||
//go:generate go run gen.go
|
||||
|
||||
// This program generates internet protocol constants and tables by
|
||||
// reading IANA protocol registries.
|
||||
package main |
||||
|
||||
import ( |
||||
"bytes" |
||||
"encoding/xml" |
||||
"fmt" |
||||
"go/format" |
||||
"io" |
||||
"io/ioutil" |
||||
"net/http" |
||||
"os" |
||||
"strconv" |
||||
"strings" |
||||
) |
||||
|
||||
var registries = []struct { |
||||
url string |
||||
parse func(io.Writer, io.Reader) error |
||||
}{ |
||||
{ |
||||
"https://www.iana.org/assignments/dscp-registry/dscp-registry.xml", |
||||
parseDSCPRegistry, |
||||
}, |
||||
{ |
||||
"https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml", |
||||
parseProtocolNumbers, |
||||
}, |
||||
{ |
||||
"https://www.iana.org/assignments/address-family-numbers/address-family-numbers.xml", |
||||
parseAddrFamilyNumbers, |
||||
}, |
||||
} |
||||
|
||||
func main() { |
||||
var bb bytes.Buffer |
||||
fmt.Fprintf(&bb, "// go generate gen.go\n") |
||||
fmt.Fprintf(&bb, "// Code generated by the command above; DO NOT EDIT.\n\n") |
||||
fmt.Fprintf(&bb, "// Package iana provides protocol number resources managed by the Internet Assigned Numbers Authority (IANA).\n") |
||||
fmt.Fprintf(&bb, `package iana // import "golang.org/x/net/internal/iana"`+"\n\n") |
||||
for _, r := range registries { |
||||
resp, err := http.Get(r.url) |
||||
if err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
defer resp.Body.Close() |
||||
if resp.StatusCode != http.StatusOK { |
||||
fmt.Fprintf(os.Stderr, "got HTTP status code %v for %v\n", resp.StatusCode, r.url) |
||||
os.Exit(1) |
||||
} |
||||
if err := r.parse(&bb, resp.Body); err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
fmt.Fprintf(&bb, "\n") |
||||
} |
||||
b, err := format.Source(bb.Bytes()) |
||||
if err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
if err := ioutil.WriteFile("const.go", b, 0644); err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
} |
||||
|
||||
func parseDSCPRegistry(w io.Writer, r io.Reader) error { |
||||
dec := xml.NewDecoder(r) |
||||
var dr dscpRegistry |
||||
if err := dec.Decode(&dr); err != nil { |
||||
return err |
||||
} |
||||
fmt.Fprintf(w, "// %s, Updated: %s\n", dr.Title, dr.Updated) |
||||
fmt.Fprintf(w, "const (\n") |
||||
for _, dr := range dr.escapeDSCP() { |
||||
fmt.Fprintf(w, "DiffServ%s = %#02x", dr.Name, dr.Value) |
||||
fmt.Fprintf(w, "// %s\n", dr.OrigName) |
||||
} |
||||
for _, er := range dr.escapeECN() { |
||||
fmt.Fprintf(w, "%s = %#02x", er.Descr, er.Value) |
||||
fmt.Fprintf(w, "// %s\n", er.OrigDescr) |
||||
} |
||||
fmt.Fprintf(w, ")\n") |
||||
return nil |
||||
} |
||||
|
||||
type dscpRegistry struct { |
||||
XMLName xml.Name `xml:"registry"` |
||||
Title string `xml:"title"` |
||||
Updated string `xml:"updated"` |
||||
Note string `xml:"note"` |
||||
Registries []struct { |
||||
Title string `xml:"title"` |
||||
Registries []struct { |
||||
Title string `xml:"title"` |
||||
Records []struct { |
||||
Name string `xml:"name"` |
||||
Space string `xml:"space"` |
||||
} `xml:"record"` |
||||
} `xml:"registry"` |
||||
Records []struct { |
||||
Value string `xml:"value"` |
||||
Descr string `xml:"description"` |
||||
} `xml:"record"` |
||||
} `xml:"registry"` |
||||
} |
||||
|
||||
type canonDSCPRecord struct { |
||||
OrigName string |
||||
Name string |
||||
Value int |
||||
} |
||||
|
||||
func (drr *dscpRegistry) escapeDSCP() []canonDSCPRecord { |
||||
var drs []canonDSCPRecord |
||||
for _, preg := range drr.Registries { |
||||
if !strings.Contains(preg.Title, "Differentiated Services Field Codepoints") { |
||||
continue |
||||
} |
||||
for _, reg := range preg.Registries { |
||||
if !strings.Contains(reg.Title, "Pool 1 Codepoints") { |
||||
continue |
||||
} |
||||
drs = make([]canonDSCPRecord, len(reg.Records)) |
||||
sr := strings.NewReplacer( |
||||
"+", "", |
||||
"-", "", |
||||
"/", "", |
||||
".", "", |
||||
" ", "", |
||||
) |
||||
for i, dr := range reg.Records { |
||||
s := strings.TrimSpace(dr.Name) |
||||
drs[i].OrigName = s |
||||
drs[i].Name = sr.Replace(s) |
||||
n, err := strconv.ParseUint(dr.Space, 2, 8) |
||||
if err != nil { |
||||
continue |
||||
} |
||||
drs[i].Value = int(n) << 2 |
||||
} |
||||
} |
||||
} |
||||
return drs |
||||
} |
||||
|
||||
type canonECNRecord struct { |
||||
OrigDescr string |
||||
Descr string |
||||
Value int |
||||
} |
||||
|
||||
func (drr *dscpRegistry) escapeECN() []canonECNRecord { |
||||
var ers []canonECNRecord |
||||
for _, reg := range drr.Registries { |
||||
if !strings.Contains(reg.Title, "ECN Field") { |
||||
continue |
||||
} |
||||
ers = make([]canonECNRecord, len(reg.Records)) |
||||
sr := strings.NewReplacer( |
||||
"Capable", "", |
||||
"Not-ECT", "", |
||||
"ECT(1)", "", |
||||
"ECT(0)", "", |
||||
"CE", "", |
||||
"(", "", |
||||
")", "", |
||||
"+", "", |
||||
"-", "", |
||||
"/", "", |
||||
".", "", |
||||
" ", "", |
||||
) |
||||
for i, er := range reg.Records { |
||||
s := strings.TrimSpace(er.Descr) |
||||
ers[i].OrigDescr = s |
||||
ss := strings.Split(s, " ") |
||||
if len(ss) > 1 { |
||||
ers[i].Descr = strings.Join(ss[1:], " ") |
||||
} else { |
||||
ers[i].Descr = ss[0] |
||||
} |
||||
ers[i].Descr = sr.Replace(er.Descr) |
||||
n, err := strconv.ParseUint(er.Value, 2, 8) |
||||
if err != nil { |
||||
continue |
||||
} |
||||
ers[i].Value = int(n) |
||||
} |
||||
} |
||||
return ers |
||||
} |
||||
|
||||
func parseProtocolNumbers(w io.Writer, r io.Reader) error { |
||||
dec := xml.NewDecoder(r) |
||||
var pn protocolNumbers |
||||
if err := dec.Decode(&pn); err != nil { |
||||
return err |
||||
} |
||||
prs := pn.escape() |
||||
prs = append([]canonProtocolRecord{{ |
||||
Name: "IP", |
||||
Descr: "IPv4 encapsulation, pseudo protocol number", |
||||
Value: 0, |
||||
}}, prs...) |
||||
fmt.Fprintf(w, "// %s, Updated: %s\n", pn.Title, pn.Updated) |
||||
fmt.Fprintf(w, "const (\n") |
||||
for _, pr := range prs { |
||||
if pr.Name == "" { |
||||
continue |
||||
} |
||||
fmt.Fprintf(w, "Protocol%s = %d", pr.Name, pr.Value) |
||||
s := pr.Descr |
||||
if s == "" { |
||||
s = pr.OrigName |
||||
} |
||||
fmt.Fprintf(w, "// %s\n", s) |
||||
} |
||||
fmt.Fprintf(w, ")\n") |
||||
return nil |
||||
} |
||||
|
||||
type protocolNumbers struct { |
||||
XMLName xml.Name `xml:"registry"` |
||||
Title string `xml:"title"` |
||||
Updated string `xml:"updated"` |
||||
RegTitle string `xml:"registry>title"` |
||||
Note string `xml:"registry>note"` |
||||
Records []struct { |
||||
Value string `xml:"value"` |
||||
Name string `xml:"name"` |
||||
Descr string `xml:"description"` |
||||
} `xml:"registry>record"` |
||||
} |
||||
|
||||
type canonProtocolRecord struct { |
||||
OrigName string |
||||
Name string |
||||
Descr string |
||||
Value int |
||||
} |
||||
|
||||
func (pn *protocolNumbers) escape() []canonProtocolRecord { |
||||
prs := make([]canonProtocolRecord, len(pn.Records)) |
||||
sr := strings.NewReplacer( |
||||
"-in-", "in", |
||||
"-within-", "within", |
||||
"-over-", "over", |
||||
"+", "P", |
||||
"-", "", |
||||
"/", "", |
||||
".", "", |
||||
" ", "", |
||||
) |
||||
for i, pr := range pn.Records { |
||||
if strings.Contains(pr.Name, "Deprecated") || |
||||
strings.Contains(pr.Name, "deprecated") { |
||||
continue |
||||
} |
||||
prs[i].OrigName = pr.Name |
||||
s := strings.TrimSpace(pr.Name) |
||||
switch pr.Name { |
||||
case "ISIS over IPv4": |
||||
prs[i].Name = "ISIS" |
||||
case "manet": |
||||
prs[i].Name = "MANET" |
||||
default: |
||||
prs[i].Name = sr.Replace(s) |
||||
} |
||||
ss := strings.Split(pr.Descr, "\n") |
||||
for i := range ss { |
||||
ss[i] = strings.TrimSpace(ss[i]) |
||||
} |
||||
if len(ss) > 1 { |
||||
prs[i].Descr = strings.Join(ss, " ") |
||||
} else { |
||||
prs[i].Descr = ss[0] |
||||
} |
||||
prs[i].Value, _ = strconv.Atoi(pr.Value) |
||||
} |
||||
return prs |
||||
} |
||||
|
||||
func parseAddrFamilyNumbers(w io.Writer, r io.Reader) error { |
||||
dec := xml.NewDecoder(r) |
||||
var afn addrFamilylNumbers |
||||
if err := dec.Decode(&afn); err != nil { |
||||
return err |
||||
} |
||||
afrs := afn.escape() |
||||
fmt.Fprintf(w, "// %s, Updated: %s\n", afn.Title, afn.Updated) |
||||
fmt.Fprintf(w, "const (\n") |
||||
for _, afr := range afrs { |
||||
if afr.Name == "" { |
||||
continue |
||||
} |
||||
fmt.Fprintf(w, "AddrFamily%s = %d", afr.Name, afr.Value) |
||||
fmt.Fprintf(w, "// %s\n", afr.Descr) |
||||
} |
||||
fmt.Fprintf(w, ")\n") |
||||
return nil |
||||
} |
||||
|
||||
type addrFamilylNumbers struct { |
||||
XMLName xml.Name `xml:"registry"` |
||||
Title string `xml:"title"` |
||||
Updated string `xml:"updated"` |
||||
RegTitle string `xml:"registry>title"` |
||||
Note string `xml:"registry>note"` |
||||
Records []struct { |
||||
Value string `xml:"value"` |
||||
Descr string `xml:"description"` |
||||
} `xml:"registry>record"` |
||||
} |
||||
|
||||
type canonAddrFamilyRecord struct { |
||||
Name string |
||||
Descr string |
||||
Value int |
||||
} |
||||
|
||||
func (afn *addrFamilylNumbers) escape() []canonAddrFamilyRecord { |
||||
afrs := make([]canonAddrFamilyRecord, len(afn.Records)) |
||||
sr := strings.NewReplacer( |
||||
"IP version 4", "IPv4", |
||||
"IP version 6", "IPv6", |
||||
"Identifier", "ID", |
||||
"-", "", |
||||
"-", "", |
||||
"/", "", |
||||
".", "", |
||||
" ", "", |
||||
) |
||||
for i, afr := range afn.Records { |
||||
if strings.Contains(afr.Descr, "Unassigned") || |
||||
strings.Contains(afr.Descr, "Reserved") { |
||||
continue |
||||
} |
||||
afrs[i].Descr = afr.Descr |
||||
s := strings.TrimSpace(afr.Descr) |
||||
switch s { |
||||
case "IP (IP version 4)": |
||||
afrs[i].Name = "IPv4" |
||||
case "IP6 (IP version 6)": |
||||
afrs[i].Name = "IPv6" |
||||
case "AFI for L2VPN information": |
||||
afrs[i].Name = "L2VPN" |
||||
case "E.164 with NSAP format subaddress": |
||||
afrs[i].Name = "E164withSubaddress" |
||||
case "MT IP: Multi-Topology IP version 4": |
||||
afrs[i].Name = "MTIPv4" |
||||
case "MAC/24": |
||||
afrs[i].Name = "MACFinal24bits" |
||||
case "MAC/40": |
||||
afrs[i].Name = "MACFinal40bits" |
||||
case "IPv6/64": |
||||
afrs[i].Name = "IPv6Initial64bits" |
||||
default: |
||||
n := strings.Index(s, "(") |
||||
if n > 0 { |
||||
s = s[:n] |
||||
} |
||||
n = strings.Index(s, ":") |
||||
if n > 0 { |
||||
s = s[:n] |
||||
} |
||||
afrs[i].Name = sr.Replace(s) |
||||
} |
||||
afrs[i].Value, _ = strconv.Atoi(afr.Value) |
||||
} |
||||
return afrs |
||||
} |
@ -0,0 +1,44 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,44 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,44 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,49 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <linux/in.h> |
||||
#include <linux/in6.h> |
||||
|
||||
#define _GNU_SOURCE |
||||
#include <sys/socket.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type mmsghdr C.struct_mmsghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofMmsghdr = C.sizeof_struct_mmsghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,47 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type mmsghdr C.struct_mmsghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofMmsghdr = C.sizeof_struct_mmsghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,44 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,44 @@ |
||||
// 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package socket |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysAF_UNSPEC = C.AF_UNSPEC |
||||
sysAF_INET = C.AF_INET |
||||
sysAF_INET6 = C.AF_INET6 |
||||
|
||||
sysSOCK_RAW = C.SOCK_RAW |
||||
) |
||||
|
||||
type iovec C.struct_iovec |
||||
|
||||
type msghdr C.struct_msghdr |
||||
|
||||
type cmsghdr C.struct_cmsghdr |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type sockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
const ( |
||||
sizeofIovec = C.sizeof_struct_iovec |
||||
sizeofMsghdr = C.sizeof_struct_msghdr |
||||
sizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
|
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
) |
@ -0,0 +1,77 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_STRIPHDR = C.IP_STRIPHDR |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
sysIP_BOUND_IF = C.IP_BOUND_IF |
||||
sysIP_PKTINFO = C.IP_PKTINFO |
||||
sysIP_RECVPKTINFO = C.IP_RECVPKTINFO |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF |
||||
sysIP_MULTICAST_IFINDEX = C.IP_MULTICAST_IFINDEX |
||||
sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP |
||||
sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP |
||||
sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE |
||||
sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE |
||||
sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP |
||||
sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP |
||||
sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP |
||||
sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP |
||||
sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE |
||||
sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE |
||||
|
||||
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage |
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofInetPktinfo = C.sizeof_struct_in_pktinfo |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
sizeofIPMreqn = C.sizeof_struct_ip_mreqn |
||||
sizeofIPMreqSource = C.sizeof_struct_ip_mreq_source |
||||
sizeofGroupReq = C.sizeof_struct_group_req |
||||
sizeofGroupSourceReq = C.sizeof_struct_group_source_req |
||||
) |
||||
|
||||
type sockaddrStorage C.struct_sockaddr_storage |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type inetPktinfo C.struct_in_pktinfo |
||||
|
||||
type ipMreq C.struct_ip_mreq |
||||
|
||||
type ipMreqn C.struct_ip_mreqn |
||||
|
||||
type ipMreqSource C.struct_ip_mreq_source |
||||
|
||||
type groupReq C.struct_group_req |
||||
|
||||
type groupSourceReq C.struct_group_source_req |
@ -0,0 +1,38 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
) |
||||
|
||||
type ipMreq C.struct_ip_mreq |
@ -0,0 +1,75 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_SENDSRCADDR = C.IP_SENDSRCADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_ONESBCAST = C.IP_ONESBCAST |
||||
sysIP_BINDANY = C.IP_BINDANY |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
sysIP_MINTTL = C.IP_MINTTL |
||||
sysIP_DONTFRAG = C.IP_DONTFRAG |
||||
sysIP_RECVTOS = C.IP_RECVTOS |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
sysIP_MULTICAST_VIF = C.IP_MULTICAST_VIF |
||||
sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP |
||||
sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP |
||||
sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE |
||||
sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE |
||||
sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP |
||||
sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP |
||||
sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP |
||||
sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP |
||||
sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE |
||||
sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE |
||||
|
||||
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage |
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
sizeofIPMreqn = C.sizeof_struct_ip_mreqn |
||||
sizeofIPMreqSource = C.sizeof_struct_ip_mreq_source |
||||
sizeofGroupReq = C.sizeof_struct_group_req |
||||
sizeofGroupSourceReq = C.sizeof_struct_group_source_req |
||||
) |
||||
|
||||
type sockaddrStorage C.struct_sockaddr_storage |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type ipMreq C.struct_ip_mreq |
||||
|
||||
type ipMreqn C.struct_ip_mreqn |
||||
|
||||
type ipMreqSource C.struct_ip_mreq_source |
||||
|
||||
type groupReq C.struct_group_req |
||||
|
||||
type groupSourceReq C.struct_group_source_req |
@ -0,0 +1,122 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <time.h> |
||||
|
||||
#include <linux/errqueue.h> |
||||
#include <linux/icmp.h> |
||||
#include <linux/in.h> |
||||
#include <linux/filter.h> |
||||
#include <sys/socket.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_ROUTER_ALERT = C.IP_ROUTER_ALERT |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_PKTINFO = C.IP_PKTINFO |
||||
sysIP_PKTOPTIONS = C.IP_PKTOPTIONS |
||||
sysIP_MTU_DISCOVER = C.IP_MTU_DISCOVER |
||||
sysIP_RECVERR = C.IP_RECVERR |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
sysIP_RECVTOS = C.IP_RECVTOS |
||||
sysIP_MTU = C.IP_MTU |
||||
sysIP_FREEBIND = C.IP_FREEBIND |
||||
sysIP_TRANSPARENT = C.IP_TRANSPARENT |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_ORIGDSTADDR = C.IP_ORIGDSTADDR |
||||
sysIP_RECVORIGDSTADDR = C.IP_RECVORIGDSTADDR |
||||
sysIP_MINTTL = C.IP_MINTTL |
||||
sysIP_NODEFRAG = C.IP_NODEFRAG |
||||
sysIP_UNICAST_IF = C.IP_UNICAST_IF |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE |
||||
sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE |
||||
sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP |
||||
sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP |
||||
sysIP_MSFILTER = C.IP_MSFILTER |
||||
sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP |
||||
sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP |
||||
sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP |
||||
sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP |
||||
sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE |
||||
sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE |
||||
sysMCAST_MSFILTER = C.MCAST_MSFILTER |
||||
sysIP_MULTICAST_ALL = C.IP_MULTICAST_ALL |
||||
|
||||
//sysIP_PMTUDISC_DONT = C.IP_PMTUDISC_DONT
|
||||
//sysIP_PMTUDISC_WANT = C.IP_PMTUDISC_WANT
|
||||
//sysIP_PMTUDISC_DO = C.IP_PMTUDISC_DO
|
||||
//sysIP_PMTUDISC_PROBE = C.IP_PMTUDISC_PROBE
|
||||
//sysIP_PMTUDISC_INTERFACE = C.IP_PMTUDISC_INTERFACE
|
||||
//sysIP_PMTUDISC_OMIT = C.IP_PMTUDISC_OMIT
|
||||
|
||||
sysICMP_FILTER = C.ICMP_FILTER |
||||
|
||||
sysSO_EE_ORIGIN_NONE = C.SO_EE_ORIGIN_NONE |
||||
sysSO_EE_ORIGIN_LOCAL = C.SO_EE_ORIGIN_LOCAL |
||||
sysSO_EE_ORIGIN_ICMP = C.SO_EE_ORIGIN_ICMP |
||||
sysSO_EE_ORIGIN_ICMP6 = C.SO_EE_ORIGIN_ICMP6 |
||||
sysSO_EE_ORIGIN_TXSTATUS = C.SO_EE_ORIGIN_TXSTATUS |
||||
sysSO_EE_ORIGIN_TIMESTAMPING = C.SO_EE_ORIGIN_TIMESTAMPING |
||||
|
||||
sysSOL_SOCKET = C.SOL_SOCKET |
||||
sysSO_ATTACH_FILTER = C.SO_ATTACH_FILTER |
||||
|
||||
sizeofKernelSockaddrStorage = C.sizeof_struct___kernel_sockaddr_storage |
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofInetPktinfo = C.sizeof_struct_in_pktinfo |
||||
sizeofSockExtendedErr = C.sizeof_struct_sock_extended_err |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
sizeofIPMreqn = C.sizeof_struct_ip_mreqn |
||||
sizeofIPMreqSource = C.sizeof_struct_ip_mreq_source |
||||
sizeofGroupReq = C.sizeof_struct_group_req |
||||
sizeofGroupSourceReq = C.sizeof_struct_group_source_req |
||||
|
||||
sizeofICMPFilter = C.sizeof_struct_icmp_filter |
||||
|
||||
sizeofSockFprog = C.sizeof_struct_sock_fprog |
||||
) |
||||
|
||||
type kernelSockaddrStorage C.struct___kernel_sockaddr_storage |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type inetPktinfo C.struct_in_pktinfo |
||||
|
||||
type sockExtendedErr C.struct_sock_extended_err |
||||
|
||||
type ipMreq C.struct_ip_mreq |
||||
|
||||
type ipMreqn C.struct_ip_mreqn |
||||
|
||||
type ipMreqSource C.struct_ip_mreq_source |
||||
|
||||
type groupReq C.struct_group_req |
||||
|
||||
type groupSourceReq C.struct_group_source_req |
||||
|
||||
type icmpFilter C.struct_icmp_filter |
||||
|
||||
type sockFProg C.struct_sock_fprog |
||||
|
||||
type sockFilter C.struct_sock_filter |
@ -0,0 +1,37 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
) |
||||
|
||||
type ipMreq C.struct_ip_mreq |
@ -0,0 +1,37 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
) |
||||
|
||||
type ipMreq C.struct_ip_mreq |
@ -0,0 +1,84 @@ |
||||
// Copyright 2014 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
|
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
|
||||
package ipv4 |
||||
|
||||
/* |
||||
#include <sys/socket.h> |
||||
|
||||
#include <netinet/in.h> |
||||
*/ |
||||
import "C" |
||||
|
||||
const ( |
||||
sysIP_OPTIONS = C.IP_OPTIONS |
||||
sysIP_HDRINCL = C.IP_HDRINCL |
||||
sysIP_TOS = C.IP_TOS |
||||
sysIP_TTL = C.IP_TTL |
||||
sysIP_RECVOPTS = C.IP_RECVOPTS |
||||
sysIP_RECVRETOPTS = C.IP_RECVRETOPTS |
||||
sysIP_RECVDSTADDR = C.IP_RECVDSTADDR |
||||
sysIP_RETOPTS = C.IP_RETOPTS |
||||
sysIP_RECVIF = C.IP_RECVIF |
||||
sysIP_RECVSLLA = C.IP_RECVSLLA |
||||
sysIP_RECVTTL = C.IP_RECVTTL |
||||
|
||||
sysIP_MULTICAST_IF = C.IP_MULTICAST_IF |
||||
sysIP_MULTICAST_TTL = C.IP_MULTICAST_TTL |
||||
sysIP_MULTICAST_LOOP = C.IP_MULTICAST_LOOP |
||||
sysIP_ADD_MEMBERSHIP = C.IP_ADD_MEMBERSHIP |
||||
sysIP_DROP_MEMBERSHIP = C.IP_DROP_MEMBERSHIP |
||||
sysIP_BLOCK_SOURCE = C.IP_BLOCK_SOURCE |
||||
sysIP_UNBLOCK_SOURCE = C.IP_UNBLOCK_SOURCE |
||||
sysIP_ADD_SOURCE_MEMBERSHIP = C.IP_ADD_SOURCE_MEMBERSHIP |
||||
sysIP_DROP_SOURCE_MEMBERSHIP = C.IP_DROP_SOURCE_MEMBERSHIP |
||||
sysIP_NEXTHOP = C.IP_NEXTHOP |
||||
|
||||
sysIP_PKTINFO = C.IP_PKTINFO |
||||
sysIP_RECVPKTINFO = C.IP_RECVPKTINFO |
||||
sysIP_DONTFRAG = C.IP_DONTFRAG |
||||
|
||||
sysIP_BOUND_IF = C.IP_BOUND_IF |
||||
sysIP_UNSPEC_SRC = C.IP_UNSPEC_SRC |
||||
sysIP_BROADCAST_TTL = C.IP_BROADCAST_TTL |
||||
sysIP_DHCPINIT_IF = C.IP_DHCPINIT_IF |
||||
|
||||
sysIP_REUSEADDR = C.IP_REUSEADDR |
||||
sysIP_DONTROUTE = C.IP_DONTROUTE |
||||
sysIP_BROADCAST = C.IP_BROADCAST |
||||
|
||||
sysMCAST_JOIN_GROUP = C.MCAST_JOIN_GROUP |
||||
sysMCAST_LEAVE_GROUP = C.MCAST_LEAVE_GROUP |
||||
sysMCAST_BLOCK_SOURCE = C.MCAST_BLOCK_SOURCE |
||||
sysMCAST_UNBLOCK_SOURCE = C.MCAST_UNBLOCK_SOURCE |
||||
sysMCAST_JOIN_SOURCE_GROUP = C.MCAST_JOIN_SOURCE_GROUP |
||||
sysMCAST_LEAVE_SOURCE_GROUP = C.MCAST_LEAVE_SOURCE_GROUP |
||||
|
||||
sizeofSockaddrStorage = C.sizeof_struct_sockaddr_storage |
||||
sizeofSockaddrInet = C.sizeof_struct_sockaddr_in |
||||
sizeofInetPktinfo = C.sizeof_struct_in_pktinfo |
||||
|
||||
sizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
sizeofIPMreqSource = C.sizeof_struct_ip_mreq_source |
||||
sizeofGroupReq = C.sizeof_struct_group_req |
||||
sizeofGroupSourceReq = C.sizeof_struct_group_source_req |
||||
) |
||||
|
||||
type sockaddrStorage C.struct_sockaddr_storage |
||||
|
||||
type sockaddrInet C.struct_sockaddr_in |
||||
|
||||
type inetPktinfo C.struct_in_pktinfo |
||||
|
||||
type ipMreq C.struct_ip_mreq |
||||
|
||||
type ipMreqSource C.struct_ip_mreq_source |
||||
|
||||
type groupReq C.struct_group_req |
||||
|
||||
type groupSourceReq C.struct_group_source_req |
@ -0,0 +1,199 @@ |
||||
// 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.
|
||||
|
||||
// +build ignore
|
||||
|
||||
//go:generate go run gen.go
|
||||
|
||||
// This program generates system adaptation constants and types,
|
||||
// internet protocol constants and tables by reading template files
|
||||
// and IANA protocol registries.
|
||||
package main |
||||
|
||||
import ( |
||||
"bytes" |
||||
"encoding/xml" |
||||
"fmt" |
||||
"go/format" |
||||
"io" |
||||
"io/ioutil" |
||||
"net/http" |
||||
"os" |
||||
"os/exec" |
||||
"runtime" |
||||
"strconv" |
||||
"strings" |
||||
) |
||||
|
||||
func main() { |
||||
if err := genzsys(); err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
if err := geniana(); err != nil { |
||||
fmt.Fprintln(os.Stderr, err) |
||||
os.Exit(1) |
||||
} |
||||
} |
||||
|
||||
func genzsys() error { |
||||
defs := "defs_" + runtime.GOOS + ".go" |
||||
f, err := os.Open(defs) |
||||
if err != nil { |
||||
if os.IsNotExist(err) { |
||||
return nil |
||||
} |
||||
return err |
||||
} |
||||
f.Close() |
||||
cmd := exec.Command("go", "tool", "cgo", "-godefs", defs) |
||||
b, err := cmd.Output() |
||||
if err != nil { |
||||
return err |
||||
} |
||||
b, err = format.Source(b) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
zsys := "zsys_" + runtime.GOOS + ".go" |
||||
switch runtime.GOOS { |
||||
case "freebsd", "linux": |
||||
zsys = "zsys_" + runtime.GOOS + "_" + runtime.GOARCH + ".go" |
||||
} |
||||
if err := ioutil.WriteFile(zsys, b, 0644); err != nil { |
||||
return err |
||||
} |
||||
return nil |
||||
} |
||||
|
||||
var registries = []struct { |
||||
url string |
||||
parse func(io.Writer, io.Reader) error |
||||
}{ |
||||
{ |
||||
"https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml", |
||||
parseICMPv4Parameters, |
||||
}, |
||||
} |
||||
|
||||
func geniana() error { |
||||
var bb bytes.Buffer |
||||
fmt.Fprintf(&bb, "// go generate gen.go\n") |
||||
fmt.Fprintf(&bb, "// Code generated by the command above; DO NOT EDIT.\n\n") |
||||
fmt.Fprintf(&bb, "package ipv4\n\n") |
||||
for _, r := range registries { |
||||
resp, err := http.Get(r.url) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
defer resp.Body.Close() |
||||
if resp.StatusCode != http.StatusOK { |
||||
return fmt.Errorf("got HTTP status code %v for %v\n", resp.StatusCode, r.url) |
||||
} |
||||
if err := r.parse(&bb, resp.Body); err != nil { |
||||
return err |
||||
} |
||||
fmt.Fprintf(&bb, "\n") |
||||
} |
||||
b, err := format.Source(bb.Bytes()) |
||||
if err != nil { |
||||
return err |
||||
} |
||||
if err := ioutil.WriteFile("iana.go", b, 0644); err != nil { |
||||
return err |
||||
} |
||||
return nil |
||||
} |
||||
|
||||
func parseICMPv4Parameters(w io.Writer, r io.Reader) error { |
||||
dec := xml.NewDecoder(r) |
||||
var icp icmpv4Parameters |
||||
if err := dec.Decode(&icp); err != nil { |
||||
return err |
||||
} |
||||
prs := icp.escape() |
||||
fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) |
||||
fmt.Fprintf(w, "const (\n") |
||||
for _, pr := range prs { |
||||
if pr.Descr == "" { |
||||
continue |
||||
} |
||||
fmt.Fprintf(w, "ICMPType%s ICMPType = %d", pr.Descr, pr.Value) |
||||
fmt.Fprintf(w, "// %s\n", pr.OrigDescr) |
||||
} |
||||
fmt.Fprintf(w, ")\n\n") |
||||
fmt.Fprintf(w, "// %s, Updated: %s\n", icp.Title, icp.Updated) |
||||
fmt.Fprintf(w, "var icmpTypes = map[ICMPType]string{\n") |
||||
for _, pr := range prs { |
||||
if pr.Descr == "" { |
||||
continue |
||||
} |
||||
fmt.Fprintf(w, "%d: %q,\n", pr.Value, strings.ToLower(pr.OrigDescr)) |
||||
} |
||||
fmt.Fprintf(w, "}\n") |
||||
return nil |
||||
} |
||||
|
||||
type icmpv4Parameters struct { |
||||
XMLName xml.Name `xml:"registry"` |
||||
Title string `xml:"title"` |
||||
Updated string `xml:"updated"` |
||||
Registries []struct { |
||||
Title string `xml:"title"` |
||||
Records []struct { |
||||
Value string `xml:"value"` |
||||
Descr string `xml:"description"` |
||||
} `xml:"record"` |
||||
} `xml:"registry"` |
||||
} |
||||
|
||||
type canonICMPv4ParamRecord struct { |
||||
OrigDescr string |
||||
Descr string |
||||
Value int |
||||
} |
||||
|
||||
func (icp *icmpv4Parameters) escape() []canonICMPv4ParamRecord { |
||||
id := -1 |
||||
for i, r := range icp.Registries { |
||||
if strings.Contains(r.Title, "Type") || strings.Contains(r.Title, "type") { |
||||
id = i |
||||
break |
||||
} |
||||
} |
||||
if id < 0 { |
||||
return nil |
||||
} |
||||
prs := make([]canonICMPv4ParamRecord, len(icp.Registries[id].Records)) |
||||
sr := strings.NewReplacer( |
||||
"Messages", "", |
||||
"Message", "", |
||||
"ICMP", "", |
||||
"+", "P", |
||||
"-", "", |
||||
"/", "", |
||||
".", "", |
||||
" ", "", |
||||
) |
||||
for i, pr := range icp.Registries[id].Records { |
||||
if strings.Contains(pr.Descr, "Reserved") || |
||||
strings.Contains(pr.Descr, "Unassigned") || |
||||
strings.Contains(pr.Descr, "Deprecated") || |
||||
strings.Contains(pr.Descr, "Experiment") || |
||||
strings.Contains(pr.Descr, "experiment") { |
||||
continue |
||||
} |
||||
ss := strings.Split(pr.Descr, "\n") |
||||
if len(ss) > 1 { |
||||
prs[i].Descr = strings.Join(ss, " ") |
||||
} else { |
||||
prs[i].Descr = ss[0] |
||||
} |
||||
s := strings.TrimSpace(prs[i].Descr) |
||||
prs[i].OrigDescr = s |
||||
prs[i].Descr = sr.Replace(s) |
||||
prs[i].Value, _ = strconv.Atoi(pr.Value) |
||||
} |
||||
return prs |
||||
} |
@ -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. |
@ -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. |
@ -0,0 +1,2 @@ |
||||
_obj/ |
||||
unix.test |
@ -0,0 +1,98 @@ |
||||
// 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.
|
||||
|
||||
// +build ignore
|
||||
|
||||
// mkpost processes the output of cgo -godefs to
|
||||
// modify the generated types. It is used to clean up
|
||||
// the sys API in an architecture specific manner.
|
||||
//
|
||||
// mkpost is run after cgo -godefs; see README.md.
|
||||
package main |
||||
|
||||
import ( |
||||
"bytes" |
||||
"fmt" |
||||
"go/format" |
||||
"io/ioutil" |
||||
"log" |
||||
"os" |
||||
"regexp" |
||||
) |
||||
|
||||
func main() { |
||||
// Get the OS and architecture (using GOARCH_TARGET if it exists)
|
||||
goos := os.Getenv("GOOS") |
||||
goarch := os.Getenv("GOARCH_TARGET") |
||||
if goarch == "" { |
||||
goarch = os.Getenv("GOARCH") |
||||
} |
||||
// Check that we are using the new build system if we should be.
|
||||
if goos == "linux" && goarch != "sparc64" { |
||||
if os.Getenv("GOLANG_SYS_BUILD") != "docker" { |
||||
os.Stderr.WriteString("In the new build system, mkpost should not be called directly.\n") |
||||
os.Stderr.WriteString("See README.md\n") |
||||
os.Exit(1) |
||||
} |
||||
} |
||||
|
||||
b, err := ioutil.ReadAll(os.Stdin) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
|
||||
// Intentionally export __val fields in Fsid and Sigset_t
|
||||
valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__val(\s+\S+\s+)}`) |
||||
b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$3}")) |
||||
|
||||
// If we have empty Ptrace structs, we should delete them. Only s390x emits
|
||||
// nonempty Ptrace structs.
|
||||
ptraceRexexp := regexp.MustCompile(`type Ptrace((Psw|Fpregs|Per) struct {\s*})`) |
||||
b = ptraceRexexp.ReplaceAll(b, nil) |
||||
|
||||
// Replace the control_regs union with a blank identifier for now.
|
||||
controlRegsRegex := regexp.MustCompile(`(Control_regs)\s+\[0\]uint64`) |
||||
b = controlRegsRegex.ReplaceAll(b, []byte("_ [0]uint64")) |
||||
|
||||
// Remove fields that are added by glibc
|
||||
// Note that this is unstable as the identifers are private.
|
||||
removeFieldsRegex := regexp.MustCompile(`X__glibc\S*`) |
||||
b = removeFieldsRegex.ReplaceAll(b, []byte("_")) |
||||
|
||||
// Convert [65]int8 to [65]byte in Utsname members to simplify
|
||||
// conversion to string; see golang.org/issue/20753
|
||||
convertUtsnameRegex := regexp.MustCompile(`((Sys|Node|Domain)name|Release|Version|Machine)(\s+)\[(\d+)\]u?int8`) |
||||
b = convertUtsnameRegex.ReplaceAll(b, []byte("$1$3[$4]byte")) |
||||
|
||||
// Remove spare fields (e.g. in Statx_t)
|
||||
spareFieldsRegex := regexp.MustCompile(`X__spare\S*`) |
||||
b = spareFieldsRegex.ReplaceAll(b, []byte("_")) |
||||
|
||||
// Remove cgo padding fields
|
||||
removePaddingFieldsRegex := regexp.MustCompile(`Pad_cgo_\d+`) |
||||
b = removePaddingFieldsRegex.ReplaceAll(b, []byte("_")) |
||||
|
||||
// Remove padding, hidden, or unused fields
|
||||
removeFieldsRegex = regexp.MustCompile(`\b(X_\S+|Padding)`) |
||||
b = removeFieldsRegex.ReplaceAll(b, []byte("_")) |
||||
|
||||
// Remove the first line of warning from cgo
|
||||
b = b[bytes.IndexByte(b, '\n')+1:] |
||||
// Modify the command in the header to include:
|
||||
// mkpost, our own warning, and a build tag.
|
||||
replacement := fmt.Sprintf(`$1 | go run mkpost.go |
||||
// Code generated by the command above; see README.md. DO NOT EDIT.
|
||||
|
||||
// +build %s,%s`, goarch, goos)
|
||||
cgoCommandRegex := regexp.MustCompile(`(cgo -godefs .*)`) |
||||
b = cgoCommandRegex.ReplaceAll(b, []byte(replacement)) |
||||
|
||||
// gofmt
|
||||
b, err = format.Source(b) |
||||
if err != nil { |
||||
log.Fatal(err) |
||||
} |
||||
|
||||
os.Stdout.Write(b) |
||||
} |
@ -0,0 +1,236 @@ |
||||
// Copyright 2018 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
|
||||
// +build aix
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See also mkerrors.sh and mkall.sh |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#include <sys/types.h> |
||||
#include <sys/time.h> |
||||
#include <sys/limits.h> |
||||
#include <sys/un.h> |
||||
#include <utime.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/poll.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/statfs.h> |
||||
#include <sys/termio.h> |
||||
#include <sys/ioctl.h> |
||||
|
||||
#include <termios.h> |
||||
|
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
|
||||
|
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
PathMax = C.PATH_MAX |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
type off64 C.off64_t |
||||
type off C.off_t |
||||
type Mode_t C.mode_t |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type StTimespec C.struct_st_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
type Timeval32 C.struct_timeval32 |
||||
|
||||
type Timex C.struct_timex |
||||
|
||||
type Time_t C.time_t |
||||
|
||||
type Tms C.struct_tms |
||||
|
||||
type Utimbuf C.struct_utimbuf |
||||
|
||||
type Timezone C.struct_timezone |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit64 |
||||
|
||||
type Pid_t C.pid_t |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
type dev_t C.dev_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat |
||||
|
||||
type StatxTimestamp C.struct_statx_timestamp |
||||
|
||||
type Statx_t C.struct_statx |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
) |
||||
|
||||
type IfMsgHdr C.struct_if_msghdr |
||||
|
||||
// Misc
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
type Utsname C.struct_utsname |
||||
|
||||
type Ustat_t C.struct_ustat |
||||
|
||||
type Sigset_t C.sigset_t |
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_REMOVEDIR = C.AT_REMOVEDIR |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Termio C.struct_termio |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
//poll
|
||||
|
||||
type PollFd struct { |
||||
Fd int32 |
||||
Events uint16 |
||||
Revents uint16 |
||||
} |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
//flock_t
|
||||
|
||||
type Flock_t C.struct_flock64 |
||||
|
||||
// Statfs
|
||||
|
||||
type Fsid_t C.struct_fsid_t |
||||
type Fsid64_t C.struct_fsid64_t |
||||
|
||||
type Statfs_t C.struct_statfs |
||||
|
||||
const RNDGETENTCNT = 0x80045200 |
@ -0,0 +1,277 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define __DARWIN_UNIX03 0 |
||||
#define KERNEL |
||||
#define _DARWIN_USE_64_BIT_INODE |
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <unistd.h> |
||||
#include <mach/mach.h> |
||||
#include <mach/message.h> |
||||
#include <sys/event.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/param.h> |
||||
#include <sys/ptrace.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/time.h> |
||||
#include <sys/types.h> |
||||
#include <sys/uio.h> |
||||
#include <sys/un.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/wait.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/if_var.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
type Timeval32 C.struct_timeval32 |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat64 |
||||
|
||||
type Statfs_t C.struct_statfs64 |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Fstore_t C.struct_fstore |
||||
|
||||
type Radvisory_t C.struct_radvisory |
||||
|
||||
type Fbootstraptransfer_t C.struct_fbootstraptransfer |
||||
|
||||
type Log2phys_t C.struct_log2phys |
||||
|
||||
type Fsid C.struct_fsid |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet4Pktinfo C.struct_in_pktinfo |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Ptrace requests
|
||||
|
||||
const ( |
||||
PTRACE_TRACEME = C.PT_TRACE_ME |
||||
PTRACE_CONT = C.PT_CONTINUE |
||||
PTRACE_KILL = C.PT_KILL |
||||
) |
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr |
||||
SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2 |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type IfMsghdr C.struct_if_msghdr |
||||
|
||||
type IfData C.struct_if_data |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr |
||||
|
||||
type IfmaMsghdr2 C.struct_ifma_msghdr2 |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_REMOVEDIR = C.AT_REMOVEDIR |
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
// uname
|
||||
|
||||
type Utsname C.struct_utsname |
@ -0,0 +1,263 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define KERNEL |
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <stdio.h> |
||||
#include <unistd.h> |
||||
#include <sys/event.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/param.h> |
||||
#include <sys/ptrace.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/time.h> |
||||
#include <sys/types.h> |
||||
#include <sys/un.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/wait.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat |
||||
|
||||
type Statfs_t C.struct_statfs |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
type Fsid C.struct_fsid |
||||
|
||||
// File system limits
|
||||
|
||||
const ( |
||||
PathMax = C.PATH_MAX |
||||
) |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Ptrace requests
|
||||
|
||||
const ( |
||||
PTRACE_TRACEME = C.PT_TRACE_ME |
||||
PTRACE_CONT = C.PT_CONTINUE |
||||
PTRACE_KILL = C.PT_KILL |
||||
) |
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr |
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type IfMsghdr C.struct_if_msghdr |
||||
|
||||
type IfData C.struct_if_data |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr |
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname |
@ -0,0 +1,385 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define KERNEL |
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <stdio.h> |
||||
#include <unistd.h> |
||||
#include <sys/capability.h> |
||||
#include <sys/event.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/param.h> |
||||
#include <sys/ptrace.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/time.h> |
||||
#include <sys/types.h> |
||||
#include <sys/un.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/wait.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
// This structure is a duplicate of stat on FreeBSD 8-STABLE.
|
||||
// See /usr/include/sys/stat.h.
|
||||
struct stat8 { |
||||
#undef st_atimespec st_atim |
||||
#undef st_mtimespec st_mtim |
||||
#undef st_ctimespec st_ctim |
||||
#undef st_birthtimespec st_birthtim |
||||
__dev_t st_dev; |
||||
ino_t st_ino; |
||||
mode_t st_mode; |
||||
nlink_t st_nlink; |
||||
uid_t st_uid; |
||||
gid_t st_gid; |
||||
__dev_t st_rdev; |
||||
#if __BSD_VISIBLE |
||||
struct timespec st_atimespec; |
||||
struct timespec st_mtimespec; |
||||
struct timespec st_ctimespec; |
||||
#else |
||||
time_t st_atime; |
||||
long __st_atimensec; |
||||
time_t st_mtime; |
||||
long __st_mtimensec; |
||||
time_t st_ctime; |
||||
long __st_ctimensec; |
||||
#endif |
||||
off_t st_size; |
||||
blkcnt_t st_blocks; |
||||
blksize_t st_blksize; |
||||
fflags_t st_flags; |
||||
__uint32_t st_gen; |
||||
__int32_t st_lspare; |
||||
#if __BSD_VISIBLE |
||||
struct timespec st_birthtimespec; |
||||
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); |
||||
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); |
||||
#else |
||||
time_t st_birthtime; |
||||
long st_birthtimensec; |
||||
unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); |
||||
unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); |
||||
#endif |
||||
}; |
||||
|
||||
// This structure is a duplicate of if_data on FreeBSD 8-STABLE.
|
||||
// See /usr/include/net/if.h.
|
||||
struct if_data8 { |
||||
u_char ifi_type; |
||||
u_char ifi_physical; |
||||
u_char ifi_addrlen; |
||||
u_char ifi_hdrlen; |
||||
u_char ifi_link_state; |
||||
u_char ifi_spare_char1; |
||||
u_char ifi_spare_char2; |
||||
u_char ifi_datalen; |
||||
u_long ifi_mtu; |
||||
u_long ifi_metric; |
||||
u_long ifi_baudrate; |
||||
u_long ifi_ipackets; |
||||
u_long ifi_ierrors; |
||||
u_long ifi_opackets; |
||||
u_long ifi_oerrors; |
||||
u_long ifi_collisions; |
||||
u_long ifi_ibytes; |
||||
u_long ifi_obytes; |
||||
u_long ifi_imcasts; |
||||
u_long ifi_omcasts; |
||||
u_long ifi_iqdrops; |
||||
u_long ifi_noproto; |
||||
u_long ifi_hwassist; |
||||
// FIXME: these are now unions, so maybe need to change definitions?
|
||||
#undef ifi_epoch |
||||
time_t ifi_epoch; |
||||
#undef ifi_lastchange |
||||
struct timeval ifi_lastchange; |
||||
}; |
||||
|
||||
// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE.
|
||||
// See /usr/include/net/if.h.
|
||||
struct if_msghdr8 { |
||||
u_short ifm_msglen; |
||||
u_char ifm_version; |
||||
u_char ifm_type; |
||||
int ifm_addrs; |
||||
int ifm_flags; |
||||
u_short ifm_index; |
||||
struct if_data8 ifm_data; |
||||
}; |
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat8 |
||||
|
||||
type Statfs_t C.struct_statfs |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
type Fsid C.struct_fsid |
||||
|
||||
// File system limits
|
||||
|
||||
const ( |
||||
PathMax = C.PATH_MAX |
||||
) |
||||
|
||||
// Advice to Fadvise
|
||||
|
||||
const ( |
||||
FADV_NORMAL = C.POSIX_FADV_NORMAL |
||||
FADV_RANDOM = C.POSIX_FADV_RANDOM |
||||
FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL |
||||
FADV_WILLNEED = C.POSIX_FADV_WILLNEED |
||||
FADV_DONTNEED = C.POSIX_FADV_DONTNEED |
||||
FADV_NOREUSE = C.POSIX_FADV_NOREUSE |
||||
) |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPMreqn C.struct_ip_mreqn |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPMreqn = C.sizeof_struct_ip_mreqn |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Ptrace requests
|
||||
|
||||
const ( |
||||
PTRACE_TRACEME = C.PT_TRACE_ME |
||||
PTRACE_CONT = C.PT_CONTINUE |
||||
PTRACE_KILL = C.PT_KILL |
||||
) |
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
sizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr8 |
||||
sizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfData = C.sizeof_struct_if_data8 |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr |
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type ifMsghdr C.struct_if_msghdr |
||||
|
||||
type IfMsghdr C.struct_if_msghdr8 |
||||
|
||||
type ifData C.struct_if_data |
||||
|
||||
type IfData C.struct_if_data8 |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type IfmaMsghdr C.struct_ifma_msghdr |
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfZbuf = C.sizeof_struct_bpf_zbuf |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfZbuf C.struct_bpf_zbuf |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
type BpfZbufHeader C.struct_bpf_zbuf_header |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_REMOVEDIR = C.AT_REMOVEDIR |
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLINIGNEOF = C.POLLINIGNEOF |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
// Capabilities
|
||||
|
||||
type CapRights C.struct_cap_rights |
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname |
@ -0,0 +1,287 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define KERNEL |
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <stdio.h> |
||||
#include <unistd.h> |
||||
#include <sys/param.h> |
||||
#include <sys/types.h> |
||||
#include <sys/event.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/ptrace.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/sysctl.h> |
||||
#include <sys/time.h> |
||||
#include <sys/uio.h> |
||||
#include <sys/un.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/wait.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat |
||||
|
||||
type Statfs_t C.struct_statfs |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
type Fsid C.fsid_t |
||||
|
||||
// File system limits
|
||||
|
||||
const ( |
||||
PathMax = C.PATH_MAX |
||||
) |
||||
|
||||
// Advice to Fadvise
|
||||
|
||||
const ( |
||||
FADV_NORMAL = C.POSIX_FADV_NORMAL |
||||
FADV_RANDOM = C.POSIX_FADV_RANDOM |
||||
FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL |
||||
FADV_WILLNEED = C.POSIX_FADV_WILLNEED |
||||
FADV_DONTNEED = C.POSIX_FADV_DONTNEED |
||||
FADV_NOREUSE = C.POSIX_FADV_NOREUSE |
||||
) |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Ptrace requests
|
||||
|
||||
const ( |
||||
PTRACE_TRACEME = C.PT_TRACE_ME |
||||
PTRACE_CONT = C.PT_CONTINUE |
||||
PTRACE_KILL = C.PT_KILL |
||||
) |
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type IfMsghdr C.struct_if_msghdr |
||||
|
||||
type IfData C.struct_if_data |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
type Mclpool C.struct_mclpool |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
type BpfTimeval C.struct_bpf_timeval |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
// Sysctl
|
||||
|
||||
type Sysctlnode C.struct_sysctlnode |
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname |
||||
|
||||
// Clockinfo
|
||||
|
||||
const SizeofClockinfo = C.sizeof_struct_clockinfo |
||||
|
||||
type Clockinfo C.struct_clockinfo |
@ -0,0 +1,272 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define KERNEL |
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <stdio.h> |
||||
#include <unistd.h> |
||||
#include <sys/param.h> |
||||
#include <sys/types.h> |
||||
#include <sys/event.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/ptrace.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/time.h> |
||||
#include <sys/uio.h> |
||||
#include <sys/un.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/wait.h> |
||||
#include <uvm/uvmexp.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat |
||||
|
||||
type Statfs_t C.struct_statfs |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
type Fsid C.fsid_t |
||||
|
||||
// File system limits
|
||||
|
||||
const ( |
||||
PathMax = C.PATH_MAX |
||||
) |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Ptrace requests
|
||||
|
||||
const ( |
||||
PTRACE_TRACEME = C.PT_TRACE_ME |
||||
PTRACE_CONT = C.PT_CONTINUE |
||||
PTRACE_KILL = C.PT_KILL |
||||
) |
||||
|
||||
// Events (kqueue, kevent)
|
||||
|
||||
type Kevent_t C.struct_kevent |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type IfMsghdr C.struct_if_msghdr |
||||
|
||||
type IfData C.struct_if_data |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type IfAnnounceMsghdr C.struct_if_announcemsghdr |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
type Mclpool C.struct_mclpool |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
type BpfTimeval C.struct_bpf_timeval |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// fchmodat-like syscalls.
|
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
) |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
||||
|
||||
// Uname
|
||||
|
||||
type Utsname C.struct_utsname |
||||
|
||||
// Uvmexp
|
||||
|
||||
const SizeofUvmexp = C.sizeof_struct_uvmexp |
||||
|
||||
type Uvmexp C.struct_uvmexp |
@ -0,0 +1,266 @@ |
||||
// Copyright 2009 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
|
||||
|
||||
/* |
||||
Input to cgo -godefs. See README.md |
||||
*/ |
||||
|
||||
// +godefs map struct_in_addr [4]byte /* in_addr */
|
||||
// +godefs map struct_in6_addr [16]byte /* in6_addr */
|
||||
|
||||
package unix |
||||
|
||||
/* |
||||
#define KERNEL |
||||
// These defines ensure that builds done on newer versions of Solaris are
|
||||
// backwards-compatible with older versions of Solaris and
|
||||
// OpenSolaris-based derivatives.
|
||||
#define __USE_SUNOS_SOCKETS__ // msghdr
|
||||
#define __USE_LEGACY_PROTOTYPES__ // iovec
|
||||
#include <dirent.h> |
||||
#include <fcntl.h> |
||||
#include <netdb.h> |
||||
#include <limits.h> |
||||
#include <poll.h> |
||||
#include <signal.h> |
||||
#include <termios.h> |
||||
#include <termio.h> |
||||
#include <stdio.h> |
||||
#include <unistd.h> |
||||
#include <sys/mman.h> |
||||
#include <sys/mount.h> |
||||
#include <sys/param.h> |
||||
#include <sys/resource.h> |
||||
#include <sys/select.h> |
||||
#include <sys/signal.h> |
||||
#include <sys/socket.h> |
||||
#include <sys/stat.h> |
||||
#include <sys/statvfs.h> |
||||
#include <sys/time.h> |
||||
#include <sys/times.h> |
||||
#include <sys/types.h> |
||||
#include <sys/utsname.h> |
||||
#include <sys/un.h> |
||||
#include <sys/wait.h> |
||||
#include <net/bpf.h> |
||||
#include <net/if.h> |
||||
#include <net/if_dl.h> |
||||
#include <net/route.h> |
||||
#include <netinet/in.h> |
||||
#include <netinet/icmp6.h> |
||||
#include <netinet/tcp.h> |
||||
#include <ustat.h> |
||||
#include <utime.h> |
||||
|
||||
enum { |
||||
sizeofPtr = sizeof(void*), |
||||
}; |
||||
|
||||
union sockaddr_all { |
||||
struct sockaddr s1; // this one gets used for fields
|
||||
struct sockaddr_in s2; // these pad it out
|
||||
struct sockaddr_in6 s3; |
||||
struct sockaddr_un s4; |
||||
struct sockaddr_dl s5; |
||||
}; |
||||
|
||||
struct sockaddr_any { |
||||
struct sockaddr addr; |
||||
char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; |
||||
}; |
||||
|
||||
*/ |
||||
import "C" |
||||
|
||||
// Machine characteristics
|
||||
|
||||
const ( |
||||
SizeofPtr = C.sizeofPtr |
||||
SizeofShort = C.sizeof_short |
||||
SizeofInt = C.sizeof_int |
||||
SizeofLong = C.sizeof_long |
||||
SizeofLongLong = C.sizeof_longlong |
||||
PathMax = C.PATH_MAX |
||||
MaxHostNameLen = C.MAXHOSTNAMELEN |
||||
) |
||||
|
||||
// Basic types
|
||||
|
||||
type ( |
||||
_C_short C.short |
||||
_C_int C.int |
||||
_C_long C.long |
||||
_C_long_long C.longlong |
||||
) |
||||
|
||||
// Time
|
||||
|
||||
type Timespec C.struct_timespec |
||||
|
||||
type Timeval C.struct_timeval |
||||
|
||||
type Timeval32 C.struct_timeval32 |
||||
|
||||
type Tms C.struct_tms |
||||
|
||||
type Utimbuf C.struct_utimbuf |
||||
|
||||
// Processes
|
||||
|
||||
type Rusage C.struct_rusage |
||||
|
||||
type Rlimit C.struct_rlimit |
||||
|
||||
type _Gid_t C.gid_t |
||||
|
||||
// Files
|
||||
|
||||
type Stat_t C.struct_stat |
||||
|
||||
type Flock_t C.struct_flock |
||||
|
||||
type Dirent C.struct_dirent |
||||
|
||||
// Filesystems
|
||||
|
||||
type _Fsblkcnt_t C.fsblkcnt_t |
||||
|
||||
type Statvfs_t C.struct_statvfs |
||||
|
||||
// Sockets
|
||||
|
||||
type RawSockaddrInet4 C.struct_sockaddr_in |
||||
|
||||
type RawSockaddrInet6 C.struct_sockaddr_in6 |
||||
|
||||
type RawSockaddrUnix C.struct_sockaddr_un |
||||
|
||||
type RawSockaddrDatalink C.struct_sockaddr_dl |
||||
|
||||
type RawSockaddr C.struct_sockaddr |
||||
|
||||
type RawSockaddrAny C.struct_sockaddr_any |
||||
|
||||
type _Socklen C.socklen_t |
||||
|
||||
type Linger C.struct_linger |
||||
|
||||
type Iovec C.struct_iovec |
||||
|
||||
type IPMreq C.struct_ip_mreq |
||||
|
||||
type IPv6Mreq C.struct_ipv6_mreq |
||||
|
||||
type Msghdr C.struct_msghdr |
||||
|
||||
type Cmsghdr C.struct_cmsghdr |
||||
|
||||
type Inet6Pktinfo C.struct_in6_pktinfo |
||||
|
||||
type IPv6MTUInfo C.struct_ip6_mtuinfo |
||||
|
||||
type ICMPv6Filter C.struct_icmp6_filter |
||||
|
||||
const ( |
||||
SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in |
||||
SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 |
||||
SizeofSockaddrAny = C.sizeof_struct_sockaddr_any |
||||
SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un |
||||
SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl |
||||
SizeofLinger = C.sizeof_struct_linger |
||||
SizeofIPMreq = C.sizeof_struct_ip_mreq |
||||
SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq |
||||
SizeofMsghdr = C.sizeof_struct_msghdr |
||||
SizeofCmsghdr = C.sizeof_struct_cmsghdr |
||||
SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo |
||||
SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo |
||||
SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter |
||||
) |
||||
|
||||
// Select
|
||||
|
||||
type FdSet C.fd_set |
||||
|
||||
// Misc
|
||||
|
||||
type Utsname C.struct_utsname |
||||
|
||||
type Ustat_t C.struct_ustat |
||||
|
||||
const ( |
||||
AT_FDCWD = C.AT_FDCWD |
||||
AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW |
||||
AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW |
||||
AT_REMOVEDIR = C.AT_REMOVEDIR |
||||
AT_EACCESS = C.AT_EACCESS |
||||
) |
||||
|
||||
// Routing and interface messages
|
||||
|
||||
const ( |
||||
SizeofIfMsghdr = C.sizeof_struct_if_msghdr |
||||
SizeofIfData = C.sizeof_struct_if_data |
||||
SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr |
||||
SizeofRtMsghdr = C.sizeof_struct_rt_msghdr |
||||
SizeofRtMetrics = C.sizeof_struct_rt_metrics |
||||
) |
||||
|
||||
type IfMsghdr C.struct_if_msghdr |
||||
|
||||
type IfData C.struct_if_data |
||||
|
||||
type IfaMsghdr C.struct_ifa_msghdr |
||||
|
||||
type RtMsghdr C.struct_rt_msghdr |
||||
|
||||
type RtMetrics C.struct_rt_metrics |
||||
|
||||
// Berkeley packet filter
|
||||
|
||||
const ( |
||||
SizeofBpfVersion = C.sizeof_struct_bpf_version |
||||
SizeofBpfStat = C.sizeof_struct_bpf_stat |
||||
SizeofBpfProgram = C.sizeof_struct_bpf_program |
||||
SizeofBpfInsn = C.sizeof_struct_bpf_insn |
||||
SizeofBpfHdr = C.sizeof_struct_bpf_hdr |
||||
) |
||||
|
||||
type BpfVersion C.struct_bpf_version |
||||
|
||||
type BpfStat C.struct_bpf_stat |
||||
|
||||
type BpfProgram C.struct_bpf_program |
||||
|
||||
type BpfInsn C.struct_bpf_insn |
||||
|
||||
type BpfTimeval C.struct_bpf_timeval |
||||
|
||||
type BpfHdr C.struct_bpf_hdr |
||||
|
||||
// Terminal handling
|
||||
|
||||
type Termios C.struct_termios |
||||
|
||||
type Termio C.struct_termio |
||||
|
||||
type Winsize C.struct_winsize |
||||
|
||||
// poll
|
||||
|
||||
type PollFd C.struct_pollfd |
||||
|
||||
const ( |
||||
POLLERR = C.POLLERR |
||||
POLLHUP = C.POLLHUP |
||||
POLLIN = C.POLLIN |
||||
POLLNVAL = C.POLLNVAL |
||||
POLLOUT = C.POLLOUT |
||||
POLLPRI = C.POLLPRI |
||||
POLLRDBAND = C.POLLRDBAND |
||||
POLLRDNORM = C.POLLRDNORM |
||||
POLLWRBAND = C.POLLWRBAND |
||||
POLLWRNORM = C.POLLWRNORM |
||||
) |
@ -0,0 +1,4 @@ |
||||
sudo: false |
||||
language: go |
||||
install: go get -t -v ./... |
||||
go: 1.2 |
@ -0,0 +1,70 @@ |
||||
# github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc |
||||
github.com/alecthomas/template |
||||
github.com/alecthomas/template/parse |
||||
# github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf |
||||
github.com/alecthomas/units |
||||
# github.com/beevik/ntp v0.2.0 |
||||
github.com/beevik/ntp |
||||
# github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973 |
||||
github.com/beorn7/perks/quantile |
||||
# github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7 |
||||
github.com/coreos/go-systemd/dbus |
||||
# github.com/ema/qdisc v0.0.0-20180104102928-b307c22d3ce7 |
||||
github.com/ema/qdisc |
||||
# github.com/godbus/dbus v4.1.0+incompatible |
||||
github.com/godbus/dbus |
||||
# github.com/golang/protobuf v1.2.0 |
||||
github.com/golang/protobuf/proto |
||||
# github.com/konsorten/go-windows-terminal-sequences v1.0.1 |
||||
github.com/konsorten/go-windows-terminal-sequences |
||||
# github.com/lufia/iostat v0.0.0-20170605150913-9f7362b77ad3 |
||||
github.com/lufia/iostat |
||||
# github.com/mattn/go-xmlrpc v0.0.0-20180913190254-6e944673e4c0 |
||||
github.com/mattn/go-xmlrpc |
||||
# github.com/matttproud/golang_protobuf_extensions v1.0.1 |
||||
github.com/matttproud/golang_protobuf_extensions/pbutil |
||||
# github.com/mdlayher/genetlink v0.0.0-20180917171408-7615bc153978 |
||||
github.com/mdlayher/genetlink |
||||
# github.com/mdlayher/netlink v0.0.0-20180920202405-794849f2d5bf |
||||
github.com/mdlayher/netlink |
||||
github.com/mdlayher/netlink/nlenc |
||||
# github.com/mdlayher/wifi v0.0.0-20180727163819-efdf3f4195d9 |
||||
github.com/mdlayher/wifi |
||||
github.com/mdlayher/wifi/internal/nl80211 |
||||
# github.com/prometheus/client_golang v0.9.1 |
||||
github.com/prometheus/client_golang/prometheus |
||||
github.com/prometheus/client_golang/prometheus/promhttp |
||||
github.com/prometheus/client_golang/prometheus/internal |
||||
# github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910 |
||||
github.com/prometheus/client_model/go |
||||
# github.com/prometheus/common v0.0.0-20181015124227-bcb74de08d37 |
||||
github.com/prometheus/common/log |
||||
github.com/prometheus/common/version |
||||
github.com/prometheus/common/expfmt |
||||
github.com/prometheus/common/model |
||||
github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg |
||||
# github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d |
||||
github.com/prometheus/procfs |
||||
github.com/prometheus/procfs/bcache |
||||
github.com/prometheus/procfs/nfs |
||||
github.com/prometheus/procfs/sysfs |
||||
github.com/prometheus/procfs/xfs |
||||
github.com/prometheus/procfs/internal/util |
||||
# github.com/sirupsen/logrus v1.1.1 |
||||
github.com/sirupsen/logrus |
||||
# github.com/soundcloud/go-runit v0.0.0-20150630195641-06ad41a06c4a |
||||
github.com/soundcloud/go-runit/runit |
||||
# golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941 |
||||
golang.org/x/crypto/ssh/terminal |
||||
# golang.org/x/net v0.0.0-20181005035420-146acd28ed58 |
||||
golang.org/x/net/ipv4 |
||||
golang.org/x/net/bpf |
||||
golang.org/x/net/internal/iana |
||||
golang.org/x/net/internal/socket |
||||
# golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e |
||||
golang.org/x/sys/unix |
||||
golang.org/x/sys/windows/svc/eventlog |
||||
golang.org/x/sys/windows |
||||
golang.org/x/sys/windows/registry |
||||
# gopkg.in/alecthomas/kingpin.v2 v2.2.6 |
||||
gopkg.in/alecthomas/kingpin.v2 |
@ -1,297 +0,0 @@ |
||||
{ |
||||
"comment": "", |
||||
"ignore": "test", |
||||
"package": [ |
||||
{ |
||||
"checksumSHA1": "KmjnydoAbofMieIWm+it5OWERaM=", |
||||
"path": "github.com/alecthomas/template", |
||||
"revision": "a0175ee3bccc567396460bf5acd36800cb10c49c", |
||||
"revisionTime": "2016-04-05T07:15:01Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "3wt0pTXXeS+S93unwhGoLIyGX/Q=", |
||||
"path": "github.com/alecthomas/template/parse", |
||||
"revision": "a0175ee3bccc567396460bf5acd36800cb10c49c", |
||||
"revisionTime": "2016-04-05T07:15:01Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "fCc3grA7vIxfBru7R3SqjcW+oLI=", |
||||
"path": "github.com/alecthomas/units", |
||||
"revision": "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a", |
||||
"revisionTime": "2015-10-22T06:55:26Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "Gofi5dpQ/jevSfySSRDaoNpHMq8=", |
||||
"path": "github.com/beevik/ntp", |
||||
"revision": "62c80a04de2086884d8296004b6d74ee1846c582", |
||||
"revisionTime": "2017-10-20T00:02:52Z", |
||||
"version": "v0.2.0", |
||||
"versionExact": "v0.2.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "spyv5/YFBjYyZLZa1U2LBfDR8PM=", |
||||
"path": "github.com/beorn7/perks/quantile", |
||||
"revision": "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9", |
||||
"revisionTime": "2016-08-04T10:47:26Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "1txgvJO9bgE703kK2EQ/NATy1Rg=", |
||||
"path": "github.com/coreos/go-systemd/dbus", |
||||
"revision": "39ca1b05acc7ad1220e09f133283b8859a8b71ab", |
||||
"revisionTime": "2018-05-11T13:34:05Z", |
||||
"version": "v17", |
||||
"versionExact": "v17" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "wPbKObbGzS/43nrskRaJVFVEW/A=", |
||||
"path": "github.com/ema/qdisc", |
||||
"revision": "b307c22d3ce761d351b6e6270b50195b44ee9248", |
||||
"revisionTime": "2018-01-04T10:29:28Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "Qbh78KcLmLVoURsCp+f5xVeA/fI=", |
||||
"path": "github.com/godbus/dbus", |
||||
"revision": "a389bdde4dd695d414e47b755e95e72b7826432c", |
||||
"revisionTime": "2017-09-18T23:46:06Z", |
||||
"version": "v4.1.0", |
||||
"versionExact": "v4.1.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "mE9XW26JSpe4meBObM6J/Oeq0eg=", |
||||
"path": "github.com/golang/protobuf/proto", |
||||
"revision": "aa810b61a9c79d51363740d207bb46cf8e620ed5", |
||||
"revisionTime": "2018-08-14T21:14:27Z", |
||||
"version": "v1.2.0", |
||||
"versionExact": "v1.2.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "r6ZMyP/HsdeToXIxvgP3ntL6Bds=", |
||||
"path": "github.com/konsorten/go-windows-terminal-sequences", |
||||
"revision": "5c8c8bd35d3832f5d134ae1e1e375b69a4d25242", |
||||
"revisionTime": "2018-10-04T22:41:46Z", |
||||
"version": "v1.0.1", |
||||
"versionExact": "v1.0.1" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "IdBAvtVSv0sbi8sEsLovnZubims=", |
||||
"path": "github.com/lufia/iostat", |
||||
"revision": "9f7362b77ad333b26c01c99de52a11bdb650ded2", |
||||
"revisionTime": "2017-06-05T15:08:45Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "bCmcSbBoZf/rekSo8AE7l0fNCkw=", |
||||
"path": "github.com/mattn/go-xmlrpc", |
||||
"revision": "6e944673e4c0cc6117326f69df5eb7b210a6362d", |
||||
"revisionTime": "2018-09-13T19:02:54Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "aodj/cITRyuaZSh84DDhrZjh76U=", |
||||
"path": "github.com/matttproud/golang_protobuf_extensions/pbutil", |
||||
"revision": "3247c84500bff8d9fb6d579d800f20b3e091582c", |
||||
"revisionTime": "2016-04-23T17:36:17Z", |
||||
"version": "v1.0.0", |
||||
"versionExact": "v1.0.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "mqiQh7IAod6wvRP14+5GcUyKNwo=", |
||||
"path": "github.com/mdlayher/genetlink", |
||||
"revision": "7615bc153978352e5f20442221cf606b624e5890", |
||||
"revisionTime": "2018-09-17T17:14:08Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "lB1YzfMg7EnumgpWRYSqmrH6S7Q=", |
||||
"path": "github.com/mdlayher/netlink", |
||||
"revision": "794849f2d5bf05e15f14bbae6bca4dfc94e7595e", |
||||
"revisionTime": "2018-09-20T20:24:05Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "P7eEo2V7/kQEkt2ihW+26S39eEw=", |
||||
"path": "github.com/mdlayher/netlink/nlenc", |
||||
"revision": "794849f2d5bf05e15f14bbae6bca4dfc94e7595e", |
||||
"revisionTime": "2018-09-20T20:24:05Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "Y7cjrOeOvA/ic+B8WCp2JyLEuvs=", |
||||
"path": "github.com/mdlayher/wifi", |
||||
"revision": "efdf3f4195d9fc8b73013b3706fe626b7fb807d8", |
||||
"revisionTime": "2018-07-27T16:38:19Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "VzutdH69PUqRqhrDVv6F91ebQd4=", |
||||
"path": "github.com/mdlayher/wifi/internal/nl80211", |
||||
"revision": "efdf3f4195d9fc8b73013b3706fe626b7fb807d8", |
||||
"revisionTime": "2018-07-27T16:38:19Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "frS661rlSEZWE9CezHhnFioQK/I=", |
||||
"path": "github.com/prometheus/client_golang/prometheus", |
||||
"revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4", |
||||
"revisionTime": "2018-10-15T14:52:39Z", |
||||
"version": "v0.9", |
||||
"versionExact": "v0.9.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "UBqhkyjCz47+S19MVTigxJ2VjVQ=", |
||||
"path": "github.com/prometheus/client_golang/prometheus/internal", |
||||
"revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4", |
||||
"revisionTime": "2018-10-15T14:52:39Z", |
||||
"version": "v0.9", |
||||
"versionExact": "v0.9.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "d5BiEvD8MrgpWQ6PQJUvawJsMak=", |
||||
"path": "github.com/prometheus/client_golang/prometheus/promhttp", |
||||
"revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4", |
||||
"revisionTime": "2018-10-15T14:52:39Z", |
||||
"version": "v0.9", |
||||
"versionExact": "v0.9.0" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "V8xkqgmP66sq2ZW4QO5wi9a4oZE=", |
||||
"path": "github.com/prometheus/client_model/go", |
||||
"revision": "5c3871d89910bfb32f5fcab2aa4b9ec68e65a99f", |
||||
"revisionTime": "2018-07-12T10:51:10Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "hGf3xT6gRaJh2zAEbWj9YnV+K+0=", |
||||
"path": "github.com/prometheus/common/expfmt", |
||||
"revision": "bcb74de08d37a417cb6789eec1d6c810040f0470", |
||||
"revisionTime": "2018-10-15T12:42:27Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "GWlM3d2vPYyNATtTFgftS10/A9w=", |
||||
"path": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg", |
||||
"revision": "bcb74de08d37a417cb6789eec1d6c810040f0470", |
||||
"revisionTime": "2018-10-15T12:42:27Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "MGnqHnmEqc1fjnYiWReSiW8C27A=", |
||||
"path": "github.com/prometheus/common/log", |
||||
"revision": "bcb74de08d37a417cb6789eec1d6c810040f0470", |
||||
"revisionTime": "2018-10-15T12:42:27Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "EXTRY7DL9gFW8c341Dk6LDXCBn8=", |
||||
"path": "github.com/prometheus/common/model", |
||||
"revision": "bcb74de08d37a417cb6789eec1d6c810040f0470", |
||||
"revisionTime": "2018-10-15T12:42:27Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "91KYK0SpvkaMJJA2+BcxbVnyRO0=", |
||||
"path": "github.com/prometheus/common/version", |
||||
"revision": "bcb74de08d37a417cb6789eec1d6c810040f0470", |
||||
"revisionTime": "2018-10-15T12:42:27Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "4zOdjJcskuocAzI+i6rcRzYjSlI=", |
||||
"path": "github.com/prometheus/procfs", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "O64FotgWPYIpl3m2gvTEPIem+xg=", |
||||
"path": "github.com/prometheus/procfs/bcache", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "8E1IbrgtLBee7J404VKPyoI+qsk=", |
||||
"path": "github.com/prometheus/procfs/internal/util", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "HSP5hVT0CNMRa8+Xtz4z2Ic5U0E=", |
||||
"path": "github.com/prometheus/procfs/nfs", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "ORMPtgUo5XBWikhal+l0GE7+3ps=", |
||||
"path": "github.com/prometheus/procfs/sysfs", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "yItvTQLUVqm/ArLEbvEhqG0T5a0=", |
||||
"path": "github.com/prometheus/procfs/xfs", |
||||
"revision": "185b4288413d2a0dd0806f78c90dde719829e5ae", |
||||
"revisionTime": "2018-10-05T14:02:18Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "YjhDOmq6sEghGST0PAiyA+8EAT4=", |
||||
"path": "github.com/sirupsen/logrus", |
||||
"revision": "ad15b42461921f1fb3529b058c6786c6a45d5162", |
||||
"revisionTime": "2018-10-08T20:30:39Z", |
||||
"version": "v1.1.1", |
||||
"versionExact": "v1.1.1" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "uozMgPjB4AggpuuJkGq3FgAs4CA=", |
||||
"path": "github.com/soundcloud/go-runit/runit", |
||||
"revision": "06ad41a06c4a586951fb8040a697ecd39729640b", |
||||
"revisionTime": "2015-06-30T19:56:10Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "BGm8lKZmvJbf/YOJLeL1rw2WVjA=", |
||||
"path": "golang.org/x/crypto/ssh/terminal", |
||||
"revision": "7c1a557ab941a71c619514f229f0b27ccb0c27cf", |
||||
"revisionTime": "2018-10-02T14:18:56Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "NjyXtXsaf0ulRJn6HQSP1FqGL4A=", |
||||
"path": "golang.org/x/net/bpf", |
||||
"revision": "146acd28ed5894421fb5aac80ca93bc1b1f46f87", |
||||
"revisionTime": "2018-10-04T22:16:49Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "8oJoT8rfokzpkJ19eNhRs2JgRxI=", |
||||
"path": "golang.org/x/net/internal/iana", |
||||
"revision": "146acd28ed5894421fb5aac80ca93bc1b1f46f87", |
||||
"revisionTime": "2018-10-04T22:16:49Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "YsXlbexuTtUXHyhSv927ILOkf6A=", |
||||
"path": "golang.org/x/net/internal/socket", |
||||
"revision": "146acd28ed5894421fb5aac80ca93bc1b1f46f87", |
||||
"revisionTime": "2018-10-04T22:16:49Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "K4XNY0c60IPBpv5sO6aiCuB8o/0=", |
||||
"path": "golang.org/x/net/ipv4", |
||||
"revision": "146acd28ed5894421fb5aac80ca93bc1b1f46f87", |
||||
"revisionTime": "2018-10-04T22:16:49Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "ko2jS+S73n4qhQpABo/AnQaSQfo=", |
||||
"path": "golang.org/x/sys/unix", |
||||
"revision": "4497e2df6f9e69048a54498c7affbbec3294ad47", |
||||
"revisionTime": "2018-10-05T07:04:52Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "Y7nctMxT58lRM78VtElPerhcnEs=", |
||||
"path": "golang.org/x/sys/windows", |
||||
"revision": "4497e2df6f9e69048a54498c7affbbec3294ad47", |
||||
"revisionTime": "2018-10-05T07:04:52Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "P9OIhD26uWlIST/me4TYnvseCoY=", |
||||
"path": "golang.org/x/sys/windows/registry", |
||||
"revision": "4497e2df6f9e69048a54498c7affbbec3294ad47", |
||||
"revisionTime": "2018-10-05T07:04:52Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "uVlUSSKplihZG7N+QJ6fzDZ4Kh8=", |
||||
"path": "golang.org/x/sys/windows/svc/eventlog", |
||||
"revision": "4497e2df6f9e69048a54498c7affbbec3294ad47", |
||||
"revisionTime": "2018-10-05T07:04:52Z" |
||||
}, |
||||
{ |
||||
"checksumSHA1": "sToCp8GThnMnsBzsHv+L/tBYQrQ=", |
||||
"path": "gopkg.in/alecthomas/kingpin.v2", |
||||
"revision": "947dcec5ba9c011838740e680966fd7087a71d0d", |
||||
"revisionTime": "2017-12-17T18:08:21Z" |
||||
} |
||||
], |
||||
"rootPath": "github.com/prometheus/node_exporter" |
||||
} |
Loading…
Reference in new issue