Initialize the go module and update docker/docker
**What** - Initialize the go.mod from the existing Gopkg.lock - Update to a more go module friendly version of docker/docker Signed-off-by: Lucas Roesler <roesler.lucas@gmail.com>
This commit is contained in:
		 Lucas Roesler
					Lucas Roesler
				
			
				
					committed by
					
						 Alex Ellis
						Alex Ellis
					
				
			
			
				
	
			
			
			 Alex Ellis
						Alex Ellis
					
				
			
						parent
						
							4055528249
						
					
				
				
					commit
					40884c98a9
				
			| @@ -3,7 +3,8 @@ FROM teamserverless/license-check:0.3.6 as license-check | ||||
| # Build stage | ||||
| FROM golang:1.13 as builder | ||||
|  | ||||
| ENV GO111MODULE=off | ||||
| ENV GO111MODULE=on | ||||
| ENV GOFLAGS=-mod=vendor | ||||
| ENV CGO_ENABLED=0 | ||||
|  | ||||
| WORKDIR /usr/bin/ | ||||
|   | ||||
| @@ -3,7 +3,8 @@ FROM teamserverless/license-check:0.3.6 as license-check | ||||
| # Build stage | ||||
| FROM golang:1.13 as builder | ||||
|  | ||||
| ENV GO111MODULE=off | ||||
| ENV GO111MODULE=on | ||||
| ENV GOFLAGS=-mod=vendor | ||||
| ENV CGO_ENABLED=0 | ||||
|  | ||||
| WORKDIR /usr/bin/ | ||||
|   | ||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -8,6 +8,8 @@ ifneq ($(.GIT_UNTRACKEDCHANGES),) | ||||
| 	.GIT_COMMIT := $(.GIT_COMMIT)-dirty | ||||
| endif | ||||
|  | ||||
| export GOFLAGS=-mod=vendor | ||||
|  | ||||
| .PHONY: build | ||||
| build: | ||||
| 	./build.sh | ||||
|   | ||||
							
								
								
									
										28
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								go.mod
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| module github.com/openfaas/faas-cli | ||||
|  | ||||
| go 1.14 | ||||
|  | ||||
| // replace github.com/docker/docker => github.com/docker/engine v1.4.2-0.20190717161051-705d9623b7c1 | ||||
|  | ||||
| require ( | ||||
| 	github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect | ||||
| 	github.com/alexellis/go-execute v0.0.0-20191207085904-961405ea7544 | ||||
| 	github.com/alexellis/hmac v0.0.0-20180624210714-d5d71edd7bc7 | ||||
| 	github.com/docker/docker v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible | ||||
| 	github.com/docker/docker-credential-helpers v0.6.3 | ||||
| 	github.com/drone/envsubst v1.0.2 | ||||
| 	github.com/gotestyourself/gotestyourself v1.4.0 // indirect | ||||
| 	github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect | ||||
| 	github.com/mitchellh/go-homedir v1.1.0 | ||||
| 	github.com/morikuni/aec v1.0.0 | ||||
| 	github.com/openfaas/faas v0.0.0-20200422142642-18f6c720b50d | ||||
| 	github.com/openfaas/faas-provider v0.15.1 | ||||
| 	github.com/pkg/errors v0.8.1 | ||||
| 	github.com/ryanuber/go-glob v1.0.0 | ||||
| 	github.com/sirupsen/logrus v1.4.2 // indirect | ||||
| 	github.com/spf13/cobra v0.0.7 | ||||
| 	github.com/spf13/pflag v1.0.5 | ||||
| 	golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab // indirect | ||||
| 	gopkg.in/yaml.v2 v2.2.8 | ||||
| 	gotest.tools v1.4.0 // indirect | ||||
| ) | ||||
							
								
								
									
										180
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								go.sum
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,180 @@ | ||||
| cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= | ||||
| github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= | ||||
| github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= | ||||
| github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= | ||||
| github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | ||||
| github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= | ||||
| github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||
| github.com/alexellis/go-execute v0.0.0-20191207085904-961405ea7544 h1:KjtKgzxk/0wfp7vZxWUYPMiEJKep7FJ7C7o/vtHyc/Q= | ||||
| github.com/alexellis/go-execute v0.0.0-20191207085904-961405ea7544/go.mod h1:zfRbgnPVxXCSpiKrg1CE72hNUWInqxExiaz2D9ppTts= | ||||
| github.com/alexellis/hmac v0.0.0-20180624210714-d5d71edd7bc7 h1:tPX9nmLsuE/p4NpX7fhH3fSIS1Ra1DFHv6FvF65rnMU= | ||||
| github.com/alexellis/hmac v0.0.0-20180624210714-d5d71edd7bc7/go.mod h1:uAbpy8G7sjNB4qYdY6ymf5OIQ+TLDPApBYiR0Vc3lhk= | ||||
| github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= | ||||
| github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= | ||||
| github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= | ||||
| github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= | ||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | ||||
| github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= | ||||
| github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= | ||||
| github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= | ||||
| github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= | ||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||
| github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= | ||||
| 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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= | ||||
| github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= | ||||
| github.com/docker/docker v17.12.0-ce-rc1.0.20200531234253-77e06fda0c94+incompatible h1:PmGHHCZ43l6h8aZIi+Xa+z1SWe4dFImd5EK3TNp1jlo= | ||||
| github.com/docker/docker v17.12.0-ce-rc1.0.20200531234253-77e06fda0c94+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= | ||||
| github.com/docker/docker v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible h1:iWPIG7pWIsCwT6ZtHnTUpoVMnete7O/pzd9HFE3+tn8= | ||||
| github.com/docker/docker v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= | ||||
| github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= | ||||
| github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= | ||||
| github.com/drone/envsubst v1.0.2 h1:dpYLMAspQHW0a8dZpLRKe9jCNvIGZPhCPrycZzIHdqo= | ||||
| github.com/drone/envsubst v1.0.2/go.mod h1:bkZbnc/2vh1M12Ecn7EYScpI4YGYU0etwLJICOWi8Z0= | ||||
| github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= | ||||
| github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= | ||||
| github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= | ||||
| github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= | ||||
| github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= | ||||
| github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= | ||||
| github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= | ||||
| github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= | ||||
| github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= | ||||
| github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||
| github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= | ||||
| github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= | ||||
| 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/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= | ||||
| github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= | ||||
| github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= | ||||
| github.com/gotestyourself/gotestyourself v1.4.0 h1:CDSlSIuRL/Fsc72Ln5lMybtrCvSRDddsHsDRG/nP7Rg= | ||||
| github.com/gotestyourself/gotestyourself v1.4.0/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= | ||||
| github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= | ||||
| github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= | ||||
| github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= | ||||
| github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= | ||||
| github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= | ||||
| github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= | ||||
| github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= | ||||
| github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= | ||||
| github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= | ||||
| github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= | ||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= | ||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= | ||||
| github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= | ||||
| github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= | ||||
| github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= | ||||
| github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= | ||||
| github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= | ||||
| github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | ||||
| github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= | ||||
| github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= | ||||
| github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= | ||||
| github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||
| github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= | ||||
| github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= | ||||
| github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= | ||||
| github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= | ||||
| github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= | ||||
| github.com/openfaas/faas v0.0.0-20200422142642-18f6c720b50d h1:mlI37Hd4Htedk7iCdyp/J95RDCOLLXiRoO6JuXzUP6A= | ||||
| github.com/openfaas/faas v0.0.0-20200422142642-18f6c720b50d/go.mod h1:E0m2rLup0Vvxg53BKxGgaYAGcZa3Xl+vvL7vSi5yQ14= | ||||
| github.com/openfaas/faas-provider v0.15.1 h1:5M+DrGbuKlZxhN3/otFgLgBUnPQcYm6XosQDSbKXh30= | ||||
| github.com/openfaas/faas-provider v0.15.1/go.mod h1:ChVioeB3snmfYxBTu7SrWGYLoYN9fZkQlnuEQ86a6l0= | ||||
| github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= | ||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| 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/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= | ||||
| github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= | ||||
| github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= | ||||
| github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | ||||
| github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= | ||||
| github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= | ||||
| github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= | ||||
| github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= | ||||
| github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= | ||||
| github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= | ||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||
| github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= | ||||
| github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= | ||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||
| github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= | ||||
| github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= | ||||
| github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= | ||||
| github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= | ||||
| github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= | ||||
| github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= | ||||
| github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= | ||||
| github.com/spf13/cobra v0.0.7 h1:FfTH+vuMXOas8jmfb5/M7dzEYx7LpcLb7a0LPe34uOU= | ||||
| github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= | ||||
| github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= | ||||
| github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= | ||||
| github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= | ||||
| github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= | ||||
| github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= | ||||
| github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= | ||||
| github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= | ||||
| github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= | ||||
| github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | ||||
| github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= | ||||
| github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= | ||||
| github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | ||||
| github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | ||||
| go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= | ||||
| go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= | ||||
| go.uber.org/goleak v0.10.0 h1:G3eWbSNIskeRqtsN/1uI5B+eP73y3JUuBsv9AZjehb4= | ||||
| go.uber.org/goleak v0.10.0/go.mod h1:VCZuO8V8mFPlL0F5J5GK1rtHV3DrFcQ1R8ryq7FK0aI= | ||||
| go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= | ||||
| go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= | ||||
| golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= | ||||
| golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= | ||||
| golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= | ||||
| golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= | ||||
| golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= | ||||
| golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= | ||||
| golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab h1:FvshnhkKW+LO3HWHodML8kuVX8rnJTxKm9dFPuI68UM= | ||||
| golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
| golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||
| golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= | ||||
| golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= | ||||
| google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= | ||||
| google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= | ||||
| google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= | ||||
| google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= | ||||
| gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= | ||||
| gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= | ||||
| gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= | ||||
| gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= | ||||
| gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= | ||||
| gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= | ||||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gotest.tools v1.4.0 h1:BjtEgfuw8Qyd+jPvQz8CfoxiO/UjFEidWinwEXZiWv0= | ||||
| gotest.tools v1.4.0/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= | ||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||
							
								
								
									
										686
									
								
								vendor/github.com/docker/docker/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										686
									
								
								vendor/github.com/docker/docker/AUTHORS
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										2
									
								
								vendor/github.com/docker/docker/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/docker/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -176,7 +176,7 @@ | ||||
|  | ||||
|    END OF TERMS AND CONDITIONS | ||||
|  | ||||
|    Copyright 2013-2016 Docker, Inc. | ||||
|    Copyright 2013-2018 Docker, Inc. | ||||
|  | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|   | ||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/docker/NOTICE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/docker/NOTICE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,9 +1,9 @@ | ||||
| Docker | ||||
| Copyright 2012-2016 Docker, Inc. | ||||
| Copyright 2012-2017 Docker, Inc. | ||||
|  | ||||
| This product includes software developed at Docker, Inc. (https://www.docker.com). | ||||
|  | ||||
| This product contains software (https://github.com/kr/pty) developed | ||||
| This product contains software (https://github.com/creack/pty) developed | ||||
| by Keith Rarick, licensed under the MIT License. | ||||
|  | ||||
| The following is courtesy of our legal counsel: | ||||
|   | ||||
							
								
								
									
										339
									
								
								vendor/github.com/docker/docker/contrib/selinux-fedora-24/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										339
									
								
								vendor/github.com/docker/docker/contrib/selinux-fedora-24/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,339 +0,0 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc., | ||||
|  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
| 			    Preamble | ||||
|  | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| License is intended to guarantee your freedom to share and change free | ||||
| software--to make sure the software is free for all its users.  This | ||||
| General Public License applies to most of the Free Software | ||||
| Foundation's software and to any other program whose authors commit to | ||||
| using it.  (Some other Free Software Foundation software is covered by | ||||
| the GNU Lesser General Public License instead.)  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| this service if you wish), that you receive source code or can get it | ||||
| if you want it, that you can change the software or use pieces of it | ||||
| in new free programs; and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to make restrictions that forbid | ||||
| anyone to deny you these rights or to ask you to surrender the rights. | ||||
| These restrictions translate to certain responsibilities for you if you | ||||
| distribute copies of the software, or if you modify it. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must give the recipients all the rights that | ||||
| you have.  You must make sure that they, too, receive or can get the | ||||
| source code.  And you must show them these terms so they know their | ||||
| rights. | ||||
|  | ||||
|   We protect your rights with two steps: (1) copyright the software, and | ||||
| (2) offer you this license which gives you legal permission to copy, | ||||
| distribute and/or modify the software. | ||||
|  | ||||
|   Also, for each author's protection and ours, we want to make certain | ||||
| that everyone understands that there is no warranty for this free | ||||
| software.  If the software is modified by someone else and passed on, we | ||||
| want its recipients to know that what they have is not the original, so | ||||
| that any problems introduced by others will not reflect on the original | ||||
| authors' reputations. | ||||
|  | ||||
|   Finally, any free program is threatened constantly by software | ||||
| patents.  We wish to avoid the danger that redistributors of a free | ||||
| program will individually obtain patent licenses, in effect making the | ||||
| program proprietary.  To prevent this, we have made it clear that any | ||||
| patent must be licensed for everyone's free use or not licensed at all. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
|  | ||||
|   0. This License applies to any program or other work which contains | ||||
| a notice placed by the copyright holder saying it may be distributed | ||||
| under the terms of this General Public License.  The "Program", below, | ||||
| refers to any such program or work, and a "work based on the Program" | ||||
| means either the Program or any derivative work under copyright law: | ||||
| that is to say, a work containing the Program or a portion of it, | ||||
| either verbatim or with modifications and/or translated into another | ||||
| language.  (Hereinafter, translation is included without limitation in | ||||
| the term "modification".)  Each licensee is addressed as "you". | ||||
|  | ||||
| Activities other than copying, distribution and modification are not | ||||
| covered by this License; they are outside its scope.  The act of | ||||
| running the Program is not restricted, and the output from the Program | ||||
| is covered only if its contents constitute a work based on the | ||||
| Program (independent of having been made by running the Program). | ||||
| Whether that is true depends on what the Program does. | ||||
|  | ||||
|   1. You may copy and distribute verbatim copies of the Program's | ||||
| source code as you receive it, in any medium, provided that you | ||||
| conspicuously and appropriately publish on each copy an appropriate | ||||
| copyright notice and disclaimer of warranty; keep intact all the | ||||
| notices that refer to this License and to the absence of any warranty; | ||||
| and give any other recipients of the Program a copy of this License | ||||
| along with the Program. | ||||
|  | ||||
| You may charge a fee for the physical act of transferring a copy, and | ||||
| you may at your option offer warranty protection in exchange for a fee. | ||||
|  | ||||
|   2. You may modify your copy or copies of the Program or any portion | ||||
| of it, thus forming a work based on the Program, and copy and | ||||
| distribute such modifications or work under the terms of Section 1 | ||||
| above, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) You must cause the modified files to carry prominent notices | ||||
|     stating that you changed the files and the date of any change. | ||||
|  | ||||
|     b) You must cause any work that you distribute or publish, that in | ||||
|     whole or in part contains or is derived from the Program or any | ||||
|     part thereof, to be licensed as a whole at no charge to all third | ||||
|     parties under the terms of this License. | ||||
|  | ||||
|     c) If the modified program normally reads commands interactively | ||||
|     when run, you must cause it, when started running for such | ||||
|     interactive use in the most ordinary way, to print or display an | ||||
|     announcement including an appropriate copyright notice and a | ||||
|     notice that there is no warranty (or else, saying that you provide | ||||
|     a warranty) and that users may redistribute the program under | ||||
|     these conditions, and telling the user how to view a copy of this | ||||
|     License.  (Exception: if the Program itself is interactive but | ||||
|     does not normally print such an announcement, your work based on | ||||
|     the Program is not required to print an announcement.) | ||||
|  | ||||
| These requirements apply to the modified work as a whole.  If | ||||
| identifiable sections of that work are not derived from the Program, | ||||
| and can be reasonably considered independent and separate works in | ||||
| themselves, then this License, and its terms, do not apply to those | ||||
| sections when you distribute them as separate works.  But when you | ||||
| distribute the same sections as part of a whole which is a work based | ||||
| on the Program, the distribution of the whole must be on the terms of | ||||
| this License, whose permissions for other licensees extend to the | ||||
| entire whole, and thus to each and every part regardless of who wrote it. | ||||
|  | ||||
| Thus, it is not the intent of this section to claim rights or contest | ||||
| your rights to work written entirely by you; rather, the intent is to | ||||
| exercise the right to control the distribution of derivative or | ||||
| collective works based on the Program. | ||||
|  | ||||
| In addition, mere aggregation of another work not based on the Program | ||||
| with the Program (or with a work based on the Program) on a volume of | ||||
| a storage or distribution medium does not bring the other work under | ||||
| the scope of this License. | ||||
|  | ||||
|   3. You may copy and distribute the Program (or a work based on it, | ||||
| under Section 2) in object code or executable form under the terms of | ||||
| Sections 1 and 2 above provided that you also do one of the following: | ||||
|  | ||||
|     a) Accompany it with the complete corresponding machine-readable | ||||
|     source code, which must be distributed under the terms of Sections | ||||
|     1 and 2 above on a medium customarily used for software interchange; or, | ||||
|  | ||||
|     b) Accompany it with a written offer, valid for at least three | ||||
|     years, to give any third party, for a charge no more than your | ||||
|     cost of physically performing source distribution, a complete | ||||
|     machine-readable copy of the corresponding source code, to be | ||||
|     distributed under the terms of Sections 1 and 2 above on a medium | ||||
|     customarily used for software interchange; or, | ||||
|  | ||||
|     c) Accompany it with the information you received as to the offer | ||||
|     to distribute corresponding source code.  (This alternative is | ||||
|     allowed only for noncommercial distribution and only if you | ||||
|     received the program in object code or executable form with such | ||||
|     an offer, in accord with Subsection b above.) | ||||
|  | ||||
| The source code for a work means the preferred form of the work for | ||||
| making modifications to it.  For an executable work, complete source | ||||
| code means all the source code for all modules it contains, plus any | ||||
| associated interface definition files, plus the scripts used to | ||||
| control compilation and installation of the executable.  However, as a | ||||
| special exception, the source code distributed need not include | ||||
| anything that is normally distributed (in either source or binary | ||||
| form) with the major components (compiler, kernel, and so on) of the | ||||
| operating system on which the executable runs, unless that component | ||||
| itself accompanies the executable. | ||||
|  | ||||
| If distribution of executable or object code is made by offering | ||||
| access to copy from a designated place, then offering equivalent | ||||
| access to copy the source code from the same place counts as | ||||
| distribution of the source code, even though third parties are not | ||||
| compelled to copy the source along with the object code. | ||||
|  | ||||
|   4. You may not copy, modify, sublicense, or distribute the Program | ||||
| except as expressly provided under this License.  Any attempt | ||||
| otherwise to copy, modify, sublicense or distribute the Program is | ||||
| void, and will automatically terminate your rights under this License. | ||||
| However, parties who have received copies, or rights, from you under | ||||
| this License will not have their licenses terminated so long as such | ||||
| parties remain in full compliance. | ||||
|  | ||||
|   5. You are not required to accept this License, since you have not | ||||
| signed it.  However, nothing else grants you permission to modify or | ||||
| distribute the Program or its derivative works.  These actions are | ||||
| prohibited by law if you do not accept this License.  Therefore, by | ||||
| modifying or distributing the Program (or any work based on the | ||||
| Program), you indicate your acceptance of this License to do so, and | ||||
| all its terms and conditions for copying, distributing or modifying | ||||
| the Program or works based on it. | ||||
|  | ||||
|   6. Each time you redistribute the Program (or any work based on the | ||||
| Program), the recipient automatically receives a license from the | ||||
| original licensor to copy, distribute or modify the Program subject to | ||||
| these terms and conditions.  You may not impose any further | ||||
| restrictions on the recipients' exercise of the rights granted herein. | ||||
| You are not responsible for enforcing compliance by third parties to | ||||
| this License. | ||||
|  | ||||
|   7. If, as a consequence of a court judgment or allegation of patent | ||||
| infringement or for any other reason (not limited to patent issues), | ||||
| conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot | ||||
| distribute so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you | ||||
| may not distribute the Program at all.  For example, if a patent | ||||
| license would not permit royalty-free redistribution of the Program by | ||||
| all those who receive copies directly or indirectly through you, then | ||||
| the only way you could satisfy both it and this License would be to | ||||
| refrain entirely from distribution of the Program. | ||||
|  | ||||
| If any portion of this section is held invalid or unenforceable under | ||||
| any particular circumstance, the balance of the section is intended to | ||||
| apply and the section as a whole is intended to apply in other | ||||
| circumstances. | ||||
|  | ||||
| It is not the purpose of this section to induce you to infringe any | ||||
| patents or other property right claims or to contest validity of any | ||||
| such claims; this section has the sole purpose of protecting the | ||||
| integrity of the free software distribution system, which is | ||||
| implemented by public license practices.  Many people have made | ||||
| generous contributions to the wide range of software distributed | ||||
| through that system in reliance on consistent application of that | ||||
| system; it is up to the author/donor to decide if he or she is willing | ||||
| to distribute software through any other system and a licensee cannot | ||||
| impose that choice. | ||||
|  | ||||
| This section is intended to make thoroughly clear what is believed to | ||||
| be a consequence of the rest of this License. | ||||
|  | ||||
|   8. If the distribution and/or use of the Program is restricted in | ||||
| certain countries either by patents or by copyrighted interfaces, the | ||||
| original copyright holder who places the Program under this License | ||||
| may add an explicit geographical distribution limitation excluding | ||||
| those countries, so that distribution is permitted only in or among | ||||
| countries not thus excluded.  In such case, this License incorporates | ||||
| the limitation as if written in the body of this License. | ||||
|  | ||||
|   9. The Free Software Foundation may publish revised and/or new versions | ||||
| of the General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
| Each version is given a distinguishing version number.  If the Program | ||||
| specifies a version number of this License which applies to it and "any | ||||
| later version", you have the option of following the terms and conditions | ||||
| either of that version or of any later version published by the Free | ||||
| Software Foundation.  If the Program does not specify a version number of | ||||
| this License, you may choose any version ever published by the Free Software | ||||
| Foundation. | ||||
|  | ||||
|   10. If you wish to incorporate parts of the Program into other free | ||||
| programs whose distribution conditions are different, write to the author | ||||
| to ask for permission.  For software which is copyrighted by the Free | ||||
| Software Foundation, write to the Free Software Foundation; we sometimes | ||||
| make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
|  | ||||
| 			    NO WARRANTY | ||||
|  | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | ||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | ||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||||
| REPAIR OR CORRECTION. | ||||
|  | ||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| convey the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     This program is free software; you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation; either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
|  | ||||
|     This program is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU General Public License for more details. | ||||
|  | ||||
|     You should have received a copy of the GNU General Public License along | ||||
|     with this program; if not, write to the Free Software Foundation, Inc., | ||||
|     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
| If the program is interactive, make it output a short notice like this | ||||
| when it starts in an interactive mode: | ||||
|  | ||||
|     Gnomovision version 69, Copyright (C) year name of author | ||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, the commands you use may | ||||
| be called something other than `show w' and `show c'; they could even be | ||||
| mouse-clicks or menu items--whatever suits your program. | ||||
|  | ||||
| You should also get your employer (if you work as a programmer) or your | ||||
| school, if any, to sign a "copyright disclaimer" for the program, if | ||||
| necessary.  Here is a sample; alter the names: | ||||
|  | ||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||||
|  | ||||
|   <signature of Ty Coon>, 1 April 1989 | ||||
|   Ty Coon, President of Vice | ||||
|  | ||||
| This General Public License does not permit incorporating your program into | ||||
| proprietary programs.  If your program is a subroutine library, you may | ||||
| consider it more useful to permit linking proprietary applications with the | ||||
| library.  If this is what you want to do, use the GNU Lesser General | ||||
| Public License instead of this License. | ||||
							
								
								
									
										339
									
								
								vendor/github.com/docker/docker/contrib/selinux-oraclelinux-7/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										339
									
								
								vendor/github.com/docker/docker/contrib/selinux-oraclelinux-7/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,339 +0,0 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc., | ||||
|  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
| 			    Preamble | ||||
|  | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| License is intended to guarantee your freedom to share and change free | ||||
| software--to make sure the software is free for all its users.  This | ||||
| General Public License applies to most of the Free Software | ||||
| Foundation's software and to any other program whose authors commit to | ||||
| using it.  (Some other Free Software Foundation software is covered by | ||||
| the GNU Lesser General Public License instead.)  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| this service if you wish), that you receive source code or can get it | ||||
| if you want it, that you can change the software or use pieces of it | ||||
| in new free programs; and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to make restrictions that forbid | ||||
| anyone to deny you these rights or to ask you to surrender the rights. | ||||
| These restrictions translate to certain responsibilities for you if you | ||||
| distribute copies of the software, or if you modify it. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must give the recipients all the rights that | ||||
| you have.  You must make sure that they, too, receive or can get the | ||||
| source code.  And you must show them these terms so they know their | ||||
| rights. | ||||
|  | ||||
|   We protect your rights with two steps: (1) copyright the software, and | ||||
| (2) offer you this license which gives you legal permission to copy, | ||||
| distribute and/or modify the software. | ||||
|  | ||||
|   Also, for each author's protection and ours, we want to make certain | ||||
| that everyone understands that there is no warranty for this free | ||||
| software.  If the software is modified by someone else and passed on, we | ||||
| want its recipients to know that what they have is not the original, so | ||||
| that any problems introduced by others will not reflect on the original | ||||
| authors' reputations. | ||||
|  | ||||
|   Finally, any free program is threatened constantly by software | ||||
| patents.  We wish to avoid the danger that redistributors of a free | ||||
| program will individually obtain patent licenses, in effect making the | ||||
| program proprietary.  To prevent this, we have made it clear that any | ||||
| patent must be licensed for everyone's free use or not licensed at all. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
|  | ||||
|   0. This License applies to any program or other work which contains | ||||
| a notice placed by the copyright holder saying it may be distributed | ||||
| under the terms of this General Public License.  The "Program", below, | ||||
| refers to any such program or work, and a "work based on the Program" | ||||
| means either the Program or any derivative work under copyright law: | ||||
| that is to say, a work containing the Program or a portion of it, | ||||
| either verbatim or with modifications and/or translated into another | ||||
| language.  (Hereinafter, translation is included without limitation in | ||||
| the term "modification".)  Each licensee is addressed as "you". | ||||
|  | ||||
| Activities other than copying, distribution and modification are not | ||||
| covered by this License; they are outside its scope.  The act of | ||||
| running the Program is not restricted, and the output from the Program | ||||
| is covered only if its contents constitute a work based on the | ||||
| Program (independent of having been made by running the Program). | ||||
| Whether that is true depends on what the Program does. | ||||
|  | ||||
|   1. You may copy and distribute verbatim copies of the Program's | ||||
| source code as you receive it, in any medium, provided that you | ||||
| conspicuously and appropriately publish on each copy an appropriate | ||||
| copyright notice and disclaimer of warranty; keep intact all the | ||||
| notices that refer to this License and to the absence of any warranty; | ||||
| and give any other recipients of the Program a copy of this License | ||||
| along with the Program. | ||||
|  | ||||
| You may charge a fee for the physical act of transferring a copy, and | ||||
| you may at your option offer warranty protection in exchange for a fee. | ||||
|  | ||||
|   2. You may modify your copy or copies of the Program or any portion | ||||
| of it, thus forming a work based on the Program, and copy and | ||||
| distribute such modifications or work under the terms of Section 1 | ||||
| above, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) You must cause the modified files to carry prominent notices | ||||
|     stating that you changed the files and the date of any change. | ||||
|  | ||||
|     b) You must cause any work that you distribute or publish, that in | ||||
|     whole or in part contains or is derived from the Program or any | ||||
|     part thereof, to be licensed as a whole at no charge to all third | ||||
|     parties under the terms of this License. | ||||
|  | ||||
|     c) If the modified program normally reads commands interactively | ||||
|     when run, you must cause it, when started running for such | ||||
|     interactive use in the most ordinary way, to print or display an | ||||
|     announcement including an appropriate copyright notice and a | ||||
|     notice that there is no warranty (or else, saying that you provide | ||||
|     a warranty) and that users may redistribute the program under | ||||
|     these conditions, and telling the user how to view a copy of this | ||||
|     License.  (Exception: if the Program itself is interactive but | ||||
|     does not normally print such an announcement, your work based on | ||||
|     the Program is not required to print an announcement.) | ||||
|  | ||||
| These requirements apply to the modified work as a whole.  If | ||||
| identifiable sections of that work are not derived from the Program, | ||||
| and can be reasonably considered independent and separate works in | ||||
| themselves, then this License, and its terms, do not apply to those | ||||
| sections when you distribute them as separate works.  But when you | ||||
| distribute the same sections as part of a whole which is a work based | ||||
| on the Program, the distribution of the whole must be on the terms of | ||||
| this License, whose permissions for other licensees extend to the | ||||
| entire whole, and thus to each and every part regardless of who wrote it. | ||||
|  | ||||
| Thus, it is not the intent of this section to claim rights or contest | ||||
| your rights to work written entirely by you; rather, the intent is to | ||||
| exercise the right to control the distribution of derivative or | ||||
| collective works based on the Program. | ||||
|  | ||||
| In addition, mere aggregation of another work not based on the Program | ||||
| with the Program (or with a work based on the Program) on a volume of | ||||
| a storage or distribution medium does not bring the other work under | ||||
| the scope of this License. | ||||
|  | ||||
|   3. You may copy and distribute the Program (or a work based on it, | ||||
| under Section 2) in object code or executable form under the terms of | ||||
| Sections 1 and 2 above provided that you also do one of the following: | ||||
|  | ||||
|     a) Accompany it with the complete corresponding machine-readable | ||||
|     source code, which must be distributed under the terms of Sections | ||||
|     1 and 2 above on a medium customarily used for software interchange; or, | ||||
|  | ||||
|     b) Accompany it with a written offer, valid for at least three | ||||
|     years, to give any third party, for a charge no more than your | ||||
|     cost of physically performing source distribution, a complete | ||||
|     machine-readable copy of the corresponding source code, to be | ||||
|     distributed under the terms of Sections 1 and 2 above on a medium | ||||
|     customarily used for software interchange; or, | ||||
|  | ||||
|     c) Accompany it with the information you received as to the offer | ||||
|     to distribute corresponding source code.  (This alternative is | ||||
|     allowed only for noncommercial distribution and only if you | ||||
|     received the program in object code or executable form with such | ||||
|     an offer, in accord with Subsection b above.) | ||||
|  | ||||
| The source code for a work means the preferred form of the work for | ||||
| making modifications to it.  For an executable work, complete source | ||||
| code means all the source code for all modules it contains, plus any | ||||
| associated interface definition files, plus the scripts used to | ||||
| control compilation and installation of the executable.  However, as a | ||||
| special exception, the source code distributed need not include | ||||
| anything that is normally distributed (in either source or binary | ||||
| form) with the major components (compiler, kernel, and so on) of the | ||||
| operating system on which the executable runs, unless that component | ||||
| itself accompanies the executable. | ||||
|  | ||||
| If distribution of executable or object code is made by offering | ||||
| access to copy from a designated place, then offering equivalent | ||||
| access to copy the source code from the same place counts as | ||||
| distribution of the source code, even though third parties are not | ||||
| compelled to copy the source along with the object code. | ||||
|  | ||||
|   4. You may not copy, modify, sublicense, or distribute the Program | ||||
| except as expressly provided under this License.  Any attempt | ||||
| otherwise to copy, modify, sublicense or distribute the Program is | ||||
| void, and will automatically terminate your rights under this License. | ||||
| However, parties who have received copies, or rights, from you under | ||||
| this License will not have their licenses terminated so long as such | ||||
| parties remain in full compliance. | ||||
|  | ||||
|   5. You are not required to accept this License, since you have not | ||||
| signed it.  However, nothing else grants you permission to modify or | ||||
| distribute the Program or its derivative works.  These actions are | ||||
| prohibited by law if you do not accept this License.  Therefore, by | ||||
| modifying or distributing the Program (or any work based on the | ||||
| Program), you indicate your acceptance of this License to do so, and | ||||
| all its terms and conditions for copying, distributing or modifying | ||||
| the Program or works based on it. | ||||
|  | ||||
|   6. Each time you redistribute the Program (or any work based on the | ||||
| Program), the recipient automatically receives a license from the | ||||
| original licensor to copy, distribute or modify the Program subject to | ||||
| these terms and conditions.  You may not impose any further | ||||
| restrictions on the recipients' exercise of the rights granted herein. | ||||
| You are not responsible for enforcing compliance by third parties to | ||||
| this License. | ||||
|  | ||||
|   7. If, as a consequence of a court judgment or allegation of patent | ||||
| infringement or for any other reason (not limited to patent issues), | ||||
| conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot | ||||
| distribute so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you | ||||
| may not distribute the Program at all.  For example, if a patent | ||||
| license would not permit royalty-free redistribution of the Program by | ||||
| all those who receive copies directly or indirectly through you, then | ||||
| the only way you could satisfy both it and this License would be to | ||||
| refrain entirely from distribution of the Program. | ||||
|  | ||||
| If any portion of this section is held invalid or unenforceable under | ||||
| any particular circumstance, the balance of the section is intended to | ||||
| apply and the section as a whole is intended to apply in other | ||||
| circumstances. | ||||
|  | ||||
| It is not the purpose of this section to induce you to infringe any | ||||
| patents or other property right claims or to contest validity of any | ||||
| such claims; this section has the sole purpose of protecting the | ||||
| integrity of the free software distribution system, which is | ||||
| implemented by public license practices.  Many people have made | ||||
| generous contributions to the wide range of software distributed | ||||
| through that system in reliance on consistent application of that | ||||
| system; it is up to the author/donor to decide if he or she is willing | ||||
| to distribute software through any other system and a licensee cannot | ||||
| impose that choice. | ||||
|  | ||||
| This section is intended to make thoroughly clear what is believed to | ||||
| be a consequence of the rest of this License. | ||||
|  | ||||
|   8. If the distribution and/or use of the Program is restricted in | ||||
| certain countries either by patents or by copyrighted interfaces, the | ||||
| original copyright holder who places the Program under this License | ||||
| may add an explicit geographical distribution limitation excluding | ||||
| those countries, so that distribution is permitted only in or among | ||||
| countries not thus excluded.  In such case, this License incorporates | ||||
| the limitation as if written in the body of this License. | ||||
|  | ||||
|   9. The Free Software Foundation may publish revised and/or new versions | ||||
| of the General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
| Each version is given a distinguishing version number.  If the Program | ||||
| specifies a version number of this License which applies to it and "any | ||||
| later version", you have the option of following the terms and conditions | ||||
| either of that version or of any later version published by the Free | ||||
| Software Foundation.  If the Program does not specify a version number of | ||||
| this License, you may choose any version ever published by the Free Software | ||||
| Foundation. | ||||
|  | ||||
|   10. If you wish to incorporate parts of the Program into other free | ||||
| programs whose distribution conditions are different, write to the author | ||||
| to ask for permission.  For software which is copyrighted by the Free | ||||
| Software Foundation, write to the Free Software Foundation; we sometimes | ||||
| make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
|  | ||||
| 			    NO WARRANTY | ||||
|  | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | ||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | ||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||||
| REPAIR OR CORRECTION. | ||||
|  | ||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| convey the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     This program is free software; you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation; either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
|  | ||||
|     This program is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU General Public License for more details. | ||||
|  | ||||
|     You should have received a copy of the GNU General Public License along | ||||
|     with this program; if not, write to the Free Software Foundation, Inc., | ||||
|     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
| If the program is interactive, make it output a short notice like this | ||||
| when it starts in an interactive mode: | ||||
|  | ||||
|     Gnomovision version 69, Copyright (C) year name of author | ||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, the commands you use may | ||||
| be called something other than `show w' and `show c'; they could even be | ||||
| mouse-clicks or menu items--whatever suits your program. | ||||
|  | ||||
| You should also get your employer (if you work as a programmer) or your | ||||
| school, if any, to sign a "copyright disclaimer" for the program, if | ||||
| necessary.  Here is a sample; alter the names: | ||||
|  | ||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||||
|  | ||||
|   <signature of Ty Coon>, 1 April 1989 | ||||
|   Ty Coon, President of Vice | ||||
|  | ||||
| This General Public License does not permit incorporating your program into | ||||
| proprietary programs.  If your program is a subroutine library, you may | ||||
| consider it more useful to permit linking proprietary applications with the | ||||
| library.  If this is what you want to do, use the GNU Lesser General | ||||
| Public License instead of this License. | ||||
							
								
								
									
										340
									
								
								vendor/github.com/docker/docker/contrib/selinux/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										340
									
								
								vendor/github.com/docker/docker/contrib/selinux/docker-engine-selinux/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,340 +0,0 @@ | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|  Copyright (C) 1989, 1991 Free Software Foundation, Inc. | ||||
|                        59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  Everyone is permitted to copy and distribute verbatim copies | ||||
|  of this license document, but changing it is not allowed. | ||||
|  | ||||
| 			    Preamble | ||||
|  | ||||
|   The licenses for most software are designed to take away your | ||||
| freedom to share and change it.  By contrast, the GNU General Public | ||||
| License is intended to guarantee your freedom to share and change free | ||||
| software--to make sure the software is free for all its users.  This | ||||
| General Public License applies to most of the Free Software | ||||
| Foundation's software and to any other program whose authors commit to | ||||
| using it.  (Some other Free Software Foundation software is covered by | ||||
| the GNU Library General Public License instead.)  You can apply it to | ||||
| your programs, too. | ||||
|  | ||||
|   When we speak of free software, we are referring to freedom, not | ||||
| price.  Our General Public Licenses are designed to make sure that you | ||||
| have the freedom to distribute copies of free software (and charge for | ||||
| this service if you wish), that you receive source code or can get it | ||||
| if you want it, that you can change the software or use pieces of it | ||||
| in new free programs; and that you know you can do these things. | ||||
|  | ||||
|   To protect your rights, we need to make restrictions that forbid | ||||
| anyone to deny you these rights or to ask you to surrender the rights. | ||||
| These restrictions translate to certain responsibilities for you if you | ||||
| distribute copies of the software, or if you modify it. | ||||
|  | ||||
|   For example, if you distribute copies of such a program, whether | ||||
| gratis or for a fee, you must give the recipients all the rights that | ||||
| you have.  You must make sure that they, too, receive or can get the | ||||
| source code.  And you must show them these terms so they know their | ||||
| rights. | ||||
|  | ||||
|   We protect your rights with two steps: (1) copyright the software, and | ||||
| (2) offer you this license which gives you legal permission to copy, | ||||
| distribute and/or modify the software. | ||||
|  | ||||
|   Also, for each author's protection and ours, we want to make certain | ||||
| that everyone understands that there is no warranty for this free | ||||
| software.  If the software is modified by someone else and passed on, we | ||||
| want its recipients to know that what they have is not the original, so | ||||
| that any problems introduced by others will not reflect on the original | ||||
| authors' reputations. | ||||
|  | ||||
|   Finally, any free program is threatened constantly by software | ||||
| patents.  We wish to avoid the danger that redistributors of a free | ||||
| program will individually obtain patent licenses, in effect making the | ||||
| program proprietary.  To prevent this, we have made it clear that any | ||||
| patent must be licensed for everyone's free use or not licensed at all. | ||||
|  | ||||
|   The precise terms and conditions for copying, distribution and | ||||
| modification follow. | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||
|  | ||||
|   0. This License applies to any program or other work which contains | ||||
| a notice placed by the copyright holder saying it may be distributed | ||||
| under the terms of this General Public License.  The "Program", below, | ||||
| refers to any such program or work, and a "work based on the Program" | ||||
| means either the Program or any derivative work under copyright law: | ||||
| that is to say, a work containing the Program or a portion of it, | ||||
| either verbatim or with modifications and/or translated into another | ||||
| language.  (Hereinafter, translation is included without limitation in | ||||
| the term "modification".)  Each licensee is addressed as "you". | ||||
|  | ||||
| Activities other than copying, distribution and modification are not | ||||
| covered by this License; they are outside its scope.  The act of | ||||
| running the Program is not restricted, and the output from the Program | ||||
| is covered only if its contents constitute a work based on the | ||||
| Program (independent of having been made by running the Program). | ||||
| Whether that is true depends on what the Program does. | ||||
|  | ||||
|   1. You may copy and distribute verbatim copies of the Program's | ||||
| source code as you receive it, in any medium, provided that you | ||||
| conspicuously and appropriately publish on each copy an appropriate | ||||
| copyright notice and disclaimer of warranty; keep intact all the | ||||
| notices that refer to this License and to the absence of any warranty; | ||||
| and give any other recipients of the Program a copy of this License | ||||
| along with the Program. | ||||
|  | ||||
| You may charge a fee for the physical act of transferring a copy, and | ||||
| you may at your option offer warranty protection in exchange for a fee. | ||||
|  | ||||
|   2. You may modify your copy or copies of the Program or any portion | ||||
| of it, thus forming a work based on the Program, and copy and | ||||
| distribute such modifications or work under the terms of Section 1 | ||||
| above, provided that you also meet all of these conditions: | ||||
|  | ||||
|     a) You must cause the modified files to carry prominent notices | ||||
|     stating that you changed the files and the date of any change. | ||||
|  | ||||
|     b) You must cause any work that you distribute or publish, that in | ||||
|     whole or in part contains or is derived from the Program or any | ||||
|     part thereof, to be licensed as a whole at no charge to all third | ||||
|     parties under the terms of this License. | ||||
|  | ||||
|     c) If the modified program normally reads commands interactively | ||||
|     when run, you must cause it, when started running for such | ||||
|     interactive use in the most ordinary way, to print or display an | ||||
|     announcement including an appropriate copyright notice and a | ||||
|     notice that there is no warranty (or else, saying that you provide | ||||
|     a warranty) and that users may redistribute the program under | ||||
|     these conditions, and telling the user how to view a copy of this | ||||
|     License.  (Exception: if the Program itself is interactive but | ||||
|     does not normally print such an announcement, your work based on | ||||
|     the Program is not required to print an announcement.) | ||||
|  | ||||
| These requirements apply to the modified work as a whole.  If | ||||
| identifiable sections of that work are not derived from the Program, | ||||
| and can be reasonably considered independent and separate works in | ||||
| themselves, then this License, and its terms, do not apply to those | ||||
| sections when you distribute them as separate works.  But when you | ||||
| distribute the same sections as part of a whole which is a work based | ||||
| on the Program, the distribution of the whole must be on the terms of | ||||
| this License, whose permissions for other licensees extend to the | ||||
| entire whole, and thus to each and every part regardless of who wrote it. | ||||
|  | ||||
| Thus, it is not the intent of this section to claim rights or contest | ||||
| your rights to work written entirely by you; rather, the intent is to | ||||
| exercise the right to control the distribution of derivative or | ||||
| collective works based on the Program. | ||||
|  | ||||
| In addition, mere aggregation of another work not based on the Program | ||||
| with the Program (or with a work based on the Program) on a volume of | ||||
| a storage or distribution medium does not bring the other work under | ||||
| the scope of this License. | ||||
|  | ||||
|   3. You may copy and distribute the Program (or a work based on it, | ||||
| under Section 2) in object code or executable form under the terms of | ||||
| Sections 1 and 2 above provided that you also do one of the following: | ||||
|  | ||||
|     a) Accompany it with the complete corresponding machine-readable | ||||
|     source code, which must be distributed under the terms of Sections | ||||
|     1 and 2 above on a medium customarily used for software interchange; or, | ||||
|  | ||||
|     b) Accompany it with a written offer, valid for at least three | ||||
|     years, to give any third party, for a charge no more than your | ||||
|     cost of physically performing source distribution, a complete | ||||
|     machine-readable copy of the corresponding source code, to be | ||||
|     distributed under the terms of Sections 1 and 2 above on a medium | ||||
|     customarily used for software interchange; or, | ||||
|  | ||||
|     c) Accompany it with the information you received as to the offer | ||||
|     to distribute corresponding source code.  (This alternative is | ||||
|     allowed only for noncommercial distribution and only if you | ||||
|     received the program in object code or executable form with such | ||||
|     an offer, in accord with Subsection b above.) | ||||
|  | ||||
| The source code for a work means the preferred form of the work for | ||||
| making modifications to it.  For an executable work, complete source | ||||
| code means all the source code for all modules it contains, plus any | ||||
| associated interface definition files, plus the scripts used to | ||||
| control compilation and installation of the executable.  However, as a | ||||
| special exception, the source code distributed need not include | ||||
| anything that is normally distributed (in either source or binary | ||||
| form) with the major components (compiler, kernel, and so on) of the | ||||
| operating system on which the executable runs, unless that component | ||||
| itself accompanies the executable. | ||||
|  | ||||
| If distribution of executable or object code is made by offering | ||||
| access to copy from a designated place, then offering equivalent | ||||
| access to copy the source code from the same place counts as | ||||
| distribution of the source code, even though third parties are not | ||||
| compelled to copy the source along with the object code. | ||||
|  | ||||
|   4. You may not copy, modify, sublicense, or distribute the Program | ||||
| except as expressly provided under this License.  Any attempt | ||||
| otherwise to copy, modify, sublicense or distribute the Program is | ||||
| void, and will automatically terminate your rights under this License. | ||||
| However, parties who have received copies, or rights, from you under | ||||
| this License will not have their licenses terminated so long as such | ||||
| parties remain in full compliance. | ||||
|  | ||||
|   5. You are not required to accept this License, since you have not | ||||
| signed it.  However, nothing else grants you permission to modify or | ||||
| distribute the Program or its derivative works.  These actions are | ||||
| prohibited by law if you do not accept this License.  Therefore, by | ||||
| modifying or distributing the Program (or any work based on the | ||||
| Program), you indicate your acceptance of this License to do so, and | ||||
| all its terms and conditions for copying, distributing or modifying | ||||
| the Program or works based on it. | ||||
|  | ||||
|   6. Each time you redistribute the Program (or any work based on the | ||||
| Program), the recipient automatically receives a license from the | ||||
| original licensor to copy, distribute or modify the Program subject to | ||||
| these terms and conditions.  You may not impose any further | ||||
| restrictions on the recipients' exercise of the rights granted herein. | ||||
| You are not responsible for enforcing compliance by third parties to | ||||
| this License. | ||||
|  | ||||
|   7. If, as a consequence of a court judgment or allegation of patent | ||||
| infringement or for any other reason (not limited to patent issues), | ||||
| conditions are imposed on you (whether by court order, agreement or | ||||
| otherwise) that contradict the conditions of this License, they do not | ||||
| excuse you from the conditions of this License.  If you cannot | ||||
| distribute so as to satisfy simultaneously your obligations under this | ||||
| License and any other pertinent obligations, then as a consequence you | ||||
| may not distribute the Program at all.  For example, if a patent | ||||
| license would not permit royalty-free redistribution of the Program by | ||||
| all those who receive copies directly or indirectly through you, then | ||||
| the only way you could satisfy both it and this License would be to | ||||
| refrain entirely from distribution of the Program. | ||||
|  | ||||
| If any portion of this section is held invalid or unenforceable under | ||||
| any particular circumstance, the balance of the section is intended to | ||||
| apply and the section as a whole is intended to apply in other | ||||
| circumstances. | ||||
|  | ||||
| It is not the purpose of this section to induce you to infringe any | ||||
| patents or other property right claims or to contest validity of any | ||||
| such claims; this section has the sole purpose of protecting the | ||||
| integrity of the free software distribution system, which is | ||||
| implemented by public license practices.  Many people have made | ||||
| generous contributions to the wide range of software distributed | ||||
| through that system in reliance on consistent application of that | ||||
| system; it is up to the author/donor to decide if he or she is willing | ||||
| to distribute software through any other system and a licensee cannot | ||||
| impose that choice. | ||||
|  | ||||
| This section is intended to make thoroughly clear what is believed to | ||||
| be a consequence of the rest of this License. | ||||
|  | ||||
|   8. If the distribution and/or use of the Program is restricted in | ||||
| certain countries either by patents or by copyrighted interfaces, the | ||||
| original copyright holder who places the Program under this License | ||||
| may add an explicit geographical distribution limitation excluding | ||||
| those countries, so that distribution is permitted only in or among | ||||
| countries not thus excluded.  In such case, this License incorporates | ||||
| the limitation as if written in the body of this License. | ||||
|  | ||||
|   9. The Free Software Foundation may publish revised and/or new versions | ||||
| of the General Public License from time to time.  Such new versions will | ||||
| be similar in spirit to the present version, but may differ in detail to | ||||
| address new problems or concerns. | ||||
|  | ||||
| Each version is given a distinguishing version number.  If the Program | ||||
| specifies a version number of this License which applies to it and "any | ||||
| later version", you have the option of following the terms and conditions | ||||
| either of that version or of any later version published by the Free | ||||
| Software Foundation.  If the Program does not specify a version number of | ||||
| this License, you may choose any version ever published by the Free Software | ||||
| Foundation. | ||||
|  | ||||
|   10. If you wish to incorporate parts of the Program into other free | ||||
| programs whose distribution conditions are different, write to the author | ||||
| to ask for permission.  For software which is copyrighted by the Free | ||||
| Software Foundation, write to the Free Software Foundation; we sometimes | ||||
| make exceptions for this.  Our decision will be guided by the two goals | ||||
| of preserving the free status of all derivatives of our free software and | ||||
| of promoting the sharing and reuse of software generally. | ||||
|  | ||||
| 			    NO WARRANTY | ||||
|  | ||||
|   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY | ||||
| FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN | ||||
| OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES | ||||
| PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED | ||||
| OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||||
| MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS | ||||
| TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE | ||||
| PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, | ||||
| REPAIR OR CORRECTION. | ||||
|  | ||||
|   12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | ||||
| WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR | ||||
| REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, | ||||
| INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING | ||||
| OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED | ||||
| TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY | ||||
| YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER | ||||
| PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE | ||||
| POSSIBILITY OF SUCH DAMAGES. | ||||
|  | ||||
| 		     END OF TERMS AND CONDITIONS | ||||
|  | ||||
| 	    How to Apply These Terms to Your New Programs | ||||
|  | ||||
|   If you develop a new program, and you want it to be of the greatest | ||||
| possible use to the public, the best way to achieve this is to make it | ||||
| free software which everyone can redistribute and change under these terms. | ||||
|  | ||||
|   To do so, attach the following notices to the program.  It is safest | ||||
| to attach them to the start of each source file to most effectively | ||||
| convey the exclusion of warranty; and each file should have at least | ||||
| the "copyright" line and a pointer to where the full notice is found. | ||||
|  | ||||
|     <one line to give the program's name and a brief idea of what it does.> | ||||
|     Copyright (C) <year>  <name of author> | ||||
|  | ||||
|     This program is free software; you can redistribute it and/or modify | ||||
|     it under the terms of the GNU General Public License as published by | ||||
|     the Free Software Foundation; either version 2 of the License, or | ||||
|     (at your option) any later version. | ||||
|  | ||||
|     This program is distributed in the hope that it will be useful, | ||||
|     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|     GNU General Public License for more details. | ||||
|  | ||||
|     You should have received a copy of the GNU General Public License | ||||
|     along with this program; if not, write to the Free Software | ||||
|     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||
|  | ||||
|  | ||||
| Also add information on how to contact you by electronic and paper mail. | ||||
|  | ||||
| If the program is interactive, make it output a short notice like this | ||||
| when it starts in an interactive mode: | ||||
|  | ||||
|     Gnomovision version 69, Copyright (C) year name of author | ||||
|     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | ||||
|     This is free software, and you are welcome to redistribute it | ||||
|     under certain conditions; type `show c' for details. | ||||
|  | ||||
| The hypothetical commands `show w' and `show c' should show the appropriate | ||||
| parts of the General Public License.  Of course, the commands you use may | ||||
| be called something other than `show w' and `show c'; they could even be | ||||
| mouse-clicks or menu items--whatever suits your program. | ||||
|  | ||||
| You should also get your employer (if you work as a programmer) or your | ||||
| school, if any, to sign a "copyright disclaimer" for the program, if | ||||
| necessary.  Here is a sample; alter the names: | ||||
|  | ||||
|   Yoyodyne, Inc., hereby disclaims all copyright interest in the program | ||||
|   `Gnomovision' (which makes passes at compilers) written by James Hacker. | ||||
|  | ||||
|   <signature of Ty Coon>, 1 April 1989 | ||||
|   Ty Coon, President of Vice | ||||
|  | ||||
| This General Public License does not permit incorporating your program into | ||||
| proprietary programs.  If your program is a subroutine library, you may | ||||
| consider it more useful to permit linking proprietary applications with the | ||||
| library.  If this is what you want to do, use the GNU Library General | ||||
| Public License instead of this License. | ||||
							
								
								
									
										22
									
								
								vendor/github.com/docker/docker/contrib/syntax/vim/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/docker/docker/contrib/syntax/vim/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,22 +0,0 @@ | ||||
| Copyright (c) 2013 Honza Pokorny | ||||
| All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are met: | ||||
|  | ||||
| 1. Redistributions of source code must retain the above copyright | ||||
|    notice, this list of conditions and the following disclaimer. | ||||
| 2. Redistributions in binary form must reproduce the above copyright | ||||
|    notice, this list of conditions and the following disclaimer in the | ||||
|    documentation and/or other materials provided with the distribution. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND | ||||
| ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||||
| WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||||
| DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR | ||||
| ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||||
| (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||||
| LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||||
| ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||
| SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
							
								
								
									
										15
									
								
								vendor/github.com/docker/docker/hack/generate-authors.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/docker/docker/hack/generate-authors.sh
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,15 +0,0 @@ | ||||
| #!/bin/bash | ||||
| set -e | ||||
|  | ||||
| cd "$(dirname "$(readlink -f "$BASH_SOURCE")")/.." | ||||
|  | ||||
| # see also ".mailmap" for how email addresses and names are deduplicated | ||||
|  | ||||
| { | ||||
| 	cat <<-'EOH' | ||||
| 	# This file lists all individuals having contributed content to the repository. | ||||
| 	# For how it is generated, see `hack/generate-authors.sh`. | ||||
| 	EOH | ||||
| 	echo | ||||
| 	git log --format='%aN <%aE>' | LC_ALL=C.UTF-8 sort -uf | ||||
| } > AUTHORS | ||||
							
								
								
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.default
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.default
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| ../../../contrib/init/sysvinit-debian/docker.default | ||||
							
								
								
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.init
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.init
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| ../../../contrib/init/sysvinit-debian/docker | ||||
							
								
								
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.upstart
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.docker.upstart
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| ../../../contrib/init/upstart/docker.conf | ||||
							
								
								
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.udev
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/docker/docker/hack/make/.build-deb/docker-engine.udev
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| ../../../contrib/udev/80-docker.rules | ||||
							
								
								
									
										191
									
								
								vendor/github.com/docker/docker/pkg/symlink/LICENSE.APACHE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										191
									
								
								vendor/github.com/docker/docker/pkg/symlink/LICENSE.APACHE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,191 +0,0 @@ | ||||
|  | ||||
|                                  Apache License | ||||
|                            Version 2.0, January 2004 | ||||
|                         http://www.apache.org/licenses/ | ||||
|  | ||||
|    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||||
|  | ||||
|    1. Definitions. | ||||
|  | ||||
|       "License" shall mean the terms and conditions for use, reproduction, | ||||
|       and distribution as defined by Sections 1 through 9 of this document. | ||||
|  | ||||
|       "Licensor" shall mean the copyright owner or entity authorized by | ||||
|       the copyright owner that is granting the License. | ||||
|  | ||||
|       "Legal Entity" shall mean the union of the acting entity and all | ||||
|       other entities that control, are controlled by, or are under common | ||||
|       control with that entity. For the purposes of this definition, | ||||
|       "control" means (i) the power, direct or indirect, to cause the | ||||
|       direction or management of such entity, whether by contract or | ||||
|       otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||||
|       outstanding shares, or (iii) beneficial ownership of such entity. | ||||
|  | ||||
|       "You" (or "Your") shall mean an individual or Legal Entity | ||||
|       exercising permissions granted by this License. | ||||
|  | ||||
|       "Source" form shall mean the preferred form for making modifications, | ||||
|       including but not limited to software source code, documentation | ||||
|       source, and configuration files. | ||||
|  | ||||
|       "Object" form shall mean any form resulting from mechanical | ||||
|       transformation or translation of a Source form, including but | ||||
|       not limited to compiled object code, generated documentation, | ||||
|       and conversions to other media types. | ||||
|  | ||||
|       "Work" shall mean the work of authorship, whether in Source or | ||||
|       Object form, made available under the License, as indicated by a | ||||
|       copyright notice that is included in or attached to the work | ||||
|       (an example is provided in the Appendix below). | ||||
|  | ||||
|       "Derivative Works" shall mean any work, whether in Source or Object | ||||
|       form, that is based on (or derived from) the Work and for which the | ||||
|       editorial revisions, annotations, elaborations, or other modifications | ||||
|       represent, as a whole, an original work of authorship. For the purposes | ||||
|       of this License, Derivative Works shall not include works that remain | ||||
|       separable from, or merely link (or bind by name) to the interfaces of, | ||||
|       the Work and Derivative Works thereof. | ||||
|  | ||||
|       "Contribution" shall mean any work of authorship, including | ||||
|       the original version of the Work and any modifications or additions | ||||
|       to that Work or Derivative Works thereof, that is intentionally | ||||
|       submitted to Licensor for inclusion in the Work by the copyright owner | ||||
|       or by an individual or Legal Entity authorized to submit on behalf of | ||||
|       the copyright owner. For the purposes of this definition, "submitted" | ||||
|       means any form of electronic, verbal, or written communication sent | ||||
|       to the Licensor or its representatives, including but not limited to | ||||
|       communication on electronic mailing lists, source code control systems, | ||||
|       and issue tracking systems that are managed by, or on behalf of, the | ||||
|       Licensor for the purpose of discussing and improving the Work, but | ||||
|       excluding communication that is conspicuously marked or otherwise | ||||
|       designated in writing by the copyright owner as "Not a Contribution." | ||||
|  | ||||
|       "Contributor" shall mean Licensor and any individual or Legal Entity | ||||
|       on behalf of whom a Contribution has been received by Licensor and | ||||
|       subsequently incorporated within the Work. | ||||
|  | ||||
|    2. Grant of Copyright License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       copyright license to reproduce, prepare Derivative Works of, | ||||
|       publicly display, publicly perform, sublicense, and distribute the | ||||
|       Work and such Derivative Works in Source or Object form. | ||||
|  | ||||
|    3. Grant of Patent License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       (except as stated in this section) patent license to make, have made, | ||||
|       use, offer to sell, sell, import, and otherwise transfer the Work, | ||||
|       where such license applies only to those patent claims licensable | ||||
|       by such Contributor that are necessarily infringed by their | ||||
|       Contribution(s) alone or by combination of their Contribution(s) | ||||
|       with the Work to which such Contribution(s) was submitted. If You | ||||
|       institute patent litigation against any entity (including a | ||||
|       cross-claim or counterclaim in a lawsuit) alleging that the Work | ||||
|       or a Contribution incorporated within the Work constitutes direct | ||||
|       or contributory patent infringement, then any patent licenses | ||||
|       granted to You under this License for that Work shall terminate | ||||
|       as of the date such litigation is filed. | ||||
|  | ||||
|    4. Redistribution. You may reproduce and distribute copies of the | ||||
|       Work or Derivative Works thereof in any medium, with or without | ||||
|       modifications, and in Source or Object form, provided that You | ||||
|       meet the following conditions: | ||||
|  | ||||
|       (a) You must give any other recipients of the Work or | ||||
|           Derivative Works a copy of this License; and | ||||
|  | ||||
|       (b) You must cause any modified files to carry prominent notices | ||||
|           stating that You changed the files; and | ||||
|  | ||||
|       (c) You must retain, in the Source form of any Derivative Works | ||||
|           that You distribute, all copyright, patent, trademark, and | ||||
|           attribution notices from the Source form of the Work, | ||||
|           excluding those notices that do not pertain to any part of | ||||
|           the Derivative Works; and | ||||
|  | ||||
|       (d) If the Work includes a "NOTICE" text file as part of its | ||||
|           distribution, then any Derivative Works that You distribute must | ||||
|           include a readable copy of the attribution notices contained | ||||
|           within such NOTICE file, excluding those notices that do not | ||||
|           pertain to any part of the Derivative Works, in at least one | ||||
|           of the following places: within a NOTICE text file distributed | ||||
|           as part of the Derivative Works; within the Source form or | ||||
|           documentation, if provided along with the Derivative Works; or, | ||||
|           within a display generated by the Derivative Works, if and | ||||
|           wherever such third-party notices normally appear. The contents | ||||
|           of the NOTICE file are for informational purposes only and | ||||
|           do not modify the License. You may add Your own attribution | ||||
|           notices within Derivative Works that You distribute, alongside | ||||
|           or as an addendum to the NOTICE text from the Work, provided | ||||
|           that such additional attribution notices cannot be construed | ||||
|           as modifying the License. | ||||
|  | ||||
|       You may add Your own copyright statement to Your modifications and | ||||
|       may provide additional or different license terms and conditions | ||||
|       for use, reproduction, or distribution of Your modifications, or | ||||
|       for any such Derivative Works as a whole, provided Your use, | ||||
|       reproduction, and distribution of the Work otherwise complies with | ||||
|       the conditions stated in this License. | ||||
|  | ||||
|    5. Submission of Contributions. Unless You explicitly state otherwise, | ||||
|       any Contribution intentionally submitted for inclusion in the Work | ||||
|       by You to the Licensor shall be under the terms and conditions of | ||||
|       this License, without any additional terms or conditions. | ||||
|       Notwithstanding the above, nothing herein shall supersede or modify | ||||
|       the terms of any separate license agreement you may have executed | ||||
|       with Licensor regarding such Contributions. | ||||
|  | ||||
|    6. Trademarks. This License does not grant permission to use the trade | ||||
|       names, trademarks, service marks, or product names of the Licensor, | ||||
|       except as required for reasonable and customary use in describing the | ||||
|       origin of the Work and reproducing the content of the NOTICE file. | ||||
|  | ||||
|    7. Disclaimer of Warranty. Unless required by applicable law or | ||||
|       agreed to in writing, Licensor provides the Work (and each | ||||
|       Contributor provides its Contributions) on an "AS IS" BASIS, | ||||
|       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||||
|       implied, including, without limitation, any warranties or conditions | ||||
|       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||||
|       PARTICULAR PURPOSE. You are solely responsible for determining the | ||||
|       appropriateness of using or redistributing the Work and assume any | ||||
|       risks associated with Your exercise of permissions under this License. | ||||
|  | ||||
|    8. Limitation of Liability. In no event and under no legal theory, | ||||
|       whether in tort (including negligence), contract, or otherwise, | ||||
|       unless required by applicable law (such as deliberate and grossly | ||||
|       negligent acts) or agreed to in writing, shall any Contributor be | ||||
|       liable to You for damages, including any direct, indirect, special, | ||||
|       incidental, or consequential damages of any character arising as a | ||||
|       result of this License or out of the use or inability to use the | ||||
|       Work (including but not limited to damages for loss of goodwill, | ||||
|       work stoppage, computer failure or malfunction, or any and all | ||||
|       other commercial damages or losses), even if such Contributor | ||||
|       has been advised of the possibility of such damages. | ||||
|  | ||||
|    9. Accepting Warranty or Additional Liability. While redistributing | ||||
|       the Work or Derivative Works thereof, You may choose to offer, | ||||
|       and charge a fee for, acceptance of support, warranty, indemnity, | ||||
|       or other liability obligations and/or rights consistent with this | ||||
|       License. However, in accepting such obligations, You may act only | ||||
|       on Your own behalf and on Your sole responsibility, not on behalf | ||||
|       of any other Contributor, and only if You agree to indemnify, | ||||
|       defend, and hold each Contributor harmless for any liability | ||||
|       incurred by, or claims asserted against, such Contributor by reason | ||||
|       of your accepting any such warranty or additional liability. | ||||
|  | ||||
|    END OF TERMS AND CONDITIONS | ||||
|  | ||||
|    Copyright 2014-2016 Docker, Inc. | ||||
|  | ||||
|    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. | ||||
							
								
								
									
										27
									
								
								vendor/github.com/docker/docker/pkg/symlink/LICENSE.BSD
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/docker/docker/pkg/symlink/LICENSE.BSD
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,27 +0,0 @@ | ||||
| Copyright (c) 2014-2016 The Docker & Go Authors. All rights reserved. | ||||
|  | ||||
| Redistribution and use in source and binary forms, with or without | ||||
| modification, are permitted provided that the following conditions are | ||||
| met: | ||||
|  | ||||
|    * Redistributions of source code must retain the above copyright | ||||
| notice, this list of conditions and the following disclaimer. | ||||
|    * Redistributions in binary form must reproduce the above | ||||
| copyright notice, this list of conditions and the following disclaimer | ||||
| in the documentation and/or other materials provided with the | ||||
| distribution. | ||||
|    * Neither the name of Google Inc. nor the names of its | ||||
| contributors may be used to endorse or promote products derived from | ||||
| this software without specific prior written permission. | ||||
|  | ||||
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
							
								
								
									
										4
									
								
								vendor/github.com/docker/docker/pkg/term/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/docker/docker/pkg/term/ascii.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
| package term | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| @@ -59,7 +59,7 @@ next: | ||||
| 				return nil, fmt.Errorf("Unknown character: '%s'", key) | ||||
| 			} | ||||
| 		} else { | ||||
| 			codes = append(codes, byte(key[0])) | ||||
| 			codes = append(codes, key[0]) | ||||
| 		} | ||||
| 	} | ||||
| 	return codes, nil | ||||
|   | ||||
							
								
								
									
										78
									
								
								vendor/github.com/docker/docker/pkg/term/proxy.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								vendor/github.com/docker/docker/pkg/term/proxy.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
| ) | ||||
|  | ||||
| // EscapeError is special error which returned by a TTY proxy reader's Read() | ||||
| // method in case its detach escape sequence is read. | ||||
| type EscapeError struct{} | ||||
|  | ||||
| func (EscapeError) Error() string { | ||||
| 	return "read escape sequence" | ||||
| } | ||||
|  | ||||
| // escapeProxy is used only for attaches with a TTY. It is used to proxy | ||||
| // stdin keypresses from the underlying reader and look for the passed in | ||||
| // escape key sequence to signal a detach. | ||||
| type escapeProxy struct { | ||||
| 	escapeKeys   []byte | ||||
| 	escapeKeyPos int | ||||
| 	r            io.Reader | ||||
| } | ||||
|  | ||||
| // NewEscapeProxy returns a new TTY proxy reader which wraps the given reader | ||||
| // and detects when the specified escape keys are read, in which case the Read | ||||
| // method will return an error of type EscapeError. | ||||
| func NewEscapeProxy(r io.Reader, escapeKeys []byte) io.Reader { | ||||
| 	return &escapeProxy{ | ||||
| 		escapeKeys: escapeKeys, | ||||
| 		r:          r, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (r *escapeProxy) Read(buf []byte) (int, error) { | ||||
| 	nr, err := r.r.Read(buf) | ||||
|  | ||||
| 	if len(r.escapeKeys) == 0 { | ||||
| 		return nr, err | ||||
| 	} | ||||
|  | ||||
| 	preserve := func() { | ||||
| 		// this preserves the original key presses in the passed in buffer | ||||
| 		nr += r.escapeKeyPos | ||||
| 		preserve := make([]byte, 0, r.escapeKeyPos+len(buf)) | ||||
| 		preserve = append(preserve, r.escapeKeys[:r.escapeKeyPos]...) | ||||
| 		preserve = append(preserve, buf...) | ||||
| 		r.escapeKeyPos = 0 | ||||
| 		copy(buf[0:nr], preserve) | ||||
| 	} | ||||
|  | ||||
| 	if nr != 1 || err != nil { | ||||
| 		if r.escapeKeyPos > 0 { | ||||
| 			preserve() | ||||
| 		} | ||||
| 		return nr, err | ||||
| 	} | ||||
|  | ||||
| 	if buf[0] != r.escapeKeys[r.escapeKeyPos] { | ||||
| 		if r.escapeKeyPos > 0 { | ||||
| 			preserve() | ||||
| 		} | ||||
| 		return nr, nil | ||||
| 	} | ||||
|  | ||||
| 	if r.escapeKeyPos == len(r.escapeKeys)-1 { | ||||
| 		return 0, EscapeError{} | ||||
| 	} | ||||
|  | ||||
| 	// Looks like we've got an escape key, but we need to match again on the next | ||||
| 	// read. | ||||
| 	// Store the current escape key we found so we can look for the next one on | ||||
| 	// the next read. | ||||
| 	// Since this is an escape key, make sure we don't let the caller read it | ||||
| 	// If later on we find that this is not the escape sequence, we'll add the | ||||
| 	// keys back | ||||
| 	r.escapeKeyPos++ | ||||
| 	return nr - r.escapeKeyPos, nil | ||||
| } | ||||
							
								
								
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/tc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/tc.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // +build !windows | ||||
|  | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| func tcget(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	_, _, err := unix.Syscall(unix.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(p))) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func tcset(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	_, _, err := unix.Syscall(unix.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(p))) | ||||
| 	return err | ||||
| } | ||||
							
								
								
									
										50
									
								
								vendor/github.com/docker/docker/pkg/term/tc_linux_cgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										50
									
								
								vendor/github.com/docker/docker/pkg/term/tc_linux_cgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,50 +0,0 @@ | ||||
| // +build linux,cgo | ||||
|  | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| // #include <termios.h> | ||||
| import "C" | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| // It is passthrough for syscall.Termios in order to make it portable with | ||||
| // other platforms where it is not available or handled differently. | ||||
| type Termios syscall.Termios | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if err := tcget(fd, &oldState.termios); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
|  | ||||
| 	C.cfmakeraw((*C.struct_termios)(unsafe.Pointer(&newState))) | ||||
| 	if err := tcset(fd, &newState); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &oldState, nil | ||||
| } | ||||
|  | ||||
| func tcget(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	ret, err := C.tcgetattr(C.int(fd), (*C.struct_termios)(unsafe.Pointer(p))) | ||||
| 	if ret != 0 { | ||||
| 		return err.(syscall.Errno) | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func tcset(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	ret, err := C.tcsetattr(C.int(fd), C.TCSANOW, (*C.struct_termios)(unsafe.Pointer(p))) | ||||
| 	if ret != 0 { | ||||
| 		return err.(syscall.Errno) | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
							
								
								
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/tc_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/tc_other.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,20 +0,0 @@ | ||||
| // +build !windows | ||||
| // +build !linux !cgo | ||||
| // +build !solaris !cgo | ||||
|  | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| func tcget(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(p))) | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func tcset(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(p))) | ||||
| 	return err | ||||
| } | ||||
							
								
								
									
										63
									
								
								vendor/github.com/docker/docker/pkg/term/tc_solaris_cgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								vendor/github.com/docker/docker/pkg/term/tc_solaris_cgo.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,63 +0,0 @@ | ||||
| // +build solaris,cgo | ||||
|  | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| // #include <termios.h> | ||||
| import "C" | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| // It is passthrough for syscall.Termios in order to make it portable with | ||||
| // other platforms where it is not available or handled differently. | ||||
| type Termios syscall.Termios | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if err := tcget(fd, &oldState.termios); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
|  | ||||
| 	newState.Iflag &^= (syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON | syscall.IXANY) | ||||
| 	newState.Oflag &^= syscall.OPOST | ||||
| 	newState.Lflag &^= (syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN) | ||||
| 	newState.Cflag &^= (syscall.CSIZE | syscall.PARENB) | ||||
| 	newState.Cflag |= syscall.CS8 | ||||
|  | ||||
| 	/* | ||||
| 		VMIN is the minimum number of characters that needs to be read in non-canonical mode for it to be returned | ||||
| 		Since VMIN is overloaded with another element in canonical mode when we switch modes it defaults to 4. It | ||||
| 		needs to be explicitly set to 1. | ||||
| 	*/ | ||||
| 	newState.Cc[C.VMIN] = 1 | ||||
| 	newState.Cc[C.VTIME] = 0 | ||||
|  | ||||
| 	if err := tcset(fd, &newState); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &oldState, nil | ||||
| } | ||||
|  | ||||
| func tcget(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	ret, err := C.tcgetattr(C.int(fd), (*C.struct_termios)(unsafe.Pointer(p))) | ||||
| 	if ret != 0 { | ||||
| 		return err.(syscall.Errno) | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
|  | ||||
| func tcset(fd uintptr, p *Termios) syscall.Errno { | ||||
| 	ret, err := C.tcsetattr(C.int(fd), C.TCSANOW, (*C.struct_termios)(unsafe.Pointer(p))) | ||||
| 	if ret != 0 { | ||||
| 		return err.(syscall.Errno) | ||||
| 	} | ||||
| 	return 0 | ||||
| } | ||||
							
								
								
									
										9
									
								
								vendor/github.com/docker/docker/pkg/term/term.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/docker/docker/pkg/term/term.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -2,7 +2,7 @@ | ||||
|  | ||||
| // Package term provides structures and helper functions to work with | ||||
| // terminal (state, sizes). | ||||
| package term | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"errors" | ||||
| @@ -10,7 +10,8 @@ import ( | ||||
| 	"io" | ||||
| 	"os" | ||||
| 	"os/signal" | ||||
| 	"syscall" | ||||
|  | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| @@ -31,7 +32,7 @@ type Winsize struct { | ||||
| 	y      uint16 | ||||
| } | ||||
|  | ||||
| // StdStreams returns the standard streams (stdin, stdout, stedrr). | ||||
| // StdStreams returns the standard streams (stdin, stdout, stderr). | ||||
| func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { | ||||
| 	return os.Stdin, os.Stdout, os.Stderr | ||||
| } | ||||
| @@ -79,7 +80,7 @@ func SaveState(fd uintptr) (*State, error) { | ||||
| // descriptor, with echo disabled. | ||||
| func DisableEcho(fd uintptr, state *State) error { | ||||
| 	newState := state.termios | ||||
| 	newState.Lflag &^= syscall.ECHO | ||||
| 	newState.Lflag &^= unix.ECHO | ||||
|  | ||||
| 	if err := tcset(fd, &newState); err != 0 { | ||||
| 		return err | ||||
|   | ||||
							
								
								
									
										41
									
								
								vendor/github.com/docker/docker/pkg/term/term_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/docker/docker/pkg/term/term_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,41 +0,0 @@ | ||||
| // +build solaris | ||||
|  | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| /* | ||||
| #include <unistd.h> | ||||
| #include <stropts.h> | ||||
| #include <termios.h> | ||||
|  | ||||
| // Small wrapper to get rid of variadic args of ioctl() | ||||
| int my_ioctl(int fd, int cmd, struct winsize *ws) { | ||||
| 	return ioctl(fd, cmd, ws); | ||||
| } | ||||
| */ | ||||
| import "C" | ||||
|  | ||||
| // GetWinsize returns the window size based on the specified file descriptor. | ||||
| func GetWinsize(fd uintptr) (*Winsize, error) { | ||||
| 	ws := &Winsize{} | ||||
| 	ret, err := C.my_ioctl(C.int(fd), C.int(syscall.TIOCGWINSZ), (*C.struct_winsize)(unsafe.Pointer(ws))) | ||||
| 	// Skip retval = 0 | ||||
| 	if ret == 0 { | ||||
| 		return ws, nil | ||||
| 	} | ||||
| 	return ws, err | ||||
| } | ||||
|  | ||||
| // SetWinsize tries to set the specified window size for the specified file descriptor. | ||||
| func SetWinsize(fd uintptr, ws *Winsize) error { | ||||
| 	ret, err := C.my_ioctl(C.int(fd), C.int(syscall.TIOCSWINSZ), (*C.struct_winsize)(unsafe.Pointer(ws))) | ||||
| 	// Skip retval = 0 | ||||
| 	if ret == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
							
								
								
									
										29
									
								
								vendor/github.com/docker/docker/pkg/term/term_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/docker/docker/pkg/term/term_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,29 +0,0 @@ | ||||
| // +build !solaris,!windows | ||||
|  | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| // GetWinsize returns the window size based on the specified file descriptor. | ||||
| func GetWinsize(fd uintptr) (*Winsize, error) { | ||||
| 	ws := &Winsize{} | ||||
| 	_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(ws))) | ||||
| 	// Skipp errno = 0 | ||||
| 	if err == 0 { | ||||
| 		return ws, nil | ||||
| 	} | ||||
| 	return ws, err | ||||
| } | ||||
|  | ||||
| // SetWinsize tries to set the specified window size for the specified file descriptor. | ||||
| func SetWinsize(fd uintptr, ws *Winsize) error { | ||||
| 	_, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(syscall.TIOCSWINSZ), uintptr(unsafe.Pointer(ws))) | ||||
| 	// Skipp errno = 0 | ||||
| 	if err == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return err | ||||
| } | ||||
							
								
								
									
										60
									
								
								vendor/github.com/docker/docker/pkg/term/term_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										60
									
								
								vendor/github.com/docker/docker/pkg/term/term_windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,12 +1,10 @@ | ||||
| // +build windows | ||||
|  | ||||
| package term | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
| 	"os" | ||||
| 	"os/signal" | ||||
| 	"syscall" | ||||
| 	"syscall" // used for STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and STD_ERROR_HANDLE | ||||
|  | ||||
| 	"github.com/Azure/go-ansiterm/winterm" | ||||
| 	"github.com/docker/docker/pkg/term/windows" | ||||
| @@ -23,25 +21,18 @@ type Winsize struct { | ||||
| 	Width  uint16 | ||||
| } | ||||
|  | ||||
| const ( | ||||
| 	// https://msdn.microsoft.com/en-us/library/windows/desktop/ms683167(v=vs.85).aspx | ||||
| 	enableVirtualTerminalInput      = 0x0200 | ||||
| 	enableVirtualTerminalProcessing = 0x0004 | ||||
| 	disableNewlineAutoReturn        = 0x0008 | ||||
| ) | ||||
|  | ||||
| // vtInputSupported is true if enableVirtualTerminalInput is supported by the console | ||||
| // vtInputSupported is true if winterm.ENABLE_VIRTUAL_TERMINAL_INPUT is supported by the console | ||||
| var vtInputSupported bool | ||||
|  | ||||
| // StdStreams returns the standard streams (stdin, stdout, stedrr). | ||||
| // StdStreams returns the standard streams (stdin, stdout, stderr). | ||||
| func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { | ||||
| 	// Turn on VT handling on all std handles, if possible. This might | ||||
| 	// fail, in which case we will fall back to terminal emulation. | ||||
| 	var emulateStdin, emulateStdout, emulateStderr bool | ||||
| 	fd := os.Stdin.Fd() | ||||
| 	if mode, err := winterm.GetConsoleMode(fd); err == nil { | ||||
| 		// Validate that enableVirtualTerminalInput is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|enableVirtualTerminalInput); err != nil { | ||||
| 		// Validate that winterm.ENABLE_VIRTUAL_TERMINAL_INPUT is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_INPUT); err != nil { | ||||
| 			emulateStdin = true | ||||
| 		} else { | ||||
| 			vtInputSupported = true | ||||
| @@ -53,45 +44,42 @@ func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { | ||||
|  | ||||
| 	fd = os.Stdout.Fd() | ||||
| 	if mode, err := winterm.GetConsoleMode(fd); err == nil { | ||||
| 		// Validate disableNewlineAutoReturn is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|enableVirtualTerminalProcessing|disableNewlineAutoReturn); err != nil { | ||||
| 		// Validate winterm.DISABLE_NEWLINE_AUTO_RETURN is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING|winterm.DISABLE_NEWLINE_AUTO_RETURN); err != nil { | ||||
| 			emulateStdout = true | ||||
| 		} else { | ||||
| 			winterm.SetConsoleMode(fd, mode|enableVirtualTerminalProcessing) | ||||
| 			winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	fd = os.Stderr.Fd() | ||||
| 	if mode, err := winterm.GetConsoleMode(fd); err == nil { | ||||
| 		// Validate disableNewlineAutoReturn is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|enableVirtualTerminalProcessing|disableNewlineAutoReturn); err != nil { | ||||
| 		// Validate winterm.DISABLE_NEWLINE_AUTO_RETURN is supported, but do not set it. | ||||
| 		if err = winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING|winterm.DISABLE_NEWLINE_AUTO_RETURN); err != nil { | ||||
| 			emulateStderr = true | ||||
| 		} else { | ||||
| 			winterm.SetConsoleMode(fd, mode|enableVirtualTerminalProcessing) | ||||
| 			winterm.SetConsoleMode(fd, mode|winterm.ENABLE_VIRTUAL_TERMINAL_PROCESSING) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	if os.Getenv("ConEmuANSI") == "ON" || os.Getenv("ConsoleZVersion") != "" { | ||||
| 		// The ConEmu and ConsoleZ terminals emulate ANSI on output streams well. | ||||
| 		emulateStdin = true | ||||
| 		emulateStdout = false | ||||
| 		emulateStderr = false | ||||
| 	} | ||||
|  | ||||
| 	// Temporarily use STD_INPUT_HANDLE, STD_OUTPUT_HANDLE and | ||||
| 	// STD_ERROR_HANDLE from syscall rather than x/sys/windows as long as | ||||
| 	// go-ansiterm hasn't switch to x/sys/windows. | ||||
| 	// TODO: switch back to x/sys/windows once go-ansiterm has switched | ||||
| 	if emulateStdin { | ||||
| 		stdIn = windows.NewAnsiReader(syscall.STD_INPUT_HANDLE) | ||||
| 		stdIn = windowsconsole.NewAnsiReader(syscall.STD_INPUT_HANDLE) | ||||
| 	} else { | ||||
| 		stdIn = os.Stdin | ||||
| 	} | ||||
|  | ||||
| 	if emulateStdout { | ||||
| 		stdOut = windows.NewAnsiWriter(syscall.STD_OUTPUT_HANDLE) | ||||
| 		stdOut = windowsconsole.NewAnsiWriter(syscall.STD_OUTPUT_HANDLE) | ||||
| 	} else { | ||||
| 		stdOut = os.Stdout | ||||
| 	} | ||||
|  | ||||
| 	if emulateStderr { | ||||
| 		stdErr = windows.NewAnsiWriter(syscall.STD_ERROR_HANDLE) | ||||
| 		stdErr = windowsconsole.NewAnsiWriter(syscall.STD_ERROR_HANDLE) | ||||
| 	} else { | ||||
| 		stdErr = os.Stderr | ||||
| 	} | ||||
| @@ -101,7 +89,7 @@ func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) { | ||||
|  | ||||
| // GetFdInfo returns the file descriptor for an os.File and indicates whether the file represents a terminal. | ||||
| func GetFdInfo(in interface{}) (uintptr, bool) { | ||||
| 	return windows.GetHandleInfo(in) | ||||
| 	return windowsconsole.GetHandleInfo(in) | ||||
| } | ||||
|  | ||||
| // GetWinsize returns the window size based on the specified file descriptor. | ||||
| @@ -121,7 +109,7 @@ func GetWinsize(fd uintptr) (*Winsize, error) { | ||||
|  | ||||
| // IsTerminal returns true if the given file descriptor is a terminal. | ||||
| func IsTerminal(fd uintptr) bool { | ||||
| 	return windows.IsConsole(fd) | ||||
| 	return windowsconsole.IsConsole(fd) | ||||
| } | ||||
|  | ||||
| // RestoreTerminal restores the terminal connected to the given file descriptor | ||||
| @@ -179,9 +167,9 @@ func SetRawTerminalOutput(fd uintptr) (*State, error) { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	// Ignore failures, since disableNewlineAutoReturn might not be supported on this | ||||
| 	// Ignore failures, since winterm.DISABLE_NEWLINE_AUTO_RETURN might not be supported on this | ||||
| 	// version of Windows. | ||||
| 	winterm.SetConsoleMode(fd, state.mode|disableNewlineAutoReturn) | ||||
| 	winterm.SetConsoleMode(fd, state.mode|winterm.DISABLE_NEWLINE_AUTO_RETURN) | ||||
| 	return state, err | ||||
| } | ||||
|  | ||||
| @@ -211,7 +199,7 @@ func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	mode |= winterm.ENABLE_INSERT_MODE | ||||
| 	mode |= winterm.ENABLE_QUICK_EDIT_MODE | ||||
| 	if vtInputSupported { | ||||
| 		mode |= enableVirtualTerminalInput | ||||
| 		mode |= winterm.ENABLE_VIRTUAL_TERMINAL_INPUT | ||||
| 	} | ||||
|  | ||||
| 	err = winterm.SetConsoleMode(fd, mode) | ||||
|   | ||||
							
								
								
									
										42
									
								
								vendor/github.com/docker/docker/pkg/term/termios_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/docker/docker/pkg/term/termios_bsd.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| // +build darwin freebsd openbsd netbsd | ||||
|  | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"unsafe" | ||||
|  | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	getTermios = unix.TIOCGETA | ||||
| 	setTermios = unix.TIOCSETA | ||||
| ) | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| type Termios unix.Termios | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, getTermios, uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
| 	newState.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) | ||||
| 	newState.Oflag &^= unix.OPOST | ||||
| 	newState.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) | ||||
| 	newState.Cflag &^= (unix.CSIZE | unix.PARENB) | ||||
| 	newState.Cflag |= unix.CS8 | ||||
| 	newState.Cc[unix.VMIN] = 1 | ||||
| 	newState.Cc[unix.VTIME] = 0 | ||||
|  | ||||
| 	if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(&newState))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &oldState, nil | ||||
| } | ||||
							
								
								
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,69 +0,0 @@ | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	getTermios = syscall.TIOCGETA | ||||
| 	setTermios = syscall.TIOCSETA | ||||
| ) | ||||
|  | ||||
| // Termios magic numbers, passthrough to the ones defined in syscall. | ||||
| const ( | ||||
| 	IGNBRK = syscall.IGNBRK | ||||
| 	PARMRK = syscall.PARMRK | ||||
| 	INLCR  = syscall.INLCR | ||||
| 	IGNCR  = syscall.IGNCR | ||||
| 	ECHONL = syscall.ECHONL | ||||
| 	CSIZE  = syscall.CSIZE | ||||
| 	ICRNL  = syscall.ICRNL | ||||
| 	ISTRIP = syscall.ISTRIP | ||||
| 	PARENB = syscall.PARENB | ||||
| 	ECHO   = syscall.ECHO | ||||
| 	ICANON = syscall.ICANON | ||||
| 	ISIG   = syscall.ISIG | ||||
| 	IXON   = syscall.IXON | ||||
| 	BRKINT = syscall.BRKINT | ||||
| 	INPCK  = syscall.INPCK | ||||
| 	OPOST  = syscall.OPOST | ||||
| 	CS8    = syscall.CS8 | ||||
| 	IEXTEN = syscall.IEXTEN | ||||
| ) | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| type Termios struct { | ||||
| 	Iflag  uint64 | ||||
| 	Oflag  uint64 | ||||
| 	Cflag  uint64 | ||||
| 	Lflag  uint64 | ||||
| 	Cc     [20]byte | ||||
| 	Ispeed uint64 | ||||
| 	Ospeed uint64 | ||||
| } | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
| 	newState.Iflag &^= (IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON) | ||||
| 	newState.Oflag &^= OPOST | ||||
| 	newState.Lflag &^= (ECHO | ECHONL | ICANON | ISIG | IEXTEN) | ||||
| 	newState.Cflag &^= (CSIZE | PARENB) | ||||
| 	newState.Cflag |= CS8 | ||||
| 	newState.Cc[syscall.VMIN] = 1 | ||||
| 	newState.Cc[syscall.VTIME] = 0 | ||||
|  | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(setTermios), uintptr(unsafe.Pointer(&newState))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &oldState, nil | ||||
| } | ||||
							
								
								
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,69 +0,0 @@ | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	getTermios = syscall.TIOCGETA | ||||
| 	setTermios = syscall.TIOCSETA | ||||
| ) | ||||
|  | ||||
| // Termios magic numbers, passthrough to the ones defined in syscall. | ||||
| const ( | ||||
| 	IGNBRK = syscall.IGNBRK | ||||
| 	PARMRK = syscall.PARMRK | ||||
| 	INLCR  = syscall.INLCR | ||||
| 	IGNCR  = syscall.IGNCR | ||||
| 	ECHONL = syscall.ECHONL | ||||
| 	CSIZE  = syscall.CSIZE | ||||
| 	ICRNL  = syscall.ICRNL | ||||
| 	ISTRIP = syscall.ISTRIP | ||||
| 	PARENB = syscall.PARENB | ||||
| 	ECHO   = syscall.ECHO | ||||
| 	ICANON = syscall.ICANON | ||||
| 	ISIG   = syscall.ISIG | ||||
| 	IXON   = syscall.IXON | ||||
| 	BRKINT = syscall.BRKINT | ||||
| 	INPCK  = syscall.INPCK | ||||
| 	OPOST  = syscall.OPOST | ||||
| 	CS8    = syscall.CS8 | ||||
| 	IEXTEN = syscall.IEXTEN | ||||
| ) | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| type Termios struct { | ||||
| 	Iflag  uint32 | ||||
| 	Oflag  uint32 | ||||
| 	Cflag  uint32 | ||||
| 	Lflag  uint32 | ||||
| 	Cc     [20]byte | ||||
| 	Ispeed uint32 | ||||
| 	Ospeed uint32 | ||||
| } | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
| 	newState.Iflag &^= (IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON) | ||||
| 	newState.Oflag &^= OPOST | ||||
| 	newState.Lflag &^= (ECHO | ECHONL | ICANON | ISIG | IEXTEN) | ||||
| 	newState.Cflag &^= (CSIZE | PARENB) | ||||
| 	newState.Cflag |= CS8 | ||||
| 	newState.Cc[syscall.VMIN] = 1 | ||||
| 	newState.Cc[syscall.VTIME] = 0 | ||||
|  | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(setTermios), uintptr(unsafe.Pointer(&newState))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &oldState, nil | ||||
| } | ||||
							
								
								
									
										42
									
								
								vendor/github.com/docker/docker/pkg/term/termios_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/docker/docker/pkg/term/termios_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,46 +1,38 @@ | ||||
| // +build !cgo | ||||
|  | ||||
| package term | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	getTermios = syscall.TCGETS | ||||
| 	setTermios = syscall.TCSETS | ||||
| 	getTermios = unix.TCGETS | ||||
| 	setTermios = unix.TCSETS | ||||
| ) | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| type Termios struct { | ||||
| 	Iflag  uint32 | ||||
| 	Oflag  uint32 | ||||
| 	Cflag  uint32 | ||||
| 	Lflag  uint32 | ||||
| 	Cc     [20]byte | ||||
| 	Ispeed uint32 | ||||
| 	Ospeed uint32 | ||||
| } | ||||
| type Termios unix.Termios | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, getTermios, uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { | ||||
| 	termios, err := unix.IoctlGetTermios(int(fd), getTermios) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
| 	var oldState State | ||||
| 	oldState.termios = Termios(*termios) | ||||
|  | ||||
| 	newState.Iflag &^= (syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK | syscall.ISTRIP | syscall.INLCR | syscall.IGNCR | syscall.ICRNL | syscall.IXON) | ||||
| 	newState.Oflag &^= syscall.OPOST | ||||
| 	newState.Lflag &^= (syscall.ECHO | syscall.ECHONL | syscall.ICANON | syscall.ISIG | syscall.IEXTEN) | ||||
| 	newState.Cflag &^= (syscall.CSIZE | syscall.PARENB) | ||||
| 	newState.Cflag |= syscall.CS8 | ||||
| 	termios.Iflag &^= (unix.IGNBRK | unix.BRKINT | unix.PARMRK | unix.ISTRIP | unix.INLCR | unix.IGNCR | unix.ICRNL | unix.IXON) | ||||
| 	termios.Oflag &^= unix.OPOST | ||||
| 	termios.Lflag &^= (unix.ECHO | unix.ECHONL | unix.ICANON | unix.ISIG | unix.IEXTEN) | ||||
| 	termios.Cflag &^= (unix.CSIZE | unix.PARENB) | ||||
| 	termios.Cflag |= unix.CS8 | ||||
| 	termios.Cc[unix.VMIN] = 1 | ||||
| 	termios.Cc[unix.VTIME] = 0 | ||||
|  | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(&newState))); err != 0 { | ||||
| 	if err := unix.IoctlSetTermios(int(fd), setTermios, termios); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	return &oldState, nil | ||||
|   | ||||
							
								
								
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										69
									
								
								vendor/github.com/docker/docker/pkg/term/termios_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,69 +0,0 @@ | ||||
| package term | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	getTermios = syscall.TIOCGETA | ||||
| 	setTermios = syscall.TIOCSETA | ||||
| ) | ||||
|  | ||||
| // Termios magic numbers, passthrough to the ones defined in syscall. | ||||
| const ( | ||||
| 	IGNBRK = syscall.IGNBRK | ||||
| 	PARMRK = syscall.PARMRK | ||||
| 	INLCR  = syscall.INLCR | ||||
| 	IGNCR  = syscall.IGNCR | ||||
| 	ECHONL = syscall.ECHONL | ||||
| 	CSIZE  = syscall.CSIZE | ||||
| 	ICRNL  = syscall.ICRNL | ||||
| 	ISTRIP = syscall.ISTRIP | ||||
| 	PARENB = syscall.PARENB | ||||
| 	ECHO   = syscall.ECHO | ||||
| 	ICANON = syscall.ICANON | ||||
| 	ISIG   = syscall.ISIG | ||||
| 	IXON   = syscall.IXON | ||||
| 	BRKINT = syscall.BRKINT | ||||
| 	INPCK  = syscall.INPCK | ||||
| 	OPOST  = syscall.OPOST | ||||
| 	CS8    = syscall.CS8 | ||||
| 	IEXTEN = syscall.IEXTEN | ||||
| ) | ||||
|  | ||||
| // Termios is the Unix API for terminal I/O. | ||||
| type Termios struct { | ||||
| 	Iflag  uint32 | ||||
| 	Oflag  uint32 | ||||
| 	Cflag  uint32 | ||||
| 	Lflag  uint32 | ||||
| 	Cc     [20]byte | ||||
| 	Ispeed uint32 | ||||
| 	Ospeed uint32 | ||||
| } | ||||
|  | ||||
| // MakeRaw put the terminal connected to the given file descriptor into raw | ||||
| // mode and returns the previous state of the terminal so that it can be | ||||
| // restored. | ||||
| func MakeRaw(fd uintptr) (*State, error) { | ||||
| 	var oldState State | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(&oldState.termios))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	newState := oldState.termios | ||||
| 	newState.Iflag &^= (IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON) | ||||
| 	newState.Oflag &^= OPOST | ||||
| 	newState.Lflag &^= (ECHO | ECHONL | ICANON | ISIG | IEXTEN) | ||||
| 	newState.Cflag &^= (CSIZE | PARENB) | ||||
| 	newState.Cflag |= CS8 | ||||
| 	newState.Cc[syscall.VMIN] = 1 | ||||
| 	newState.Cc[syscall.VTIME] = 0 | ||||
|  | ||||
| 	if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(setTermios), uintptr(unsafe.Pointer(&newState))); err != 0 { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &oldState, nil | ||||
| } | ||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| // +build windows | ||||
|  | ||||
| package windows | ||||
| package windowsconsole // import "github.com/docker/docker/pkg/term/windows" | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| // +build windows | ||||
|  | ||||
| package windows | ||||
| package windowsconsole // import "github.com/docker/docker/pkg/term/windows" | ||||
|  | ||||
| import ( | ||||
| 	"io" | ||||
|   | ||||
							
								
								
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/console.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/docker/docker/pkg/term/windows/console.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| // +build windows | ||||
|  | ||||
| package windows | ||||
| package windowsconsole // import "github.com/docker/docker/pkg/term/windows" | ||||
|  | ||||
| import ( | ||||
| 	"os" | ||||
|   | ||||
							
								
								
									
										6
									
								
								vendor/github.com/docker/docker/pkg/term/windows/windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/docker/docker/pkg/term/windows/windows.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -2,15 +2,15 @@ | ||||
| // When asked for the set of standard streams (e.g., stdin, stdout, stderr), the code will create | ||||
| // and return pseudo-streams that convert ANSI sequences to / from Windows Console API calls. | ||||
|  | ||||
| package windows | ||||
| package windowsconsole // import "github.com/docker/docker/pkg/term/windows" | ||||
|  | ||||
| import ( | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"sync" | ||||
|  | ||||
| 	ansiterm "github.com/Azure/go-ansiterm" | ||||
| 	"github.com/Sirupsen/logrus" | ||||
| 	"github.com/Azure/go-ansiterm" | ||||
| 	"github.com/sirupsen/logrus" | ||||
| ) | ||||
|  | ||||
| var logger *logrus.Logger | ||||
|   | ||||
							
								
								
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/winsize.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/docker/docker/pkg/term/winsize.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // +build !windows | ||||
|  | ||||
| package term // import "github.com/docker/docker/pkg/term" | ||||
|  | ||||
| import ( | ||||
| 	"golang.org/x/sys/unix" | ||||
| ) | ||||
|  | ||||
| // GetWinsize returns the window size based on the specified file descriptor. | ||||
| func GetWinsize(fd uintptr) (*Winsize, error) { | ||||
| 	uws, err := unix.IoctlGetWinsize(int(fd), unix.TIOCGWINSZ) | ||||
| 	ws := &Winsize{Height: uws.Row, Width: uws.Col, x: uws.Xpixel, y: uws.Ypixel} | ||||
| 	return ws, err | ||||
| } | ||||
|  | ||||
| // SetWinsize tries to set the specified window size for the specified file descriptor. | ||||
| func SetWinsize(fd uintptr, ws *Winsize) error { | ||||
| 	uws := &unix.Winsize{Row: ws.Height, Col: ws.Width, Xpixel: ws.x, Ypixel: ws.y} | ||||
| 	return unix.IoctlSetWinsize(int(fd), unix.TIOCSWINSZ, uws) | ||||
| } | ||||
							
								
								
									
										1
									
								
								vendor/github.com/docker/docker/project/CONTRIBUTORS.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/docker/docker/project/CONTRIBUTORS.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1 +0,0 @@ | ||||
| ../CONTRIBUTING.md | ||||
							
								
								
									
										202
									
								
								vendor/github.com/spf13/cobra/cobra/cmd/testdata/LICENSE.golden
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/spf13/cobra/cobra/cmd/testdata/LICENSE.golden
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,202 +0,0 @@ | ||||
|  | ||||
|                                  Apache License | ||||
|                            Version 2.0, January 2004 | ||||
|                         http://www.apache.org/licenses/ | ||||
|  | ||||
|    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||||
|  | ||||
|    1. Definitions. | ||||
|  | ||||
|       "License" shall mean the terms and conditions for use, reproduction, | ||||
|       and distribution as defined by Sections 1 through 9 of this document. | ||||
|  | ||||
|       "Licensor" shall mean the copyright owner or entity authorized by | ||||
|       the copyright owner that is granting the License. | ||||
|  | ||||
|       "Legal Entity" shall mean the union of the acting entity and all | ||||
|       other entities that control, are controlled by, or are under common | ||||
|       control with that entity. For the purposes of this definition, | ||||
|       "control" means (i) the power, direct or indirect, to cause the | ||||
|       direction or management of such entity, whether by contract or | ||||
|       otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||||
|       outstanding shares, or (iii) beneficial ownership of such entity. | ||||
|  | ||||
|       "You" (or "Your") shall mean an individual or Legal Entity | ||||
|       exercising permissions granted by this License. | ||||
|  | ||||
|       "Source" form shall mean the preferred form for making modifications, | ||||
|       including but not limited to software source code, documentation | ||||
|       source, and configuration files. | ||||
|  | ||||
|       "Object" form shall mean any form resulting from mechanical | ||||
|       transformation or translation of a Source form, including but | ||||
|       not limited to compiled object code, generated documentation, | ||||
|       and conversions to other media types. | ||||
|  | ||||
|       "Work" shall mean the work of authorship, whether in Source or | ||||
|       Object form, made available under the License, as indicated by a | ||||
|       copyright notice that is included in or attached to the work | ||||
|       (an example is provided in the Appendix below). | ||||
|  | ||||
|       "Derivative Works" shall mean any work, whether in Source or Object | ||||
|       form, that is based on (or derived from) the Work and for which the | ||||
|       editorial revisions, annotations, elaborations, or other modifications | ||||
|       represent, as a whole, an original work of authorship. For the purposes | ||||
|       of this License, Derivative Works shall not include works that remain | ||||
|       separable from, or merely link (or bind by name) to the interfaces of, | ||||
|       the Work and Derivative Works thereof. | ||||
|  | ||||
|       "Contribution" shall mean any work of authorship, including | ||||
|       the original version of the Work and any modifications or additions | ||||
|       to that Work or Derivative Works thereof, that is intentionally | ||||
|       submitted to Licensor for inclusion in the Work by the copyright owner | ||||
|       or by an individual or Legal Entity authorized to submit on behalf of | ||||
|       the copyright owner. For the purposes of this definition, "submitted" | ||||
|       means any form of electronic, verbal, or written communication sent | ||||
|       to the Licensor or its representatives, including but not limited to | ||||
|       communication on electronic mailing lists, source code control systems, | ||||
|       and issue tracking systems that are managed by, or on behalf of, the | ||||
|       Licensor for the purpose of discussing and improving the Work, but | ||||
|       excluding communication that is conspicuously marked or otherwise | ||||
|       designated in writing by the copyright owner as "Not a Contribution." | ||||
|  | ||||
|       "Contributor" shall mean Licensor and any individual or Legal Entity | ||||
|       on behalf of whom a Contribution has been received by Licensor and | ||||
|       subsequently incorporated within the Work. | ||||
|  | ||||
|    2. Grant of Copyright License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       copyright license to reproduce, prepare Derivative Works of, | ||||
|       publicly display, publicly perform, sublicense, and distribute the | ||||
|       Work and such Derivative Works in Source or Object form. | ||||
|  | ||||
|    3. Grant of Patent License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       (except as stated in this section) patent license to make, have made, | ||||
|       use, offer to sell, sell, import, and otherwise transfer the Work, | ||||
|       where such license applies only to those patent claims licensable | ||||
|       by such Contributor that are necessarily infringed by their | ||||
|       Contribution(s) alone or by combination of their Contribution(s) | ||||
|       with the Work to which such Contribution(s) was submitted. If You | ||||
|       institute patent litigation against any entity (including a | ||||
|       cross-claim or counterclaim in a lawsuit) alleging that the Work | ||||
|       or a Contribution incorporated within the Work constitutes direct | ||||
|       or contributory patent infringement, then any patent licenses | ||||
|       granted to You under this License for that Work shall terminate | ||||
|       as of the date such litigation is filed. | ||||
|  | ||||
|    4. Redistribution. You may reproduce and distribute copies of the | ||||
|       Work or Derivative Works thereof in any medium, with or without | ||||
|       modifications, and in Source or Object form, provided that You | ||||
|       meet the following conditions: | ||||
|  | ||||
|       (a) You must give any other recipients of the Work or | ||||
|           Derivative Works a copy of this License; and | ||||
|  | ||||
|       (b) You must cause any modified files to carry prominent notices | ||||
|           stating that You changed the files; and | ||||
|  | ||||
|       (c) You must retain, in the Source form of any Derivative Works | ||||
|           that You distribute, all copyright, patent, trademark, and | ||||
|           attribution notices from the Source form of the Work, | ||||
|           excluding those notices that do not pertain to any part of | ||||
|           the Derivative Works; and | ||||
|  | ||||
|       (d) If the Work includes a "NOTICE" text file as part of its | ||||
|           distribution, then any Derivative Works that You distribute must | ||||
|           include a readable copy of the attribution notices contained | ||||
|           within such NOTICE file, excluding those notices that do not | ||||
|           pertain to any part of the Derivative Works, in at least one | ||||
|           of the following places: within a NOTICE text file distributed | ||||
|           as part of the Derivative Works; within the Source form or | ||||
|           documentation, if provided along with the Derivative Works; or, | ||||
|           within a display generated by the Derivative Works, if and | ||||
|           wherever such third-party notices normally appear. The contents | ||||
|           of the NOTICE file are for informational purposes only and | ||||
|           do not modify the License. You may add Your own attribution | ||||
|           notices within Derivative Works that You distribute, alongside | ||||
|           or as an addendum to the NOTICE text from the Work, provided | ||||
|           that such additional attribution notices cannot be construed | ||||
|           as modifying the License. | ||||
|  | ||||
|       You may add Your own copyright statement to Your modifications and | ||||
|       may provide additional or different license terms and conditions | ||||
|       for use, reproduction, or distribution of Your modifications, or | ||||
|       for any such Derivative Works as a whole, provided Your use, | ||||
|       reproduction, and distribution of the Work otherwise complies with | ||||
|       the conditions stated in this License. | ||||
|  | ||||
|    5. Submission of Contributions. Unless You explicitly state otherwise, | ||||
|       any Contribution intentionally submitted for inclusion in the Work | ||||
|       by You to the Licensor shall be under the terms and conditions of | ||||
|       this License, without any additional terms or conditions. | ||||
|       Notwithstanding the above, nothing herein shall supersede or modify | ||||
|       the terms of any separate license agreement you may have executed | ||||
|       with Licensor regarding such Contributions. | ||||
|  | ||||
|    6. Trademarks. This License does not grant permission to use the trade | ||||
|       names, trademarks, service marks, or product names of the Licensor, | ||||
|       except as required for reasonable and customary use in describing the | ||||
|       origin of the Work and reproducing the content of the NOTICE file. | ||||
|  | ||||
|    7. Disclaimer of Warranty. Unless required by applicable law or | ||||
|       agreed to in writing, Licensor provides the Work (and each | ||||
|       Contributor provides its Contributions) on an "AS IS" BASIS, | ||||
|       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||||
|       implied, including, without limitation, any warranties or conditions | ||||
|       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||||
|       PARTICULAR PURPOSE. You are solely responsible for determining the | ||||
|       appropriateness of using or redistributing the Work and assume any | ||||
|       risks associated with Your exercise of permissions under this License. | ||||
|  | ||||
|    8. Limitation of Liability. In no event and under no legal theory, | ||||
|       whether in tort (including negligence), contract, or otherwise, | ||||
|       unless required by applicable law (such as deliberate and grossly | ||||
|       negligent acts) or agreed to in writing, shall any Contributor be | ||||
|       liable to You for damages, including any direct, indirect, special, | ||||
|       incidental, or consequential damages of any character arising as a | ||||
|       result of this License or out of the use or inability to use the | ||||
|       Work (including but not limited to damages for loss of goodwill, | ||||
|       work stoppage, computer failure or malfunction, or any and all | ||||
|       other commercial damages or losses), even if such Contributor | ||||
|       has been advised of the possibility of such damages. | ||||
|  | ||||
|    9. Accepting Warranty or Additional Liability. While redistributing | ||||
|       the Work or Derivative Works thereof, You may choose to offer, | ||||
|       and charge a fee for, acceptance of support, warranty, indemnity, | ||||
|       or other liability obligations and/or rights consistent with this | ||||
|       License. However, in accepting such obligations, You may act only | ||||
|       on Your own behalf and on Your sole responsibility, not on behalf | ||||
|       of any other Contributor, and only if You agree to indemnify, | ||||
|       defend, and hold each Contributor harmless for any liability | ||||
|       incurred by, or claims asserted against, such Contributor by reason | ||||
|       of your accepting any such warranty or additional liability. | ||||
|  | ||||
|    END OF TERMS AND CONDITIONS | ||||
|  | ||||
|    APPENDIX: How to apply the Apache License to your work. | ||||
|  | ||||
|       To apply the Apache License to your work, attach the following | ||||
|       boilerplate notice, with the fields enclosed by brackets "[]" | ||||
|       replaced with your own identifying information. (Don't include | ||||
|       the brackets!)  The text should be enclosed in the appropriate | ||||
|       comment syntax for the file format. We also recommend that a | ||||
|       file or class name and description of purpose be included on the | ||||
|       same "printed page" as the copyright notice for easier | ||||
|       identification within third-party archives. | ||||
|  | ||||
|    Copyright [yyyy] [name of copyright owner] | ||||
|  | ||||
|    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. | ||||
							
								
								
									
										0
									
								
								vendor/golang.org/x/sys/unix/mkall.sh
									
									
									
										generated
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								vendor/golang.org/x/sys/unix/mkall.sh
									
									
									
										generated
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										78
									
								
								vendor/golang.org/x/sys/unix/mkasm_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								vendor/golang.org/x/sys/unix/mkasm_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,78 +0,0 @@ | ||||
| // 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 | ||||
|  | ||||
| // mkasm_darwin.go generates assembly trampolines to call libSystem routines from Go. | ||||
| //This program must be run after mksyscall.go. | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| func writeASMFile(in string, fileName string, buildTags string) { | ||||
| 	trampolines := map[string]bool{} | ||||
|  | ||||
| 	var out bytes.Buffer | ||||
|  | ||||
| 	fmt.Fprintf(&out, "// go run mkasm_darwin.go %s\n", strings.Join(os.Args[1:], " ")) | ||||
| 	fmt.Fprintf(&out, "// Code generated by the command above; DO NOT EDIT.\n") | ||||
| 	fmt.Fprintf(&out, "\n") | ||||
| 	fmt.Fprintf(&out, "// +build %s\n", buildTags) | ||||
| 	fmt.Fprintf(&out, "\n") | ||||
| 	fmt.Fprintf(&out, "#include \"textflag.h\"\n") | ||||
| 	for _, line := range strings.Split(in, "\n") { | ||||
| 		if !strings.HasPrefix(line, "func ") || !strings.HasSuffix(line, "_trampoline()") { | ||||
| 			continue | ||||
| 		} | ||||
| 		fn := line[5 : len(line)-13] | ||||
| 		if !trampolines[fn] { | ||||
| 			trampolines[fn] = true | ||||
| 			fmt.Fprintf(&out, "TEXT ·%s_trampoline(SB),NOSPLIT,$0-0\n", fn) | ||||
| 			fmt.Fprintf(&out, "\tJMP\t%s(SB)\n", fn) | ||||
| 		} | ||||
| 	} | ||||
| 	err := ioutil.WriteFile(fileName, out.Bytes(), 0644) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't write %s: %s", fileName, err) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	in1, err := ioutil.ReadFile("syscall_darwin.go") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't open syscall_darwin.go: %s", err) | ||||
| 	} | ||||
| 	arch := os.Args[1] | ||||
| 	in2, err := ioutil.ReadFile(fmt.Sprintf("syscall_darwin_%s.go", arch)) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't open syscall_darwin_%s.go: %s", arch, err) | ||||
| 	} | ||||
| 	in3, err := ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.go", arch)) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't open zsyscall_darwin_%s.go: %s", arch, err) | ||||
| 	} | ||||
| 	in := string(in1) + string(in2) + string(in3) | ||||
|  | ||||
| 	writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.s", arch), "go1.12") | ||||
|  | ||||
| 	in1, err = ioutil.ReadFile("syscall_darwin.1_13.go") | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't open syscall_darwin.1_13.go: %s", err) | ||||
| 	} | ||||
| 	in2, err = ioutil.ReadFile(fmt.Sprintf("zsyscall_darwin_%s.1_13.go", arch)) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("can't open zsyscall_darwin_%s.1_13.go: %s", arch, err) | ||||
| 	} | ||||
|  | ||||
| 	in = string(in1) + string(in2) | ||||
|  | ||||
| 	writeASMFile(in, fmt.Sprintf("zsyscall_darwin_%s.1_13.s", arch), "go1.13") | ||||
| } | ||||
							
								
								
									
										0
									
								
								vendor/golang.org/x/sys/unix/mkerrors.sh
									
									
									
										generated
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								vendor/golang.org/x/sys/unix/mkerrors.sh
									
									
									
										generated
									
									
										vendored
									
									
										
										
										Executable file → Normal file
									
								
							
							
								
								
									
										127
									
								
								vendor/golang.org/x/sys/unix/mkpost.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										127
									
								
								vendor/golang.org/x/sys/unix/mkpost.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,127 +0,0 @@ | ||||
| // 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 Docker-based build system if we should be. | ||||
| 	if goos == "linux" { | ||||
| 		if os.Getenv("GOLANG_SYS_BUILD") != "docker" { | ||||
| 			os.Stderr.WriteString("In the Docker-based 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) | ||||
| 	} | ||||
|  | ||||
| 	if goos == "aix" { | ||||
| 		// Replace type of Atim, Mtim and Ctim by Timespec in Stat_t | ||||
| 		// to avoid having both StTimespec and Timespec. | ||||
| 		sttimespec := regexp.MustCompile(`_Ctype_struct_st_timespec`) | ||||
| 		b = sttimespec.ReplaceAll(b, []byte("Timespec")) | ||||
| 	} | ||||
|  | ||||
| 	// Intentionally export __val fields in Fsid and Sigset_t | ||||
| 	valRegex := regexp.MustCompile(`type (Fsid|Sigset_t) struct {(\s+)X__(bits|val)(\s+\S+\s+)}`) | ||||
| 	b = valRegex.ReplaceAll(b, []byte("type $1 struct {${2}Val$4}")) | ||||
|  | ||||
| 	// Intentionally export __fds_bits field in FdSet | ||||
| 	fdSetRegex := regexp.MustCompile(`type (FdSet) struct {(\s+)X__fds_bits(\s+\S+\s+)}`) | ||||
| 	b = fdSetRegex.ReplaceAll(b, []byte("type $1 struct {${2}Bits$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")) | ||||
|  | ||||
| 	// Convert [n]int8 to [n]byte in Statvfs_t members to simplify | ||||
| 	// conversion to string. | ||||
| 	convertStatvfsRegex := regexp.MustCompile(`((Fstype|Mnton|Mntfrom)name)(\s+)\[(\d+)\]int8`) | ||||
| 	b = convertStatvfsRegex.ReplaceAll(b, []byte("$1$3[$4]byte")) | ||||
|  | ||||
| 	// Convert [1024]int8 to [1024]byte in Ptmget members | ||||
| 	convertPtmget := regexp.MustCompile(`([SC]n)(\s+)\[(\d+)\]u?int8`) | ||||
| 	b = convertPtmget.ReplaceAll(b, []byte("$1[$3]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)) | ||||
|  | ||||
| 	// Rename Stat_t time fields | ||||
| 	if goos == "freebsd" && goarch == "386" { | ||||
| 		// Hide Stat_t.[AMCB]tim_ext fields | ||||
| 		renameStatTimeExtFieldsRegex := regexp.MustCompile(`[AMCB]tim_ext`) | ||||
| 		b = renameStatTimeExtFieldsRegex.ReplaceAll(b, []byte("_")) | ||||
| 	} | ||||
| 	renameStatTimeFieldsRegex := regexp.MustCompile(`([AMCB])(?:irth)?time?(?:spec)?\s+(Timespec|StTimespec)`) | ||||
| 	b = renameStatTimeFieldsRegex.ReplaceAll(b, []byte("${1}tim ${2}")) | ||||
|  | ||||
| 	// gofmt | ||||
| 	b, err = format.Source(b) | ||||
| 	if err != nil { | ||||
| 		log.Fatal(err) | ||||
| 	} | ||||
|  | ||||
| 	os.Stdout.Write(b) | ||||
| } | ||||
							
								
								
									
										402
									
								
								vendor/golang.org/x/sys/unix/mksyscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										402
									
								
								vendor/golang.org/x/sys/unix/mksyscall.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,402 +0,0 @@ | ||||
| // 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 | ||||
|  | ||||
| /* | ||||
| This program reads a file containing function prototypes | ||||
| (like syscall_darwin.go) and generates system call bodies. | ||||
| The prototypes are marked by lines beginning with "//sys" | ||||
| and read like func declarations if //sys is replaced by func, but: | ||||
| 	* The parameter lists must give a name for each argument. | ||||
| 	  This includes return parameters. | ||||
| 	* The parameter lists must give a type for each argument: | ||||
| 	  the (x, y, z int) shorthand is not allowed. | ||||
| 	* If the return parameter is an error number, it must be named errno. | ||||
|  | ||||
| A line beginning with //sysnb is like //sys, except that the | ||||
| goroutine will not be suspended during the execution of the system | ||||
| call.  This must only be used for system calls which can never | ||||
| block, as otherwise the system call could cause all goroutines to | ||||
| hang. | ||||
| */ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	b32       = flag.Bool("b32", false, "32bit big-endian") | ||||
| 	l32       = flag.Bool("l32", false, "32bit little-endian") | ||||
| 	plan9     = flag.Bool("plan9", false, "plan9") | ||||
| 	openbsd   = flag.Bool("openbsd", false, "openbsd") | ||||
| 	netbsd    = flag.Bool("netbsd", false, "netbsd") | ||||
| 	dragonfly = flag.Bool("dragonfly", false, "dragonfly") | ||||
| 	arm       = flag.Bool("arm", false, "arm") // 64-bit value should use (even, odd)-pair | ||||
| 	tags      = flag.String("tags", "", "build tags") | ||||
| 	filename  = flag.String("output", "", "output file name (standard output if omitted)") | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments | ||||
| func cmdLine() string { | ||||
| 	return "go run mksyscall.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags | ||||
| func buildTags() string { | ||||
| 	return *tags | ||||
| } | ||||
|  | ||||
| // Param is function parameter | ||||
| type Param struct { | ||||
| 	Name string | ||||
| 	Type string | ||||
| } | ||||
|  | ||||
| // usage prints the program usage | ||||
| func usage() { | ||||
| 	fmt.Fprintf(os.Stderr, "usage: go run mksyscall.go [-b32 | -l32] [-tags x,y] [file ...]\n") | ||||
| 	os.Exit(1) | ||||
| } | ||||
|  | ||||
| // parseParamList parses parameter list and returns a slice of parameters | ||||
| func parseParamList(list string) []string { | ||||
| 	list = strings.TrimSpace(list) | ||||
| 	if list == "" { | ||||
| 		return []string{} | ||||
| 	} | ||||
| 	return regexp.MustCompile(`\s*,\s*`).Split(list, -1) | ||||
| } | ||||
|  | ||||
| // parseParam splits a parameter into name and type | ||||
| func parseParam(p string) Param { | ||||
| 	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) | ||||
| 	if ps == nil { | ||||
| 		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 	return Param{ps[1], ps[2]} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	// Get the OS and architecture (using GOARCH_TARGET if it exists) | ||||
| 	goos := os.Getenv("GOOS") | ||||
| 	if goos == "" { | ||||
| 		fmt.Fprintln(os.Stderr, "GOOS not defined in environment") | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 	goarch := os.Getenv("GOARCH_TARGET") | ||||
| 	if goarch == "" { | ||||
| 		goarch = os.Getenv("GOARCH") | ||||
| 	} | ||||
|  | ||||
| 	// Check that we are using the Docker-based build system if we should | ||||
| 	if goos == "linux" { | ||||
| 		if os.Getenv("GOLANG_SYS_BUILD") != "docker" { | ||||
| 			fmt.Fprintf(os.Stderr, "In the Docker-based build system, mksyscall should not be called directly.\n") | ||||
| 			fmt.Fprintf(os.Stderr, "See README.md\n") | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	flag.Usage = usage | ||||
| 	flag.Parse() | ||||
| 	if len(flag.Args()) <= 0 { | ||||
| 		fmt.Fprintf(os.Stderr, "no files to parse provided\n") | ||||
| 		usage() | ||||
| 	} | ||||
|  | ||||
| 	endianness := "" | ||||
| 	if *b32 { | ||||
| 		endianness = "big-endian" | ||||
| 	} else if *l32 { | ||||
| 		endianness = "little-endian" | ||||
| 	} | ||||
|  | ||||
| 	libc := false | ||||
| 	if goos == "darwin" && (strings.Contains(buildTags(), ",go1.12") || strings.Contains(buildTags(), ",go1.13")) { | ||||
| 		libc = true | ||||
| 	} | ||||
| 	trampolines := map[string]bool{} | ||||
|  | ||||
| 	text := "" | ||||
| 	for _, path := range flag.Args() { | ||||
| 		file, err := os.Open(path) | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		s := bufio.NewScanner(file) | ||||
| 		for s.Scan() { | ||||
| 			t := s.Text() | ||||
| 			t = strings.TrimSpace(t) | ||||
| 			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) | ||||
| 			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) | ||||
| 			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// Line must be of the form | ||||
| 			//	func Open(path string, mode int, perm int) (fd int, errno error) | ||||
| 			// Split into name, in params, out params. | ||||
| 			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$`).FindStringSubmatch(t) | ||||
| 			if f == nil { | ||||
| 				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			funct, inps, outps, sysname := f[2], f[3], f[4], f[5] | ||||
|  | ||||
| 			// ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers. | ||||
| 			if goos == "darwin" && !libc && funct == "ClockGettime" { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// Split argument lists on comma. | ||||
| 			in := parseParamList(inps) | ||||
| 			out := parseParamList(outps) | ||||
|  | ||||
| 			// Try in vain to keep people from editing this file. | ||||
| 			// The theory is that they jump into the middle of the file | ||||
| 			// without reading the header. | ||||
| 			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
|  | ||||
| 			// Go function header. | ||||
| 			outDecl := "" | ||||
| 			if len(out) > 0 { | ||||
| 				outDecl = fmt.Sprintf(" (%s)", strings.Join(out, ", ")) | ||||
| 			} | ||||
| 			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outDecl) | ||||
|  | ||||
| 			// Check if err return available | ||||
| 			errvar := "" | ||||
| 			for _, param := range out { | ||||
| 				p := parseParam(param) | ||||
| 				if p.Type == "error" { | ||||
| 					errvar = p.Name | ||||
| 					break | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// Prepare arguments to Syscall. | ||||
| 			var args []string | ||||
| 			n := 0 | ||||
| 			for _, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))") | ||||
| 				} else if p.Type == "string" && errvar != "" { | ||||
| 					text += fmt.Sprintf("\tvar _p%d *byte\n", n) | ||||
| 					text += fmt.Sprintf("\t_p%d, %s = BytePtrFromString(%s)\n", n, errvar, p.Name) | ||||
| 					text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "string" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") | ||||
| 					text += fmt.Sprintf("\tvar _p%d *byte\n", n) | ||||
| 					text += fmt.Sprintf("\t_p%d, _ = BytePtrFromString(%s)\n", n, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					n++ | ||||
| 				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { | ||||
| 					// Convert slice into pointer, length. | ||||
| 					// Have to be careful not to take address of &a[0] if len == 0: | ||||
| 					// pass dummy pointer in that case. | ||||
| 					// Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). | ||||
| 					text += fmt.Sprintf("\tvar _p%d unsafe.Pointer\n", n) | ||||
| 					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = unsafe.Pointer(&%s[0])\n\t}", p.Name, n, p.Name) | ||||
| 					text += fmt.Sprintf(" else {\n\t\t_p%d = unsafe.Pointer(&_zero)\n\t}\n", n) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(_p%d)", n), fmt.Sprintf("uintptr(len(%s))", p.Name)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "int64" && (*openbsd || *netbsd) { | ||||
| 					args = append(args, "0") | ||||
| 					if endianness == "big-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} else if endianness == "little-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} | ||||
| 				} else if p.Type == "int64" && *dragonfly { | ||||
| 					if regexp.MustCompile(`^(?i)extp(read|write)`).FindStringSubmatch(funct) == nil { | ||||
| 						args = append(args, "0") | ||||
| 					} | ||||
| 					if endianness == "big-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} else if endianness == "little-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} | ||||
| 				} else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" { | ||||
| 					if len(args)%2 == 1 && *arm { | ||||
| 						// arm abi specifies 64-bit argument uses | ||||
| 						// (even, odd) pair | ||||
| 						args = append(args, "0") | ||||
| 					} | ||||
| 					if endianness == "big-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) | ||||
| 					} | ||||
| 				} else { | ||||
| 					args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// Determine which form to use; pad args with zeros. | ||||
| 			asm := "Syscall" | ||||
| 			if nonblock != nil { | ||||
| 				if errvar == "" && goos == "linux" { | ||||
| 					asm = "RawSyscallNoError" | ||||
| 				} else { | ||||
| 					asm = "RawSyscall" | ||||
| 				} | ||||
| 			} else { | ||||
| 				if errvar == "" && goos == "linux" { | ||||
| 					asm = "SyscallNoError" | ||||
| 				} | ||||
| 			} | ||||
| 			if len(args) <= 3 { | ||||
| 				for len(args) < 3 { | ||||
| 					args = append(args, "0") | ||||
| 				} | ||||
| 			} else if len(args) <= 6 { | ||||
| 				asm += "6" | ||||
| 				for len(args) < 6 { | ||||
| 					args = append(args, "0") | ||||
| 				} | ||||
| 			} else if len(args) <= 9 { | ||||
| 				asm += "9" | ||||
| 				for len(args) < 9 { | ||||
| 					args = append(args, "0") | ||||
| 				} | ||||
| 			} else { | ||||
| 				fmt.Fprintf(os.Stderr, "%s:%s too many arguments to system call\n", path, funct) | ||||
| 			} | ||||
|  | ||||
| 			// System call number. | ||||
| 			if sysname == "" { | ||||
| 				sysname = "SYS_" + funct | ||||
| 				sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) | ||||
| 				sysname = strings.ToUpper(sysname) | ||||
| 			} | ||||
|  | ||||
| 			var libcFn string | ||||
| 			if libc { | ||||
| 				asm = "syscall_" + strings.ToLower(asm[:1]) + asm[1:] // internal syscall call | ||||
| 				sysname = strings.TrimPrefix(sysname, "SYS_")         // remove SYS_ | ||||
| 				sysname = strings.ToLower(sysname)                    // lowercase | ||||
| 				libcFn = sysname | ||||
| 				sysname = "funcPC(libc_" + sysname + "_trampoline)" | ||||
| 			} | ||||
|  | ||||
| 			// Actual call. | ||||
| 			arglist := strings.Join(args, ", ") | ||||
| 			call := fmt.Sprintf("%s(%s, %s)", asm, sysname, arglist) | ||||
|  | ||||
| 			// Assign return values. | ||||
| 			body := "" | ||||
| 			ret := []string{"_", "_", "_"} | ||||
| 			doErrno := false | ||||
| 			for i := 0; i < len(out); i++ { | ||||
| 				p := parseParam(out[i]) | ||||
| 				reg := "" | ||||
| 				if p.Name == "err" && !*plan9 { | ||||
| 					reg = "e1" | ||||
| 					ret[2] = reg | ||||
| 					doErrno = true | ||||
| 				} else if p.Name == "err" && *plan9 { | ||||
| 					ret[0] = "r0" | ||||
| 					ret[2] = "e1" | ||||
| 					break | ||||
| 				} else { | ||||
| 					reg = fmt.Sprintf("r%d", i) | ||||
| 					ret[i] = reg | ||||
| 				} | ||||
| 				if p.Type == "bool" { | ||||
| 					reg = fmt.Sprintf("%s != 0", reg) | ||||
| 				} | ||||
| 				if p.Type == "int64" && endianness != "" { | ||||
| 					// 64-bit number in r1:r0 or r0:r1. | ||||
| 					if i+2 > len(out) { | ||||
| 						fmt.Fprintf(os.Stderr, "%s:%s not enough registers for int64 return\n", path, funct) | ||||
| 					} | ||||
| 					if endianness == "big-endian" { | ||||
| 						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1) | ||||
| 					} else { | ||||
| 						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i) | ||||
| 					} | ||||
| 					ret[i] = fmt.Sprintf("r%d", i) | ||||
| 					ret[i+1] = fmt.Sprintf("r%d", i+1) | ||||
| 				} | ||||
| 				if reg != "e1" || *plan9 { | ||||
| 					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) | ||||
| 				} | ||||
| 			} | ||||
| 			if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" { | ||||
| 				text += fmt.Sprintf("\t%s\n", call) | ||||
| 			} else { | ||||
| 				if errvar == "" && goos == "linux" { | ||||
| 					// raw syscall without error on Linux, see golang.org/issue/22924 | ||||
| 					text += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], call) | ||||
| 				} else { | ||||
| 					text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call) | ||||
| 				} | ||||
| 			} | ||||
| 			text += body | ||||
|  | ||||
| 			if *plan9 && ret[2] == "e1" { | ||||
| 				text += "\tif int32(r0) == -1 {\n" | ||||
| 				text += "\t\terr = e1\n" | ||||
| 				text += "\t}\n" | ||||
| 			} else if doErrno { | ||||
| 				text += "\tif e1 != 0 {\n" | ||||
| 				text += "\t\terr = errnoErr(e1)\n" | ||||
| 				text += "\t}\n" | ||||
| 			} | ||||
| 			text += "\treturn\n" | ||||
| 			text += "}\n\n" | ||||
|  | ||||
| 			if libc && !trampolines[libcFn] { | ||||
| 				// some system calls share a trampoline, like read and readlen. | ||||
| 				trampolines[libcFn] = true | ||||
| 				// Declare assembly trampoline. | ||||
| 				text += fmt.Sprintf("func libc_%s_trampoline()\n", libcFn) | ||||
| 				// Assembly trampoline calls the libc_* function, which this magic | ||||
| 				// redirects to use the function from libSystem. | ||||
| 				text += fmt.Sprintf("//go:linkname libc_%s libc_%s\n", libcFn, libcFn) | ||||
| 				text += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"/usr/lib/libSystem.B.dylib\"\n", libcFn, libcFn) | ||||
| 				text += "\n" | ||||
| 			} | ||||
| 		} | ||||
| 		if err := s.Err(); err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		file.Close() | ||||
| 	} | ||||
| 	fmt.Printf(srcTemplate, cmdLine(), buildTags(), text) | ||||
| } | ||||
|  | ||||
| const srcTemplate = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package unix | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
| var _ syscall.Errno | ||||
|  | ||||
| %s | ||||
| ` | ||||
							
								
								
									
										415
									
								
								vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										415
									
								
								vendor/golang.org/x/sys/unix/mksyscall_aix_ppc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,415 +0,0 @@ | ||||
| // Copyright 2019 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 | ||||
|  | ||||
| /* | ||||
| This program reads a file containing function prototypes | ||||
| (like syscall_aix.go) and generates system call bodies. | ||||
| The prototypes are marked by lines beginning with "//sys" | ||||
| and read like func declarations if //sys is replaced by func, but: | ||||
| 	* The parameter lists must give a name for each argument. | ||||
| 	  This includes return parameters. | ||||
| 	* The parameter lists must give a type for each argument: | ||||
| 	  the (x, y, z int) shorthand is not allowed. | ||||
| 	* If the return parameter is an error number, it must be named err. | ||||
| 	* If go func name needs to be different than its libc name, | ||||
| 	* or the function is not in libc, name could be specified | ||||
| 	* at the end, after "=" sign, like | ||||
| 	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt | ||||
| */ | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	b32  = flag.Bool("b32", false, "32bit big-endian") | ||||
| 	l32  = flag.Bool("l32", false, "32bit little-endian") | ||||
| 	aix  = flag.Bool("aix", false, "aix") | ||||
| 	tags = flag.String("tags", "", "build tags") | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments | ||||
| func cmdLine() string { | ||||
| 	return "go run mksyscall_aix_ppc.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags | ||||
| func buildTags() string { | ||||
| 	return *tags | ||||
| } | ||||
|  | ||||
| // Param is function parameter | ||||
| type Param struct { | ||||
| 	Name string | ||||
| 	Type string | ||||
| } | ||||
|  | ||||
| // usage prints the program usage | ||||
| func usage() { | ||||
| 	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc.go [-b32 | -l32] [-tags x,y] [file ...]\n") | ||||
| 	os.Exit(1) | ||||
| } | ||||
|  | ||||
| // parseParamList parses parameter list and returns a slice of parameters | ||||
| func parseParamList(list string) []string { | ||||
| 	list = strings.TrimSpace(list) | ||||
| 	if list == "" { | ||||
| 		return []string{} | ||||
| 	} | ||||
| 	return regexp.MustCompile(`\s*,\s*`).Split(list, -1) | ||||
| } | ||||
|  | ||||
| // parseParam splits a parameter into name and type | ||||
| func parseParam(p string) Param { | ||||
| 	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) | ||||
| 	if ps == nil { | ||||
| 		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 	return Param{ps[1], ps[2]} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	flag.Usage = usage | ||||
| 	flag.Parse() | ||||
| 	if len(flag.Args()) <= 0 { | ||||
| 		fmt.Fprintf(os.Stderr, "no files to parse provided\n") | ||||
| 		usage() | ||||
| 	} | ||||
|  | ||||
| 	endianness := "" | ||||
| 	if *b32 { | ||||
| 		endianness = "big-endian" | ||||
| 	} else if *l32 { | ||||
| 		endianness = "little-endian" | ||||
| 	} | ||||
|  | ||||
| 	pack := "" | ||||
| 	text := "" | ||||
| 	cExtern := "/*\n#include <stdint.h>\n#include <stddef.h>\n" | ||||
| 	for _, path := range flag.Args() { | ||||
| 		file, err := os.Open(path) | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		s := bufio.NewScanner(file) | ||||
| 		for s.Scan() { | ||||
| 			t := s.Text() | ||||
| 			t = strings.TrimSpace(t) | ||||
| 			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) | ||||
| 			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { | ||||
| 				pack = p[1] | ||||
| 			} | ||||
| 			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) | ||||
| 			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// Line must be of the form | ||||
| 			//	func Open(path string, mode int, perm int) (fd int, err error) | ||||
| 			// Split into name, in params, out params. | ||||
| 			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) | ||||
| 			if f == nil { | ||||
| 				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] | ||||
|  | ||||
| 			// Split argument lists on comma. | ||||
| 			in := parseParamList(inps) | ||||
| 			out := parseParamList(outps) | ||||
|  | ||||
| 			inps = strings.Join(in, ", ") | ||||
| 			outps = strings.Join(out, ", ") | ||||
|  | ||||
| 			// Try in vain to keep people from editing this file. | ||||
| 			// The theory is that they jump into the middle of the file | ||||
| 			// without reading the header. | ||||
| 			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
|  | ||||
| 			// Check if value return, err return available | ||||
| 			errvar := "" | ||||
| 			retvar := "" | ||||
| 			rettype := "" | ||||
| 			for _, param := range out { | ||||
| 				p := parseParam(param) | ||||
| 				if p.Type == "error" { | ||||
| 					errvar = p.Name | ||||
| 				} else { | ||||
| 					retvar = p.Name | ||||
| 					rettype = p.Type | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// System call name. | ||||
| 			if sysname == "" { | ||||
| 				sysname = funct | ||||
| 			} | ||||
| 			sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) | ||||
| 			sysname = strings.ToLower(sysname) // All libc functions are lowercase. | ||||
|  | ||||
| 			cRettype := "" | ||||
| 			if rettype == "unsafe.Pointer" { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if rettype == "uintptr" { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if rettype == "int" { | ||||
| 				cRettype = "int" | ||||
| 			} else if rettype == "int32" { | ||||
| 				cRettype = "int" | ||||
| 			} else if rettype == "int64" { | ||||
| 				cRettype = "long long" | ||||
| 			} else if rettype == "uint32" { | ||||
| 				cRettype = "unsigned int" | ||||
| 			} else if rettype == "uint64" { | ||||
| 				cRettype = "unsigned long long" | ||||
| 			} else { | ||||
| 				cRettype = "int" | ||||
| 			} | ||||
| 			if sysname == "exit" { | ||||
| 				cRettype = "void" | ||||
| 			} | ||||
|  | ||||
| 			// Change p.Types to c | ||||
| 			var cIn []string | ||||
| 			for _, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "string" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t", "size_t") | ||||
| 				} else if p.Type == "unsafe.Pointer" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "uintptr" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "int" { | ||||
| 					cIn = append(cIn, "int") | ||||
| 				} else if p.Type == "int32" { | ||||
| 					cIn = append(cIn, "int") | ||||
| 				} else if p.Type == "int64" { | ||||
| 					cIn = append(cIn, "long long") | ||||
| 				} else if p.Type == "uint32" { | ||||
| 					cIn = append(cIn, "unsigned int") | ||||
| 				} else if p.Type == "uint64" { | ||||
| 					cIn = append(cIn, "unsigned long long") | ||||
| 				} else { | ||||
| 					cIn = append(cIn, "int") | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if funct != "fcntl" && funct != "FcntlInt" && funct != "readlen" && funct != "writelen" { | ||||
| 				if sysname == "select" { | ||||
| 					// select is a keyword of Go. Its name is | ||||
| 					// changed to c_select. | ||||
| 					cExtern += "#define c_select select\n" | ||||
| 				} | ||||
| 				// Imports of system calls from libc | ||||
| 				cExtern += fmt.Sprintf("%s %s", cRettype, sysname) | ||||
| 				cIn := strings.Join(cIn, ", ") | ||||
| 				cExtern += fmt.Sprintf("(%s);\n", cIn) | ||||
| 			} | ||||
|  | ||||
| 			// So file name. | ||||
| 			if *aix { | ||||
| 				if modname == "" { | ||||
| 					modname = "libc.a/shr_64.o" | ||||
| 				} else { | ||||
| 					fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct) | ||||
| 					os.Exit(1) | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			strconvfunc := "C.CString" | ||||
|  | ||||
| 			// Go function header. | ||||
| 			if outps != "" { | ||||
| 				outps = fmt.Sprintf(" (%s)", outps) | ||||
| 			} | ||||
| 			if text != "" { | ||||
| 				text += "\n" | ||||
| 			} | ||||
|  | ||||
| 			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps) | ||||
|  | ||||
| 			// Prepare arguments to Syscall. | ||||
| 			var args []string | ||||
| 			n := 0 | ||||
| 			argN := 0 | ||||
| 			for _, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					args = append(args, "C.uintptr_t(uintptr(unsafe.Pointer("+p.Name+")))") | ||||
| 				} else if p.Type == "string" && errvar != "" { | ||||
| 					text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "string" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") | ||||
| 					text += fmt.Sprintf("\t_p%d := uintptr(unsafe.Pointer(%s(%s)))\n", n, strconvfunc, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil { | ||||
| 					// Convert slice into pointer, length. | ||||
| 					// Have to be careful not to take address of &a[0] if len == 0: | ||||
| 					// pass nil in that case. | ||||
| 					text += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1]) | ||||
| 					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(unsafe.Pointer(_p%d)))", n)) | ||||
| 					n++ | ||||
| 					text += fmt.Sprintf("\tvar _p%d int\n", n) | ||||
| 					text += fmt.Sprintf("\t_p%d = len(%s)\n", n, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("C.size_t(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "int64" && endianness != "" { | ||||
| 					if endianness == "big-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) | ||||
| 					} | ||||
| 					n++ | ||||
| 				} else if p.Type == "bool" { | ||||
| 					text += fmt.Sprintf("\tvar _p%d uint32\n", n) | ||||
| 					text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n) | ||||
| 					args = append(args, fmt.Sprintf("_p%d", n)) | ||||
| 				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) | ||||
| 				} else if p.Type == "unsafe.Pointer" { | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(uintptr(%s))", p.Name)) | ||||
| 				} else if p.Type == "int" { | ||||
| 					if (argN == 2) && ((funct == "readlen") || (funct == "writelen")) { | ||||
| 						args = append(args, fmt.Sprintf("C.size_t(%s)", p.Name)) | ||||
| 					} else if argN == 0 && funct == "fcntl" { | ||||
| 						args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 					} else if (argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt")) { | ||||
| 						args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 					} | ||||
| 				} else if p.Type == "int32" { | ||||
| 					args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 				} else if p.Type == "int64" { | ||||
| 					args = append(args, fmt.Sprintf("C.longlong(%s)", p.Name)) | ||||
| 				} else if p.Type == "uint32" { | ||||
| 					args = append(args, fmt.Sprintf("C.uint(%s)", p.Name)) | ||||
| 				} else if p.Type == "uint64" { | ||||
| 					args = append(args, fmt.Sprintf("C.ulonglong(%s)", p.Name)) | ||||
| 				} else if p.Type == "uintptr" { | ||||
| 					args = append(args, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 				} else { | ||||
| 					args = append(args, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 				} | ||||
| 				argN++ | ||||
| 			} | ||||
|  | ||||
| 			// Actual call. | ||||
| 			arglist := strings.Join(args, ", ") | ||||
| 			call := "" | ||||
| 			if sysname == "exit" { | ||||
| 				if errvar != "" { | ||||
| 					call += "er :=" | ||||
| 				} else { | ||||
| 					call += "" | ||||
| 				} | ||||
| 			} else if errvar != "" { | ||||
| 				call += "r0,er :=" | ||||
| 			} else if retvar != "" { | ||||
| 				call += "r0,_ :=" | ||||
| 			} else { | ||||
| 				call += "" | ||||
| 			} | ||||
| 			if sysname == "select" { | ||||
| 				// select is a keyword of Go. Its name is | ||||
| 				// changed to c_select. | ||||
| 				call += fmt.Sprintf("C.c_%s(%s)", sysname, arglist) | ||||
| 			} else { | ||||
| 				call += fmt.Sprintf("C.%s(%s)", sysname, arglist) | ||||
| 			} | ||||
|  | ||||
| 			// Assign return values. | ||||
| 			body := "" | ||||
| 			for i := 0; i < len(out); i++ { | ||||
| 				p := parseParam(out[i]) | ||||
| 				reg := "" | ||||
| 				if p.Name == "err" { | ||||
| 					reg = "e1" | ||||
| 				} else { | ||||
| 					reg = "r0" | ||||
| 				} | ||||
| 				if reg != "e1" { | ||||
| 					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// verify return | ||||
| 			if sysname != "exit" && errvar != "" { | ||||
| 				if regexp.MustCompile(`^uintptr`).FindStringSubmatch(cRettype) != nil { | ||||
| 					body += "\tif (uintptr(r0) ==^uintptr(0) && er != nil) {\n" | ||||
| 					body += fmt.Sprintf("\t\t%s = er\n", errvar) | ||||
| 					body += "\t}\n" | ||||
| 				} else { | ||||
| 					body += "\tif (r0 ==-1 && er != nil) {\n" | ||||
| 					body += fmt.Sprintf("\t\t%s = er\n", errvar) | ||||
| 					body += "\t}\n" | ||||
| 				} | ||||
| 			} else if errvar != "" { | ||||
| 				body += "\tif (er != nil) {\n" | ||||
| 				body += fmt.Sprintf("\t\t%s = er\n", errvar) | ||||
| 				body += "\t}\n" | ||||
| 			} | ||||
|  | ||||
| 			text += fmt.Sprintf("\t%s\n", call) | ||||
| 			text += body | ||||
|  | ||||
| 			text += "\treturn\n" | ||||
| 			text += "}\n" | ||||
| 		} | ||||
| 		if err := s.Err(); err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		file.Close() | ||||
| 	} | ||||
| 	imp := "" | ||||
| 	if pack != "unix" { | ||||
| 		imp = "import \"golang.org/x/sys/unix\"\n" | ||||
|  | ||||
| 	} | ||||
| 	fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, cExtern, imp, text) | ||||
| } | ||||
|  | ||||
| const srcTemplate = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package %s | ||||
|  | ||||
|  | ||||
| %s | ||||
| */ | ||||
| import "C" | ||||
| import ( | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
|  | ||||
| %s | ||||
|  | ||||
| %s | ||||
| ` | ||||
							
								
								
									
										614
									
								
								vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										614
									
								
								vendor/golang.org/x/sys/unix/mksyscall_aix_ppc64.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,614 +0,0 @@ | ||||
| // Copyright 2019 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 | ||||
|  | ||||
| /* | ||||
| This program reads a file containing function prototypes | ||||
| (like syscall_aix.go) and generates system call bodies. | ||||
| The prototypes are marked by lines beginning with "//sys" | ||||
| and read like func declarations if //sys is replaced by func, but: | ||||
| 	* The parameter lists must give a name for each argument. | ||||
| 	  This includes return parameters. | ||||
| 	* The parameter lists must give a type for each argument: | ||||
| 	  the (x, y, z int) shorthand is not allowed. | ||||
| 	* If the return parameter is an error number, it must be named err. | ||||
| 	* If go func name needs to be different than its libc name, | ||||
| 	* or the function is not in libc, name could be specified | ||||
| 	* at the end, after "=" sign, like | ||||
| 	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt | ||||
|  | ||||
|  | ||||
| This program will generate three files and handle both gc and gccgo implementation: | ||||
|   - zsyscall_aix_ppc64.go: the common part of each implementation (error handler, pointer creation) | ||||
|   - zsyscall_aix_ppc64_gc.go: gc part with //go_cgo_import_dynamic and a call to syscall6 | ||||
|   - zsyscall_aix_ppc64_gccgo.go: gccgo part with C function and conversion to C type. | ||||
|  | ||||
|  The generated code looks like this | ||||
|  | ||||
| zsyscall_aix_ppc64.go | ||||
| func asyscall(...) (n int, err error) { | ||||
| 	 // Pointer Creation | ||||
| 	 r1, e1 := callasyscall(...) | ||||
| 	 // Type Conversion | ||||
| 	 // Error Handler | ||||
| 	 return | ||||
| } | ||||
|  | ||||
| zsyscall_aix_ppc64_gc.go | ||||
| //go:cgo_import_dynamic libc_asyscall asyscall "libc.a/shr_64.o" | ||||
| //go:linkname libc_asyscall libc_asyscall | ||||
| var asyscall syscallFunc | ||||
|  | ||||
| func callasyscall(...) (r1 uintptr, e1 Errno) { | ||||
| 	 r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_asyscall)), "nb_args", ... ) | ||||
| 	 return | ||||
| } | ||||
|  | ||||
| zsyscall_aix_ppc64_ggcgo.go | ||||
|  | ||||
| // int asyscall(...) | ||||
|  | ||||
| import "C" | ||||
|  | ||||
| func callasyscall(...) (r1 uintptr, e1 Errno) { | ||||
| 	 r1 = uintptr(C.asyscall(...)) | ||||
| 	 e1 = syscall.GetErrno() | ||||
| 	 return | ||||
| } | ||||
| */ | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"io/ioutil" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	b32  = flag.Bool("b32", false, "32bit big-endian") | ||||
| 	l32  = flag.Bool("l32", false, "32bit little-endian") | ||||
| 	aix  = flag.Bool("aix", false, "aix") | ||||
| 	tags = flag.String("tags", "", "build tags") | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments | ||||
| func cmdLine() string { | ||||
| 	return "go run mksyscall_aix_ppc64.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags | ||||
| func buildTags() string { | ||||
| 	return *tags | ||||
| } | ||||
|  | ||||
| // Param is function parameter | ||||
| type Param struct { | ||||
| 	Name string | ||||
| 	Type string | ||||
| } | ||||
|  | ||||
| // usage prints the program usage | ||||
| func usage() { | ||||
| 	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_aix_ppc64.go [-b32 | -l32] [-tags x,y] [file ...]\n") | ||||
| 	os.Exit(1) | ||||
| } | ||||
|  | ||||
| // parseParamList parses parameter list and returns a slice of parameters | ||||
| func parseParamList(list string) []string { | ||||
| 	list = strings.TrimSpace(list) | ||||
| 	if list == "" { | ||||
| 		return []string{} | ||||
| 	} | ||||
| 	return regexp.MustCompile(`\s*,\s*`).Split(list, -1) | ||||
| } | ||||
|  | ||||
| // parseParam splits a parameter into name and type | ||||
| func parseParam(p string) Param { | ||||
| 	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) | ||||
| 	if ps == nil { | ||||
| 		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 	return Param{ps[1], ps[2]} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	flag.Usage = usage | ||||
| 	flag.Parse() | ||||
| 	if len(flag.Args()) <= 0 { | ||||
| 		fmt.Fprintf(os.Stderr, "no files to parse provided\n") | ||||
| 		usage() | ||||
| 	} | ||||
|  | ||||
| 	endianness := "" | ||||
| 	if *b32 { | ||||
| 		endianness = "big-endian" | ||||
| 	} else if *l32 { | ||||
| 		endianness = "little-endian" | ||||
| 	} | ||||
|  | ||||
| 	pack := "" | ||||
| 	// GCCGO | ||||
| 	textgccgo := "" | ||||
| 	cExtern := "/*\n#include <stdint.h>\n" | ||||
| 	// GC | ||||
| 	textgc := "" | ||||
| 	dynimports := "" | ||||
| 	linknames := "" | ||||
| 	var vars []string | ||||
| 	// COMMON | ||||
| 	textcommon := "" | ||||
| 	for _, path := range flag.Args() { | ||||
| 		file, err := os.Open(path) | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		s := bufio.NewScanner(file) | ||||
| 		for s.Scan() { | ||||
| 			t := s.Text() | ||||
| 			t = strings.TrimSpace(t) | ||||
| 			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) | ||||
| 			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { | ||||
| 				pack = p[1] | ||||
| 			} | ||||
| 			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) | ||||
| 			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// Line must be of the form | ||||
| 			//	func Open(path string, mode int, perm int) (fd int, err error) | ||||
| 			// Split into name, in params, out params. | ||||
| 			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) | ||||
| 			if f == nil { | ||||
| 				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] | ||||
|  | ||||
| 			// Split argument lists on comma. | ||||
| 			in := parseParamList(inps) | ||||
| 			out := parseParamList(outps) | ||||
|  | ||||
| 			inps = strings.Join(in, ", ") | ||||
| 			outps = strings.Join(out, ", ") | ||||
|  | ||||
| 			if sysname == "" { | ||||
| 				sysname = funct | ||||
| 			} | ||||
|  | ||||
| 			onlyCommon := false | ||||
| 			if funct == "readlen" || funct == "writelen" || funct == "FcntlInt" || funct == "FcntlFlock" { | ||||
| 				// This function call another syscall which is already implemented. | ||||
| 				// Therefore, the gc and gccgo part must not be generated. | ||||
| 				onlyCommon = true | ||||
| 			} | ||||
|  | ||||
| 			// Try in vain to keep people from editing this file. | ||||
| 			// The theory is that they jump into the middle of the file | ||||
| 			// without reading the header. | ||||
|  | ||||
| 			textcommon += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
| 			if !onlyCommon { | ||||
| 				textgccgo += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
| 				textgc += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
| 			} | ||||
|  | ||||
| 			// Check if value return, err return available | ||||
| 			errvar := "" | ||||
| 			rettype := "" | ||||
| 			for _, param := range out { | ||||
| 				p := parseParam(param) | ||||
| 				if p.Type == "error" { | ||||
| 					errvar = p.Name | ||||
| 				} else { | ||||
| 					rettype = p.Type | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			sysname = regexp.MustCompile(`([a-z])([A-Z])`).ReplaceAllString(sysname, `${1}_$2`) | ||||
| 			sysname = strings.ToLower(sysname) // All libc functions are lowercase. | ||||
|  | ||||
| 			// GCCGO Prototype return type | ||||
| 			cRettype := "" | ||||
| 			if rettype == "unsafe.Pointer" { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if rettype == "uintptr" { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if regexp.MustCompile(`^_`).FindStringSubmatch(rettype) != nil { | ||||
| 				cRettype = "uintptr_t" | ||||
| 			} else if rettype == "int" { | ||||
| 				cRettype = "int" | ||||
| 			} else if rettype == "int32" { | ||||
| 				cRettype = "int" | ||||
| 			} else if rettype == "int64" { | ||||
| 				cRettype = "long long" | ||||
| 			} else if rettype == "uint32" { | ||||
| 				cRettype = "unsigned int" | ||||
| 			} else if rettype == "uint64" { | ||||
| 				cRettype = "unsigned long long" | ||||
| 			} else { | ||||
| 				cRettype = "int" | ||||
| 			} | ||||
| 			if sysname == "exit" { | ||||
| 				cRettype = "void" | ||||
| 			} | ||||
|  | ||||
| 			// GCCGO Prototype arguments type | ||||
| 			var cIn []string | ||||
| 			for i, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "string" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t", "size_t") | ||||
| 				} else if p.Type == "unsafe.Pointer" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "uintptr" { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil { | ||||
| 					cIn = append(cIn, "uintptr_t") | ||||
| 				} else if p.Type == "int" { | ||||
| 					if (i == 0 || i == 2) && funct == "fcntl" { | ||||
| 						// These fcntl arguments needs to be uintptr to be able to call FcntlInt and FcntlFlock | ||||
| 						cIn = append(cIn, "uintptr_t") | ||||
| 					} else { | ||||
| 						cIn = append(cIn, "int") | ||||
| 					} | ||||
|  | ||||
| 				} else if p.Type == "int32" { | ||||
| 					cIn = append(cIn, "int") | ||||
| 				} else if p.Type == "int64" { | ||||
| 					cIn = append(cIn, "long long") | ||||
| 				} else if p.Type == "uint32" { | ||||
| 					cIn = append(cIn, "unsigned int") | ||||
| 				} else if p.Type == "uint64" { | ||||
| 					cIn = append(cIn, "unsigned long long") | ||||
| 				} else { | ||||
| 					cIn = append(cIn, "int") | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			if !onlyCommon { | ||||
| 				// GCCGO Prototype Generation | ||||
| 				// Imports of system calls from libc | ||||
| 				if sysname == "select" { | ||||
| 					// select is a keyword of Go. Its name is | ||||
| 					// changed to c_select. | ||||
| 					cExtern += "#define c_select select\n" | ||||
| 				} | ||||
| 				cExtern += fmt.Sprintf("%s %s", cRettype, sysname) | ||||
| 				cIn := strings.Join(cIn, ", ") | ||||
| 				cExtern += fmt.Sprintf("(%s);\n", cIn) | ||||
| 			} | ||||
| 			// GC Library name | ||||
| 			if modname == "" { | ||||
| 				modname = "libc.a/shr_64.o" | ||||
| 			} else { | ||||
| 				fmt.Fprintf(os.Stderr, "%s: only syscall using libc are available\n", funct) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			sysvarname := fmt.Sprintf("libc_%s", sysname) | ||||
|  | ||||
| 			if !onlyCommon { | ||||
| 				// GC Runtime import of function to allow cross-platform builds. | ||||
| 				dynimports += fmt.Sprintf("//go:cgo_import_dynamic %s %s \"%s\"\n", sysvarname, sysname, modname) | ||||
| 				// GC Link symbol to proc address variable. | ||||
| 				linknames += fmt.Sprintf("//go:linkname %s %s\n", sysvarname, sysvarname) | ||||
| 				// GC Library proc address variable. | ||||
| 				vars = append(vars, sysvarname) | ||||
| 			} | ||||
|  | ||||
| 			strconvfunc := "BytePtrFromString" | ||||
| 			strconvtype := "*byte" | ||||
|  | ||||
| 			// Go function header. | ||||
| 			if outps != "" { | ||||
| 				outps = fmt.Sprintf(" (%s)", outps) | ||||
| 			} | ||||
| 			if textcommon != "" { | ||||
| 				textcommon += "\n" | ||||
| 			} | ||||
|  | ||||
| 			textcommon += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outps) | ||||
|  | ||||
| 			// Prepare arguments tocall. | ||||
| 			var argscommon []string // Arguments in the common part | ||||
| 			var argscall []string   // Arguments for call prototype | ||||
| 			var argsgc []string     // Arguments for gc call (with syscall6) | ||||
| 			var argsgccgo []string  // Arguments for gccgo call (with C.name_of_syscall) | ||||
| 			n := 0 | ||||
| 			argN := 0 | ||||
| 			for _, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(%s))", p.Name)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) | ||||
| 					argsgc = append(argsgc, p.Name) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 				} else if p.Type == "string" && errvar != "" { | ||||
| 					textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) | ||||
| 					textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) | ||||
| 					textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) | ||||
|  | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("_p%d uintptr ", n)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("_p%d", n)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "string" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") | ||||
| 					textcommon += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) | ||||
| 					textcommon += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) | ||||
| 					textcommon += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) | ||||
|  | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("_p%d", n)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else if m := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); m != nil { | ||||
| 					// Convert slice into pointer, length. | ||||
| 					// Have to be careful not to take address of &a[0] if len == 0: | ||||
| 					// pass nil in that case. | ||||
| 					textcommon += fmt.Sprintf("\tvar _p%d *%s\n", n, m[1]) | ||||
| 					textcommon += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("len(%s)", p.Name)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("_p%d uintptr", n), fmt.Sprintf("_lenp%d int", n)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("_p%d", n), fmt.Sprintf("uintptr(_lenp%d)", n)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(_p%d)", n), fmt.Sprintf("C.size_t(_lenp%d)", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "int64" && endianness != "" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses int64 with 32 bits mode. Case not yet implemented\n") | ||||
| 				} else if p.Type == "bool" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses bool. Case not yet implemented\n") | ||||
| 				} else if regexp.MustCompile(`^_`).FindStringSubmatch(p.Type) != nil || p.Type == "unsafe.Pointer" { | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) | ||||
| 					argsgc = append(argsgc, p.Name) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 				} else if p.Type == "int" { | ||||
| 					if (argN == 0 || argN == 2) && ((funct == "fcntl") || (funct == "FcntlInt") || (funct == "FcntlFlock")) { | ||||
| 						// These fcntl arguments need to be uintptr to be able to call FcntlInt and FcntlFlock | ||||
| 						argscommon = append(argscommon, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 						argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) | ||||
| 						argsgc = append(argsgc, p.Name) | ||||
| 						argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
|  | ||||
| 					} else { | ||||
| 						argscommon = append(argscommon, p.Name) | ||||
| 						argscall = append(argscall, fmt.Sprintf("%s int", p.Name)) | ||||
| 						argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 						argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 					} | ||||
| 				} else if p.Type == "int32" { | ||||
| 					argscommon = append(argscommon, p.Name) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s int32", p.Name)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 				} else if p.Type == "int64" { | ||||
| 					argscommon = append(argscommon, p.Name) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s int64", p.Name)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.longlong(%s)", p.Name)) | ||||
| 				} else if p.Type == "uint32" { | ||||
| 					argscommon = append(argscommon, p.Name) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s uint32", p.Name)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uint(%s)", p.Name)) | ||||
| 				} else if p.Type == "uint64" { | ||||
| 					argscommon = append(argscommon, p.Name) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s uint64", p.Name)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.ulonglong(%s)", p.Name)) | ||||
| 				} else if p.Type == "uintptr" { | ||||
| 					argscommon = append(argscommon, p.Name) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s uintptr", p.Name)) | ||||
| 					argsgc = append(argsgc, p.Name) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.uintptr_t(%s)", p.Name)) | ||||
| 				} else { | ||||
| 					argscommon = append(argscommon, fmt.Sprintf("int(%s)", p.Name)) | ||||
| 					argscall = append(argscall, fmt.Sprintf("%s int", p.Name)) | ||||
| 					argsgc = append(argsgc, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					argsgccgo = append(argsgccgo, fmt.Sprintf("C.int(%s)", p.Name)) | ||||
| 				} | ||||
| 				argN++ | ||||
| 			} | ||||
| 			nargs := len(argsgc) | ||||
|  | ||||
| 			// COMMON function generation | ||||
| 			argscommonlist := strings.Join(argscommon, ", ") | ||||
| 			callcommon := fmt.Sprintf("call%s(%s)", sysname, argscommonlist) | ||||
| 			ret := []string{"_", "_"} | ||||
| 			body := "" | ||||
| 			doErrno := false | ||||
| 			for i := 0; i < len(out); i++ { | ||||
| 				p := parseParam(out[i]) | ||||
| 				reg := "" | ||||
| 				if p.Name == "err" { | ||||
| 					reg = "e1" | ||||
| 					ret[1] = reg | ||||
| 					doErrno = true | ||||
| 				} else { | ||||
| 					reg = "r0" | ||||
| 					ret[0] = reg | ||||
| 				} | ||||
| 				if p.Type == "bool" { | ||||
| 					reg = fmt.Sprintf("%s != 0", reg) | ||||
| 				} | ||||
| 				if reg != "e1" { | ||||
| 					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) | ||||
| 				} | ||||
| 			} | ||||
| 			if ret[0] == "_" && ret[1] == "_" { | ||||
| 				textcommon += fmt.Sprintf("\t%s\n", callcommon) | ||||
| 			} else { | ||||
| 				textcommon += fmt.Sprintf("\t%s, %s := %s\n", ret[0], ret[1], callcommon) | ||||
| 			} | ||||
| 			textcommon += body | ||||
|  | ||||
| 			if doErrno { | ||||
| 				textcommon += "\tif e1 != 0 {\n" | ||||
| 				textcommon += "\t\terr = errnoErr(e1)\n" | ||||
| 				textcommon += "\t}\n" | ||||
| 			} | ||||
| 			textcommon += "\treturn\n" | ||||
| 			textcommon += "}\n" | ||||
|  | ||||
| 			if onlyCommon { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// CALL Prototype | ||||
| 			callProto := fmt.Sprintf("func call%s(%s) (r1 uintptr, e1 Errno) {\n", sysname, strings.Join(argscall, ", ")) | ||||
|  | ||||
| 			// GC function generation | ||||
| 			asm := "syscall6" | ||||
| 			if nonblock != nil { | ||||
| 				asm = "rawSyscall6" | ||||
| 			} | ||||
|  | ||||
| 			if len(argsgc) <= 6 { | ||||
| 				for len(argsgc) < 6 { | ||||
| 					argsgc = append(argsgc, "0") | ||||
| 				} | ||||
| 			} else { | ||||
| 				fmt.Fprintf(os.Stderr, "%s: too many arguments to system call", funct) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			argsgclist := strings.Join(argsgc, ", ") | ||||
| 			callgc := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, argsgclist) | ||||
|  | ||||
| 			textgc += callProto | ||||
| 			textgc += fmt.Sprintf("\tr1, _, e1 = %s\n", callgc) | ||||
| 			textgc += "\treturn\n}\n" | ||||
|  | ||||
| 			// GCCGO function generation | ||||
| 			argsgccgolist := strings.Join(argsgccgo, ", ") | ||||
| 			var callgccgo string | ||||
| 			if sysname == "select" { | ||||
| 				// select is a keyword of Go. Its name is | ||||
| 				// changed to c_select. | ||||
| 				callgccgo = fmt.Sprintf("C.c_%s(%s)", sysname, argsgccgolist) | ||||
| 			} else { | ||||
| 				callgccgo = fmt.Sprintf("C.%s(%s)", sysname, argsgccgolist) | ||||
| 			} | ||||
| 			textgccgo += callProto | ||||
| 			textgccgo += fmt.Sprintf("\tr1 = uintptr(%s)\n", callgccgo) | ||||
| 			textgccgo += "\te1 = syscall.GetErrno()\n" | ||||
| 			textgccgo += "\treturn\n}\n" | ||||
| 		} | ||||
| 		if err := s.Err(); err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		file.Close() | ||||
| 	} | ||||
| 	imp := "" | ||||
| 	if pack != "unix" { | ||||
| 		imp = "import \"golang.org/x/sys/unix\"\n" | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	// Print zsyscall_aix_ppc64.go | ||||
| 	err := ioutil.WriteFile("zsyscall_aix_ppc64.go", | ||||
| 		[]byte(fmt.Sprintf(srcTemplate1, cmdLine(), buildTags(), pack, imp, textcommon)), | ||||
| 		0644) | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
|  | ||||
| 	// Print zsyscall_aix_ppc64_gc.go | ||||
| 	vardecls := "\t" + strings.Join(vars, ",\n\t") | ||||
| 	vardecls += " syscallFunc" | ||||
| 	err = ioutil.WriteFile("zsyscall_aix_ppc64_gc.go", | ||||
| 		[]byte(fmt.Sprintf(srcTemplate2, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, textgc)), | ||||
| 		0644) | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
|  | ||||
| 	// Print zsyscall_aix_ppc64_gccgo.go | ||||
| 	err = ioutil.WriteFile("zsyscall_aix_ppc64_gccgo.go", | ||||
| 		[]byte(fmt.Sprintf(srcTemplate3, cmdLine(), buildTags(), pack, cExtern, imp, textgccgo)), | ||||
| 		0644) | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| const srcTemplate1 = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package %s | ||||
|  | ||||
| import ( | ||||
| 	"unsafe" | ||||
| ) | ||||
|  | ||||
|  | ||||
| %s | ||||
|  | ||||
| %s | ||||
| ` | ||||
| const srcTemplate2 = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
| // +build !gccgo | ||||
|  | ||||
| package %s | ||||
|  | ||||
| import ( | ||||
| 	"unsafe" | ||||
| ) | ||||
| %s | ||||
| %s | ||||
| %s | ||||
| type syscallFunc uintptr | ||||
|  | ||||
| var ( | ||||
| %s | ||||
| ) | ||||
|  | ||||
| // Implemented in runtime/syscall_aix.go. | ||||
| func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) | ||||
| func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) | ||||
|  | ||||
| %s | ||||
| ` | ||||
| const srcTemplate3 = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
| // +build gccgo | ||||
|  | ||||
| package %s | ||||
|  | ||||
| %s | ||||
| */ | ||||
| import "C" | ||||
| import ( | ||||
| 	"syscall" | ||||
| ) | ||||
|  | ||||
|  | ||||
| %s | ||||
|  | ||||
| %s | ||||
| ` | ||||
							
								
								
									
										335
									
								
								vendor/golang.org/x/sys/unix/mksyscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										335
									
								
								vendor/golang.org/x/sys/unix/mksyscall_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,335 +0,0 @@ | ||||
| // Copyright 2019 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 | ||||
|  | ||||
| /* | ||||
|  This program reads a file containing function prototypes | ||||
|  (like syscall_solaris.go) and generates system call bodies. | ||||
|  The prototypes are marked by lines beginning with "//sys" | ||||
|  and read like func declarations if //sys is replaced by func, but: | ||||
| 	* The parameter lists must give a name for each argument. | ||||
| 	  This includes return parameters. | ||||
| 	* The parameter lists must give a type for each argument: | ||||
| 	  the (x, y, z int) shorthand is not allowed. | ||||
| 	* If the return parameter is an error number, it must be named err. | ||||
| 	* If go func name needs to be different than its libc name, | ||||
| 	* or the function is not in libc, name could be specified | ||||
| 	* at the end, after "=" sign, like | ||||
| 	  //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt | ||||
| */ | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"flag" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	b32  = flag.Bool("b32", false, "32bit big-endian") | ||||
| 	l32  = flag.Bool("l32", false, "32bit little-endian") | ||||
| 	tags = flag.String("tags", "", "build tags") | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments | ||||
| func cmdLine() string { | ||||
| 	return "go run mksyscall_solaris.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags | ||||
| func buildTags() string { | ||||
| 	return *tags | ||||
| } | ||||
|  | ||||
| // Param is function parameter | ||||
| type Param struct { | ||||
| 	Name string | ||||
| 	Type string | ||||
| } | ||||
|  | ||||
| // usage prints the program usage | ||||
| func usage() { | ||||
| 	fmt.Fprintf(os.Stderr, "usage: go run mksyscall_solaris.go [-b32 | -l32] [-tags x,y] [file ...]\n") | ||||
| 	os.Exit(1) | ||||
| } | ||||
|  | ||||
| // parseParamList parses parameter list and returns a slice of parameters | ||||
| func parseParamList(list string) []string { | ||||
| 	list = strings.TrimSpace(list) | ||||
| 	if list == "" { | ||||
| 		return []string{} | ||||
| 	} | ||||
| 	return regexp.MustCompile(`\s*,\s*`).Split(list, -1) | ||||
| } | ||||
|  | ||||
| // parseParam splits a parameter into name and type | ||||
| func parseParam(p string) Param { | ||||
| 	ps := regexp.MustCompile(`^(\S*) (\S*)$`).FindStringSubmatch(p) | ||||
| 	if ps == nil { | ||||
| 		fmt.Fprintf(os.Stderr, "malformed parameter: %s\n", p) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| 	return Param{ps[1], ps[2]} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	flag.Usage = usage | ||||
| 	flag.Parse() | ||||
| 	if len(flag.Args()) <= 0 { | ||||
| 		fmt.Fprintf(os.Stderr, "no files to parse provided\n") | ||||
| 		usage() | ||||
| 	} | ||||
|  | ||||
| 	endianness := "" | ||||
| 	if *b32 { | ||||
| 		endianness = "big-endian" | ||||
| 	} else if *l32 { | ||||
| 		endianness = "little-endian" | ||||
| 	} | ||||
|  | ||||
| 	pack := "" | ||||
| 	text := "" | ||||
| 	dynimports := "" | ||||
| 	linknames := "" | ||||
| 	var vars []string | ||||
| 	for _, path := range flag.Args() { | ||||
| 		file, err := os.Open(path) | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		s := bufio.NewScanner(file) | ||||
| 		for s.Scan() { | ||||
| 			t := s.Text() | ||||
| 			t = strings.TrimSpace(t) | ||||
| 			t = regexp.MustCompile(`\s+`).ReplaceAllString(t, ` `) | ||||
| 			if p := regexp.MustCompile(`^package (\S+)$`).FindStringSubmatch(t); p != nil && pack == "" { | ||||
| 				pack = p[1] | ||||
| 			} | ||||
| 			nonblock := regexp.MustCompile(`^\/\/sysnb `).FindStringSubmatch(t) | ||||
| 			if regexp.MustCompile(`^\/\/sys `).FindStringSubmatch(t) == nil && nonblock == nil { | ||||
| 				continue | ||||
| 			} | ||||
|  | ||||
| 			// Line must be of the form | ||||
| 			//	func Open(path string, mode int, perm int) (fd int, err error) | ||||
| 			// Split into name, in params, out params. | ||||
| 			f := regexp.MustCompile(`^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*(?:(\w*)\.)?(\w*))?$`).FindStringSubmatch(t) | ||||
| 			if f == nil { | ||||
| 				fmt.Fprintf(os.Stderr, "%s:%s\nmalformed //sys declaration\n", path, t) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
| 			funct, inps, outps, modname, sysname := f[2], f[3], f[4], f[5], f[6] | ||||
|  | ||||
| 			// Split argument lists on comma. | ||||
| 			in := parseParamList(inps) | ||||
| 			out := parseParamList(outps) | ||||
|  | ||||
| 			inps = strings.Join(in, ", ") | ||||
| 			outps = strings.Join(out, ", ") | ||||
|  | ||||
| 			// Try in vain to keep people from editing this file. | ||||
| 			// The theory is that they jump into the middle of the file | ||||
| 			// without reading the header. | ||||
| 			text += "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n" | ||||
|  | ||||
| 			// So file name. | ||||
| 			if modname == "" { | ||||
| 				modname = "libc" | ||||
| 			} | ||||
|  | ||||
| 			// System call name. | ||||
| 			if sysname == "" { | ||||
| 				sysname = funct | ||||
| 			} | ||||
|  | ||||
| 			// System call pointer variable name. | ||||
| 			sysvarname := fmt.Sprintf("proc%s", sysname) | ||||
|  | ||||
| 			strconvfunc := "BytePtrFromString" | ||||
| 			strconvtype := "*byte" | ||||
|  | ||||
| 			sysname = strings.ToLower(sysname) // All libc functions are lowercase. | ||||
|  | ||||
| 			// Runtime import of function to allow cross-platform builds. | ||||
| 			dynimports += fmt.Sprintf("//go:cgo_import_dynamic libc_%s %s \"%s.so\"\n", sysname, sysname, modname) | ||||
| 			// Link symbol to proc address variable. | ||||
| 			linknames += fmt.Sprintf("//go:linkname %s libc_%s\n", sysvarname, sysname) | ||||
| 			// Library proc address variable. | ||||
| 			vars = append(vars, sysvarname) | ||||
|  | ||||
| 			// Go function header. | ||||
| 			outlist := strings.Join(out, ", ") | ||||
| 			if outlist != "" { | ||||
| 				outlist = fmt.Sprintf(" (%s)", outlist) | ||||
| 			} | ||||
| 			if text != "" { | ||||
| 				text += "\n" | ||||
| 			} | ||||
| 			text += fmt.Sprintf("func %s(%s)%s {\n", funct, strings.Join(in, ", "), outlist) | ||||
|  | ||||
| 			// Check if err return available | ||||
| 			errvar := "" | ||||
| 			for _, param := range out { | ||||
| 				p := parseParam(param) | ||||
| 				if p.Type == "error" { | ||||
| 					errvar = p.Name | ||||
| 					continue | ||||
| 				} | ||||
| 			} | ||||
|  | ||||
| 			// Prepare arguments to Syscall. | ||||
| 			var args []string | ||||
| 			n := 0 | ||||
| 			for _, param := range in { | ||||
| 				p := parseParam(param) | ||||
| 				if regexp.MustCompile(`^\*`).FindStringSubmatch(p.Type) != nil { | ||||
| 					args = append(args, "uintptr(unsafe.Pointer("+p.Name+"))") | ||||
| 				} else if p.Type == "string" && errvar != "" { | ||||
| 					text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) | ||||
| 					text += fmt.Sprintf("\t_p%d, %s = %s(%s)\n", n, errvar, strconvfunc, p.Name) | ||||
| 					text += fmt.Sprintf("\tif %s != nil {\n\t\treturn\n\t}\n", errvar) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "string" { | ||||
| 					fmt.Fprintf(os.Stderr, path+":"+funct+" uses string arguments, but has no error return\n") | ||||
| 					text += fmt.Sprintf("\tvar _p%d %s\n", n, strconvtype) | ||||
| 					text += fmt.Sprintf("\t_p%d, _ = %s(%s)\n", n, strconvfunc, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n)) | ||||
| 					n++ | ||||
| 				} else if s := regexp.MustCompile(`^\[\](.*)`).FindStringSubmatch(p.Type); s != nil { | ||||
| 					// Convert slice into pointer, length. | ||||
| 					// Have to be careful not to take address of &a[0] if len == 0: | ||||
| 					// pass nil in that case. | ||||
| 					text += fmt.Sprintf("\tvar _p%d *%s\n", n, s[1]) | ||||
| 					text += fmt.Sprintf("\tif len(%s) > 0 {\n\t\t_p%d = &%s[0]\n\t}\n", p.Name, n, p.Name) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(unsafe.Pointer(_p%d))", n), fmt.Sprintf("uintptr(len(%s))", p.Name)) | ||||
| 					n++ | ||||
| 				} else if p.Type == "int64" && endianness != "" { | ||||
| 					if endianness == "big-endian" { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s>>32)", p.Name), fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 					} else { | ||||
| 						args = append(args, fmt.Sprintf("uintptr(%s)", p.Name), fmt.Sprintf("uintptr(%s>>32)", p.Name)) | ||||
| 					} | ||||
| 				} else if p.Type == "bool" { | ||||
| 					text += fmt.Sprintf("\tvar _p%d uint32\n", n) | ||||
| 					text += fmt.Sprintf("\tif %s {\n\t\t_p%d = 1\n\t} else {\n\t\t_p%d = 0\n\t}\n", p.Name, n, n) | ||||
| 					args = append(args, fmt.Sprintf("uintptr(_p%d)", n)) | ||||
| 					n++ | ||||
| 				} else { | ||||
| 					args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) | ||||
| 				} | ||||
| 			} | ||||
| 			nargs := len(args) | ||||
|  | ||||
| 			// Determine which form to use; pad args with zeros. | ||||
| 			asm := "sysvicall6" | ||||
| 			if nonblock != nil { | ||||
| 				asm = "rawSysvicall6" | ||||
| 			} | ||||
| 			if len(args) <= 6 { | ||||
| 				for len(args) < 6 { | ||||
| 					args = append(args, "0") | ||||
| 				} | ||||
| 			} else { | ||||
| 				fmt.Fprintf(os.Stderr, "%s: too many arguments to system call\n", path) | ||||
| 				os.Exit(1) | ||||
| 			} | ||||
|  | ||||
| 			// Actual call. | ||||
| 			arglist := strings.Join(args, ", ") | ||||
| 			call := fmt.Sprintf("%s(uintptr(unsafe.Pointer(&%s)), %d, %s)", asm, sysvarname, nargs, arglist) | ||||
|  | ||||
| 			// Assign return values. | ||||
| 			body := "" | ||||
| 			ret := []string{"_", "_", "_"} | ||||
| 			doErrno := false | ||||
| 			for i := 0; i < len(out); i++ { | ||||
| 				p := parseParam(out[i]) | ||||
| 				reg := "" | ||||
| 				if p.Name == "err" { | ||||
| 					reg = "e1" | ||||
| 					ret[2] = reg | ||||
| 					doErrno = true | ||||
| 				} else { | ||||
| 					reg = fmt.Sprintf("r%d", i) | ||||
| 					ret[i] = reg | ||||
| 				} | ||||
| 				if p.Type == "bool" { | ||||
| 					reg = fmt.Sprintf("%d != 0", reg) | ||||
| 				} | ||||
| 				if p.Type == "int64" && endianness != "" { | ||||
| 					// 64-bit number in r1:r0 or r0:r1. | ||||
| 					if i+2 > len(out) { | ||||
| 						fmt.Fprintf(os.Stderr, "%s: not enough registers for int64 return\n", path) | ||||
| 						os.Exit(1) | ||||
| 					} | ||||
| 					if endianness == "big-endian" { | ||||
| 						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i, i+1) | ||||
| 					} else { | ||||
| 						reg = fmt.Sprintf("int64(r%d)<<32 | int64(r%d)", i+1, i) | ||||
| 					} | ||||
| 					ret[i] = fmt.Sprintf("r%d", i) | ||||
| 					ret[i+1] = fmt.Sprintf("r%d", i+1) | ||||
| 				} | ||||
| 				if reg != "e1" { | ||||
| 					body += fmt.Sprintf("\t%s = %s(%s)\n", p.Name, p.Type, reg) | ||||
| 				} | ||||
| 			} | ||||
| 			if ret[0] == "_" && ret[1] == "_" && ret[2] == "_" { | ||||
| 				text += fmt.Sprintf("\t%s\n", call) | ||||
| 			} else { | ||||
| 				text += fmt.Sprintf("\t%s, %s, %s := %s\n", ret[0], ret[1], ret[2], call) | ||||
| 			} | ||||
| 			text += body | ||||
|  | ||||
| 			if doErrno { | ||||
| 				text += "\tif e1 != 0 {\n" | ||||
| 				text += "\t\terr = e1\n" | ||||
| 				text += "\t}\n" | ||||
| 			} | ||||
| 			text += "\treturn\n" | ||||
| 			text += "}\n" | ||||
| 		} | ||||
| 		if err := s.Err(); err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, err.Error()) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		file.Close() | ||||
| 	} | ||||
| 	imp := "" | ||||
| 	if pack != "unix" { | ||||
| 		imp = "import \"golang.org/x/sys/unix\"\n" | ||||
|  | ||||
| 	} | ||||
| 	vardecls := "\t" + strings.Join(vars, ",\n\t") | ||||
| 	vardecls += " syscallFunc" | ||||
| 	fmt.Printf(srcTemplate, cmdLine(), buildTags(), pack, imp, dynimports, linknames, vardecls, text) | ||||
| } | ||||
|  | ||||
| const srcTemplate = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package %s | ||||
|  | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
| %s | ||||
| %s | ||||
| %s | ||||
| var ( | ||||
| %s	 | ||||
| ) | ||||
|  | ||||
| %s | ||||
| ` | ||||
							
								
								
									
										355
									
								
								vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										355
									
								
								vendor/golang.org/x/sys/unix/mksysctl_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,355 +0,0 @@ | ||||
| // Copyright 2019 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 | ||||
|  | ||||
| // Parse the header files for OpenBSD and generate a Go usable sysctl MIB. | ||||
| // | ||||
| // Build a MIB with each entry being an array containing the level, type and | ||||
| // a hash that will contain additional entries if the current entry is a node. | ||||
| // We then walk this MIB and create a flattened sysctl name to OID hash. | ||||
|  | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 	"regexp" | ||||
| 	"sort" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	goos, goarch string | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments. | ||||
| func cmdLine() string { | ||||
| 	return "go run mksysctl_openbsd.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags. | ||||
| func buildTags() string { | ||||
| 	return fmt.Sprintf("%s,%s", goarch, goos) | ||||
| } | ||||
|  | ||||
| // reMatch performs regular expression match and stores the substring slice to value pointed by m. | ||||
| func reMatch(re *regexp.Regexp, str string, m *[]string) bool { | ||||
| 	*m = re.FindStringSubmatch(str) | ||||
| 	if *m != nil { | ||||
| 		return true | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| type nodeElement struct { | ||||
| 	n  int | ||||
| 	t  string | ||||
| 	pE *map[string]nodeElement | ||||
| } | ||||
|  | ||||
| var ( | ||||
| 	debugEnabled bool | ||||
| 	mib          map[string]nodeElement | ||||
| 	node         *map[string]nodeElement | ||||
| 	nodeMap      map[string]string | ||||
| 	sysCtl       []string | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	ctlNames1RE = regexp.MustCompile(`^#define\s+(CTL_NAMES)\s+{`) | ||||
| 	ctlNames2RE = regexp.MustCompile(`^#define\s+(CTL_(.*)_NAMES)\s+{`) | ||||
| 	ctlNames3RE = regexp.MustCompile(`^#define\s+((.*)CTL_NAMES)\s+{`) | ||||
| 	netInetRE   = regexp.MustCompile(`^netinet/`) | ||||
| 	netInet6RE  = regexp.MustCompile(`^netinet6/`) | ||||
| 	netRE       = regexp.MustCompile(`^net/`) | ||||
| 	bracesRE    = regexp.MustCompile(`{.*}`) | ||||
| 	ctlTypeRE   = regexp.MustCompile(`{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}`) | ||||
| 	fsNetKernRE = regexp.MustCompile(`^(fs|net|kern)_`) | ||||
| ) | ||||
|  | ||||
| func debug(s string) { | ||||
| 	if debugEnabled { | ||||
| 		fmt.Fprintln(os.Stderr, s) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // Walk the MIB and build a sysctl name to OID mapping. | ||||
| func buildSysctl(pNode *map[string]nodeElement, name string, oid []int) { | ||||
| 	lNode := pNode // local copy of pointer to node | ||||
| 	var keys []string | ||||
| 	for k := range *lNode { | ||||
| 		keys = append(keys, k) | ||||
| 	} | ||||
| 	sort.Strings(keys) | ||||
|  | ||||
| 	for _, key := range keys { | ||||
| 		nodename := name | ||||
| 		if name != "" { | ||||
| 			nodename += "." | ||||
| 		} | ||||
| 		nodename += key | ||||
|  | ||||
| 		nodeoid := append(oid, (*pNode)[key].n) | ||||
|  | ||||
| 		if (*pNode)[key].t == `CTLTYPE_NODE` { | ||||
| 			if _, ok := nodeMap[nodename]; ok { | ||||
| 				lNode = &mib | ||||
| 				ctlName := nodeMap[nodename] | ||||
| 				for _, part := range strings.Split(ctlName, ".") { | ||||
| 					lNode = ((*lNode)[part]).pE | ||||
| 				} | ||||
| 			} else { | ||||
| 				lNode = (*pNode)[key].pE | ||||
| 			} | ||||
| 			buildSysctl(lNode, nodename, nodeoid) | ||||
| 		} else if (*pNode)[key].t != "" { | ||||
| 			oidStr := []string{} | ||||
| 			for j := range nodeoid { | ||||
| 				oidStr = append(oidStr, fmt.Sprintf("%d", nodeoid[j])) | ||||
| 			} | ||||
| 			text := "\t{ \"" + nodename + "\", []_C_int{ " + strings.Join(oidStr, ", ") + " } }, \n" | ||||
| 			sysCtl = append(sysCtl, text) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	// Get the OS (using GOOS_TARGET if it exist) | ||||
| 	goos = os.Getenv("GOOS_TARGET") | ||||
| 	if goos == "" { | ||||
| 		goos = os.Getenv("GOOS") | ||||
| 	} | ||||
| 	// Get the architecture (using GOARCH_TARGET if it exists) | ||||
| 	goarch = os.Getenv("GOARCH_TARGET") | ||||
| 	if goarch == "" { | ||||
| 		goarch = os.Getenv("GOARCH") | ||||
| 	} | ||||
| 	// Check if GOOS and GOARCH environment variables are defined | ||||
| 	if goarch == "" || goos == "" { | ||||
| 		fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n") | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
|  | ||||
| 	mib = make(map[string]nodeElement) | ||||
| 	headers := [...]string{ | ||||
| 		`sys/sysctl.h`, | ||||
| 		`sys/socket.h`, | ||||
| 		`sys/tty.h`, | ||||
| 		`sys/malloc.h`, | ||||
| 		`sys/mount.h`, | ||||
| 		`sys/namei.h`, | ||||
| 		`sys/sem.h`, | ||||
| 		`sys/shm.h`, | ||||
| 		`sys/vmmeter.h`, | ||||
| 		`uvm/uvmexp.h`, | ||||
| 		`uvm/uvm_param.h`, | ||||
| 		`uvm/uvm_swap_encrypt.h`, | ||||
| 		`ddb/db_var.h`, | ||||
| 		`net/if.h`, | ||||
| 		`net/if_pfsync.h`, | ||||
| 		`net/pipex.h`, | ||||
| 		`netinet/in.h`, | ||||
| 		`netinet/icmp_var.h`, | ||||
| 		`netinet/igmp_var.h`, | ||||
| 		`netinet/ip_ah.h`, | ||||
| 		`netinet/ip_carp.h`, | ||||
| 		`netinet/ip_divert.h`, | ||||
| 		`netinet/ip_esp.h`, | ||||
| 		`netinet/ip_ether.h`, | ||||
| 		`netinet/ip_gre.h`, | ||||
| 		`netinet/ip_ipcomp.h`, | ||||
| 		`netinet/ip_ipip.h`, | ||||
| 		`netinet/pim_var.h`, | ||||
| 		`netinet/tcp_var.h`, | ||||
| 		`netinet/udp_var.h`, | ||||
| 		`netinet6/in6.h`, | ||||
| 		`netinet6/ip6_divert.h`, | ||||
| 		`netinet6/pim6_var.h`, | ||||
| 		`netinet/icmp6.h`, | ||||
| 		`netmpls/mpls.h`, | ||||
| 	} | ||||
|  | ||||
| 	ctls := [...]string{ | ||||
| 		`kern`, | ||||
| 		`vm`, | ||||
| 		`fs`, | ||||
| 		`net`, | ||||
| 		//debug			/* Special handling required */ | ||||
| 		`hw`, | ||||
| 		//machdep		/* Arch specific */ | ||||
| 		`user`, | ||||
| 		`ddb`, | ||||
| 		//vfs			/* Special handling required */ | ||||
| 		`fs.posix`, | ||||
| 		`kern.forkstat`, | ||||
| 		`kern.intrcnt`, | ||||
| 		`kern.malloc`, | ||||
| 		`kern.nchstats`, | ||||
| 		`kern.seminfo`, | ||||
| 		`kern.shminfo`, | ||||
| 		`kern.timecounter`, | ||||
| 		`kern.tty`, | ||||
| 		`kern.watchdog`, | ||||
| 		`net.bpf`, | ||||
| 		`net.ifq`, | ||||
| 		`net.inet`, | ||||
| 		`net.inet.ah`, | ||||
| 		`net.inet.carp`, | ||||
| 		`net.inet.divert`, | ||||
| 		`net.inet.esp`, | ||||
| 		`net.inet.etherip`, | ||||
| 		`net.inet.gre`, | ||||
| 		`net.inet.icmp`, | ||||
| 		`net.inet.igmp`, | ||||
| 		`net.inet.ip`, | ||||
| 		`net.inet.ip.ifq`, | ||||
| 		`net.inet.ipcomp`, | ||||
| 		`net.inet.ipip`, | ||||
| 		`net.inet.mobileip`, | ||||
| 		`net.inet.pfsync`, | ||||
| 		`net.inet.pim`, | ||||
| 		`net.inet.tcp`, | ||||
| 		`net.inet.udp`, | ||||
| 		`net.inet6`, | ||||
| 		`net.inet6.divert`, | ||||
| 		`net.inet6.ip6`, | ||||
| 		`net.inet6.icmp6`, | ||||
| 		`net.inet6.pim6`, | ||||
| 		`net.inet6.tcp6`, | ||||
| 		`net.inet6.udp6`, | ||||
| 		`net.mpls`, | ||||
| 		`net.mpls.ifq`, | ||||
| 		`net.key`, | ||||
| 		`net.pflow`, | ||||
| 		`net.pfsync`, | ||||
| 		`net.pipex`, | ||||
| 		`net.rt`, | ||||
| 		`vm.swapencrypt`, | ||||
| 		//vfsgenctl		/* Special handling required */ | ||||
| 	} | ||||
|  | ||||
| 	// Node name "fixups" | ||||
| 	ctlMap := map[string]string{ | ||||
| 		"ipproto":             "net.inet", | ||||
| 		"net.inet.ipproto":    "net.inet", | ||||
| 		"net.inet6.ipv6proto": "net.inet6", | ||||
| 		"net.inet6.ipv6":      "net.inet6.ip6", | ||||
| 		"net.inet.icmpv6":     "net.inet6.icmp6", | ||||
| 		"net.inet6.divert6":   "net.inet6.divert", | ||||
| 		"net.inet6.tcp6":      "net.inet.tcp", | ||||
| 		"net.inet6.udp6":      "net.inet.udp", | ||||
| 		"mpls":                "net.mpls", | ||||
| 		"swpenc":              "vm.swapencrypt", | ||||
| 	} | ||||
|  | ||||
| 	// Node mappings | ||||
| 	nodeMap = map[string]string{ | ||||
| 		"net.inet.ip.ifq": "net.ifq", | ||||
| 		"net.inet.pfsync": "net.pfsync", | ||||
| 		"net.mpls.ifq":    "net.ifq", | ||||
| 	} | ||||
|  | ||||
| 	mCtls := make(map[string]bool) | ||||
| 	for _, ctl := range ctls { | ||||
| 		mCtls[ctl] = true | ||||
| 	} | ||||
|  | ||||
| 	for _, header := range headers { | ||||
| 		debug("Processing " + header) | ||||
| 		file, err := os.Open(filepath.Join("/usr/include", header)) | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, "%v\n", err) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		s := bufio.NewScanner(file) | ||||
| 		for s.Scan() { | ||||
| 			var sub []string | ||||
| 			if reMatch(ctlNames1RE, s.Text(), &sub) || | ||||
| 				reMatch(ctlNames2RE, s.Text(), &sub) || | ||||
| 				reMatch(ctlNames3RE, s.Text(), &sub) { | ||||
| 				if sub[1] == `CTL_NAMES` { | ||||
| 					// Top level. | ||||
| 					node = &mib | ||||
| 				} else { | ||||
| 					// Node. | ||||
| 					nodename := strings.ToLower(sub[2]) | ||||
| 					ctlName := "" | ||||
| 					if reMatch(netInetRE, header, &sub) { | ||||
| 						ctlName = "net.inet." + nodename | ||||
| 					} else if reMatch(netInet6RE, header, &sub) { | ||||
| 						ctlName = "net.inet6." + nodename | ||||
| 					} else if reMatch(netRE, header, &sub) { | ||||
| 						ctlName = "net." + nodename | ||||
| 					} else { | ||||
| 						ctlName = nodename | ||||
| 						ctlName = fsNetKernRE.ReplaceAllString(ctlName, `$1.`) | ||||
| 					} | ||||
|  | ||||
| 					if val, ok := ctlMap[ctlName]; ok { | ||||
| 						ctlName = val | ||||
| 					} | ||||
| 					if _, ok := mCtls[ctlName]; !ok { | ||||
| 						debug("Ignoring " + ctlName + "...") | ||||
| 						continue | ||||
| 					} | ||||
|  | ||||
| 					// Walk down from the top of the MIB. | ||||
| 					node = &mib | ||||
| 					for _, part := range strings.Split(ctlName, ".") { | ||||
| 						if _, ok := (*node)[part]; !ok { | ||||
| 							debug("Missing node " + part) | ||||
| 							(*node)[part] = nodeElement{n: 0, t: "", pE: &map[string]nodeElement{}} | ||||
| 						} | ||||
| 						node = (*node)[part].pE | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				// Populate current node with entries. | ||||
| 				i := -1 | ||||
| 				for !strings.HasPrefix(s.Text(), "}") { | ||||
| 					s.Scan() | ||||
| 					if reMatch(bracesRE, s.Text(), &sub) { | ||||
| 						i++ | ||||
| 					} | ||||
| 					if !reMatch(ctlTypeRE, s.Text(), &sub) { | ||||
| 						continue | ||||
| 					} | ||||
| 					(*node)[sub[1]] = nodeElement{n: i, t: sub[2], pE: &map[string]nodeElement{}} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		err = s.Err() | ||||
| 		if err != nil { | ||||
| 			fmt.Fprintf(os.Stderr, "%v\n", err) | ||||
| 			os.Exit(1) | ||||
| 		} | ||||
| 		file.Close() | ||||
| 	} | ||||
| 	buildSysctl(&mib, "", []int{}) | ||||
|  | ||||
| 	sort.Strings(sysCtl) | ||||
| 	text := strings.Join(sysCtl, "") | ||||
|  | ||||
| 	fmt.Printf(srcTemplate, cmdLine(), buildTags(), text) | ||||
| } | ||||
|  | ||||
| const srcTemplate = `// %s | ||||
| // Code generated by the command above; DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package unix | ||||
|  | ||||
| type mibentry struct { | ||||
| 	ctlname string | ||||
| 	ctloid []_C_int | ||||
| } | ||||
|  | ||||
| var sysctlMib = []mibentry { | ||||
| %s | ||||
| } | ||||
| ` | ||||
							
								
								
									
										190
									
								
								vendor/golang.org/x/sys/unix/mksysnum.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										190
									
								
								vendor/golang.org/x/sys/unix/mksysnum.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,190 +0,0 @@ | ||||
| // 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 | ||||
|  | ||||
| // Generate system call table for DragonFly, NetBSD, | ||||
| // FreeBSD, OpenBSD or Darwin from master list | ||||
| // (for example, /usr/src/sys/kern/syscalls.master or | ||||
| // sys/syscall.h). | ||||
| package main | ||||
|  | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| 	"regexp" | ||||
| 	"strings" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	goos, goarch string | ||||
| ) | ||||
|  | ||||
| // cmdLine returns this programs's commandline arguments | ||||
| func cmdLine() string { | ||||
| 	return "go run mksysnum.go " + strings.Join(os.Args[1:], " ") | ||||
| } | ||||
|  | ||||
| // buildTags returns build tags | ||||
| func buildTags() string { | ||||
| 	return fmt.Sprintf("%s,%s", goarch, goos) | ||||
| } | ||||
|  | ||||
| func checkErr(err error) { | ||||
| 	if err != nil { | ||||
| 		fmt.Fprintf(os.Stderr, "%v\n", err) | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // source string and substring slice for regexp | ||||
| type re struct { | ||||
| 	str string   // source string | ||||
| 	sub []string // matched sub-string | ||||
| } | ||||
|  | ||||
| // Match performs regular expression match | ||||
| func (r *re) Match(exp string) bool { | ||||
| 	r.sub = regexp.MustCompile(exp).FindStringSubmatch(r.str) | ||||
| 	if r.sub != nil { | ||||
| 		return true | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
|  | ||||
| // fetchFile fetches a text file from URL | ||||
| func fetchFile(URL string) io.Reader { | ||||
| 	resp, err := http.Get(URL) | ||||
| 	checkErr(err) | ||||
| 	defer resp.Body.Close() | ||||
| 	body, err := ioutil.ReadAll(resp.Body) | ||||
| 	checkErr(err) | ||||
| 	return strings.NewReader(string(body)) | ||||
| } | ||||
|  | ||||
| // readFile reads a text file from path | ||||
| func readFile(path string) io.Reader { | ||||
| 	file, err := os.Open(os.Args[1]) | ||||
| 	checkErr(err) | ||||
| 	return file | ||||
| } | ||||
|  | ||||
| func format(name, num, proto string) string { | ||||
| 	name = strings.ToUpper(name) | ||||
| 	// There are multiple entries for enosys and nosys, so comment them out. | ||||
| 	nm := re{str: name} | ||||
| 	if nm.Match(`^SYS_E?NOSYS$`) { | ||||
| 		name = fmt.Sprintf("// %s", name) | ||||
| 	} | ||||
| 	if name == `SYS_SYS_EXIT` { | ||||
| 		name = `SYS_EXIT` | ||||
| 	} | ||||
| 	return fmt.Sprintf("	%s = %s;  // %s\n", name, num, proto) | ||||
| } | ||||
|  | ||||
| func main() { | ||||
| 	// Get the OS (using GOOS_TARGET if it exist) | ||||
| 	goos = os.Getenv("GOOS_TARGET") | ||||
| 	if goos == "" { | ||||
| 		goos = os.Getenv("GOOS") | ||||
| 	} | ||||
| 	// Get the architecture (using GOARCH_TARGET if it exists) | ||||
| 	goarch = os.Getenv("GOARCH_TARGET") | ||||
| 	if goarch == "" { | ||||
| 		goarch = os.Getenv("GOARCH") | ||||
| 	} | ||||
| 	// Check if GOOS and GOARCH environment variables are defined | ||||
| 	if goarch == "" || goos == "" { | ||||
| 		fmt.Fprintf(os.Stderr, "GOARCH or GOOS not defined in environment\n") | ||||
| 		os.Exit(1) | ||||
| 	} | ||||
|  | ||||
| 	file := strings.TrimSpace(os.Args[1]) | ||||
| 	var syscalls io.Reader | ||||
| 	if strings.HasPrefix(file, "https://") || strings.HasPrefix(file, "http://") { | ||||
| 		// Download syscalls.master file | ||||
| 		syscalls = fetchFile(file) | ||||
| 	} else { | ||||
| 		syscalls = readFile(file) | ||||
| 	} | ||||
|  | ||||
| 	var text, line string | ||||
| 	s := bufio.NewScanner(syscalls) | ||||
| 	for s.Scan() { | ||||
| 		t := re{str: line} | ||||
| 		if t.Match(`^(.*)\\$`) { | ||||
| 			// Handle continuation | ||||
| 			line = t.sub[1] | ||||
| 			line += strings.TrimLeft(s.Text(), " \t") | ||||
| 		} else { | ||||
| 			// New line | ||||
| 			line = s.Text() | ||||
| 		} | ||||
| 		t = re{str: line} | ||||
| 		if t.Match(`\\$`) { | ||||
| 			continue | ||||
| 		} | ||||
| 		t = re{str: line} | ||||
|  | ||||
| 		switch goos { | ||||
| 		case "dragonfly": | ||||
| 			if t.Match(`^([0-9]+)\s+STD\s+({ \S+\s+(\w+).*)$`) { | ||||
| 				num, proto := t.sub[1], t.sub[2] | ||||
| 				name := fmt.Sprintf("SYS_%s", t.sub[3]) | ||||
| 				text += format(name, num, proto) | ||||
| 			} | ||||
| 		case "freebsd": | ||||
| 			if t.Match(`^([0-9]+)\s+\S+\s+(?:(?:NO)?STD|COMPAT10)\s+({ \S+\s+(\w+).*)$`) { | ||||
| 				num, proto := t.sub[1], t.sub[2] | ||||
| 				name := fmt.Sprintf("SYS_%s", t.sub[3]) | ||||
| 				text += format(name, num, proto) | ||||
| 			} | ||||
| 		case "openbsd": | ||||
| 			if t.Match(`^([0-9]+)\s+STD\s+(NOLOCK\s+)?({ \S+\s+\*?(\w+).*)$`) { | ||||
| 				num, proto, name := t.sub[1], t.sub[3], t.sub[4] | ||||
| 				text += format(name, num, proto) | ||||
| 			} | ||||
| 		case "netbsd": | ||||
| 			if t.Match(`^([0-9]+)\s+((STD)|(NOERR))\s+(RUMP\s+)?({\s+\S+\s*\*?\s*\|(\S+)\|(\S*)\|(\w+).*\s+})(\s+(\S+))?$`) { | ||||
| 				num, proto, compat := t.sub[1], t.sub[6], t.sub[8] | ||||
| 				name := t.sub[7] + "_" + t.sub[9] | ||||
| 				if t.sub[11] != "" { | ||||
| 					name = t.sub[7] + "_" + t.sub[11] | ||||
| 				} | ||||
| 				name = strings.ToUpper(name) | ||||
| 				if compat == "" || compat == "13" || compat == "30" || compat == "50" { | ||||
| 					text += fmt.Sprintf("	%s = %s;  // %s\n", name, num, proto) | ||||
| 				} | ||||
| 			} | ||||
| 		case "darwin": | ||||
| 			if t.Match(`^#define\s+SYS_(\w+)\s+([0-9]+)`) { | ||||
| 				name, num := t.sub[1], t.sub[2] | ||||
| 				name = strings.ToUpper(name) | ||||
| 				text += fmt.Sprintf("	SYS_%s = %s;\n", name, num) | ||||
| 			} | ||||
| 		default: | ||||
| 			fmt.Fprintf(os.Stderr, "unrecognized GOOS=%s\n", goos) | ||||
| 			os.Exit(1) | ||||
|  | ||||
| 		} | ||||
| 	} | ||||
| 	err := s.Err() | ||||
| 	checkErr(err) | ||||
|  | ||||
| 	fmt.Printf(template, cmdLine(), buildTags(), text) | ||||
| } | ||||
|  | ||||
| const template = `// %s | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT. | ||||
|  | ||||
| // +build %s | ||||
|  | ||||
| package unix | ||||
|  | ||||
| const( | ||||
| %s)` | ||||
							
								
								
									
										237
									
								
								vendor/golang.org/x/sys/unix/types_aix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										237
									
								
								vendor/golang.org/x/sys/unix/types_aix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,237 +0,0 @@ | ||||
| // 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 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 RawSockaddrDatalink C.struct_sockaddr_dl | ||||
|  | ||||
| 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 | ||||
| 	SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl | ||||
| 	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 | ||||
							
								
								
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_darwin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,283 +0,0 @@ | ||||
| // 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 | ||||
|  | ||||
| // Clockinfo | ||||
|  | ||||
| const SizeofClockinfo = C.sizeof_struct_clockinfo | ||||
|  | ||||
| type Clockinfo C.struct_clockinfo | ||||
							
								
								
									
										263
									
								
								vendor/golang.org/x/sys/unix/types_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										263
									
								
								vendor/golang.org/x/sys/unix/types_dragonfly.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,263 +0,0 @@ | ||||
| // 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 | ||||
							
								
								
									
										400
									
								
								vendor/golang.org/x/sys/unix/types_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										400
									
								
								vendor/golang.org/x/sys/unix/types_freebsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,400 +0,0 @@ | ||||
| // 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	_WANT_FREEBSD11_STAT	1 | ||||
| #define	_WANT_FREEBSD11_STATFS	1 | ||||
| #define	_WANT_FREEBSD11_DIRENT	1 | ||||
| #define	_WANT_FREEBSD11_KEVENT  1 | ||||
|  | ||||
| #include <dirent.h> | ||||
| #include <fcntl.h> | ||||
| #include <poll.h> | ||||
| #include <signal.h> | ||||
| #include <termios.h> | ||||
| #include <stdio.h> | ||||
| #include <unistd.h> | ||||
| #include <sys/capsicum.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 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 | ||||
|  | ||||
| const ( | ||||
| 	_statfsVersion = C.STATFS_VERSION | ||||
| 	_dirblksiz     = C.DIRBLKSIZ | ||||
| ) | ||||
|  | ||||
| type Stat_t C.struct_stat | ||||
|  | ||||
| type stat_freebsd11_t C.struct_freebsd11_stat | ||||
|  | ||||
| type Statfs_t C.struct_statfs | ||||
|  | ||||
| type statfs_freebsd11_t C.struct_freebsd11_statfs | ||||
|  | ||||
| type Flock_t C.struct_flock | ||||
|  | ||||
| type Dirent C.struct_dirent | ||||
|  | ||||
| type dirent_freebsd11 C.struct_freebsd11_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_ATTACH     = C.PT_ATTACH | ||||
| 	PTRACE_CONT       = C.PT_CONTINUE | ||||
| 	PTRACE_DETACH     = C.PT_DETACH | ||||
| 	PTRACE_GETFPREGS  = C.PT_GETFPREGS | ||||
| 	PTRACE_GETFSBASE  = C.PT_GETFSBASE | ||||
| 	PTRACE_GETLWPLIST = C.PT_GETLWPLIST | ||||
| 	PTRACE_GETNUMLWPS = C.PT_GETNUMLWPS | ||||
| 	PTRACE_GETREGS    = C.PT_GETREGS | ||||
| 	PTRACE_GETXSTATE  = C.PT_GETXSTATE | ||||
| 	PTRACE_IO         = C.PT_IO | ||||
| 	PTRACE_KILL       = C.PT_KILL | ||||
| 	PTRACE_LWPEVENTS  = C.PT_LWP_EVENTS | ||||
| 	PTRACE_LWPINFO    = C.PT_LWPINFO | ||||
| 	PTRACE_SETFPREGS  = C.PT_SETFPREGS | ||||
| 	PTRACE_SETREGS    = C.PT_SETREGS | ||||
| 	PTRACE_SINGLESTEP = C.PT_STEP | ||||
| 	PTRACE_TRACEME    = C.PT_TRACE_ME | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	PIOD_READ_D  = C.PIOD_READ_D | ||||
| 	PIOD_WRITE_D = C.PIOD_WRITE_D | ||||
| 	PIOD_READ_I  = C.PIOD_READ_I | ||||
| 	PIOD_WRITE_I = C.PIOD_WRITE_I | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	PL_FLAG_BORN   = C.PL_FLAG_BORN | ||||
| 	PL_FLAG_EXITED = C.PL_FLAG_EXITED | ||||
| 	PL_FLAG_SI     = C.PL_FLAG_SI | ||||
| ) | ||||
|  | ||||
| const ( | ||||
| 	TRAP_BRKPT = C.TRAP_BRKPT | ||||
| 	TRAP_TRACE = C.TRAP_TRACE | ||||
| ) | ||||
|  | ||||
| type PtraceLwpInfoStruct C.struct_ptrace_lwpinfo | ||||
|  | ||||
| type __Siginfo C.struct___siginfo | ||||
|  | ||||
| type Sigset_t C.sigset_t | ||||
|  | ||||
| type Reg C.struct_reg | ||||
|  | ||||
| type FpReg C.struct_fpreg | ||||
|  | ||||
| type PtraceIoDesc C.struct_ptrace_io_desc | ||||
|  | ||||
| // Events (kqueue, kevent) | ||||
|  | ||||
| type Kevent_t C.struct_kevent_freebsd11 | ||||
|  | ||||
| // 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 | ||||
							
								
								
									
										300
									
								
								vendor/golang.org/x/sys/unix/types_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										300
									
								
								vendor/golang.org/x/sys/unix/types_netbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,300 +0,0 @@ | ||||
| // 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/statvfs.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 Statvfs_t C.struct_statvfs | ||||
|  | ||||
| type Flock_t C.struct_flock | ||||
|  | ||||
| type Dirent C.struct_dirent | ||||
|  | ||||
| type Fsid C.fsid_t | ||||
|  | ||||
| // File system limits | ||||
|  | ||||
| const ( | ||||
| 	PathMax = C.PATH_MAX | ||||
| ) | ||||
|  | ||||
| // Fstatvfs/Statvfs flags | ||||
|  | ||||
| const ( | ||||
| 	ST_WAIT   = C.ST_WAIT | ||||
| 	ST_NOWAIT = C.ST_NOWAIT | ||||
| ) | ||||
|  | ||||
| // 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 | ||||
|  | ||||
| type Ptmget C.struct_ptmget | ||||
|  | ||||
| // fchmodat-like syscalls. | ||||
|  | ||||
| const ( | ||||
| 	AT_FDCWD            = C.AT_FDCWD | ||||
| 	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 | ||||
| ) | ||||
|  | ||||
| // Sysctl | ||||
|  | ||||
| type Sysctlnode C.struct_sysctlnode | ||||
|  | ||||
| // Uname | ||||
|  | ||||
| type Utsname C.struct_utsname | ||||
|  | ||||
| // Clockinfo | ||||
|  | ||||
| const SizeofClockinfo = C.sizeof_struct_clockinfo | ||||
|  | ||||
| type Clockinfo C.struct_clockinfo | ||||
							
								
								
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										283
									
								
								vendor/golang.org/x/sys/unix/types_openbsd.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,283 +0,0 @@ | ||||
| // 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_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 | ||||
| ) | ||||
|  | ||||
| // Signal Sets | ||||
|  | ||||
| type Sigset_t C.sigset_t | ||||
|  | ||||
| // Uname | ||||
|  | ||||
| type Utsname C.struct_utsname | ||||
|  | ||||
| // Uvmexp | ||||
|  | ||||
| const SizeofUvmexp = C.sizeof_struct_uvmexp | ||||
|  | ||||
| type Uvmexp C.struct_uvmexp | ||||
|  | ||||
| // Clockinfo | ||||
|  | ||||
| const SizeofClockinfo = C.sizeof_struct_clockinfo | ||||
|  | ||||
| type Clockinfo C.struct_clockinfo | ||||
							
								
								
									
										266
									
								
								vendor/golang.org/x/sys/unix/types_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										266
									
								
								vendor/golang.org/x/sys/unix/types_solaris.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,266 +0,0 @@ | ||||
| // 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 | ||||
| ) | ||||
							
								
								
									
										67
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| # github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 | ||||
| ## explicit | ||||
| github.com/Azure/go-ansiterm | ||||
| github.com/Azure/go-ansiterm/winterm | ||||
| # github.com/alexellis/go-execute v0.0.0-20191207085904-961405ea7544 | ||||
| ## explicit | ||||
| github.com/alexellis/go-execute/pkg/v1 | ||||
| # github.com/alexellis/hmac v0.0.0-20180624210714-d5d71edd7bc7 | ||||
| ## explicit | ||||
| github.com/alexellis/hmac | ||||
| # github.com/docker/docker v17.12.0-ce-rc1.0.20200618181300-9dc6525e6118+incompatible | ||||
| ## explicit | ||||
| github.com/docker/docker/pkg/term | ||||
| github.com/docker/docker/pkg/term/windows | ||||
| # github.com/docker/docker-credential-helpers v0.6.3 | ||||
| ## explicit | ||||
| github.com/docker/docker-credential-helpers/client | ||||
| github.com/docker/docker-credential-helpers/credentials | ||||
| # github.com/drone/envsubst v1.0.2 | ||||
| ## explicit | ||||
| github.com/drone/envsubst | ||||
| github.com/drone/envsubst/parse | ||||
| github.com/drone/envsubst/path | ||||
| # github.com/gotestyourself/gotestyourself v1.4.0 | ||||
| ## explicit | ||||
| # github.com/inconshreveable/mousetrap v1.0.0 | ||||
| github.com/inconshreveable/mousetrap | ||||
| # github.com/konsorten/go-windows-terminal-sequences v1.0.2 | ||||
| ## explicit | ||||
| github.com/konsorten/go-windows-terminal-sequences | ||||
| # github.com/mitchellh/go-homedir v1.1.0 | ||||
| ## explicit | ||||
| github.com/mitchellh/go-homedir | ||||
| # github.com/morikuni/aec v1.0.0 | ||||
| ## explicit | ||||
| github.com/morikuni/aec | ||||
| # github.com/openfaas/faas v0.0.0-20200422142642-18f6c720b50d | ||||
| ## explicit | ||||
| github.com/openfaas/faas/gateway/requests | ||||
| # github.com/openfaas/faas-provider v0.15.1 | ||||
| ## explicit | ||||
| github.com/openfaas/faas-provider/httputil | ||||
| github.com/openfaas/faas-provider/logs | ||||
| github.com/openfaas/faas-provider/types | ||||
| # github.com/pkg/errors v0.8.1 | ||||
| ## explicit | ||||
| github.com/pkg/errors | ||||
| # github.com/ryanuber/go-glob v1.0.0 | ||||
| ## explicit | ||||
| github.com/ryanuber/go-glob | ||||
| # github.com/sirupsen/logrus v1.4.2 | ||||
| ## explicit | ||||
| github.com/sirupsen/logrus | ||||
| # github.com/spf13/cobra v0.0.7 | ||||
| ## explicit | ||||
| github.com/spf13/cobra | ||||
| # github.com/spf13/pflag v1.0.5 | ||||
| ## explicit | ||||
| github.com/spf13/pflag | ||||
| # golang.org/x/sys v0.0.0-20191206220618-eeba5f6aabab | ||||
| ## explicit | ||||
| golang.org/x/sys/unix | ||||
| # gopkg.in/yaml.v2 v2.2.8 | ||||
| ## explicit | ||||
| gopkg.in/yaml.v2 | ||||
| # gotest.tools v1.4.0 | ||||
| ## explicit | ||||
		Reference in New Issue
	
	Block a user