Merge pull request #3727 from thaJeztah/bump_x_net
vendor: golang.org/x/net v0.0.0-20220906165146-f3363e06e74cmaster
						commit
						c47a966fde
					
				
							
								
								
									
										4
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										4
									
								
								go.mod
								
								
								
								
							|  | @ -66,8 +66,8 @@ require ( | |||
| 	github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 // indirect | ||||
| 	github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f // indirect | ||||
| 	go.opencensus.io v0.22.4 // indirect | ||||
| 	golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd // indirect | ||||
| 	golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 // indirect | ||||
| 	golang.org/x/net v0.0.0-20220906165146-f3363e06e74c // indirect; updated for CVE-2022-27664 | ||||
| 	golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 // indirect | ||||
| 	golang.org/x/text v0.3.7 // indirect | ||||
| 	google.golang.org/appengine v1.6.6 // indirect | ||||
| 	google.golang.org/genproto v0.0.0-20200825200019-8632dd797987 // indirect | ||||
|  |  | |||
							
								
								
									
										6
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										6
									
								
								go.sum
								
								
								
								
							|  | @ -411,8 +411,9 @@ golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81R | |||
| golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= | ||||
| golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= | ||||
| golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd h1:O7DYs+zxREGLKzKoMQrtrEacpb0ZVXA5rIwylE2Xchk= | ||||
| golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= | ||||
| golang.org/x/net v0.0.0-20220906165146-f3363e06e74c h1:yKufUcDwucU5urd+50/Opbt4AYpqthk7wHpHok8f1lo= | ||||
| golang.org/x/net v0.0.0-20220906165146-f3363e06e74c/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= | ||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||
| golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||
| golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||
|  | @ -469,8 +470,9 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w | |||
| golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 h1:XfKQ4OlFl8okEOr5UvAqFRVj8pY/4yfcXrddB8qAbU0= | ||||
| golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= | ||||
| golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= | ||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
|  |  | |||
|  | @ -1,3 +0,0 @@ | |||
| # This source code refers to The Go Authors for copyright purposes. | ||||
| # The master list of authors is in the main Go distribution, | ||||
| # visible at http://tip.golang.org/AUTHORS. | ||||
|  | @ -1,3 +0,0 @@ | |||
| # This source code was written by the Go contributors. | ||||
| # The master list of contributors is in the main Go distribution, | ||||
| # visible at http://tip.golang.org/CONTRIBUTORS. | ||||
|  | @ -21,9 +21,9 @@ | |||
| // explicitly to each function that needs it. The Context should be the first
 | ||||
| // parameter, typically named ctx:
 | ||||
| //
 | ||||
| // 	func DoSomething(ctx context.Context, arg Arg) error {
 | ||||
| // 		// ... use ctx ...
 | ||||
| // 	}
 | ||||
| //	func DoSomething(ctx context.Context, arg Arg) error {
 | ||||
| //		// ... use ctx ...
 | ||||
| //	}
 | ||||
| //
 | ||||
| // Do not pass a nil Context, even if a function permits it. Pass context.TODO
 | ||||
| // if you are unsure about which Context to use.
 | ||||
|  |  | |||
|  | @ -54,11 +54,11 @@ func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) { | |||
| // Canceling this context releases resources associated with it, so code should
 | ||||
| // call cancel as soon as the operations running in this Context complete:
 | ||||
| //
 | ||||
| // 	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
 | ||||
| // 		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
 | ||||
| // 		defer cancel()  // releases resources if slowOperation completes before timeout elapses
 | ||||
| // 		return slowOperation(ctx)
 | ||||
| // 	}
 | ||||
| //	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
 | ||||
| //		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
 | ||||
| //		defer cancel()  // releases resources if slowOperation completes before timeout elapses
 | ||||
| //		return slowOperation(ctx)
 | ||||
| //	}
 | ||||
| func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { | ||||
| 	return WithDeadline(parent, time.Now().Add(timeout)) | ||||
| } | ||||
|  |  | |||
|  | @ -264,11 +264,11 @@ func (c *timerCtx) cancel(removeFromParent bool, err error) { | |||
| // Canceling this context releases resources associated with it, so code should
 | ||||
| // call cancel as soon as the operations running in this Context complete:
 | ||||
| //
 | ||||
| // 	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
 | ||||
| // 		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
 | ||||
| // 		defer cancel()  // releases resources if slowOperation completes before timeout elapses
 | ||||
| // 		return slowOperation(ctx)
 | ||||
| // 	}
 | ||||
| //	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
 | ||||
| //		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
 | ||||
| //		defer cancel()  // releases resources if slowOperation completes before timeout elapses
 | ||||
| //		return slowOperation(ctx)
 | ||||
| //	}
 | ||||
| func WithTimeout(parent Context, timeout time.Duration) (Context, CancelFunc) { | ||||
| 	return WithDeadline(parent, time.Now().Add(timeout)) | ||||
| } | ||||
|  |  | |||
|  | @ -173,13 +173,15 @@ func tokenEqual(t1, t2 string) bool { | |||
| 
 | ||||
| // isLWS reports whether b is linear white space, according
 | ||||
| // to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
 | ||||
| //      LWS            = [CRLF] 1*( SP | HT )
 | ||||
| //
 | ||||
| //	LWS            = [CRLF] 1*( SP | HT )
 | ||||
| func isLWS(b byte) bool { return b == ' ' || b == '\t' } | ||||
| 
 | ||||
| // isCTL reports whether b is a control byte, according
 | ||||
| // to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2
 | ||||
| //      CTL            = <any US-ASCII control character
 | ||||
| //                       (octets 0 - 31) and DEL (127)>
 | ||||
| //
 | ||||
| //	CTL            = <any US-ASCII control character
 | ||||
| //	                 (octets 0 - 31) and DEL (127)>
 | ||||
| func isCTL(b byte) bool { | ||||
| 	const del = 0x7f // a CTL
 | ||||
| 	return b < ' ' || b == del | ||||
|  | @ -189,12 +191,13 @@ func isCTL(b byte) bool { | |||
| // HTTP/2 imposes the additional restriction that uppercase ASCII
 | ||||
| // letters are not allowed.
 | ||||
| //
 | ||||
| //  RFC 7230 says:
 | ||||
| //   header-field   = field-name ":" OWS field-value OWS
 | ||||
| //   field-name     = token
 | ||||
| //   token          = 1*tchar
 | ||||
| //   tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
 | ||||
| //           "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
 | ||||
| // RFC 7230 says:
 | ||||
| //
 | ||||
| //	header-field   = field-name ":" OWS field-value OWS
 | ||||
| //	field-name     = token
 | ||||
| //	token          = 1*tchar
 | ||||
| //	tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." /
 | ||||
| //	        "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA
 | ||||
| func ValidHeaderFieldName(v string) bool { | ||||
| 	if len(v) == 0 { | ||||
| 		return false | ||||
|  | @ -267,27 +270,28 @@ var validHostByte = [256]bool{ | |||
| // ValidHeaderFieldValue reports whether v is a valid "field-value" according to
 | ||||
| // http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 :
 | ||||
| //
 | ||||
| //        message-header = field-name ":" [ field-value ]
 | ||||
| //        field-value    = *( field-content | LWS )
 | ||||
| //        field-content  = <the OCTETs making up the field-value
 | ||||
| //                         and consisting of either *TEXT or combinations
 | ||||
| //                         of token, separators, and quoted-string>
 | ||||
| //	message-header = field-name ":" [ field-value ]
 | ||||
| //	field-value    = *( field-content | LWS )
 | ||||
| //	field-content  = <the OCTETs making up the field-value
 | ||||
| //	                 and consisting of either *TEXT or combinations
 | ||||
| //	                 of token, separators, and quoted-string>
 | ||||
| //
 | ||||
| // http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 :
 | ||||
| //
 | ||||
| //        TEXT           = <any OCTET except CTLs,
 | ||||
| //                          but including LWS>
 | ||||
| //        LWS            = [CRLF] 1*( SP | HT )
 | ||||
| //        CTL            = <any US-ASCII control character
 | ||||
| //                         (octets 0 - 31) and DEL (127)>
 | ||||
| //	TEXT           = <any OCTET except CTLs,
 | ||||
| //	                  but including LWS>
 | ||||
| //	LWS            = [CRLF] 1*( SP | HT )
 | ||||
| //	CTL            = <any US-ASCII control character
 | ||||
| //	                 (octets 0 - 31) and DEL (127)>
 | ||||
| //
 | ||||
| // RFC 7230 says:
 | ||||
| //  field-value    = *( field-content / obs-fold )
 | ||||
| //  obj-fold       =  N/A to http2, and deprecated
 | ||||
| //  field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
 | ||||
| //  field-vchar    = VCHAR / obs-text
 | ||||
| //  obs-text       = %x80-FF
 | ||||
| //  VCHAR          = "any visible [USASCII] character"
 | ||||
| //
 | ||||
| //	field-value    = *( field-content / obs-fold )
 | ||||
| //	obj-fold       =  N/A to http2, and deprecated
 | ||||
| //	field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
 | ||||
| //	field-vchar    = VCHAR / obs-text
 | ||||
| //	obs-text       = %x80-FF
 | ||||
| //	VCHAR          = "any visible [USASCII] character"
 | ||||
| //
 | ||||
| // http2 further says: "Similarly, HTTP/2 allows header field values
 | ||||
| // that are not valid. While most of the values that can be encoded
 | ||||
|  |  | |||
|  | @ -139,7 +139,6 @@ func (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *d | |||
| func (c *dialCall) dial(ctx context.Context, addr string) { | ||||
| 	const singleUse = false // shared conn
 | ||||
| 	c.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse) | ||||
| 	close(c.done) | ||||
| 
 | ||||
| 	c.p.mu.Lock() | ||||
| 	delete(c.p.dialing, addr) | ||||
|  | @ -147,6 +146,8 @@ func (c *dialCall) dial(ctx context.Context, addr string) { | |||
| 		c.p.addConnLocked(addr, c.res) | ||||
| 	} | ||||
| 	c.p.mu.Unlock() | ||||
| 
 | ||||
| 	close(c.done) | ||||
| } | ||||
| 
 | ||||
| // addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't
 | ||||
|  |  | |||
|  | @ -136,7 +136,7 @@ func (e headerFieldNameError) Error() string { | |||
| type headerFieldValueError string | ||||
| 
 | ||||
| func (e headerFieldValueError) Error() string { | ||||
| 	return fmt.Sprintf("invalid header field value %q", string(e)) | ||||
| 	return fmt.Sprintf("invalid header field value for %q", string(e)) | ||||
| } | ||||
| 
 | ||||
| var ( | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ const frameHeaderLen = 9 | |||
| var padZeros = make([]byte, 255) // zeros for padding
 | ||||
| 
 | ||||
| // A FrameType is a registered frame type as defined in
 | ||||
| // http://http2.github.io/http2-spec/#rfc.section.11.2
 | ||||
| // https://httpwg.org/specs/rfc7540.html#rfc.section.11.2
 | ||||
| type FrameType uint8 | ||||
| 
 | ||||
| const ( | ||||
|  | @ -146,7 +146,7 @@ func typeFrameParser(t FrameType) frameParser { | |||
| 
 | ||||
| // A FrameHeader is the 9 byte header of all HTTP/2 frames.
 | ||||
| //
 | ||||
| // See http://http2.github.io/http2-spec/#FrameHeader
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#FrameHeader
 | ||||
| type FrameHeader struct { | ||||
| 	valid bool // caller can access []byte fields in the Frame
 | ||||
| 
 | ||||
|  | @ -575,7 +575,7 @@ func (fr *Framer) checkFrameOrder(f Frame) error { | |||
| 
 | ||||
| // A DataFrame conveys arbitrary, variable-length sequences of octets
 | ||||
| // associated with a stream.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.1
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1
 | ||||
| type DataFrame struct { | ||||
| 	FrameHeader | ||||
| 	data []byte | ||||
|  | @ -698,7 +698,7 @@ func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []by | |||
| // endpoints communicate, such as preferences and constraints on peer
 | ||||
| // behavior.
 | ||||
| //
 | ||||
| // See http://http2.github.io/http2-spec/#SETTINGS
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#SETTINGS
 | ||||
| type SettingsFrame struct { | ||||
| 	FrameHeader | ||||
| 	p []byte | ||||
|  | @ -837,7 +837,7 @@ func (f *Framer) WriteSettingsAck() error { | |||
| // A PingFrame is a mechanism for measuring a minimal round trip time
 | ||||
| // from the sender, as well as determining whether an idle connection
 | ||||
| // is still functional.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.7
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7
 | ||||
| type PingFrame struct { | ||||
| 	FrameHeader | ||||
| 	Data [8]byte | ||||
|  | @ -870,7 +870,7 @@ func (f *Framer) WritePing(ack bool, data [8]byte) error { | |||
| } | ||||
| 
 | ||||
| // A GoAwayFrame informs the remote peer to stop creating streams on this connection.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.8
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8
 | ||||
| type GoAwayFrame struct { | ||||
| 	FrameHeader | ||||
| 	LastStreamID uint32 | ||||
|  | @ -934,7 +934,7 @@ func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p | |||
| } | ||||
| 
 | ||||
| // A WindowUpdateFrame is used to implement flow control.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.9
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9
 | ||||
| type WindowUpdateFrame struct { | ||||
| 	FrameHeader | ||||
| 	Increment uint32 // never read with high bit set
 | ||||
|  | @ -1123,7 +1123,7 @@ func (f *Framer) WriteHeaders(p HeadersFrameParam) error { | |||
| } | ||||
| 
 | ||||
| // A PriorityFrame specifies the sender-advised priority of a stream.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.3
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3
 | ||||
| type PriorityFrame struct { | ||||
| 	FrameHeader | ||||
| 	PriorityParam | ||||
|  | @ -1193,7 +1193,7 @@ func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error { | |||
| } | ||||
| 
 | ||||
| // A RSTStreamFrame allows for abnormal termination of a stream.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.4
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4
 | ||||
| type RSTStreamFrame struct { | ||||
| 	FrameHeader | ||||
| 	ErrCode ErrCode | ||||
|  | @ -1225,7 +1225,7 @@ func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error { | |||
| } | ||||
| 
 | ||||
| // A ContinuationFrame is used to continue a sequence of header block fragments.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.10
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10
 | ||||
| type ContinuationFrame struct { | ||||
| 	FrameHeader | ||||
| 	headerFragBuf []byte | ||||
|  | @ -1266,7 +1266,7 @@ func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlock | |||
| } | ||||
| 
 | ||||
| // A PushPromiseFrame is used to initiate a server stream.
 | ||||
| // See http://http2.github.io/http2-spec/#rfc.section.6.6
 | ||||
| // See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6
 | ||||
| type PushPromiseFrame struct { | ||||
| 	FrameHeader | ||||
| 	PromiseID     uint32 | ||||
|  | @ -1532,7 +1532,8 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { | |||
| 			fr.debugReadLoggerf("http2: decoded hpack field %+v", hf) | ||||
| 		} | ||||
| 		if !httpguts.ValidHeaderFieldValue(hf.Value) { | ||||
| 			invalid = headerFieldValueError(hf.Value) | ||||
| 			// Don't include the value in the error, because it may be sensitive.
 | ||||
| 			invalid = headerFieldValueError(hf.Name) | ||||
| 		} | ||||
| 		isPseudo := strings.HasPrefix(hf.Name, ":") | ||||
| 		if isPseudo { | ||||
|  |  | |||
|  | @ -0,0 +1,17 @@ | |||
| // Copyright 2021 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.
 | ||||
| 
 | ||||
| //go:build go1.18
 | ||||
| // +build go1.18
 | ||||
| 
 | ||||
| package http2 | ||||
| 
 | ||||
| import ( | ||||
| 	"crypto/tls" | ||||
| 	"net" | ||||
| ) | ||||
| 
 | ||||
| func tlsUnderlyingConn(tc *tls.Conn) net.Conn { | ||||
| 	return tc.NetConn() | ||||
| } | ||||
|  | @ -191,7 +191,7 @@ func appendTableSize(dst []byte, v uint32) []byte { | |||
| // bit prefix, to dst and returns the extended buffer.
 | ||||
| //
 | ||||
| // See
 | ||||
| // http://http2.github.io/http2-spec/compression.html#integer.representation
 | ||||
| // https://httpwg.org/specs/rfc7541.html#integer.representation
 | ||||
| func appendVarInt(dst []byte, n byte, i uint64) []byte { | ||||
| 	k := uint64((1 << n) - 1) | ||||
| 	if i < k { | ||||
|  |  | |||
|  | @ -59,7 +59,7 @@ func (hf HeaderField) String() string { | |||
| 
 | ||||
| // Size returns the size of an entry per RFC 7541 section 4.1.
 | ||||
| func (hf HeaderField) Size() uint32 { | ||||
| 	// http://http2.github.io/http2-spec/compression.html#rfc.section.4.1
 | ||||
| 	// https://httpwg.org/specs/rfc7541.html#rfc.section.4.1
 | ||||
| 	// "The size of the dynamic table is the sum of the size of
 | ||||
| 	// its entries. The size of an entry is the sum of its name's
 | ||||
| 	// length in octets (as defined in Section 5.2), its value's
 | ||||
|  | @ -158,7 +158,7 @@ func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) { | |||
| } | ||||
| 
 | ||||
| type dynamicTable struct { | ||||
| 	// http://http2.github.io/http2-spec/compression.html#rfc.section.2.3.2
 | ||||
| 	// https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2
 | ||||
| 	table          headerFieldTable | ||||
| 	size           uint32 // in bytes
 | ||||
| 	maxSize        uint32 // current maxSize
 | ||||
|  | @ -307,27 +307,27 @@ func (d *Decoder) parseHeaderFieldRepr() error { | |||
| 	case b&128 != 0: | ||||
| 		// Indexed representation.
 | ||||
| 		// High bit set?
 | ||||
| 		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.1
 | ||||
| 		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.1
 | ||||
| 		return d.parseFieldIndexed() | ||||
| 	case b&192 == 64: | ||||
| 		// 6.2.1 Literal Header Field with Incremental Indexing
 | ||||
| 		// 0b10xxxxxx: top two bits are 10
 | ||||
| 		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.1
 | ||||
| 		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1
 | ||||
| 		return d.parseFieldLiteral(6, indexedTrue) | ||||
| 	case b&240 == 0: | ||||
| 		// 6.2.2 Literal Header Field without Indexing
 | ||||
| 		// 0b0000xxxx: top four bits are 0000
 | ||||
| 		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.2
 | ||||
| 		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2
 | ||||
| 		return d.parseFieldLiteral(4, indexedFalse) | ||||
| 	case b&240 == 16: | ||||
| 		// 6.2.3 Literal Header Field never Indexed
 | ||||
| 		// 0b0001xxxx: top four bits are 0001
 | ||||
| 		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.2.3
 | ||||
| 		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3
 | ||||
| 		return d.parseFieldLiteral(4, indexedNever) | ||||
| 	case b&224 == 32: | ||||
| 		// 6.3 Dynamic Table Size Update
 | ||||
| 		// Top three bits are '001'.
 | ||||
| 		// http://http2.github.io/http2-spec/compression.html#rfc.section.6.3
 | ||||
| 		// https://httpwg.org/specs/rfc7541.html#rfc.section.6.3
 | ||||
| 		return d.parseDynamicTableSizeUpdate() | ||||
| 	} | ||||
| 
 | ||||
|  | @ -420,7 +420,7 @@ var errVarintOverflow = DecodingError{errors.New("varint integer overflow")} | |||
| 
 | ||||
| // readVarInt reads an unsigned variable length integer off the
 | ||||
| // beginning of p. n is the parameter as described in
 | ||||
| // http://http2.github.io/http2-spec/compression.html#rfc.section.5.1.
 | ||||
| // https://httpwg.org/specs/rfc7541.html#rfc.section.5.1.
 | ||||
| //
 | ||||
| // n must always be between 1 and 8.
 | ||||
| //
 | ||||
|  |  | |||
|  | @ -169,25 +169,50 @@ func buildRootHuffmanNode() { | |||
| // AppendHuffmanString appends s, as encoded in Huffman codes, to dst
 | ||||
| // and returns the extended buffer.
 | ||||
| func AppendHuffmanString(dst []byte, s string) []byte { | ||||
| 	rembits := uint8(8) | ||||
| 
 | ||||
| 	// This relies on the maximum huffman code length being 30 (See tables.go huffmanCodeLen array)
 | ||||
| 	// So if a uint64 buffer has less than 32 valid bits can always accommodate another huffmanCode.
 | ||||
| 	var ( | ||||
| 		x uint64 // buffer
 | ||||
| 		n uint   // number valid of bits present in x
 | ||||
| 	) | ||||
| 	for i := 0; i < len(s); i++ { | ||||
| 		if rembits == 8 { | ||||
| 			dst = append(dst, 0) | ||||
| 		c := s[i] | ||||
| 		n += uint(huffmanCodeLen[c]) | ||||
| 		x <<= huffmanCodeLen[c] % 64 | ||||
| 		x |= uint64(huffmanCodes[c]) | ||||
| 		if n >= 32 { | ||||
| 			n %= 32             // Normally would be -= 32 but %= 32 informs compiler 0 <= n <= 31 for upcoming shift
 | ||||
| 			y := uint32(x >> n) // Compiler doesn't combine memory writes if y isn't uint32
 | ||||
| 			dst = append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y)) | ||||
| 		} | ||||
| 		dst, rembits = appendByteToHuffmanCode(dst, rembits, s[i]) | ||||
| 	} | ||||
| 
 | ||||
| 	if rembits < 8 { | ||||
| 		// special EOS symbol
 | ||||
| 		code := uint32(0x3fffffff) | ||||
| 		nbits := uint8(30) | ||||
| 
 | ||||
| 		t := uint8(code >> (nbits - rembits)) | ||||
| 		dst[len(dst)-1] |= t | ||||
| 	// Add padding bits if necessary
 | ||||
| 	if over := n % 8; over > 0 { | ||||
| 		const ( | ||||
| 			eosCode    = 0x3fffffff | ||||
| 			eosNBits   = 30 | ||||
| 			eosPadByte = eosCode >> (eosNBits - 8) | ||||
| 		) | ||||
| 		pad := 8 - over | ||||
| 		x = (x << pad) | (eosPadByte >> over) | ||||
| 		n += pad // 8 now divides into n exactly
 | ||||
| 	} | ||||
| 
 | ||||
| 	return dst | ||||
| 	// n in (0, 8, 16, 24, 32)
 | ||||
| 	switch n / 8 { | ||||
| 	case 0: | ||||
| 		return dst | ||||
| 	case 1: | ||||
| 		return append(dst, byte(x)) | ||||
| 	case 2: | ||||
| 		y := uint16(x) | ||||
| 		return append(dst, byte(y>>8), byte(y)) | ||||
| 	case 3: | ||||
| 		y := uint16(x >> 8) | ||||
| 		return append(dst, byte(y>>8), byte(y), byte(x)) | ||||
| 	} | ||||
| 	//	case 4:
 | ||||
| 	y := uint32(x) | ||||
| 	return append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y)) | ||||
| } | ||||
| 
 | ||||
| // HuffmanEncodeLength returns the number of bytes required to encode
 | ||||
|  | @ -199,35 +224,3 @@ func HuffmanEncodeLength(s string) uint64 { | |||
| 	} | ||||
| 	return (n + 7) / 8 | ||||
| } | ||||
| 
 | ||||
| // appendByteToHuffmanCode appends Huffman code for c to dst and
 | ||||
| // returns the extended buffer and the remaining bits in the last
 | ||||
| // element. The appending is not byte aligned and the remaining bits
 | ||||
| // in the last element of dst is given in rembits.
 | ||||
| func appendByteToHuffmanCode(dst []byte, rembits uint8, c byte) ([]byte, uint8) { | ||||
| 	code := huffmanCodes[c] | ||||
| 	nbits := huffmanCodeLen[c] | ||||
| 
 | ||||
| 	for { | ||||
| 		if rembits > nbits { | ||||
| 			t := uint8(code << (rembits - nbits)) | ||||
| 			dst[len(dst)-1] |= t | ||||
| 			rembits -= nbits | ||||
| 			break | ||||
| 		} | ||||
| 
 | ||||
| 		t := uint8(code >> (nbits - rembits)) | ||||
| 		dst[len(dst)-1] |= t | ||||
| 
 | ||||
| 		nbits -= rembits | ||||
| 		rembits = 8 | ||||
| 
 | ||||
| 		if nbits == 0 { | ||||
| 			break | ||||
| 		} | ||||
| 
 | ||||
| 		dst = append(dst, 0) | ||||
| 	} | ||||
| 
 | ||||
| 	return dst, rembits | ||||
| } | ||||
|  |  | |||
|  | @ -13,7 +13,6 @@ | |||
| // See https://http2.github.io/ for more information on HTTP/2.
 | ||||
| //
 | ||||
| // See https://http2.golang.org/ for a test server running this code.
 | ||||
| //
 | ||||
| package http2 // import "golang.org/x/net/http2"
 | ||||
| 
 | ||||
| import ( | ||||
|  | @ -56,14 +55,14 @@ const ( | |||
| 	ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" | ||||
| 
 | ||||
| 	// SETTINGS_MAX_FRAME_SIZE default
 | ||||
| 	// http://http2.github.io/http2-spec/#rfc.section.6.5.2
 | ||||
| 	// https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2
 | ||||
| 	initialMaxFrameSize = 16384 | ||||
| 
 | ||||
| 	// NextProtoTLS is the NPN/ALPN protocol negotiated during
 | ||||
| 	// HTTP/2's TLS setup.
 | ||||
| 	NextProtoTLS = "h2" | ||||
| 
 | ||||
| 	// http://http2.github.io/http2-spec/#SettingValues
 | ||||
| 	// https://httpwg.org/specs/rfc7540.html#SettingValues
 | ||||
| 	initialHeaderTableSize = 4096 | ||||
| 
 | ||||
| 	initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size
 | ||||
|  | @ -112,7 +111,7 @@ func (st streamState) String() string { | |||
| // Setting is a setting parameter: which setting it is, and its value.
 | ||||
| type Setting struct { | ||||
| 	// ID is which setting is being set.
 | ||||
| 	// See http://http2.github.io/http2-spec/#SettingValues
 | ||||
| 	// See https://httpwg.org/specs/rfc7540.html#SettingFormat
 | ||||
| 	ID SettingID | ||||
| 
 | ||||
| 	// Val is the value.
 | ||||
|  | @ -144,7 +143,7 @@ func (s Setting) Valid() error { | |||
| } | ||||
| 
 | ||||
| // A SettingID is an HTTP/2 setting as defined in
 | ||||
| // http://http2.github.io/http2-spec/#iana-settings
 | ||||
| // https://httpwg.org/specs/rfc7540.html#iana-settings
 | ||||
| type SettingID uint16 | ||||
| 
 | ||||
| const ( | ||||
|  | @ -176,10 +175,11 @@ func (s SettingID) String() string { | |||
| // name (key). See httpguts.ValidHeaderName for the base rules.
 | ||||
| //
 | ||||
| // Further, http2 says:
 | ||||
| //   "Just as in HTTP/1.x, header field names are strings of ASCII
 | ||||
| //   characters that are compared in a case-insensitive
 | ||||
| //   fashion. However, header field names MUST be converted to
 | ||||
| //   lowercase prior to their encoding in HTTP/2. "
 | ||||
| //
 | ||||
| //	"Just as in HTTP/1.x, header field names are strings of ASCII
 | ||||
| //	characters that are compared in a case-insensitive
 | ||||
| //	fashion. However, header field names MUST be converted to
 | ||||
| //	lowercase prior to their encoding in HTTP/2. "
 | ||||
| func validWireHeaderFieldName(v string) bool { | ||||
| 	if len(v) == 0 { | ||||
| 		return false | ||||
|  | @ -365,8 +365,8 @@ func (s *sorter) SortStrings(ss []string) { | |||
| // validPseudoPath reports whether v is a valid :path pseudo-header
 | ||||
| // value. It must be either:
 | ||||
| //
 | ||||
| //     *) a non-empty string starting with '/'
 | ||||
| //     *) the string '*', for OPTIONS requests.
 | ||||
| //   - a non-empty string starting with '/'
 | ||||
| //   - the string '*', for OPTIONS requests.
 | ||||
| //
 | ||||
| // For now this is only used a quick check for deciding when to clean
 | ||||
| // up Opaque URLs before sending requests from the Transport.
 | ||||
|  |  | |||
|  | @ -0,0 +1,17 @@ | |||
| // Copyright 2021 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.
 | ||||
| 
 | ||||
| //go:build !go1.18
 | ||||
| // +build !go1.18
 | ||||
| 
 | ||||
| package http2 | ||||
| 
 | ||||
| import ( | ||||
| 	"crypto/tls" | ||||
| 	"net" | ||||
| ) | ||||
| 
 | ||||
| func tlsUnderlyingConn(tc *tls.Conn) net.Conn { | ||||
| 	return nil | ||||
| } | ||||
|  | @ -315,6 +315,20 @@ type ServeConnOpts struct { | |||
| 	// requests. If nil, BaseConfig.Handler is used. If BaseConfig
 | ||||
| 	// or BaseConfig.Handler is nil, http.DefaultServeMux is used.
 | ||||
| 	Handler http.Handler | ||||
| 
 | ||||
| 	// UpgradeRequest is an initial request received on a connection
 | ||||
| 	// undergoing an h2c upgrade. The request body must have been
 | ||||
| 	// completely read from the connection before calling ServeConn,
 | ||||
| 	// and the 101 Switching Protocols response written.
 | ||||
| 	UpgradeRequest *http.Request | ||||
| 
 | ||||
| 	// Settings is the decoded contents of the HTTP2-Settings header
 | ||||
| 	// in an h2c upgrade request.
 | ||||
| 	Settings []byte | ||||
| 
 | ||||
| 	// SawClientPreface is set if the HTTP/2 connection preface
 | ||||
| 	// has already been read from the connection.
 | ||||
| 	SawClientPreface bool | ||||
| } | ||||
| 
 | ||||
| func (o *ServeConnOpts) context() context.Context { | ||||
|  | @ -383,6 +397,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { | |||
| 		headerTableSize:             initialHeaderTableSize, | ||||
| 		serveG:                      newGoroutineLock(), | ||||
| 		pushEnabled:                 true, | ||||
| 		sawClientPreface:            opts.SawClientPreface, | ||||
| 	} | ||||
| 
 | ||||
| 	s.state.registerConn(sc) | ||||
|  | @ -400,7 +415,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { | |||
| 	if s.NewWriteScheduler != nil { | ||||
| 		sc.writeSched = s.NewWriteScheduler() | ||||
| 	} else { | ||||
| 		sc.writeSched = NewRandomWriteScheduler() | ||||
| 		sc.writeSched = NewPriorityWriteScheduler(nil) | ||||
| 	} | ||||
| 
 | ||||
| 	// These start at the RFC-specified defaults. If there is a higher
 | ||||
|  | @ -465,9 +480,27 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	if opts.Settings != nil { | ||||
| 		fr := &SettingsFrame{ | ||||
| 			FrameHeader: FrameHeader{valid: true}, | ||||
| 			p:           opts.Settings, | ||||
| 		} | ||||
| 		if err := fr.ForeachSetting(sc.processSetting); err != nil { | ||||
| 			sc.rejectConn(ErrCodeProtocol, "invalid settings") | ||||
| 			return | ||||
| 		} | ||||
| 		opts.Settings = nil | ||||
| 	} | ||||
| 
 | ||||
| 	if hook := testHookGetServerConn; hook != nil { | ||||
| 		hook(sc) | ||||
| 	} | ||||
| 
 | ||||
| 	if opts.UpgradeRequest != nil { | ||||
| 		sc.upgradeRequest(opts.UpgradeRequest) | ||||
| 		opts.UpgradeRequest = nil | ||||
| 	} | ||||
| 
 | ||||
| 	sc.serve() | ||||
| } | ||||
| 
 | ||||
|  | @ -512,6 +545,7 @@ type serverConn struct { | |||
| 	// Everything following is owned by the serve loop; use serveG.check():
 | ||||
| 	serveG                      goroutineLock // used to verify funcs are on serve()
 | ||||
| 	pushEnabled                 bool | ||||
| 	sawClientPreface            bool // preface has already been read, used in h2c upgrade
 | ||||
| 	sawFirstSettings            bool // got the initial SETTINGS frame after the preface
 | ||||
| 	needToSendSettingsAck       bool | ||||
| 	unackedSettings             int    // how many SETTINGS have we sent without ACKs?
 | ||||
|  | @ -974,6 +1008,9 @@ var errPrefaceTimeout = errors.New("timeout waiting for client preface") | |||
| // returns errPrefaceTimeout on timeout, or an error if the greeting
 | ||||
| // is invalid.
 | ||||
| func (sc *serverConn) readPreface() error { | ||||
| 	if sc.sawClientPreface { | ||||
| 		return nil | ||||
| 	} | ||||
| 	errc := make(chan error, 1) | ||||
| 	go func() { | ||||
| 		// Read the client preface
 | ||||
|  | @ -1334,6 +1371,9 @@ func (sc *serverConn) startGracefulShutdownInternal() { | |||
| func (sc *serverConn) goAway(code ErrCode) { | ||||
| 	sc.serveG.check() | ||||
| 	if sc.inGoAway { | ||||
| 		if sc.goAwayCode == ErrCodeNo { | ||||
| 			sc.goAwayCode = code | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
| 	sc.inGoAway = true | ||||
|  | @ -1710,6 +1750,12 @@ func (sc *serverConn) processData(f *DataFrame) error { | |||
| 
 | ||||
| 	// Sender sending more than they'd declared?
 | ||||
| 	if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes { | ||||
| 		if sc.inflow.available() < int32(f.Length) { | ||||
| 			return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) | ||||
| 		} | ||||
| 		sc.inflow.take(int32(f.Length)) | ||||
| 		sc.sendWindowUpdate(nil, int(f.Length)) // conn-level
 | ||||
| 
 | ||||
| 		st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes)) | ||||
| 		// RFC 7540, sec 8.1.2.6: A request or response is also malformed if the
 | ||||
| 		// value of a content-length header field does not equal the sum of the
 | ||||
|  | @ -1915,6 +1961,26 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { | |||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (sc *serverConn) upgradeRequest(req *http.Request) { | ||||
| 	sc.serveG.check() | ||||
| 	id := uint32(1) | ||||
| 	sc.maxClientStreamID = id | ||||
| 	st := sc.newStream(id, 0, stateHalfClosedRemote) | ||||
| 	st.reqTrailer = req.Trailer | ||||
| 	if st.reqTrailer != nil { | ||||
| 		st.trailer = make(http.Header) | ||||
| 	} | ||||
| 	rw := sc.newResponseWriter(st, req) | ||||
| 
 | ||||
| 	// Disable any read deadline set by the net/http package
 | ||||
| 	// prior to the upgrade.
 | ||||
| 	if sc.hs.ReadTimeout != 0 { | ||||
| 		sc.conn.SetReadDeadline(time.Time{}) | ||||
| 	} | ||||
| 
 | ||||
| 	go sc.runHandler(rw, req, sc.handler.ServeHTTP) | ||||
| } | ||||
| 
 | ||||
| func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { | ||||
| 	sc := st.sc | ||||
| 	sc.serveG.check() | ||||
|  | @ -2145,6 +2211,11 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r | |||
| 	} | ||||
| 	req = req.WithContext(st.ctx) | ||||
| 
 | ||||
| 	rw := sc.newResponseWriter(st, req) | ||||
| 	return rw, req, nil | ||||
| } | ||||
| 
 | ||||
| func (sc *serverConn) newResponseWriter(st *stream, req *http.Request) *responseWriter { | ||||
| 	rws := responseWriterStatePool.Get().(*responseWriterState) | ||||
| 	bwSave := rws.bw | ||||
| 	*rws = responseWriterState{} // zero all the fields
 | ||||
|  | @ -2153,10 +2224,7 @@ func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*r | |||
| 	rws.bw.Reset(chunkWriter{rws}) | ||||
| 	rws.stream = st | ||||
| 	rws.req = req | ||||
| 	rws.body = body | ||||
| 
 | ||||
| 	rw := &responseWriter{rws: rws} | ||||
| 	return rw, req, nil | ||||
| 	return &responseWriter{rws: rws} | ||||
| } | ||||
| 
 | ||||
| // Run on its own goroutine.
 | ||||
|  | @ -2164,6 +2232,9 @@ func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler | |||
| 	didPanic := true | ||||
| 	defer func() { | ||||
| 		rw.rws.stream.cancelCtx() | ||||
| 		if req.MultipartForm != nil { | ||||
| 			req.MultipartForm.RemoveAll() | ||||
| 		} | ||||
| 		if didPanic { | ||||
| 			e := recover() | ||||
| 			sc.writeFrameFromHandler(FrameWriteRequest{ | ||||
|  | @ -2316,17 +2387,18 @@ type requestBody struct { | |||
| 	_             incomparable | ||||
| 	stream        *stream | ||||
| 	conn          *serverConn | ||||
| 	closed        bool  // for use by Close only
 | ||||
| 	sawEOF        bool  // for use by Read only
 | ||||
| 	pipe          *pipe // non-nil if we have a HTTP entity message body
 | ||||
| 	needsContinue bool  // need to send a 100-continue
 | ||||
| 	closeOnce     sync.Once // for use by Close only
 | ||||
| 	sawEOF        bool      // for use by Read only
 | ||||
| 	pipe          *pipe     // non-nil if we have a HTTP entity message body
 | ||||
| 	needsContinue bool      // need to send a 100-continue
 | ||||
| } | ||||
| 
 | ||||
| func (b *requestBody) Close() error { | ||||
| 	if b.pipe != nil && !b.closed { | ||||
| 		b.pipe.BreakWithError(errClosedBody) | ||||
| 	} | ||||
| 	b.closed = true | ||||
| 	b.closeOnce.Do(func() { | ||||
| 		if b.pipe != nil { | ||||
| 			b.pipe.BreakWithError(errClosedBody) | ||||
| 		} | ||||
| 	}) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | @ -2370,7 +2442,6 @@ type responseWriterState struct { | |||
| 	// immutable within a request:
 | ||||
| 	stream *stream | ||||
| 	req    *http.Request | ||||
| 	body   *requestBody // to close at end of request, if DATA frames didn't
 | ||||
| 	conn   *serverConn | ||||
| 
 | ||||
| 	// TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc
 | ||||
|  | @ -2546,8 +2617,9 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { | |||
| // prior to the headers being written. If the set of trailers is fixed
 | ||||
| // or known before the header is written, the normal Go trailers mechanism
 | ||||
| // is preferred:
 | ||||
| //    https://golang.org/pkg/net/http/#ResponseWriter
 | ||||
| //    https://golang.org/pkg/net/http/#example_ResponseWriter_trailers
 | ||||
| //
 | ||||
| //	https://golang.org/pkg/net/http/#ResponseWriter
 | ||||
| //	https://golang.org/pkg/net/http/#example_ResponseWriter_trailers
 | ||||
| const TrailerPrefix = "Trailer:" | ||||
| 
 | ||||
| // promoteUndeclaredTrailers permits http.Handlers to set trailers
 | ||||
|  | @ -2643,8 +2715,7 @@ func checkWriteHeaderCode(code int) { | |||
| 	// Issue 22880: require valid WriteHeader status codes.
 | ||||
| 	// For now we only enforce that it's three digits.
 | ||||
| 	// In the future we might block things over 599 (600 and above aren't defined
 | ||||
| 	// at http://httpwg.org/specs/rfc7231.html#status.codes)
 | ||||
| 	// and we might block under 200 (once we have more mature 1xx support).
 | ||||
| 	// at http://httpwg.org/specs/rfc7231.html#status.codes).
 | ||||
| 	// But for now any three digits.
 | ||||
| 	//
 | ||||
| 	// We used to send "HTTP/1.1 000 0" on the wire in responses but there's
 | ||||
|  | @ -2665,13 +2736,41 @@ func (w *responseWriter) WriteHeader(code int) { | |||
| } | ||||
| 
 | ||||
| func (rws *responseWriterState) writeHeader(code int) { | ||||
| 	if !rws.wroteHeader { | ||||
| 		checkWriteHeaderCode(code) | ||||
| 		rws.wroteHeader = true | ||||
| 		rws.status = code | ||||
| 		if len(rws.handlerHeader) > 0 { | ||||
| 			rws.snapHeader = cloneHeader(rws.handlerHeader) | ||||
| 	if rws.wroteHeader { | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	checkWriteHeaderCode(code) | ||||
| 
 | ||||
| 	// Handle informational headers
 | ||||
| 	if code >= 100 && code <= 199 { | ||||
| 		// Per RFC 8297 we must not clear the current header map
 | ||||
| 		h := rws.handlerHeader | ||||
| 
 | ||||
| 		_, cl := h["Content-Length"] | ||||
| 		_, te := h["Transfer-Encoding"] | ||||
| 		if cl || te { | ||||
| 			h = h.Clone() | ||||
| 			h.Del("Content-Length") | ||||
| 			h.Del("Transfer-Encoding") | ||||
| 		} | ||||
| 
 | ||||
| 		if rws.conn.writeHeaders(rws.stream, &writeResHeaders{ | ||||
| 			streamID:    rws.stream.id, | ||||
| 			httpResCode: code, | ||||
| 			h:           h, | ||||
| 			endStream:   rws.handlerDone && !rws.hasTrailers(), | ||||
| 		}) != nil { | ||||
| 			rws.dirty = true | ||||
| 		} | ||||
| 
 | ||||
| 		return | ||||
| 	} | ||||
| 
 | ||||
| 	rws.wroteHeader = true | ||||
| 	rws.status = code | ||||
| 	if len(rws.handlerHeader) > 0 { | ||||
| 		rws.snapHeader = cloneHeader(rws.handlerHeader) | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,7 +16,6 @@ import ( | |||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"io/ioutil" | ||||
| 	"log" | ||||
| 	"math" | ||||
| 	mathrand "math/rand" | ||||
|  | @ -68,13 +67,23 @@ const ( | |||
| // A Transport internally caches connections to servers. It is safe
 | ||||
| // for concurrent use by multiple goroutines.
 | ||||
| type Transport struct { | ||||
| 	// DialTLS specifies an optional dial function for creating
 | ||||
| 	// TLS connections for requests.
 | ||||
| 	// DialTLSContext specifies an optional dial function with context for
 | ||||
| 	// creating TLS connections for requests.
 | ||||
| 	//
 | ||||
| 	// If DialTLS is nil, tls.Dial is used.
 | ||||
| 	// If DialTLSContext and DialTLS is nil, tls.Dial is used.
 | ||||
| 	//
 | ||||
| 	// If the returned net.Conn has a ConnectionState method like tls.Conn,
 | ||||
| 	// it will be used to set http.Response.TLS.
 | ||||
| 	DialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error) | ||||
| 
 | ||||
| 	// DialTLS specifies an optional dial function for creating
 | ||||
| 	// TLS connections for requests.
 | ||||
| 	//
 | ||||
| 	// If DialTLSContext and DialTLS is nil, tls.Dial is used.
 | ||||
| 	//
 | ||||
| 	// Deprecated: Use DialTLSContext instead, which allows the transport
 | ||||
| 	// to cancel dials as soon as they are no longer needed.
 | ||||
| 	// If both are set, DialTLSContext takes priority.
 | ||||
| 	DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error) | ||||
| 
 | ||||
| 	// TLSClientConfig specifies the TLS configuration to use with
 | ||||
|  | @ -501,12 +510,14 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res | |||
| 			if req, err = shouldRetryRequest(req, err); err == nil { | ||||
| 				// After the first retry, do exponential backoff with 10% jitter.
 | ||||
| 				if retry == 0 { | ||||
| 					t.vlogf("RoundTrip retrying after failure: %v", err) | ||||
| 					continue | ||||
| 				} | ||||
| 				backoff := float64(uint(1) << (uint(retry) - 1)) | ||||
| 				backoff += backoff * (0.1 * mathrand.Float64()) | ||||
| 				select { | ||||
| 				case <-time.After(time.Second * time.Duration(backoff)): | ||||
| 					t.vlogf("RoundTrip retrying after failure: %v", err) | ||||
| 					continue | ||||
| 				case <-req.Context().Done(): | ||||
| 					err = req.Context().Err() | ||||
|  | @ -591,7 +602,7 @@ func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse b | |||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	tconn, err := t.dialTLS(ctx)("tcp", addr, t.newTLSConfig(host)) | ||||
| 	tconn, err := t.dialTLS(ctx, "tcp", addr, t.newTLSConfig(host)) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | @ -612,24 +623,25 @@ func (t *Transport) newTLSConfig(host string) *tls.Config { | |||
| 	return cfg | ||||
| } | ||||
| 
 | ||||
| func (t *Transport) dialTLS(ctx context.Context) func(string, string, *tls.Config) (net.Conn, error) { | ||||
| 	if t.DialTLS != nil { | ||||
| 		return t.DialTLS | ||||
| func (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) { | ||||
| 	if t.DialTLSContext != nil { | ||||
| 		return t.DialTLSContext(ctx, network, addr, tlsCfg) | ||||
| 	} else if t.DialTLS != nil { | ||||
| 		return t.DialTLS(network, addr, tlsCfg) | ||||
| 	} | ||||
| 	return func(network, addr string, cfg *tls.Config) (net.Conn, error) { | ||||
| 		tlsCn, err := t.dialTLSWithContext(ctx, network, addr, cfg) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 		state := tlsCn.ConnectionState() | ||||
| 		if p := state.NegotiatedProtocol; p != NextProtoTLS { | ||||
| 			return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) | ||||
| 		} | ||||
| 		if !state.NegotiatedProtocolIsMutual { | ||||
| 			return nil, errors.New("http2: could not negotiate protocol mutually") | ||||
| 		} | ||||
| 		return tlsCn, nil | ||||
| 
 | ||||
| 	tlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 	state := tlsCn.ConnectionState() | ||||
| 	if p := state.NegotiatedProtocol; p != NextProtoTLS { | ||||
| 		return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) | ||||
| 	} | ||||
| 	if !state.NegotiatedProtocolIsMutual { | ||||
| 		return nil, errors.New("http2: could not negotiate protocol mutually") | ||||
| 	} | ||||
| 	return tlsCn, nil | ||||
| } | ||||
| 
 | ||||
| // disableKeepAlives reports whether connections should be closed as
 | ||||
|  | @ -732,11 +744,13 @@ func (cc *ClientConn) healthCheck() { | |||
| 	// trigger the healthCheck again if there is no frame received.
 | ||||
| 	ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) | ||||
| 	defer cancel() | ||||
| 	cc.vlogf("http2: Transport sending health check") | ||||
| 	err := cc.Ping(ctx) | ||||
| 	if err != nil { | ||||
| 		cc.vlogf("http2: Transport health check failure: %v", err) | ||||
| 		cc.closeForLostPing() | ||||
| 		cc.t.connPool().MarkDead(cc) | ||||
| 		return | ||||
| 	} else { | ||||
| 		cc.vlogf("http2: Transport health check success") | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  | @ -907,6 +921,24 @@ func (cc *ClientConn) onIdleTimeout() { | |||
| 	cc.closeIfIdle() | ||||
| } | ||||
| 
 | ||||
| func (cc *ClientConn) closeConn() error { | ||||
| 	t := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn) | ||||
| 	defer t.Stop() | ||||
| 	return cc.tconn.Close() | ||||
| } | ||||
| 
 | ||||
| // A tls.Conn.Close can hang for a long time if the peer is unresponsive.
 | ||||
| // Try to shut it down more aggressively.
 | ||||
| func (cc *ClientConn) forceCloseConn() { | ||||
| 	tc, ok := cc.tconn.(*tls.Conn) | ||||
| 	if !ok { | ||||
| 		return | ||||
| 	} | ||||
| 	if nc := tlsUnderlyingConn(tc); nc != nil { | ||||
| 		nc.Close() | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (cc *ClientConn) closeIfIdle() { | ||||
| 	cc.mu.Lock() | ||||
| 	if len(cc.streams) > 0 || cc.streamsReserved > 0 { | ||||
|  | @ -921,7 +953,7 @@ func (cc *ClientConn) closeIfIdle() { | |||
| 	if VerboseLogs { | ||||
| 		cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, nextID-2) | ||||
| 	} | ||||
| 	cc.tconn.Close() | ||||
| 	cc.closeConn() | ||||
| } | ||||
| 
 | ||||
| func (cc *ClientConn) isDoNotReuseAndIdle() bool { | ||||
|  | @ -938,7 +970,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { | |||
| 		return err | ||||
| 	} | ||||
| 	// Wait for all in-flight streams to complete or connection to close
 | ||||
| 	done := make(chan error, 1) | ||||
| 	done := make(chan struct{}) | ||||
| 	cancelled := false // guarded by cc.mu
 | ||||
| 	go func() { | ||||
| 		cc.mu.Lock() | ||||
|  | @ -946,7 +978,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { | |||
| 		for { | ||||
| 			if len(cc.streams) == 0 || cc.closed { | ||||
| 				cc.closed = true | ||||
| 				done <- cc.tconn.Close() | ||||
| 				close(done) | ||||
| 				break | ||||
| 			} | ||||
| 			if cancelled { | ||||
|  | @ -957,8 +989,8 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { | |||
| 	}() | ||||
| 	shutdownEnterWaitStateHook() | ||||
| 	select { | ||||
| 	case err := <-done: | ||||
| 		return err | ||||
| 	case <-done: | ||||
| 		return cc.closeConn() | ||||
| 	case <-ctx.Done(): | ||||
| 		cc.mu.Lock() | ||||
| 		// Free the goroutine above
 | ||||
|  | @ -1001,9 +1033,9 @@ func (cc *ClientConn) closeForError(err error) error { | |||
| 	for _, cs := range cc.streams { | ||||
| 		cs.abortStreamLocked(err) | ||||
| 	} | ||||
| 	defer cc.cond.Broadcast() | ||||
| 	defer cc.mu.Unlock() | ||||
| 	return cc.tconn.Close() | ||||
| 	cc.cond.Broadcast() | ||||
| 	cc.mu.Unlock() | ||||
| 	return cc.closeConn() | ||||
| } | ||||
| 
 | ||||
| // Close closes the client connection immediately.
 | ||||
|  | @ -1748,7 +1780,8 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail | |||
| 		} | ||||
| 		for _, v := range vv { | ||||
| 			if !httpguts.ValidHeaderFieldValue(v) { | ||||
| 				return nil, fmt.Errorf("invalid HTTP header value %q for header %q", v, k) | ||||
| 				// Don't include the value in the error, because it may be sensitive.
 | ||||
| 				return nil, fmt.Errorf("invalid HTTP header value for header %q", k) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | @ -1978,7 +2011,7 @@ func (cc *ClientConn) forgetStreamID(id uint32) { | |||
| 			cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, cc.nextStreamID-2) | ||||
| 		} | ||||
| 		cc.closed = true | ||||
| 		defer cc.tconn.Close() | ||||
| 		defer cc.closeConn() | ||||
| 	} | ||||
| 
 | ||||
| 	cc.mu.Unlock() | ||||
|  | @ -2025,8 +2058,8 @@ func isEOFOrNetReadError(err error) bool { | |||
| 
 | ||||
| func (rl *clientConnReadLoop) cleanup() { | ||||
| 	cc := rl.cc | ||||
| 	defer cc.tconn.Close() | ||||
| 	defer cc.t.connPool().MarkDead(cc) | ||||
| 	cc.t.connPool().MarkDead(cc) | ||||
| 	defer cc.closeConn() | ||||
| 	defer close(cc.readerDone) | ||||
| 
 | ||||
| 	if cc.idleTimer != nil { | ||||
|  | @ -2881,7 +2914,12 @@ func (t *Transport) logf(format string, args ...interface{}) { | |||
| 	log.Printf(format, args...) | ||||
| } | ||||
| 
 | ||||
| var noBody io.ReadCloser = ioutil.NopCloser(bytes.NewReader(nil)) | ||||
| var noBody io.ReadCloser = noBodyReader{} | ||||
| 
 | ||||
| type noBodyReader struct{} | ||||
| 
 | ||||
| func (noBodyReader) Close() error             { return nil } | ||||
| func (noBodyReader) Read([]byte) (int, error) { return 0, io.EOF } | ||||
| 
 | ||||
| type missingBody struct{} | ||||
| 
 | ||||
|  |  | |||
|  | @ -383,16 +383,15 @@ func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority Priorit | |||
| 
 | ||||
| func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { | ||||
| 	var n *priorityNode | ||||
| 	if id := wr.StreamID(); id == 0 { | ||||
| 	if wr.isControl() { | ||||
| 		n = &ws.root | ||||
| 	} else { | ||||
| 		id := wr.StreamID() | ||||
| 		n = ws.nodes[id] | ||||
| 		if n == nil { | ||||
| 			// id is an idle or closed stream. wr should not be a HEADERS or
 | ||||
| 			// DATA frame. However, wr can be a RST_STREAM. In this case, we
 | ||||
| 			// push wr onto the root, rather than creating a new priorityNode,
 | ||||
| 			// since RST_STREAM is tiny and the stream's priority is unknown
 | ||||
| 			// anyway. See issue #17919.
 | ||||
| 			// DATA frame. In other case, we push wr onto the root, rather
 | ||||
| 			// than creating a new priorityNode.
 | ||||
| 			if wr.DataSize() > 0 { | ||||
| 				panic("add DATA on non-open stream") | ||||
| 			} | ||||
|  |  | |||
|  | @ -17,23 +17,23 @@ package idna | |||
| //
 | ||||
| // The per-rune values have the following format:
 | ||||
| //
 | ||||
| //   if mapped {
 | ||||
| //     if inlinedXOR {
 | ||||
| //       15..13 inline XOR marker
 | ||||
| //       12..11 unused
 | ||||
| //       10..3  inline XOR mask
 | ||||
| //     } else {
 | ||||
| //       15..3  index into xor or mapping table
 | ||||
| //     }
 | ||||
| //   } else {
 | ||||
| //       15..14 unused
 | ||||
| //       13     mayNeedNorm
 | ||||
| //       12..11 attributes
 | ||||
| //       10..8  joining type
 | ||||
| //        7..3  category type
 | ||||
| //   }
 | ||||
| //      2  use xor pattern
 | ||||
| //   1..0  mapped category
 | ||||
| //	if mapped {
 | ||||
| //	  if inlinedXOR {
 | ||||
| //	    15..13 inline XOR marker
 | ||||
| //	    12..11 unused
 | ||||
| //	    10..3  inline XOR mask
 | ||||
| //	  } else {
 | ||||
| //	    15..3  index into xor or mapping table
 | ||||
| //	  }
 | ||||
| //	} else {
 | ||||
| //	    15..14 unused
 | ||||
| //	    13     mayNeedNorm
 | ||||
| //	    12..11 attributes
 | ||||
| //	    10..8  joining type
 | ||||
| //	     7..3  category type
 | ||||
| //	}
 | ||||
| //	   2  use xor pattern
 | ||||
| //	1..0  mapped category
 | ||||
| //
 | ||||
| // See the definitions below for a more detailed description of the various
 | ||||
| // bits.
 | ||||
|  |  | |||
|  | @ -1,3 +0,0 @@ | |||
| # This source code refers to The Go Authors for copyright purposes. | ||||
| # The master list of authors is in the main Go distribution, | ||||
| # visible at http://tip.golang.org/AUTHORS. | ||||
|  | @ -1,3 +0,0 @@ | |||
| # This source code was written by the Go contributors. | ||||
| # The master list of contributors is in the main Go distribution, | ||||
| # visible at http://tip.golang.org/CONTRIBUTORS. | ||||
|  | @ -0,0 +1,29 @@ | |||
| // Copyright 2021 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. | ||||
| 
 | ||||
| //go:build (darwin || freebsd || netbsd || openbsd) && gc | ||||
| // +build darwin freebsd netbsd openbsd | ||||
| // +build gc | ||||
| 
 | ||||
| #include "textflag.h" | ||||
| 
 | ||||
| // System call support for RISCV64 BSD | ||||
| 
 | ||||
| // Just jump to package syscall's implementation for all these functions. | ||||
| // The runtime may know about them. | ||||
| 
 | ||||
| TEXT	·Syscall(SB),NOSPLIT,$0-56 | ||||
| 	JMP	syscall·Syscall(SB) | ||||
| 
 | ||||
| TEXT	·Syscall6(SB),NOSPLIT,$0-80 | ||||
| 	JMP	syscall·Syscall6(SB) | ||||
| 
 | ||||
| TEXT	·Syscall9(SB),NOSPLIT,$0-104 | ||||
| 	JMP	syscall·Syscall9(SB) | ||||
| 
 | ||||
| TEXT	·RawSyscall(SB),NOSPLIT,$0-56 | ||||
| 	JMP	syscall·RawSyscall(SB) | ||||
| 
 | ||||
| TEXT	·RawSyscall6(SB),NOSPLIT,$0-80 | ||||
| 	JMP	syscall·RawSyscall6(SB) | ||||
|  | @ -0,0 +1,54 @@ | |||
| // Copyright 2022 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. | ||||
| 
 | ||||
| //go:build linux && loong64 && gc | ||||
| // +build linux | ||||
| // +build loong64 | ||||
| // +build gc | ||||
| 
 | ||||
| #include "textflag.h" | ||||
| 
 | ||||
| 
 | ||||
| // Just jump to package syscall's implementation for all these functions. | ||||
| // The runtime may know about them. | ||||
| 
 | ||||
| TEXT ·Syscall(SB),NOSPLIT,$0-56 | ||||
| 	JMP	syscall·Syscall(SB) | ||||
| 
 | ||||
| TEXT ·Syscall6(SB),NOSPLIT,$0-80 | ||||
| 	JMP	syscall·Syscall6(SB) | ||||
| 
 | ||||
| TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 | ||||
| 	JAL	runtime·entersyscall(SB) | ||||
| 	MOVV	a1+8(FP), R4 | ||||
| 	MOVV	a2+16(FP), R5 | ||||
| 	MOVV	a3+24(FP), R6 | ||||
| 	MOVV	R0, R7 | ||||
| 	MOVV	R0, R8 | ||||
| 	MOVV	R0, R9 | ||||
| 	MOVV	trap+0(FP), R11	// syscall entry | ||||
| 	SYSCALL | ||||
| 	MOVV	R4, r1+32(FP) | ||||
| 	MOVV	R0, r2+40(FP)	// r2 is not used. Always set to 0 | ||||
| 	JAL	runtime·exitsyscall(SB) | ||||
| 	RET | ||||
| 
 | ||||
| TEXT ·RawSyscall(SB),NOSPLIT,$0-56 | ||||
| 	JMP	syscall·RawSyscall(SB) | ||||
| 
 | ||||
| TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 | ||||
| 	JMP	syscall·RawSyscall6(SB) | ||||
| 
 | ||||
| TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 | ||||
| 	MOVV	a1+8(FP), R4 | ||||
| 	MOVV	a2+16(FP), R5 | ||||
| 	MOVV	a3+24(FP), R6 | ||||
| 	MOVV	R0, R7 | ||||
| 	MOVV	R0, R8 | ||||
| 	MOVV	R0, R9 | ||||
| 	MOVV	trap+0(FP), R11	// syscall entry | ||||
| 	SYSCALL | ||||
| 	MOVV	R4, r1+32(FP) | ||||
| 	MOVV	R0, r2+40(FP)	// r2 is not used. Always set to 0 | ||||
| 	RET | ||||
|  | @ -2,8 +2,8 @@ | |||
| // Use of this source code is governed by a BSD-style
 | ||||
| // license that can be found in the LICENSE file.
 | ||||
| //
 | ||||
| //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh
 | ||||
| // +build 386 amd64 amd64p32 alpha arm arm64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh
 | ||||
| //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh
 | ||||
| // +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,233 +0,0 @@ | |||
| // Copyright 2017 The Go Authors. All rights reserved.
 | ||||
| // Use of this source code is governed by a BSD-style
 | ||||
| // license that can be found in the LICENSE file.
 | ||||
| 
 | ||||
| // Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
 | ||||
| // them here for backwards compatibility.
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| const ( | ||||
| 	DLT_HHDLC                         = 0x79 | ||||
| 	IFF_SMART                         = 0x20 | ||||
| 	IFT_1822                          = 0x2 | ||||
| 	IFT_A12MPPSWITCH                  = 0x82 | ||||
| 	IFT_AAL2                          = 0xbb | ||||
| 	IFT_AAL5                          = 0x31 | ||||
| 	IFT_ADSL                          = 0x5e | ||||
| 	IFT_AFLANE8023                    = 0x3b | ||||
| 	IFT_AFLANE8025                    = 0x3c | ||||
| 	IFT_ARAP                          = 0x58 | ||||
| 	IFT_ARCNET                        = 0x23 | ||||
| 	IFT_ARCNETPLUS                    = 0x24 | ||||
| 	IFT_ASYNC                         = 0x54 | ||||
| 	IFT_ATM                           = 0x25 | ||||
| 	IFT_ATMDXI                        = 0x69 | ||||
| 	IFT_ATMFUNI                       = 0x6a | ||||
| 	IFT_ATMIMA                        = 0x6b | ||||
| 	IFT_ATMLOGICAL                    = 0x50 | ||||
| 	IFT_ATMRADIO                      = 0xbd | ||||
| 	IFT_ATMSUBINTERFACE               = 0x86 | ||||
| 	IFT_ATMVCIENDPT                   = 0xc2 | ||||
| 	IFT_ATMVIRTUAL                    = 0x95 | ||||
| 	IFT_BGPPOLICYACCOUNTING           = 0xa2 | ||||
| 	IFT_BSC                           = 0x53 | ||||
| 	IFT_CCTEMUL                       = 0x3d | ||||
| 	IFT_CEPT                          = 0x13 | ||||
| 	IFT_CES                           = 0x85 | ||||
| 	IFT_CHANNEL                       = 0x46 | ||||
| 	IFT_CNR                           = 0x55 | ||||
| 	IFT_COFFEE                        = 0x84 | ||||
| 	IFT_COMPOSITELINK                 = 0x9b | ||||
| 	IFT_DCN                           = 0x8d | ||||
| 	IFT_DIGITALPOWERLINE              = 0x8a | ||||
| 	IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba | ||||
| 	IFT_DLSW                          = 0x4a | ||||
| 	IFT_DOCSCABLEDOWNSTREAM           = 0x80 | ||||
| 	IFT_DOCSCABLEMACLAYER             = 0x7f | ||||
| 	IFT_DOCSCABLEUPSTREAM             = 0x81 | ||||
| 	IFT_DS0                           = 0x51 | ||||
| 	IFT_DS0BUNDLE                     = 0x52 | ||||
| 	IFT_DS1FDL                        = 0xaa | ||||
| 	IFT_DS3                           = 0x1e | ||||
| 	IFT_DTM                           = 0x8c | ||||
| 	IFT_DVBASILN                      = 0xac | ||||
| 	IFT_DVBASIOUT                     = 0xad | ||||
| 	IFT_DVBRCCDOWNSTREAM              = 0x93 | ||||
| 	IFT_DVBRCCMACLAYER                = 0x92 | ||||
| 	IFT_DVBRCCUPSTREAM                = 0x94 | ||||
| 	IFT_ENC                           = 0xf4 | ||||
| 	IFT_EON                           = 0x19 | ||||
| 	IFT_EPLRS                         = 0x57 | ||||
| 	IFT_ESCON                         = 0x49 | ||||
| 	IFT_ETHER                         = 0x6 | ||||
| 	IFT_FAITH                         = 0xf2 | ||||
| 	IFT_FAST                          = 0x7d | ||||
| 	IFT_FASTETHER                     = 0x3e | ||||
| 	IFT_FASTETHERFX                   = 0x45 | ||||
| 	IFT_FDDI                          = 0xf | ||||
| 	IFT_FIBRECHANNEL                  = 0x38 | ||||
| 	IFT_FRAMERELAYINTERCONNECT        = 0x3a | ||||
| 	IFT_FRAMERELAYMPI                 = 0x5c | ||||
| 	IFT_FRDLCIENDPT                   = 0xc1 | ||||
| 	IFT_FRELAY                        = 0x20 | ||||
| 	IFT_FRELAYDCE                     = 0x2c | ||||
| 	IFT_FRF16MFRBUNDLE                = 0xa3 | ||||
| 	IFT_FRFORWARD                     = 0x9e | ||||
| 	IFT_G703AT2MB                     = 0x43 | ||||
| 	IFT_G703AT64K                     = 0x42 | ||||
| 	IFT_GIF                           = 0xf0 | ||||
| 	IFT_GIGABITETHERNET               = 0x75 | ||||
| 	IFT_GR303IDT                      = 0xb2 | ||||
| 	IFT_GR303RDT                      = 0xb1 | ||||
| 	IFT_H323GATEKEEPER                = 0xa4 | ||||
| 	IFT_H323PROXY                     = 0xa5 | ||||
| 	IFT_HDH1822                       = 0x3 | ||||
| 	IFT_HDLC                          = 0x76 | ||||
| 	IFT_HDSL2                         = 0xa8 | ||||
| 	IFT_HIPERLAN2                     = 0xb7 | ||||
| 	IFT_HIPPI                         = 0x2f | ||||
| 	IFT_HIPPIINTERFACE                = 0x39 | ||||
| 	IFT_HOSTPAD                       = 0x5a | ||||
| 	IFT_HSSI                          = 0x2e | ||||
| 	IFT_HY                            = 0xe | ||||
| 	IFT_IBM370PARCHAN                 = 0x48 | ||||
| 	IFT_IDSL                          = 0x9a | ||||
| 	IFT_IEEE80211                     = 0x47 | ||||
| 	IFT_IEEE80212                     = 0x37 | ||||
| 	IFT_IEEE8023ADLAG                 = 0xa1 | ||||
| 	IFT_IFGSN                         = 0x91 | ||||
| 	IFT_IMT                           = 0xbe | ||||
| 	IFT_INTERLEAVE                    = 0x7c | ||||
| 	IFT_IP                            = 0x7e | ||||
| 	IFT_IPFORWARD                     = 0x8e | ||||
| 	IFT_IPOVERATM                     = 0x72 | ||||
| 	IFT_IPOVERCDLC                    = 0x6d | ||||
| 	IFT_IPOVERCLAW                    = 0x6e | ||||
| 	IFT_IPSWITCH                      = 0x4e | ||||
| 	IFT_IPXIP                         = 0xf9 | ||||
| 	IFT_ISDN                          = 0x3f | ||||
| 	IFT_ISDNBASIC                     = 0x14 | ||||
| 	IFT_ISDNPRIMARY                   = 0x15 | ||||
| 	IFT_ISDNS                         = 0x4b | ||||
| 	IFT_ISDNU                         = 0x4c | ||||
| 	IFT_ISO88022LLC                   = 0x29 | ||||
| 	IFT_ISO88023                      = 0x7 | ||||
| 	IFT_ISO88024                      = 0x8 | ||||
| 	IFT_ISO88025                      = 0x9 | ||||
| 	IFT_ISO88025CRFPINT               = 0x62 | ||||
| 	IFT_ISO88025DTR                   = 0x56 | ||||
| 	IFT_ISO88025FIBER                 = 0x73 | ||||
| 	IFT_ISO88026                      = 0xa | ||||
| 	IFT_ISUP                          = 0xb3 | ||||
| 	IFT_L3IPXVLAN                     = 0x89 | ||||
| 	IFT_LAPB                          = 0x10 | ||||
| 	IFT_LAPD                          = 0x4d | ||||
| 	IFT_LAPF                          = 0x77 | ||||
| 	IFT_LOCALTALK                     = 0x2a | ||||
| 	IFT_LOOP                          = 0x18 | ||||
| 	IFT_MEDIAMAILOVERIP               = 0x8b | ||||
| 	IFT_MFSIGLINK                     = 0xa7 | ||||
| 	IFT_MIOX25                        = 0x26 | ||||
| 	IFT_MODEM                         = 0x30 | ||||
| 	IFT_MPC                           = 0x71 | ||||
| 	IFT_MPLS                          = 0xa6 | ||||
| 	IFT_MPLSTUNNEL                    = 0x96 | ||||
| 	IFT_MSDSL                         = 0x8f | ||||
| 	IFT_MVL                           = 0xbf | ||||
| 	IFT_MYRINET                       = 0x63 | ||||
| 	IFT_NFAS                          = 0xaf | ||||
| 	IFT_NSIP                          = 0x1b | ||||
| 	IFT_OPTICALCHANNEL                = 0xc3 | ||||
| 	IFT_OPTICALTRANSPORT              = 0xc4 | ||||
| 	IFT_OTHER                         = 0x1 | ||||
| 	IFT_P10                           = 0xc | ||||
| 	IFT_P80                           = 0xd | ||||
| 	IFT_PARA                          = 0x22 | ||||
| 	IFT_PFLOG                         = 0xf6 | ||||
| 	IFT_PFSYNC                        = 0xf7 | ||||
| 	IFT_PLC                           = 0xae | ||||
| 	IFT_POS                           = 0xab | ||||
| 	IFT_PPPMULTILINKBUNDLE            = 0x6c | ||||
| 	IFT_PROPBWAP2MP                   = 0xb8 | ||||
| 	IFT_PROPCNLS                      = 0x59 | ||||
| 	IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5 | ||||
| 	IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4 | ||||
| 	IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6 | ||||
| 	IFT_PROPMUX                       = 0x36 | ||||
| 	IFT_PROPWIRELESSP2P               = 0x9d | ||||
| 	IFT_PTPSERIAL                     = 0x16 | ||||
| 	IFT_PVC                           = 0xf1 | ||||
| 	IFT_QLLC                          = 0x44 | ||||
| 	IFT_RADIOMAC                      = 0xbc | ||||
| 	IFT_RADSL                         = 0x5f | ||||
| 	IFT_REACHDSL                      = 0xc0 | ||||
| 	IFT_RFC1483                       = 0x9f | ||||
| 	IFT_RS232                         = 0x21 | ||||
| 	IFT_RSRB                          = 0x4f | ||||
| 	IFT_SDLC                          = 0x11 | ||||
| 	IFT_SDSL                          = 0x60 | ||||
| 	IFT_SHDSL                         = 0xa9 | ||||
| 	IFT_SIP                           = 0x1f | ||||
| 	IFT_SLIP                          = 0x1c | ||||
| 	IFT_SMDSDXI                       = 0x2b | ||||
| 	IFT_SMDSICIP                      = 0x34 | ||||
| 	IFT_SONET                         = 0x27 | ||||
| 	IFT_SONETOVERHEADCHANNEL          = 0xb9 | ||||
| 	IFT_SONETPATH                     = 0x32 | ||||
| 	IFT_SONETVT                       = 0x33 | ||||
| 	IFT_SRP                           = 0x97 | ||||
| 	IFT_SS7SIGLINK                    = 0x9c | ||||
| 	IFT_STACKTOSTACK                  = 0x6f | ||||
| 	IFT_STARLAN                       = 0xb | ||||
| 	IFT_STF                           = 0xd7 | ||||
| 	IFT_T1                            = 0x12 | ||||
| 	IFT_TDLC                          = 0x74 | ||||
| 	IFT_TERMPAD                       = 0x5b | ||||
| 	IFT_TR008                         = 0xb0 | ||||
| 	IFT_TRANSPHDLC                    = 0x7b | ||||
| 	IFT_TUNNEL                        = 0x83 | ||||
| 	IFT_ULTRA                         = 0x1d | ||||
| 	IFT_USB                           = 0xa0 | ||||
| 	IFT_V11                           = 0x40 | ||||
| 	IFT_V35                           = 0x2d | ||||
| 	IFT_V36                           = 0x41 | ||||
| 	IFT_V37                           = 0x78 | ||||
| 	IFT_VDSL                          = 0x61 | ||||
| 	IFT_VIRTUALIPADDRESS              = 0x70 | ||||
| 	IFT_VOICEEM                       = 0x64 | ||||
| 	IFT_VOICEENCAP                    = 0x67 | ||||
| 	IFT_VOICEFXO                      = 0x65 | ||||
| 	IFT_VOICEFXS                      = 0x66 | ||||
| 	IFT_VOICEOVERATM                  = 0x98 | ||||
| 	IFT_VOICEOVERFRAMERELAY           = 0x99 | ||||
| 	IFT_VOICEOVERIP                   = 0x68 | ||||
| 	IFT_X213                          = 0x5d | ||||
| 	IFT_X25                           = 0x5 | ||||
| 	IFT_X25DDN                        = 0x4 | ||||
| 	IFT_X25HUNTGROUP                  = 0x7a | ||||
| 	IFT_X25MLP                        = 0x79 | ||||
| 	IFT_X25PLE                        = 0x28 | ||||
| 	IFT_XETHER                        = 0x1a | ||||
| 	IPPROTO_MAXID                     = 0x34 | ||||
| 	IPV6_FAITH                        = 0x1d | ||||
| 	IPV6_MIN_MEMBERSHIPS              = 0x1f | ||||
| 	IP_FAITH                          = 0x16 | ||||
| 	IP_MAX_SOURCE_FILTER              = 0x400 | ||||
| 	IP_MIN_MEMBERSHIPS                = 0x1f | ||||
| 	MAP_NORESERVE                     = 0x40 | ||||
| 	MAP_RENAME                        = 0x20 | ||||
| 	NET_RT_MAXID                      = 0x6 | ||||
| 	RTF_PRCLONING                     = 0x10000 | ||||
| 	RTM_OLDADD                        = 0x9 | ||||
| 	RTM_OLDDEL                        = 0xa | ||||
| 	RT_CACHING_CONTEXT                = 0x1 | ||||
| 	RT_NORTREF                        = 0x2 | ||||
| 	SIOCADDRT                         = 0x8030720a | ||||
| 	SIOCALIFADDR                      = 0x8118691b | ||||
| 	SIOCDELRT                         = 0x8030720b | ||||
| 	SIOCDLIFADDR                      = 0x8118691d | ||||
| 	SIOCGLIFADDR                      = 0xc118691c | ||||
| 	SIOCGLIFPHYADDR                   = 0xc118694b | ||||
| 	SIOCSLIFPHYADDR                   = 0x8118694a | ||||
| ) | ||||
|  | @ -1,233 +0,0 @@ | |||
| // Copyright 2017 The Go Authors. All rights reserved.
 | ||||
| // Use of this source code is governed by a BSD-style
 | ||||
| // license that can be found in the LICENSE file.
 | ||||
| 
 | ||||
| // Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
 | ||||
| // them here for backwards compatibility.
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| const ( | ||||
| 	DLT_HHDLC                         = 0x79 | ||||
| 	IFF_SMART                         = 0x20 | ||||
| 	IFT_1822                          = 0x2 | ||||
| 	IFT_A12MPPSWITCH                  = 0x82 | ||||
| 	IFT_AAL2                          = 0xbb | ||||
| 	IFT_AAL5                          = 0x31 | ||||
| 	IFT_ADSL                          = 0x5e | ||||
| 	IFT_AFLANE8023                    = 0x3b | ||||
| 	IFT_AFLANE8025                    = 0x3c | ||||
| 	IFT_ARAP                          = 0x58 | ||||
| 	IFT_ARCNET                        = 0x23 | ||||
| 	IFT_ARCNETPLUS                    = 0x24 | ||||
| 	IFT_ASYNC                         = 0x54 | ||||
| 	IFT_ATM                           = 0x25 | ||||
| 	IFT_ATMDXI                        = 0x69 | ||||
| 	IFT_ATMFUNI                       = 0x6a | ||||
| 	IFT_ATMIMA                        = 0x6b | ||||
| 	IFT_ATMLOGICAL                    = 0x50 | ||||
| 	IFT_ATMRADIO                      = 0xbd | ||||
| 	IFT_ATMSUBINTERFACE               = 0x86 | ||||
| 	IFT_ATMVCIENDPT                   = 0xc2 | ||||
| 	IFT_ATMVIRTUAL                    = 0x95 | ||||
| 	IFT_BGPPOLICYACCOUNTING           = 0xa2 | ||||
| 	IFT_BSC                           = 0x53 | ||||
| 	IFT_CCTEMUL                       = 0x3d | ||||
| 	IFT_CEPT                          = 0x13 | ||||
| 	IFT_CES                           = 0x85 | ||||
| 	IFT_CHANNEL                       = 0x46 | ||||
| 	IFT_CNR                           = 0x55 | ||||
| 	IFT_COFFEE                        = 0x84 | ||||
| 	IFT_COMPOSITELINK                 = 0x9b | ||||
| 	IFT_DCN                           = 0x8d | ||||
| 	IFT_DIGITALPOWERLINE              = 0x8a | ||||
| 	IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba | ||||
| 	IFT_DLSW                          = 0x4a | ||||
| 	IFT_DOCSCABLEDOWNSTREAM           = 0x80 | ||||
| 	IFT_DOCSCABLEMACLAYER             = 0x7f | ||||
| 	IFT_DOCSCABLEUPSTREAM             = 0x81 | ||||
| 	IFT_DS0                           = 0x51 | ||||
| 	IFT_DS0BUNDLE                     = 0x52 | ||||
| 	IFT_DS1FDL                        = 0xaa | ||||
| 	IFT_DS3                           = 0x1e | ||||
| 	IFT_DTM                           = 0x8c | ||||
| 	IFT_DVBASILN                      = 0xac | ||||
| 	IFT_DVBASIOUT                     = 0xad | ||||
| 	IFT_DVBRCCDOWNSTREAM              = 0x93 | ||||
| 	IFT_DVBRCCMACLAYER                = 0x92 | ||||
| 	IFT_DVBRCCUPSTREAM                = 0x94 | ||||
| 	IFT_ENC                           = 0xf4 | ||||
| 	IFT_EON                           = 0x19 | ||||
| 	IFT_EPLRS                         = 0x57 | ||||
| 	IFT_ESCON                         = 0x49 | ||||
| 	IFT_ETHER                         = 0x6 | ||||
| 	IFT_FAITH                         = 0xf2 | ||||
| 	IFT_FAST                          = 0x7d | ||||
| 	IFT_FASTETHER                     = 0x3e | ||||
| 	IFT_FASTETHERFX                   = 0x45 | ||||
| 	IFT_FDDI                          = 0xf | ||||
| 	IFT_FIBRECHANNEL                  = 0x38 | ||||
| 	IFT_FRAMERELAYINTERCONNECT        = 0x3a | ||||
| 	IFT_FRAMERELAYMPI                 = 0x5c | ||||
| 	IFT_FRDLCIENDPT                   = 0xc1 | ||||
| 	IFT_FRELAY                        = 0x20 | ||||
| 	IFT_FRELAYDCE                     = 0x2c | ||||
| 	IFT_FRF16MFRBUNDLE                = 0xa3 | ||||
| 	IFT_FRFORWARD                     = 0x9e | ||||
| 	IFT_G703AT2MB                     = 0x43 | ||||
| 	IFT_G703AT64K                     = 0x42 | ||||
| 	IFT_GIF                           = 0xf0 | ||||
| 	IFT_GIGABITETHERNET               = 0x75 | ||||
| 	IFT_GR303IDT                      = 0xb2 | ||||
| 	IFT_GR303RDT                      = 0xb1 | ||||
| 	IFT_H323GATEKEEPER                = 0xa4 | ||||
| 	IFT_H323PROXY                     = 0xa5 | ||||
| 	IFT_HDH1822                       = 0x3 | ||||
| 	IFT_HDLC                          = 0x76 | ||||
| 	IFT_HDSL2                         = 0xa8 | ||||
| 	IFT_HIPERLAN2                     = 0xb7 | ||||
| 	IFT_HIPPI                         = 0x2f | ||||
| 	IFT_HIPPIINTERFACE                = 0x39 | ||||
| 	IFT_HOSTPAD                       = 0x5a | ||||
| 	IFT_HSSI                          = 0x2e | ||||
| 	IFT_HY                            = 0xe | ||||
| 	IFT_IBM370PARCHAN                 = 0x48 | ||||
| 	IFT_IDSL                          = 0x9a | ||||
| 	IFT_IEEE80211                     = 0x47 | ||||
| 	IFT_IEEE80212                     = 0x37 | ||||
| 	IFT_IEEE8023ADLAG                 = 0xa1 | ||||
| 	IFT_IFGSN                         = 0x91 | ||||
| 	IFT_IMT                           = 0xbe | ||||
| 	IFT_INTERLEAVE                    = 0x7c | ||||
| 	IFT_IP                            = 0x7e | ||||
| 	IFT_IPFORWARD                     = 0x8e | ||||
| 	IFT_IPOVERATM                     = 0x72 | ||||
| 	IFT_IPOVERCDLC                    = 0x6d | ||||
| 	IFT_IPOVERCLAW                    = 0x6e | ||||
| 	IFT_IPSWITCH                      = 0x4e | ||||
| 	IFT_IPXIP                         = 0xf9 | ||||
| 	IFT_ISDN                          = 0x3f | ||||
| 	IFT_ISDNBASIC                     = 0x14 | ||||
| 	IFT_ISDNPRIMARY                   = 0x15 | ||||
| 	IFT_ISDNS                         = 0x4b | ||||
| 	IFT_ISDNU                         = 0x4c | ||||
| 	IFT_ISO88022LLC                   = 0x29 | ||||
| 	IFT_ISO88023                      = 0x7 | ||||
| 	IFT_ISO88024                      = 0x8 | ||||
| 	IFT_ISO88025                      = 0x9 | ||||
| 	IFT_ISO88025CRFPINT               = 0x62 | ||||
| 	IFT_ISO88025DTR                   = 0x56 | ||||
| 	IFT_ISO88025FIBER                 = 0x73 | ||||
| 	IFT_ISO88026                      = 0xa | ||||
| 	IFT_ISUP                          = 0xb3 | ||||
| 	IFT_L3IPXVLAN                     = 0x89 | ||||
| 	IFT_LAPB                          = 0x10 | ||||
| 	IFT_LAPD                          = 0x4d | ||||
| 	IFT_LAPF                          = 0x77 | ||||
| 	IFT_LOCALTALK                     = 0x2a | ||||
| 	IFT_LOOP                          = 0x18 | ||||
| 	IFT_MEDIAMAILOVERIP               = 0x8b | ||||
| 	IFT_MFSIGLINK                     = 0xa7 | ||||
| 	IFT_MIOX25                        = 0x26 | ||||
| 	IFT_MODEM                         = 0x30 | ||||
| 	IFT_MPC                           = 0x71 | ||||
| 	IFT_MPLS                          = 0xa6 | ||||
| 	IFT_MPLSTUNNEL                    = 0x96 | ||||
| 	IFT_MSDSL                         = 0x8f | ||||
| 	IFT_MVL                           = 0xbf | ||||
| 	IFT_MYRINET                       = 0x63 | ||||
| 	IFT_NFAS                          = 0xaf | ||||
| 	IFT_NSIP                          = 0x1b | ||||
| 	IFT_OPTICALCHANNEL                = 0xc3 | ||||
| 	IFT_OPTICALTRANSPORT              = 0xc4 | ||||
| 	IFT_OTHER                         = 0x1 | ||||
| 	IFT_P10                           = 0xc | ||||
| 	IFT_P80                           = 0xd | ||||
| 	IFT_PARA                          = 0x22 | ||||
| 	IFT_PFLOG                         = 0xf6 | ||||
| 	IFT_PFSYNC                        = 0xf7 | ||||
| 	IFT_PLC                           = 0xae | ||||
| 	IFT_POS                           = 0xab | ||||
| 	IFT_PPPMULTILINKBUNDLE            = 0x6c | ||||
| 	IFT_PROPBWAP2MP                   = 0xb8 | ||||
| 	IFT_PROPCNLS                      = 0x59 | ||||
| 	IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5 | ||||
| 	IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4 | ||||
| 	IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6 | ||||
| 	IFT_PROPMUX                       = 0x36 | ||||
| 	IFT_PROPWIRELESSP2P               = 0x9d | ||||
| 	IFT_PTPSERIAL                     = 0x16 | ||||
| 	IFT_PVC                           = 0xf1 | ||||
| 	IFT_QLLC                          = 0x44 | ||||
| 	IFT_RADIOMAC                      = 0xbc | ||||
| 	IFT_RADSL                         = 0x5f | ||||
| 	IFT_REACHDSL                      = 0xc0 | ||||
| 	IFT_RFC1483                       = 0x9f | ||||
| 	IFT_RS232                         = 0x21 | ||||
| 	IFT_RSRB                          = 0x4f | ||||
| 	IFT_SDLC                          = 0x11 | ||||
| 	IFT_SDSL                          = 0x60 | ||||
| 	IFT_SHDSL                         = 0xa9 | ||||
| 	IFT_SIP                           = 0x1f | ||||
| 	IFT_SLIP                          = 0x1c | ||||
| 	IFT_SMDSDXI                       = 0x2b | ||||
| 	IFT_SMDSICIP                      = 0x34 | ||||
| 	IFT_SONET                         = 0x27 | ||||
| 	IFT_SONETOVERHEADCHANNEL          = 0xb9 | ||||
| 	IFT_SONETPATH                     = 0x32 | ||||
| 	IFT_SONETVT                       = 0x33 | ||||
| 	IFT_SRP                           = 0x97 | ||||
| 	IFT_SS7SIGLINK                    = 0x9c | ||||
| 	IFT_STACKTOSTACK                  = 0x6f | ||||
| 	IFT_STARLAN                       = 0xb | ||||
| 	IFT_STF                           = 0xd7 | ||||
| 	IFT_T1                            = 0x12 | ||||
| 	IFT_TDLC                          = 0x74 | ||||
| 	IFT_TERMPAD                       = 0x5b | ||||
| 	IFT_TR008                         = 0xb0 | ||||
| 	IFT_TRANSPHDLC                    = 0x7b | ||||
| 	IFT_TUNNEL                        = 0x83 | ||||
| 	IFT_ULTRA                         = 0x1d | ||||
| 	IFT_USB                           = 0xa0 | ||||
| 	IFT_V11                           = 0x40 | ||||
| 	IFT_V35                           = 0x2d | ||||
| 	IFT_V36                           = 0x41 | ||||
| 	IFT_V37                           = 0x78 | ||||
| 	IFT_VDSL                          = 0x61 | ||||
| 	IFT_VIRTUALIPADDRESS              = 0x70 | ||||
| 	IFT_VOICEEM                       = 0x64 | ||||
| 	IFT_VOICEENCAP                    = 0x67 | ||||
| 	IFT_VOICEFXO                      = 0x65 | ||||
| 	IFT_VOICEFXS                      = 0x66 | ||||
| 	IFT_VOICEOVERATM                  = 0x98 | ||||
| 	IFT_VOICEOVERFRAMERELAY           = 0x99 | ||||
| 	IFT_VOICEOVERIP                   = 0x68 | ||||
| 	IFT_X213                          = 0x5d | ||||
| 	IFT_X25                           = 0x5 | ||||
| 	IFT_X25DDN                        = 0x4 | ||||
| 	IFT_X25HUNTGROUP                  = 0x7a | ||||
| 	IFT_X25MLP                        = 0x79 | ||||
| 	IFT_X25PLE                        = 0x28 | ||||
| 	IFT_XETHER                        = 0x1a | ||||
| 	IPPROTO_MAXID                     = 0x34 | ||||
| 	IPV6_FAITH                        = 0x1d | ||||
| 	IPV6_MIN_MEMBERSHIPS              = 0x1f | ||||
| 	IP_FAITH                          = 0x16 | ||||
| 	IP_MAX_SOURCE_FILTER              = 0x400 | ||||
| 	IP_MIN_MEMBERSHIPS                = 0x1f | ||||
| 	MAP_NORESERVE                     = 0x40 | ||||
| 	MAP_RENAME                        = 0x20 | ||||
| 	NET_RT_MAXID                      = 0x6 | ||||
| 	RTF_PRCLONING                     = 0x10000 | ||||
| 	RTM_OLDADD                        = 0x9 | ||||
| 	RTM_OLDDEL                        = 0xa | ||||
| 	RT_CACHING_CONTEXT                = 0x1 | ||||
| 	RT_NORTREF                        = 0x2 | ||||
| 	SIOCADDRT                         = 0x8040720a | ||||
| 	SIOCALIFADDR                      = 0x8118691b | ||||
| 	SIOCDELRT                         = 0x8040720b | ||||
| 	SIOCDLIFADDR                      = 0x8118691d | ||||
| 	SIOCGLIFADDR                      = 0xc118691c | ||||
| 	SIOCGLIFPHYADDR                   = 0xc118694b | ||||
| 	SIOCSLIFPHYADDR                   = 0x8118694a | ||||
| ) | ||||
|  | @ -1,226 +0,0 @@ | |||
| // Copyright 2017 The Go Authors. All rights reserved.
 | ||||
| // Use of this source code is governed by a BSD-style
 | ||||
| // license that can be found in the LICENSE file.
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| const ( | ||||
| 	IFT_1822                          = 0x2 | ||||
| 	IFT_A12MPPSWITCH                  = 0x82 | ||||
| 	IFT_AAL2                          = 0xbb | ||||
| 	IFT_AAL5                          = 0x31 | ||||
| 	IFT_ADSL                          = 0x5e | ||||
| 	IFT_AFLANE8023                    = 0x3b | ||||
| 	IFT_AFLANE8025                    = 0x3c | ||||
| 	IFT_ARAP                          = 0x58 | ||||
| 	IFT_ARCNET                        = 0x23 | ||||
| 	IFT_ARCNETPLUS                    = 0x24 | ||||
| 	IFT_ASYNC                         = 0x54 | ||||
| 	IFT_ATM                           = 0x25 | ||||
| 	IFT_ATMDXI                        = 0x69 | ||||
| 	IFT_ATMFUNI                       = 0x6a | ||||
| 	IFT_ATMIMA                        = 0x6b | ||||
| 	IFT_ATMLOGICAL                    = 0x50 | ||||
| 	IFT_ATMRADIO                      = 0xbd | ||||
| 	IFT_ATMSUBINTERFACE               = 0x86 | ||||
| 	IFT_ATMVCIENDPT                   = 0xc2 | ||||
| 	IFT_ATMVIRTUAL                    = 0x95 | ||||
| 	IFT_BGPPOLICYACCOUNTING           = 0xa2 | ||||
| 	IFT_BSC                           = 0x53 | ||||
| 	IFT_CCTEMUL                       = 0x3d | ||||
| 	IFT_CEPT                          = 0x13 | ||||
| 	IFT_CES                           = 0x85 | ||||
| 	IFT_CHANNEL                       = 0x46 | ||||
| 	IFT_CNR                           = 0x55 | ||||
| 	IFT_COFFEE                        = 0x84 | ||||
| 	IFT_COMPOSITELINK                 = 0x9b | ||||
| 	IFT_DCN                           = 0x8d | ||||
| 	IFT_DIGITALPOWERLINE              = 0x8a | ||||
| 	IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba | ||||
| 	IFT_DLSW                          = 0x4a | ||||
| 	IFT_DOCSCABLEDOWNSTREAM           = 0x80 | ||||
| 	IFT_DOCSCABLEMACLAYER             = 0x7f | ||||
| 	IFT_DOCSCABLEUPSTREAM             = 0x81 | ||||
| 	IFT_DS0                           = 0x51 | ||||
| 	IFT_DS0BUNDLE                     = 0x52 | ||||
| 	IFT_DS1FDL                        = 0xaa | ||||
| 	IFT_DS3                           = 0x1e | ||||
| 	IFT_DTM                           = 0x8c | ||||
| 	IFT_DVBASILN                      = 0xac | ||||
| 	IFT_DVBASIOUT                     = 0xad | ||||
| 	IFT_DVBRCCDOWNSTREAM              = 0x93 | ||||
| 	IFT_DVBRCCMACLAYER                = 0x92 | ||||
| 	IFT_DVBRCCUPSTREAM                = 0x94 | ||||
| 	IFT_ENC                           = 0xf4 | ||||
| 	IFT_EON                           = 0x19 | ||||
| 	IFT_EPLRS                         = 0x57 | ||||
| 	IFT_ESCON                         = 0x49 | ||||
| 	IFT_ETHER                         = 0x6 | ||||
| 	IFT_FAST                          = 0x7d | ||||
| 	IFT_FASTETHER                     = 0x3e | ||||
| 	IFT_FASTETHERFX                   = 0x45 | ||||
| 	IFT_FDDI                          = 0xf | ||||
| 	IFT_FIBRECHANNEL                  = 0x38 | ||||
| 	IFT_FRAMERELAYINTERCONNECT        = 0x3a | ||||
| 	IFT_FRAMERELAYMPI                 = 0x5c | ||||
| 	IFT_FRDLCIENDPT                   = 0xc1 | ||||
| 	IFT_FRELAY                        = 0x20 | ||||
| 	IFT_FRELAYDCE                     = 0x2c | ||||
| 	IFT_FRF16MFRBUNDLE                = 0xa3 | ||||
| 	IFT_FRFORWARD                     = 0x9e | ||||
| 	IFT_G703AT2MB                     = 0x43 | ||||
| 	IFT_G703AT64K                     = 0x42 | ||||
| 	IFT_GIF                           = 0xf0 | ||||
| 	IFT_GIGABITETHERNET               = 0x75 | ||||
| 	IFT_GR303IDT                      = 0xb2 | ||||
| 	IFT_GR303RDT                      = 0xb1 | ||||
| 	IFT_H323GATEKEEPER                = 0xa4 | ||||
| 	IFT_H323PROXY                     = 0xa5 | ||||
| 	IFT_HDH1822                       = 0x3 | ||||
| 	IFT_HDLC                          = 0x76 | ||||
| 	IFT_HDSL2                         = 0xa8 | ||||
| 	IFT_HIPERLAN2                     = 0xb7 | ||||
| 	IFT_HIPPI                         = 0x2f | ||||
| 	IFT_HIPPIINTERFACE                = 0x39 | ||||
| 	IFT_HOSTPAD                       = 0x5a | ||||
| 	IFT_HSSI                          = 0x2e | ||||
| 	IFT_HY                            = 0xe | ||||
| 	IFT_IBM370PARCHAN                 = 0x48 | ||||
| 	IFT_IDSL                          = 0x9a | ||||
| 	IFT_IEEE80211                     = 0x47 | ||||
| 	IFT_IEEE80212                     = 0x37 | ||||
| 	IFT_IEEE8023ADLAG                 = 0xa1 | ||||
| 	IFT_IFGSN                         = 0x91 | ||||
| 	IFT_IMT                           = 0xbe | ||||
| 	IFT_INTERLEAVE                    = 0x7c | ||||
| 	IFT_IP                            = 0x7e | ||||
| 	IFT_IPFORWARD                     = 0x8e | ||||
| 	IFT_IPOVERATM                     = 0x72 | ||||
| 	IFT_IPOVERCDLC                    = 0x6d | ||||
| 	IFT_IPOVERCLAW                    = 0x6e | ||||
| 	IFT_IPSWITCH                      = 0x4e | ||||
| 	IFT_ISDN                          = 0x3f | ||||
| 	IFT_ISDNBASIC                     = 0x14 | ||||
| 	IFT_ISDNPRIMARY                   = 0x15 | ||||
| 	IFT_ISDNS                         = 0x4b | ||||
| 	IFT_ISDNU                         = 0x4c | ||||
| 	IFT_ISO88022LLC                   = 0x29 | ||||
| 	IFT_ISO88023                      = 0x7 | ||||
| 	IFT_ISO88024                      = 0x8 | ||||
| 	IFT_ISO88025                      = 0x9 | ||||
| 	IFT_ISO88025CRFPINT               = 0x62 | ||||
| 	IFT_ISO88025DTR                   = 0x56 | ||||
| 	IFT_ISO88025FIBER                 = 0x73 | ||||
| 	IFT_ISO88026                      = 0xa | ||||
| 	IFT_ISUP                          = 0xb3 | ||||
| 	IFT_L3IPXVLAN                     = 0x89 | ||||
| 	IFT_LAPB                          = 0x10 | ||||
| 	IFT_LAPD                          = 0x4d | ||||
| 	IFT_LAPF                          = 0x77 | ||||
| 	IFT_LOCALTALK                     = 0x2a | ||||
| 	IFT_LOOP                          = 0x18 | ||||
| 	IFT_MEDIAMAILOVERIP               = 0x8b | ||||
| 	IFT_MFSIGLINK                     = 0xa7 | ||||
| 	IFT_MIOX25                        = 0x26 | ||||
| 	IFT_MODEM                         = 0x30 | ||||
| 	IFT_MPC                           = 0x71 | ||||
| 	IFT_MPLS                          = 0xa6 | ||||
| 	IFT_MPLSTUNNEL                    = 0x96 | ||||
| 	IFT_MSDSL                         = 0x8f | ||||
| 	IFT_MVL                           = 0xbf | ||||
| 	IFT_MYRINET                       = 0x63 | ||||
| 	IFT_NFAS                          = 0xaf | ||||
| 	IFT_NSIP                          = 0x1b | ||||
| 	IFT_OPTICALCHANNEL                = 0xc3 | ||||
| 	IFT_OPTICALTRANSPORT              = 0xc4 | ||||
| 	IFT_OTHER                         = 0x1 | ||||
| 	IFT_P10                           = 0xc | ||||
| 	IFT_P80                           = 0xd | ||||
| 	IFT_PARA                          = 0x22 | ||||
| 	IFT_PFLOG                         = 0xf6 | ||||
| 	IFT_PFSYNC                        = 0xf7 | ||||
| 	IFT_PLC                           = 0xae | ||||
| 	IFT_POS                           = 0xab | ||||
| 	IFT_PPPMULTILINKBUNDLE            = 0x6c | ||||
| 	IFT_PROPBWAP2MP                   = 0xb8 | ||||
| 	IFT_PROPCNLS                      = 0x59 | ||||
| 	IFT_PROPDOCSWIRELESSDOWNSTREAM    = 0xb5 | ||||
| 	IFT_PROPDOCSWIRELESSMACLAYER      = 0xb4 | ||||
| 	IFT_PROPDOCSWIRELESSUPSTREAM      = 0xb6 | ||||
| 	IFT_PROPMUX                       = 0x36 | ||||
| 	IFT_PROPWIRELESSP2P               = 0x9d | ||||
| 	IFT_PTPSERIAL                     = 0x16 | ||||
| 	IFT_PVC                           = 0xf1 | ||||
| 	IFT_QLLC                          = 0x44 | ||||
| 	IFT_RADIOMAC                      = 0xbc | ||||
| 	IFT_RADSL                         = 0x5f | ||||
| 	IFT_REACHDSL                      = 0xc0 | ||||
| 	IFT_RFC1483                       = 0x9f | ||||
| 	IFT_RS232                         = 0x21 | ||||
| 	IFT_RSRB                          = 0x4f | ||||
| 	IFT_SDLC                          = 0x11 | ||||
| 	IFT_SDSL                          = 0x60 | ||||
| 	IFT_SHDSL                         = 0xa9 | ||||
| 	IFT_SIP                           = 0x1f | ||||
| 	IFT_SLIP                          = 0x1c | ||||
| 	IFT_SMDSDXI                       = 0x2b | ||||
| 	IFT_SMDSICIP                      = 0x34 | ||||
| 	IFT_SONET                         = 0x27 | ||||
| 	IFT_SONETOVERHEADCHANNEL          = 0xb9 | ||||
| 	IFT_SONETPATH                     = 0x32 | ||||
| 	IFT_SONETVT                       = 0x33 | ||||
| 	IFT_SRP                           = 0x97 | ||||
| 	IFT_SS7SIGLINK                    = 0x9c | ||||
| 	IFT_STACKTOSTACK                  = 0x6f | ||||
| 	IFT_STARLAN                       = 0xb | ||||
| 	IFT_STF                           = 0xd7 | ||||
| 	IFT_T1                            = 0x12 | ||||
| 	IFT_TDLC                          = 0x74 | ||||
| 	IFT_TERMPAD                       = 0x5b | ||||
| 	IFT_TR008                         = 0xb0 | ||||
| 	IFT_TRANSPHDLC                    = 0x7b | ||||
| 	IFT_TUNNEL                        = 0x83 | ||||
| 	IFT_ULTRA                         = 0x1d | ||||
| 	IFT_USB                           = 0xa0 | ||||
| 	IFT_V11                           = 0x40 | ||||
| 	IFT_V35                           = 0x2d | ||||
| 	IFT_V36                           = 0x41 | ||||
| 	IFT_V37                           = 0x78 | ||||
| 	IFT_VDSL                          = 0x61 | ||||
| 	IFT_VIRTUALIPADDRESS              = 0x70 | ||||
| 	IFT_VOICEEM                       = 0x64 | ||||
| 	IFT_VOICEENCAP                    = 0x67 | ||||
| 	IFT_VOICEFXO                      = 0x65 | ||||
| 	IFT_VOICEFXS                      = 0x66 | ||||
| 	IFT_VOICEOVERATM                  = 0x98 | ||||
| 	IFT_VOICEOVERFRAMERELAY           = 0x99 | ||||
| 	IFT_VOICEOVERIP                   = 0x68 | ||||
| 	IFT_X213                          = 0x5d | ||||
| 	IFT_X25                           = 0x5 | ||||
| 	IFT_X25DDN                        = 0x4 | ||||
| 	IFT_X25HUNTGROUP                  = 0x7a | ||||
| 	IFT_X25MLP                        = 0x79 | ||||
| 	IFT_X25PLE                        = 0x28 | ||||
| 	IFT_XETHER                        = 0x1a | ||||
| 
 | ||||
| 	// missing constants on FreeBSD-11.1-RELEASE, copied from old values in ztypes_freebsd_arm.go
 | ||||
| 	IFF_SMART       = 0x20 | ||||
| 	IFT_FAITH       = 0xf2 | ||||
| 	IFT_IPXIP       = 0xf9 | ||||
| 	IPPROTO_MAXID   = 0x34 | ||||
| 	IPV6_FAITH      = 0x1d | ||||
| 	IP_FAITH        = 0x16 | ||||
| 	MAP_NORESERVE   = 0x40 | ||||
| 	MAP_RENAME      = 0x20 | ||||
| 	NET_RT_MAXID    = 0x6 | ||||
| 	RTF_PRCLONING   = 0x10000 | ||||
| 	RTM_OLDADD      = 0x9 | ||||
| 	RTM_OLDDEL      = 0xa | ||||
| 	SIOCADDRT       = 0x8030720a | ||||
| 	SIOCALIFADDR    = 0x8118691b | ||||
| 	SIOCDELRT       = 0x8030720b | ||||
| 	SIOCDLIFADDR    = 0x8118691d | ||||
| 	SIOCGLIFADDR    = 0xc118691c | ||||
| 	SIOCGLIFPHYADDR = 0xc118694b | ||||
| 	SIOCSLIFPHYADDR = 0x8118694a | ||||
| ) | ||||
|  | @ -1,17 +0,0 @@ | |||
| // Copyright 2020 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.
 | ||||
| 
 | ||||
| // Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
 | ||||
| // them here for backwards compatibility.
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| const ( | ||||
| 	DLT_HHDLC            = 0x79 | ||||
| 	IPV6_MIN_MEMBERSHIPS = 0x1f | ||||
| 	IP_MAX_SOURCE_FILTER = 0x400 | ||||
| 	IP_MIN_MEMBERSHIPS   = 0x1f | ||||
| 	RT_CACHING_CONTEXT   = 0x1 | ||||
| 	RT_NORTREF           = 0x2 | ||||
| ) | ||||
|  | @ -8,7 +8,6 @@ | |||
| package unix | ||||
| 
 | ||||
| import ( | ||||
| 	"bytes" | ||||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
|  | @ -45,13 +44,7 @@ func NewIfreq(name string) (*Ifreq, error) { | |||
| 
 | ||||
| // Name returns the interface name associated with the Ifreq.
 | ||||
| func (ifr *Ifreq) Name() string { | ||||
| 	// BytePtrToString requires a NULL terminator or the program may crash. If
 | ||||
| 	// one is not present, just return the empty string.
 | ||||
| 	if !bytes.Contains(ifr.raw.Ifrn[:], []byte{0x00}) { | ||||
| 		return "" | ||||
| 	} | ||||
| 
 | ||||
| 	return BytePtrToString(&ifr.raw.Ifrn[0]) | ||||
| 	return ByteSliceToString(ifr.raw.Ifrn[:]) | ||||
| } | ||||
| 
 | ||||
| // According to netdevice(7), only AF_INET addresses are returned for numerous
 | ||||
|  |  | |||
|  | @ -194,3 +194,26 @@ func ioctlIfreqData(fd int, req uint, value *ifreqData) error { | |||
| 	// identical so pass *IfreqData directly.
 | ||||
| 	return ioctlPtr(fd, req, unsafe.Pointer(value)) | ||||
| } | ||||
| 
 | ||||
| // IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an
 | ||||
| // existing KCM socket, returning a structure containing the file descriptor of
 | ||||
| // the new socket.
 | ||||
| func IoctlKCMClone(fd int) (*KCMClone, error) { | ||||
| 	var info KCMClone | ||||
| 	if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| 
 | ||||
| 	return &info, nil | ||||
| } | ||||
| 
 | ||||
| // IoctlKCMAttach attaches a TCP socket and associated BPF program file
 | ||||
| // descriptor to a multiplexor.
 | ||||
| func IoctlKCMAttach(fd int, info KCMAttach) error { | ||||
| 	return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) | ||||
| } | ||||
| 
 | ||||
| // IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor.
 | ||||
| func IoctlKCMUnattach(fd int, info KCMUnattach) error { | ||||
| 	return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) | ||||
| } | ||||
|  |  | |||
|  | @ -89,25 +89,30 @@ dragonfly_amd64) | |||
| freebsd_386) | ||||
| 	mkerrors="$mkerrors -m32" | ||||
| 	mksyscall="go run mksyscall.go -l32" | ||||
| 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" | ||||
| 	mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" | ||||
| 	mktypes="GOARCH=$GOARCH go tool cgo -godefs" | ||||
| 	;; | ||||
| freebsd_amd64) | ||||
| 	mkerrors="$mkerrors -m64" | ||||
| 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" | ||||
| 	mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" | ||||
| 	mktypes="GOARCH=$GOARCH go tool cgo -godefs" | ||||
| 	;; | ||||
| freebsd_arm) | ||||
| 	mkerrors="$mkerrors" | ||||
| 	mksyscall="go run mksyscall.go -l32 -arm" | ||||
| 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" | ||||
| 	mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" | ||||
| 	# Let the type of C char be signed for making the bare syscall | ||||
| 	# API consistent across platforms. | ||||
| 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" | ||||
| 	;; | ||||
| freebsd_arm64) | ||||
| 	mkerrors="$mkerrors -m64" | ||||
| 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'" | ||||
| 	mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" | ||||
| 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" | ||||
| 	;; | ||||
| freebsd_riscv64) | ||||
| 	mkerrors="$mkerrors -m64" | ||||
| 	mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" | ||||
| 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" | ||||
| 	;; | ||||
| netbsd_386) | ||||
|  |  | |||
|  | @ -128,6 +128,7 @@ includes_FreeBSD=' | |||
| #include <sys/mount.h> | ||||
| #include <sys/wait.h> | ||||
| #include <sys/ioctl.h> | ||||
| #include <sys/ptrace.h> | ||||
| #include <net/bpf.h> | ||||
| #include <net/if.h> | ||||
| #include <net/if_types.h> | ||||
|  | @ -202,9 +203,11 @@ struct ltchars { | |||
| #include <sys/timerfd.h> | ||||
| #include <sys/uio.h> | ||||
| #include <sys/xattr.h> | ||||
| #include <linux/audit.h> | ||||
| #include <linux/bpf.h> | ||||
| #include <linux/can.h> | ||||
| #include <linux/can/error.h> | ||||
| #include <linux/can/netlink.h> | ||||
| #include <linux/can/raw.h> | ||||
| #include <linux/capability.h> | ||||
| #include <linux/cryptouser.h> | ||||
|  | @ -214,6 +217,7 @@ struct ltchars { | |||
| #include <linux/ethtool_netlink.h> | ||||
| #include <linux/falloc.h> | ||||
| #include <linux/fanotify.h> | ||||
| #include <linux/fib_rules.h> | ||||
| #include <linux/filter.h> | ||||
| #include <linux/fs.h> | ||||
| #include <linux/fscrypt.h> | ||||
|  | @ -231,6 +235,7 @@ struct ltchars { | |||
| #include <linux/if_packet.h> | ||||
| #include <linux/if_xdp.h> | ||||
| #include <linux/input.h> | ||||
| #include <linux/kcm.h> | ||||
| #include <linux/kexec.h> | ||||
| #include <linux/keyctl.h> | ||||
| #include <linux/landlock.h> | ||||
|  | @ -292,6 +297,10 @@ struct ltchars { | |||
| #define SOL_NETLINK	270 | ||||
| #endif | ||||
| 
 | ||||
| #ifndef SOL_SMC | ||||
| #define SOL_SMC 286 | ||||
| #endif | ||||
| 
 | ||||
| #ifdef SOL_BLUETOOTH | ||||
| // SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h | ||||
| // but it is already in bluetooth_linux.go | ||||
|  | @ -503,6 +512,7 @@ ccflags="$@" | |||
| 		$2 ~ /^O?XTABS$/ || | ||||
| 		$2 ~ /^TC[IO](ON|OFF)$/ || | ||||
| 		$2 ~ /^IN_/ || | ||||
| 		$2 ~ /^KCM/ || | ||||
| 		$2 ~ /^LANDLOCK_/ || | ||||
| 		$2 ~ /^LOCK_(SH|EX|NB|UN)$/ || | ||||
| 		$2 ~ /^LO_(KEY|NAME)_SIZE$/ || | ||||
|  | @ -525,7 +535,7 @@ ccflags="$@" | |||
| 		$2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || | ||||
| 		$2 ~ /^NS_GET_/ || | ||||
| 		$2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || | ||||
| 		$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|TFD)_/ || | ||||
| 		$2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ || | ||||
| 		$2 ~ /^KEXEC_/ || | ||||
| 		$2 ~ /^LINUX_REBOOT_CMD_/ || | ||||
| 		$2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || | ||||
|  | @ -549,6 +559,7 @@ ccflags="$@" | |||
| 		$2 ~ /^CLONE_[A-Z_]+/ || | ||||
| 		$2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && | ||||
| 		$2 ~ /^(BPF|DLT)_/ || | ||||
| 		$2 ~ /^AUDIT_/ || | ||||
| 		$2 ~ /^(CLOCK|TIMER)_/ || | ||||
| 		$2 ~ /^CAN_/ || | ||||
| 		$2 ~ /^CAP_/ || | ||||
|  | @ -571,7 +582,6 @@ ccflags="$@" | |||
| 		$2 ~ /^SEEK_/ || | ||||
| 		$2 ~ /^SPLICE_/ || | ||||
| 		$2 ~ /^SYNC_FILE_RANGE_/ || | ||||
| 		$2 !~ /^AUDIT_RECORD_MAGIC/ && | ||||
| 		$2 !~ /IOC_MAGIC/ && | ||||
| 		$2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || | ||||
| 		$2 ~ /^(VM|VMADDR)_/ || | ||||
|  | @ -597,8 +607,10 @@ ccflags="$@" | |||
| 		$2 ~ /^DEVLINK_/ || | ||||
| 		$2 ~ /^ETHTOOL_/ || | ||||
| 		$2 ~ /^LWTUNNEL_IP/ || | ||||
| 		$2 ~ /^ITIMER_/ || | ||||
| 		$2 !~ "WMESGLEN" && | ||||
| 		$2 ~ /^W[A-Z0-9]+$/ || | ||||
| 		$2 ~ /^P_/ || | ||||
| 		$2 ~/^PPPIOC/ || | ||||
| 		$2 ~ /^FAN_|FANOTIFY_/ || | ||||
| 		$2 == "HID_MAX_DESCRIPTOR_SIZE" || | ||||
|  | @ -608,6 +620,7 @@ ccflags="$@" | |||
| 		$2 ~ /^OTP/ || | ||||
| 		$2 ~ /^MEM/ || | ||||
| 		$2 ~ /^WG/ || | ||||
| 		$2 ~ /^FIB_RULE_/ || | ||||
| 		$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} | ||||
| 		$2 ~ /^__WCOREFLAG$/ {next} | ||||
| 		$2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} | ||||
|  |  | |||
|  | @ -37,6 +37,7 @@ func Creat(path string, mode uint32) (fd int, err error) { | |||
| } | ||||
| 
 | ||||
| //sys	utimes(path string, times *[2]Timeval) (err error)
 | ||||
| 
 | ||||
| func Utimes(path string, tv []Timeval) error { | ||||
| 	if len(tv) != 2 { | ||||
| 		return EINVAL | ||||
|  | @ -45,6 +46,7 @@ func Utimes(path string, tv []Timeval) error { | |||
| } | ||||
| 
 | ||||
| //sys	utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error)
 | ||||
| 
 | ||||
| func UtimesNano(path string, ts []Timespec) error { | ||||
| 	if len(ts) != 2 { | ||||
| 		return EINVAL | ||||
|  | @ -215,20 +217,63 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| 	// Recvmsg not implemented on AIX
 | ||||
| 	sa := new(SockaddrUnix) | ||||
| 	return -1, -1, -1, sa, ENOSYS | ||||
| } | ||||
| 
 | ||||
| func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { | ||||
| 	_, err = SendmsgN(fd, p, oob, to, flags) | ||||
| func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(rsa)) | ||||
| 	msg.Namelen = uint32(SizeofSockaddrAny) | ||||
| 	var dummy byte | ||||
| 	if len(oob) > 0 { | ||||
| 		// receive at least one normal byte
 | ||||
| 		if emptyIovecs(iov) { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = recvmsg(fd, &msg, flags); n == -1 { | ||||
| 		return | ||||
| 	} | ||||
| 	oobn = int(msg.Controllen) | ||||
| 	recvflags = int(msg.Flags) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	// SendmsgN not implemented on AIX
 | ||||
| 	return -1, ENOSYS | ||||
| func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(ptr)) | ||||
| 	msg.Namelen = uint32(salen) | ||||
| 	var dummy byte | ||||
| 	var empty bool | ||||
| 	if len(oob) > 0 { | ||||
| 		// send at least one normal byte
 | ||||
| 		empty := emptyIovecs(iov) | ||||
| 		if empty { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = sendmsg(fd, &msg, flags); err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	if len(oob) > 0 && empty { | ||||
| 		n = 0 | ||||
| 	} | ||||
| 	return n, nil | ||||
| } | ||||
| 
 | ||||
| func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { | ||||
|  | @ -306,11 +351,13 @@ func direntNamlen(buf []byte) (uint64, bool) { | |||
| } | ||||
| 
 | ||||
| //sys	getdirent(fd int, buf []byte) (n int, err error)
 | ||||
| 
 | ||||
| func Getdents(fd int, buf []byte) (n int, err error) { | ||||
| 	return getdirent(fd, buf) | ||||
| } | ||||
| 
 | ||||
| //sys	wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error)
 | ||||
| 
 | ||||
| func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { | ||||
| 	var status _C_int | ||||
| 	var r Pid_t | ||||
|  | @ -378,6 +425,7 @@ func (w WaitStatus) TrapCause() int { return -1 } | |||
| //sys	fcntl(fd int, cmd int, arg int) (val int, err error)
 | ||||
| 
 | ||||
| //sys	fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range
 | ||||
| 
 | ||||
| func Fsync(fd int) error { | ||||
| 	return fsyncRange(fd, O_SYNC, 0, 0) | ||||
| } | ||||
|  | @ -458,8 +506,8 @@ func Fsync(fd int) error { | |||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	lstat(path string, stat *Stat_t) (err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = pread64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = pread64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
 | ||||
| //sys	Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
 | ||||
| //sysnb	Setregid(rgid int, egid int) (err error)
 | ||||
|  | @ -542,6 +590,7 @@ func Poll(fds []PollFd, timeout int) (n int, err error) { | |||
| //sys	Getsystemcfg(label int) (n uint64)
 | ||||
| 
 | ||||
| //sys	umount(target string) (err error)
 | ||||
| 
 | ||||
| func Unmount(target string, flags int) (err error) { | ||||
| 	if flags != 0 { | ||||
| 		// AIX doesn't have any flags for umount.
 | ||||
|  |  | |||
|  | @ -325,80 +325,62 @@ func GetsockoptString(fd, level, opt int) (string, error) { | |||
| //sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
 | ||||
| 
 | ||||
| func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	var rsa RawSockaddrAny | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(&rsa)) | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(rsa)) | ||||
| 	msg.Namelen = uint32(SizeofSockaddrAny) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = (*byte)(unsafe.Pointer(&p[0])) | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy byte | ||||
| 	if len(oob) > 0 { | ||||
| 		// receive at least one normal byte
 | ||||
| 		if len(p) == 0 { | ||||
| 			iov.Base = &dummy | ||||
| 			iov.SetLen(1) | ||||
| 		if emptyIovecs(iov) { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = recvmsg(fd, &msg, flags); err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	oobn = int(msg.Controllen) | ||||
| 	recvflags = int(msg.Flags) | ||||
| 	// source address is only specified if the socket is unconnected
 | ||||
| 	if rsa.Addr.Family != AF_UNSPEC { | ||||
| 		from, err = anyToSockaddr(fd, &rsa) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
 | ||||
| 
 | ||||
| func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { | ||||
| 	_, err = SendmsgN(fd, p, oob, to, flags) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	var ptr unsafe.Pointer | ||||
| 	var salen _Socklen | ||||
| 	if to != nil { | ||||
| 		ptr, salen, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 	} | ||||
| func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(ptr)) | ||||
| 	msg.Namelen = uint32(salen) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = (*byte)(unsafe.Pointer(&p[0])) | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy byte | ||||
| 	var empty bool | ||||
| 	if len(oob) > 0 { | ||||
| 		// send at least one normal byte
 | ||||
| 		if len(p) == 0 { | ||||
| 			iov.Base = &dummy | ||||
| 			iov.SetLen(1) | ||||
| 		empty := emptyIovecs(iov) | ||||
| 		if empty { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Control = (*byte)(unsafe.Pointer(&oob[0])) | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = sendmsg(fd, &msg, flags); err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	if len(oob) > 0 && len(p) == 0 { | ||||
| 	if len(oob) > 0 && empty { | ||||
| 		n = 0 | ||||
| 	} | ||||
| 	return n, nil | ||||
|  | @ -571,12 +553,7 @@ func UtimesNano(path string, ts []Timespec) error { | |||
| 	if len(ts) != 2 { | ||||
| 		return EINVAL | ||||
| 	} | ||||
| 	// Darwin setattrlist can set nanosecond timestamps
 | ||||
| 	err := setattrlistTimes(path, ts, 0) | ||||
| 	if err != ENOSYS { | ||||
| 		return err | ||||
| 	} | ||||
| 	err = utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||
| 	err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||
| 	if err != ENOSYS { | ||||
| 		return err | ||||
| 	} | ||||
|  | @ -596,10 +573,6 @@ func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { | |||
| 	if len(ts) != 2 { | ||||
| 		return EINVAL | ||||
| 	} | ||||
| 	err := setattrlistTimes(path, ts, flags) | ||||
| 	if err != ENOSYS { | ||||
| 		return err | ||||
| 	} | ||||
| 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -141,16 +141,6 @@ func direntNamlen(buf []byte) (uint64, bool) { | |||
| func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } | ||||
| func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } | ||||
| 
 | ||||
| type attrList struct { | ||||
| 	bitmapCount uint16 | ||||
| 	_           uint16 | ||||
| 	CommonAttr  uint32 | ||||
| 	VolAttr     uint32 | ||||
| 	DirAttr     uint32 | ||||
| 	FileAttr    uint32 | ||||
| 	Forkattr    uint32 | ||||
| } | ||||
| 
 | ||||
| //sysnb	pipe(p *[2]int32) (err error)
 | ||||
| 
 | ||||
| func Pipe(p []int) (err error) { | ||||
|  | @ -282,36 +272,7 @@ func Flistxattr(fd int, dest []byte) (sz int, err error) { | |||
| 	return flistxattr(fd, xattrPointer(dest), len(dest), 0) | ||||
| } | ||||
| 
 | ||||
| func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||
| 	_p0, err := BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	var attrList attrList | ||||
| 	attrList.bitmapCount = ATTR_BIT_MAP_COUNT | ||||
| 	attrList.CommonAttr = ATTR_CMN_MODTIME | ATTR_CMN_ACCTIME | ||||
| 
 | ||||
| 	// order is mtime, atime: the opposite of Chtimes
 | ||||
| 	attributes := [2]Timespec{times[1], times[0]} | ||||
| 	options := 0 | ||||
| 	if flags&AT_SYMLINK_NOFOLLOW != 0 { | ||||
| 		options |= FSOPT_NOFOLLOW | ||||
| 	} | ||||
| 	return setattrlist( | ||||
| 		_p0, | ||||
| 		unsafe.Pointer(&attrList), | ||||
| 		unsafe.Pointer(&attributes), | ||||
| 		unsafe.Sizeof(attributes), | ||||
| 		options) | ||||
| } | ||||
| 
 | ||||
| //sys	setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
 | ||||
| 
 | ||||
| func utimensat(dirfd int, path string, times *[2]Timespec, flags int) error { | ||||
| 	// Darwin doesn't support SYS_UTIMENSAT
 | ||||
| 	return ENOSYS | ||||
| } | ||||
| //sys	utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
 | ||||
| 
 | ||||
| /* | ||||
|  * Wrapped | ||||
|  | @ -432,6 +393,13 @@ func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { | |||
| 	return x, err | ||||
| } | ||||
| 
 | ||||
| func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { | ||||
| 	var value TCPConnectionInfo | ||||
| 	vallen := _Socklen(SizeofTCPConnectionInfo) | ||||
| 	err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) | ||||
| 	return &value, err | ||||
| } | ||||
| 
 | ||||
| func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { | ||||
| 	mib, err := sysctlmib(name, args...) | ||||
| 	if err != nil { | ||||
|  | @ -543,11 +511,12 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { | |||
| //sys	Mkdirat(dirfd int, path string, mode uint32) (err error)
 | ||||
| //sys	Mkfifo(path string, mode uint32) (err error)
 | ||||
| //sys	Mknod(path string, mode uint32, dev int) (err error)
 | ||||
| //sys	Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error)
 | ||||
| //sys	Open(path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Pathconf(path string, name int) (val int, err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	read(fd int, p []byte) (n int, err error)
 | ||||
| //sys	Readlink(path string, buf []byte) (n int, err error)
 | ||||
| //sys	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
 | ||||
|  | @ -611,7 +580,6 @@ func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { | |||
| // Nfssvc
 | ||||
| // Getfh
 | ||||
| // Quotactl
 | ||||
| // Mount
 | ||||
| // Csops
 | ||||
| // Waitid
 | ||||
| // Add_profil
 | ||||
|  |  | |||
|  | @ -125,12 +125,14 @@ func Pipe2(p []int, flags int) (err error) { | |||
| } | ||||
| 
 | ||||
| //sys	extpread(fd int, p []byte, flags int, offset int64) (n int, err error)
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 
 | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	return extpread(fd, p, 0, offset) | ||||
| } | ||||
| 
 | ||||
| //sys	extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error)
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 
 | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	return extpwrite(fd, p, 0, offset) | ||||
| } | ||||
| 
 | ||||
|  | @ -169,11 +171,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||
| 	// used on Darwin for UtimesNano
 | ||||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	ioctl(fd int, req uint, arg uintptr) (err error)
 | ||||
| 
 | ||||
| //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
 | ||||
|  |  | |||
|  | @ -17,25 +17,12 @@ import ( | |||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	SYS_FSTAT_FREEBSD12         = 551 // { int fstat(int fd, _Out_ struct stat *sb); }
 | ||||
| 	SYS_FSTATAT_FREEBSD12       = 552 // { int fstatat(int fd, _In_z_ char *path, \
 | ||||
| 	SYS_GETDIRENTRIES_FREEBSD12 = 554 // { ssize_t getdirentries(int fd, \
 | ||||
| 	SYS_STATFS_FREEBSD12        = 555 // { int statfs(_In_z_ char *path, \
 | ||||
| 	SYS_FSTATFS_FREEBSD12       = 556 // { int fstatfs(int fd, \
 | ||||
| 	SYS_GETFSSTAT_FREEBSD12     = 557 // { int getfsstat( \
 | ||||
| 	SYS_MKNODAT_FREEBSD12       = 559 // { int mknodat(int fd, _In_z_ char *path, \
 | ||||
| ) | ||||
| 
 | ||||
| // See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html.
 | ||||
| var ( | ||||
| 	osreldateOnce sync.Once | ||||
| 	osreldate     uint32 | ||||
| ) | ||||
| 
 | ||||
| // INO64_FIRST from /usr/src/lib/libc/sys/compat-ino64.h
 | ||||
| const _ino64First = 1200031 | ||||
| 
 | ||||
| func supportsABI(ver uint32) bool { | ||||
| 	osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) | ||||
| 	return osreldate >= ver | ||||
|  | @ -159,46 +146,21 @@ func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { | |||
| 
 | ||||
| func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | ||||
| 	var ( | ||||
| 		_p0          unsafe.Pointer | ||||
| 		bufsize      uintptr | ||||
| 		oldBuf       []statfs_freebsd11_t | ||||
| 		needsConvert bool | ||||
| 		_p0     unsafe.Pointer | ||||
| 		bufsize uintptr | ||||
| 	) | ||||
| 
 | ||||
| 	if len(buf) > 0 { | ||||
| 		if supportsABI(_ino64First) { | ||||
| 			_p0 = unsafe.Pointer(&buf[0]) | ||||
| 			bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) | ||||
| 		} else { | ||||
| 			n := len(buf) | ||||
| 			oldBuf = make([]statfs_freebsd11_t, n) | ||||
| 			_p0 = unsafe.Pointer(&oldBuf[0]) | ||||
| 			bufsize = unsafe.Sizeof(statfs_freebsd11_t{}) * uintptr(n) | ||||
| 			needsConvert = true | ||||
| 		} | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
| 		bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) | ||||
| 	} | ||||
| 	var sysno uintptr = SYS_GETFSSTAT | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		sysno = SYS_GETFSSTAT_FREEBSD12 | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall(sysno, uintptr(_p0), bufsize, uintptr(flags)) | ||||
| 	r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) | ||||
| 	n = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = e1 | ||||
| 	} | ||||
| 	if e1 == 0 && needsConvert { | ||||
| 		for i := range oldBuf { | ||||
| 			buf[i].convertFrom(&oldBuf[i]) | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||
| 	// used on Darwin for UtimesNano
 | ||||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	ioctl(fd int, req uint, arg uintptr) (err error)
 | ||||
| 
 | ||||
| //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
 | ||||
|  | @ -250,87 +212,11 @@ func Uname(uname *Utsname) error { | |||
| } | ||||
| 
 | ||||
| func Stat(path string, st *Stat_t) (err error) { | ||||
| 	var oldStat stat_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return fstatat_freebsd12(AT_FDCWD, path, st, 0) | ||||
| 	} | ||||
| 	err = stat(path, &oldStat) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStat) | ||||
| 	return nil | ||||
| 	return Fstatat(AT_FDCWD, path, st, 0) | ||||
| } | ||||
| 
 | ||||
| func Lstat(path string, st *Stat_t) (err error) { | ||||
| 	var oldStat stat_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return fstatat_freebsd12(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) | ||||
| 	} | ||||
| 	err = lstat(path, &oldStat) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStat) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func Fstat(fd int, st *Stat_t) (err error) { | ||||
| 	var oldStat stat_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return fstat_freebsd12(fd, st) | ||||
| 	} | ||||
| 	err = fstat(fd, &oldStat) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStat) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func Fstatat(fd int, path string, st *Stat_t, flags int) (err error) { | ||||
| 	var oldStat stat_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return fstatat_freebsd12(fd, path, st, flags) | ||||
| 	} | ||||
| 	err = fstatat(fd, path, &oldStat, flags) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStat) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func Statfs(path string, st *Statfs_t) (err error) { | ||||
| 	var oldStatfs statfs_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return statfs_freebsd12(path, st) | ||||
| 	} | ||||
| 	err = statfs(path, &oldStatfs) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStatfs) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func Fstatfs(fd int, st *Statfs_t) (err error) { | ||||
| 	var oldStatfs statfs_freebsd11_t | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return fstatfs_freebsd12(fd, st) | ||||
| 	} | ||||
| 	err = fstatfs(fd, &oldStatfs) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	st.convertFrom(&oldStatfs) | ||||
| 	return nil | ||||
| 	return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) | ||||
| } | ||||
| 
 | ||||
| func Getdents(fd int, buf []byte) (n int, err error) { | ||||
|  | @ -338,162 +224,25 @@ func Getdents(fd int, buf []byte) (n int, err error) { | |||
| } | ||||
| 
 | ||||
| func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		if basep == nil || unsafe.Sizeof(*basep) == 8 { | ||||
| 			return getdirentries_freebsd12(fd, buf, (*uint64)(unsafe.Pointer(basep))) | ||||
| 		} | ||||
| 		// The freebsd12 syscall needs a 64-bit base. On 32-bit machines
 | ||||
| 		// we can't just use the basep passed in. See #32498.
 | ||||
| 		var base uint64 = uint64(*basep) | ||||
| 		n, err = getdirentries_freebsd12(fd, buf, &base) | ||||
| 		*basep = uintptr(base) | ||||
| 		if base>>32 != 0 { | ||||
| 			// We can't stuff the base back into a uintptr, so any
 | ||||
| 			// future calls would be suspect. Generate an error.
 | ||||
| 			// EIO is allowed by getdirentries.
 | ||||
| 			err = EIO | ||||
| 		} | ||||
| 		return | ||||
| 	if basep == nil || unsafe.Sizeof(*basep) == 8 { | ||||
| 		return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) | ||||
| 	} | ||||
| 
 | ||||
| 	// The old syscall entries are smaller than the new. Use 1/4 of the original
 | ||||
| 	// buffer size rounded up to DIRBLKSIZ (see /usr/src/lib/libc/sys/getdirentries.c).
 | ||||
| 	oldBufLen := roundup(len(buf)/4, _dirblksiz) | ||||
| 	oldBuf := make([]byte, oldBufLen) | ||||
| 	n, err = getdirentries(fd, oldBuf, basep) | ||||
| 	if err == nil && n > 0 { | ||||
| 		n = convertFromDirents11(buf, oldBuf[:n]) | ||||
| 	// The syscall needs a 64-bit base. On 32-bit machines
 | ||||
| 	// we can't just use the basep passed in. See #32498.
 | ||||
| 	var base uint64 = uint64(*basep) | ||||
| 	n, err = getdirentries(fd, buf, &base) | ||||
| 	*basep = uintptr(base) | ||||
| 	if base>>32 != 0 { | ||||
| 		// We can't stuff the base back into a uintptr, so any
 | ||||
| 		// future calls would be suspect. Generate an error.
 | ||||
| 		// EIO is allowed by getdirentries.
 | ||||
| 		err = EIO | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Mknod(path string, mode uint32, dev uint64) (err error) { | ||||
| 	var oldDev int | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return mknodat_freebsd12(AT_FDCWD, path, mode, dev) | ||||
| 	} | ||||
| 	oldDev = int(dev) | ||||
| 	return mknod(path, mode, oldDev) | ||||
| } | ||||
| 
 | ||||
| func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var oldDev int | ||||
| 	if supportsABI(_ino64First) { | ||||
| 		return mknodat_freebsd12(fd, path, mode, dev) | ||||
| 	} | ||||
| 	oldDev = int(dev) | ||||
| 	return mknodat(fd, path, mode, oldDev) | ||||
| } | ||||
| 
 | ||||
| // round x to the nearest multiple of y, larger or equal to x.
 | ||||
| //
 | ||||
| // from /usr/include/sys/param.h Macros for counting and rounding.
 | ||||
| // #define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
 | ||||
| func roundup(x, y int) int { | ||||
| 	return ((x + y - 1) / y) * y | ||||
| } | ||||
| 
 | ||||
| func (s *Stat_t) convertFrom(old *stat_freebsd11_t) { | ||||
| 	*s = Stat_t{ | ||||
| 		Dev:     uint64(old.Dev), | ||||
| 		Ino:     uint64(old.Ino), | ||||
| 		Nlink:   uint64(old.Nlink), | ||||
| 		Mode:    old.Mode, | ||||
| 		Uid:     old.Uid, | ||||
| 		Gid:     old.Gid, | ||||
| 		Rdev:    uint64(old.Rdev), | ||||
| 		Atim:    old.Atim, | ||||
| 		Mtim:    old.Mtim, | ||||
| 		Ctim:    old.Ctim, | ||||
| 		Btim:    old.Btim, | ||||
| 		Size:    old.Size, | ||||
| 		Blocks:  old.Blocks, | ||||
| 		Blksize: old.Blksize, | ||||
| 		Flags:   old.Flags, | ||||
| 		Gen:     uint64(old.Gen), | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func (s *Statfs_t) convertFrom(old *statfs_freebsd11_t) { | ||||
| 	*s = Statfs_t{ | ||||
| 		Version:     _statfsVersion, | ||||
| 		Type:        old.Type, | ||||
| 		Flags:       old.Flags, | ||||
| 		Bsize:       old.Bsize, | ||||
| 		Iosize:      old.Iosize, | ||||
| 		Blocks:      old.Blocks, | ||||
| 		Bfree:       old.Bfree, | ||||
| 		Bavail:      old.Bavail, | ||||
| 		Files:       old.Files, | ||||
| 		Ffree:       old.Ffree, | ||||
| 		Syncwrites:  old.Syncwrites, | ||||
| 		Asyncwrites: old.Asyncwrites, | ||||
| 		Syncreads:   old.Syncreads, | ||||
| 		Asyncreads:  old.Asyncreads, | ||||
| 		// Spare
 | ||||
| 		Namemax: old.Namemax, | ||||
| 		Owner:   old.Owner, | ||||
| 		Fsid:    old.Fsid, | ||||
| 		// Charspare
 | ||||
| 		// Fstypename
 | ||||
| 		// Mntfromname
 | ||||
| 		// Mntonname
 | ||||
| 	} | ||||
| 
 | ||||
| 	sl := old.Fstypename[:] | ||||
| 	n := clen(*(*[]byte)(unsafe.Pointer(&sl))) | ||||
| 	copy(s.Fstypename[:], old.Fstypename[:n]) | ||||
| 
 | ||||
| 	sl = old.Mntfromname[:] | ||||
| 	n = clen(*(*[]byte)(unsafe.Pointer(&sl))) | ||||
| 	copy(s.Mntfromname[:], old.Mntfromname[:n]) | ||||
| 
 | ||||
| 	sl = old.Mntonname[:] | ||||
| 	n = clen(*(*[]byte)(unsafe.Pointer(&sl))) | ||||
| 	copy(s.Mntonname[:], old.Mntonname[:n]) | ||||
| } | ||||
| 
 | ||||
| func convertFromDirents11(buf []byte, old []byte) int { | ||||
| 	const ( | ||||
| 		fixedSize    = int(unsafe.Offsetof(Dirent{}.Name)) | ||||
| 		oldFixedSize = int(unsafe.Offsetof(dirent_freebsd11{}.Name)) | ||||
| 	) | ||||
| 
 | ||||
| 	dstPos := 0 | ||||
| 	srcPos := 0 | ||||
| 	for dstPos+fixedSize < len(buf) && srcPos+oldFixedSize < len(old) { | ||||
| 		var dstDirent Dirent | ||||
| 		var srcDirent dirent_freebsd11 | ||||
| 
 | ||||
| 		// If multiple direntries are written, sometimes when we reach the final one,
 | ||||
| 		// we may have cap of old less than size of dirent_freebsd11.
 | ||||
| 		copy((*[unsafe.Sizeof(srcDirent)]byte)(unsafe.Pointer(&srcDirent))[:], old[srcPos:]) | ||||
| 
 | ||||
| 		reclen := roundup(fixedSize+int(srcDirent.Namlen)+1, 8) | ||||
| 		if dstPos+reclen > len(buf) { | ||||
| 			break | ||||
| 		} | ||||
| 
 | ||||
| 		dstDirent.Fileno = uint64(srcDirent.Fileno) | ||||
| 		dstDirent.Off = 0 | ||||
| 		dstDirent.Reclen = uint16(reclen) | ||||
| 		dstDirent.Type = srcDirent.Type | ||||
| 		dstDirent.Pad0 = 0 | ||||
| 		dstDirent.Namlen = uint16(srcDirent.Namlen) | ||||
| 		dstDirent.Pad1 = 0 | ||||
| 
 | ||||
| 		copy(dstDirent.Name[:], srcDirent.Name[:srcDirent.Namlen]) | ||||
| 		copy(buf[dstPos:], (*[unsafe.Sizeof(dstDirent)]byte)(unsafe.Pointer(&dstDirent))[:]) | ||||
| 		padding := buf[dstPos+fixedSize+int(dstDirent.Namlen) : dstPos+reclen] | ||||
| 		for i := range padding { | ||||
| 			padding[i] = 0 | ||||
| 		} | ||||
| 
 | ||||
| 		dstPos += int(dstDirent.Reclen) | ||||
| 		srcPos += int(srcDirent.Reclen) | ||||
| 	} | ||||
| 
 | ||||
| 	return dstPos | ||||
| 	return Mknodat(AT_FDCWD, path, mode, dev) | ||||
| } | ||||
| 
 | ||||
| func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | ||||
|  | @ -506,31 +255,31 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| //sys	ptrace(request int, pid int, addr uintptr, data int) (err error)
 | ||||
| 
 | ||||
| func PtraceAttach(pid int) (err error) { | ||||
| 	return ptrace(PTRACE_ATTACH, pid, 0, 0) | ||||
| 	return ptrace(PT_ATTACH, pid, 0, 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceCont(pid int, signal int) (err error) { | ||||
| 	return ptrace(PTRACE_CONT, pid, 1, signal) | ||||
| 	return ptrace(PT_CONTINUE, pid, 1, signal) | ||||
| } | ||||
| 
 | ||||
| func PtraceDetach(pid int) (err error) { | ||||
| 	return ptrace(PTRACE_DETACH, pid, 1, 0) | ||||
| 	return ptrace(PT_DETACH, pid, 1, 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { | ||||
| 	return ptrace(PTRACE_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) | ||||
| 	return ptrace(PT_GETFPREGS, pid, uintptr(unsafe.Pointer(fpregsout)), 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceGetRegs(pid int, regsout *Reg) (err error) { | ||||
| 	return ptrace(PTRACE_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) | ||||
| 	return ptrace(PT_GETREGS, pid, uintptr(unsafe.Pointer(regsout)), 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceLwpEvents(pid int, enable int) (err error) { | ||||
| 	return ptrace(PTRACE_LWPEVENTS, pid, 0, enable) | ||||
| 	return ptrace(PT_LWP_EVENTS, pid, 0, enable) | ||||
| } | ||||
| 
 | ||||
| func PtraceLwpInfo(pid int, info uintptr) (err error) { | ||||
| 	return ptrace(PTRACE_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{}))) | ||||
| 	return ptrace(PT_LWPINFO, pid, info, int(unsafe.Sizeof(PtraceLwpInfoStruct{}))) | ||||
| } | ||||
| 
 | ||||
| func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { | ||||
|  | @ -550,11 +299,11 @@ func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { | |||
| } | ||||
| 
 | ||||
| func PtraceSetRegs(pid int, regs *Reg) (err error) { | ||||
| 	return ptrace(PTRACE_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0) | ||||
| 	return ptrace(PT_SETREGS, pid, uintptr(unsafe.Pointer(regs)), 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceSingleStep(pid int) (err error) { | ||||
| 	return ptrace(PTRACE_SINGLESTEP, pid, 1, 0) | ||||
| 	return ptrace(PT_STEP, pid, 1, 0) | ||||
| } | ||||
| 
 | ||||
| /* | ||||
|  | @ -596,16 +345,12 @@ func PtraceSingleStep(pid int) (err error) { | |||
| //sys	Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error)
 | ||||
| //sys	Flock(fd int, how int) (err error)
 | ||||
| //sys	Fpathconf(fd int, name int) (val int, err error)
 | ||||
| //sys	fstat(fd int, stat *stat_freebsd11_t) (err error)
 | ||||
| //sys	fstat_freebsd12(fd int, stat *Stat_t) (err error)
 | ||||
| //sys	fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error)
 | ||||
| //sys	fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error)
 | ||||
| //sys	fstatfs(fd int, stat *statfs_freebsd11_t) (err error)
 | ||||
| //sys	fstatfs_freebsd12(fd int, stat *Statfs_t) (err error)
 | ||||
| //sys	Fstat(fd int, stat *Stat_t) (err error)
 | ||||
| //sys	Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
 | ||||
| //sys	Fstatfs(fd int, stat *Statfs_t) (err error)
 | ||||
| //sys	Fsync(fd int) (err error)
 | ||||
| //sys	Ftruncate(fd int, length int64) (err error)
 | ||||
| //sys	getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error)
 | ||||
| //sys	getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error)
 | ||||
| //sys	getdirentries(fd int, buf []byte, basep *uint64) (n int, err error)
 | ||||
| //sys	Getdtablesize() (size int)
 | ||||
| //sysnb	Getegid() (egid int)
 | ||||
| //sysnb	Geteuid() (uid int)
 | ||||
|  | @ -627,19 +372,16 @@ func PtraceSingleStep(pid int) (err error) { | |||
| //sys	Link(path string, link string) (err error)
 | ||||
| //sys	Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error)
 | ||||
| //sys	Listen(s int, backlog int) (err error)
 | ||||
| //sys	lstat(path string, stat *stat_freebsd11_t) (err error)
 | ||||
| //sys	Mkdir(path string, mode uint32) (err error)
 | ||||
| //sys	Mkdirat(dirfd int, path string, mode uint32) (err error)
 | ||||
| //sys	Mkfifo(path string, mode uint32) (err error)
 | ||||
| //sys	mknod(path string, mode uint32, dev int) (err error)
 | ||||
| //sys	mknodat(fd int, path string, mode uint32, dev int) (err error)
 | ||||
| //sys	mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error)
 | ||||
| //sys	Mknodat(fd int, path string, mode uint32, dev uint64) (err error)
 | ||||
| //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
 | ||||
| //sys	Open(path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Openat(fdat int, path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Pathconf(path string, name int) (val int, err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	read(fd int, p []byte) (n int, err error)
 | ||||
| //sys	Readlink(path string, buf []byte) (n int, err error)
 | ||||
| //sys	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
 | ||||
|  | @ -663,9 +405,7 @@ func PtraceSingleStep(pid int) (err error) { | |||
| //sysnb	Setsid() (pid int, err error)
 | ||||
| //sysnb	Settimeofday(tp *Timeval) (err error)
 | ||||
| //sysnb	Setuid(uid int) (err error)
 | ||||
| //sys	stat(path string, stat *stat_freebsd11_t) (err error)
 | ||||
| //sys	statfs(path string, stat *statfs_freebsd11_t) (err error)
 | ||||
| //sys	statfs_freebsd12(path string, stat *Statfs_t) (err error)
 | ||||
| //sys	Statfs(path string, stat *Statfs_t) (err error)
 | ||||
| //sys	Symlink(path string, link string) (err error)
 | ||||
| //sys	Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Sync() (err error)
 | ||||
|  |  | |||
|  | @ -57,11 +57,11 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||
| 
 | ||||
| func PtraceGetFsBase(pid int, fsbase *int64) (err error) { | ||||
| 	return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) | ||||
| 	return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { | ||||
| 	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} | ||||
| 	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	return int(ioDesc.Len), err | ||||
| } | ||||
|  |  | |||
|  | @ -57,11 +57,11 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||
| 
 | ||||
| func PtraceGetFsBase(pid int, fsbase *int64) (err error) { | ||||
| 	return ptrace(PTRACE_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) | ||||
| 	return ptrace(PT_GETFSBASE, pid, uintptr(unsafe.Pointer(fsbase)), 0) | ||||
| } | ||||
| 
 | ||||
| func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { | ||||
| 	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} | ||||
| 	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	return int(ioDesc.Len), err | ||||
| } | ||||
|  |  | |||
|  | @ -58,6 +58,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||
| 
 | ||||
| func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { | ||||
| 	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint32(countin)} | ||||
| 	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	return int(ioDesc.Len), err | ||||
| } | ||||
|  |  | |||
|  | @ -58,6 +58,6 @@ func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||
| 
 | ||||
| func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { | ||||
| 	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} | ||||
| 	err = ptrace(PTRACE_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	return int(ioDesc.Len), err | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,63 @@ | |||
| // Copyright 2022 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.
 | ||||
| 
 | ||||
| //go:build riscv64 && freebsd
 | ||||
| // +build riscv64,freebsd
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| import ( | ||||
| 	"syscall" | ||||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
| func setTimespec(sec, nsec int64) Timespec { | ||||
| 	return Timespec{Sec: sec, Nsec: nsec} | ||||
| } | ||||
| 
 | ||||
| func setTimeval(sec, usec int64) Timeval { | ||||
| 	return Timeval{Sec: sec, Usec: usec} | ||||
| } | ||||
| 
 | ||||
| func SetKevent(k *Kevent_t, fd, mode, flags int) { | ||||
| 	k.Ident = uint64(fd) | ||||
| 	k.Filter = int16(mode) | ||||
| 	k.Flags = uint16(flags) | ||||
| } | ||||
| 
 | ||||
| func (iov *Iovec) SetLen(length int) { | ||||
| 	iov.Len = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func (msghdr *Msghdr) SetControllen(length int) { | ||||
| 	msghdr.Controllen = uint32(length) | ||||
| } | ||||
| 
 | ||||
| func (msghdr *Msghdr) SetIovlen(length int) { | ||||
| 	msghdr.Iovlen = int32(length) | ||||
| } | ||||
| 
 | ||||
| func (cmsg *Cmsghdr) SetLen(length int) { | ||||
| 	cmsg.Len = uint32(length) | ||||
| } | ||||
| 
 | ||||
| func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { | ||||
| 	var writtenOut uint64 = 0 | ||||
| 	_, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) | ||||
| 
 | ||||
| 	written = int(writtenOut) | ||||
| 
 | ||||
| 	if e1 != 0 { | ||||
| 		err = e1 | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) | ||||
| 
 | ||||
| func PtraceIO(req int, pid int, addr uintptr, out []byte, countin int) (count int, err error) { | ||||
| 	ioDesc := PtraceIoDesc{Op: int32(req), Offs: (*byte)(unsafe.Pointer(addr)), Addr: (*byte)(unsafe.Pointer(&out[0])), Len: uint64(countin)} | ||||
| 	err = ptrace(PT_IO, pid, uintptr(unsafe.Pointer(&ioDesc)), 0) | ||||
| 	return int(ioDesc.Len), err | ||||
| } | ||||
|  | @ -20,10 +20,9 @@ func bytes2iovec(bs [][]byte) []Iovec { | |||
| 	for i, b := range bs { | ||||
| 		iovecs[i].SetLen(len(b)) | ||||
| 		if len(b) > 0 { | ||||
| 			// somehow Iovec.Base on illumos is (*int8), not (*byte)
 | ||||
| 			iovecs[i].Base = (*int8)(unsafe.Pointer(&b[0])) | ||||
| 			iovecs[i].Base = &b[0] | ||||
| 		} else { | ||||
| 			iovecs[i].Base = (*int8)(unsafe.Pointer(&_zero)) | ||||
| 			iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) | ||||
| 		} | ||||
| 	} | ||||
| 	return iovecs | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ package unix | |||
| import ( | ||||
| 	"encoding/binary" | ||||
| 	"syscall" | ||||
| 	"time" | ||||
| 	"unsafe" | ||||
| ) | ||||
| 
 | ||||
|  | @ -249,6 +250,13 @@ func Getwd() (wd string, err error) { | |||
| 	if n < 1 || n > len(buf) || buf[n-1] != 0 { | ||||
| 		return "", EINVAL | ||||
| 	} | ||||
| 	// In some cases, Linux can return a path that starts with the
 | ||||
| 	// "(unreachable)" prefix, which can potentially be a valid relative
 | ||||
| 	// path. To work around that, return ENOENT if path is not absolute.
 | ||||
| 	if buf[0] != '/' { | ||||
| 		return "", ENOENT | ||||
| 	} | ||||
| 
 | ||||
| 	return string(buf[0 : n-1]), nil | ||||
| } | ||||
| 
 | ||||
|  | @ -358,6 +366,8 @@ func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| //sys	Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error)
 | ||||
| 
 | ||||
| func Mkfifo(path string, mode uint32) error { | ||||
| 	return Mknod(path, mode|S_IFIFO, 0) | ||||
| } | ||||
|  | @ -502,24 +512,24 @@ func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||
| //
 | ||||
| // Server example:
 | ||||
| //
 | ||||
| //      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
 | ||||
| //      _ = unix.Bind(fd, &unix.SockaddrRFCOMM{
 | ||||
| //      	Channel: 1,
 | ||||
| //      	Addr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00
 | ||||
| //      })
 | ||||
| //      _ = Listen(fd, 1)
 | ||||
| //      nfd, sa, _ := Accept(fd)
 | ||||
| //      fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd)
 | ||||
| //      Read(nfd, buf)
 | ||||
| //	fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
 | ||||
| //	_ = unix.Bind(fd, &unix.SockaddrRFCOMM{
 | ||||
| //		Channel: 1,
 | ||||
| //		Addr:    [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00
 | ||||
| //	})
 | ||||
| //	_ = Listen(fd, 1)
 | ||||
| //	nfd, sa, _ := Accept(fd)
 | ||||
| //	fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd)
 | ||||
| //	Read(nfd, buf)
 | ||||
| //
 | ||||
| // Client example:
 | ||||
| //
 | ||||
| //      fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
 | ||||
| //      _ = Connect(fd, &SockaddrRFCOMM{
 | ||||
| //      	Channel: 1,
 | ||||
| //      	Addr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11
 | ||||
| //      })
 | ||||
| //      Write(fd, []byte(`hello`))
 | ||||
| //	fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)
 | ||||
| //	_ = Connect(fd, &SockaddrRFCOMM{
 | ||||
| //		Channel: 1,
 | ||||
| //		Addr:    [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11
 | ||||
| //	})
 | ||||
| //	Write(fd, []byte(`hello`))
 | ||||
| type SockaddrRFCOMM struct { | ||||
| 	// Addr represents a bluetooth address, byte ordering is little-endian.
 | ||||
| 	Addr [6]uint8 | ||||
|  | @ -546,12 +556,12 @@ func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||
| // The SockaddrCAN struct must be bound to the socket file descriptor
 | ||||
| // using Bind before the CAN socket can be used.
 | ||||
| //
 | ||||
| //      // Read one raw CAN frame
 | ||||
| //      fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)
 | ||||
| //      addr := &SockaddrCAN{Ifindex: index}
 | ||||
| //      Bind(fd, addr)
 | ||||
| //      frame := make([]byte, 16)
 | ||||
| //      Read(fd, frame)
 | ||||
| //	// Read one raw CAN frame
 | ||||
| //	fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW)
 | ||||
| //	addr := &SockaddrCAN{Ifindex: index}
 | ||||
| //	Bind(fd, addr)
 | ||||
| //	frame := make([]byte, 16)
 | ||||
| //	Read(fd, frame)
 | ||||
| //
 | ||||
| // The full SocketCAN documentation can be found in the linux kernel
 | ||||
| // archives at: https://www.kernel.org/doc/Documentation/networking/can.txt
 | ||||
|  | @ -622,13 +632,13 @@ func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||
| // Here is an example of using an AF_ALG socket with SHA1 hashing.
 | ||||
| // The initial socket setup process is as follows:
 | ||||
| //
 | ||||
| //      // Open a socket to perform SHA1 hashing.
 | ||||
| //      fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)
 | ||||
| //      addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"}
 | ||||
| //      unix.Bind(fd, addr)
 | ||||
| //      // Note: unix.Accept does not work at this time; must invoke accept()
 | ||||
| //      // manually using unix.Syscall.
 | ||||
| //      hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)
 | ||||
| //	// Open a socket to perform SHA1 hashing.
 | ||||
| //	fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0)
 | ||||
| //	addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"}
 | ||||
| //	unix.Bind(fd, addr)
 | ||||
| //	// Note: unix.Accept does not work at this time; must invoke accept()
 | ||||
| //	// manually using unix.Syscall.
 | ||||
| //	hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0)
 | ||||
| //
 | ||||
| // Once a file descriptor has been returned from Accept, it may be used to
 | ||||
| // perform SHA1 hashing. The descriptor is not safe for concurrent use, but
 | ||||
|  | @ -637,39 +647,39 @@ func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { | |||
| // When hashing a small byte slice or string, a single Write and Read may
 | ||||
| // be used:
 | ||||
| //
 | ||||
| //      // Assume hashfd is already configured using the setup process.
 | ||||
| //      hash := os.NewFile(hashfd, "sha1")
 | ||||
| //      // Hash an input string and read the results. Each Write discards
 | ||||
| //      // previous hash state. Read always reads the current state.
 | ||||
| //      b := make([]byte, 20)
 | ||||
| //      for i := 0; i < 2; i++ {
 | ||||
| //          io.WriteString(hash, "Hello, world.")
 | ||||
| //          hash.Read(b)
 | ||||
| //          fmt.Println(hex.EncodeToString(b))
 | ||||
| //      }
 | ||||
| //      // Output:
 | ||||
| //      // 2ae01472317d1935a84797ec1983ae243fc6aa28
 | ||||
| //      // 2ae01472317d1935a84797ec1983ae243fc6aa28
 | ||||
| //	// Assume hashfd is already configured using the setup process.
 | ||||
| //	hash := os.NewFile(hashfd, "sha1")
 | ||||
| //	// Hash an input string and read the results. Each Write discards
 | ||||
| //	// previous hash state. Read always reads the current state.
 | ||||
| //	b := make([]byte, 20)
 | ||||
| //	for i := 0; i < 2; i++ {
 | ||||
| //	    io.WriteString(hash, "Hello, world.")
 | ||||
| //	    hash.Read(b)
 | ||||
| //	    fmt.Println(hex.EncodeToString(b))
 | ||||
| //	}
 | ||||
| //	// Output:
 | ||||
| //	// 2ae01472317d1935a84797ec1983ae243fc6aa28
 | ||||
| //	// 2ae01472317d1935a84797ec1983ae243fc6aa28
 | ||||
| //
 | ||||
| // For hashing larger byte slices, or byte streams such as those read from
 | ||||
| // a file or socket, use Sendto with MSG_MORE to instruct the kernel to update
 | ||||
| // the hash digest instead of creating a new one for a given chunk and finalizing it.
 | ||||
| //
 | ||||
| //      // Assume hashfd and addr are already configured using the setup process.
 | ||||
| //      hash := os.NewFile(hashfd, "sha1")
 | ||||
| //      // Hash the contents of a file.
 | ||||
| //      f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz")
 | ||||
| //      b := make([]byte, 4096)
 | ||||
| //      for {
 | ||||
| //          n, err := f.Read(b)
 | ||||
| //          if err == io.EOF {
 | ||||
| //              break
 | ||||
| //          }
 | ||||
| //          unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)
 | ||||
| //      }
 | ||||
| //      hash.Read(b)
 | ||||
| //      fmt.Println(hex.EncodeToString(b))
 | ||||
| //      // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5
 | ||||
| //	// Assume hashfd and addr are already configured using the setup process.
 | ||||
| //	hash := os.NewFile(hashfd, "sha1")
 | ||||
| //	// Hash the contents of a file.
 | ||||
| //	f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz")
 | ||||
| //	b := make([]byte, 4096)
 | ||||
| //	for {
 | ||||
| //	    n, err := f.Read(b)
 | ||||
| //	    if err == io.EOF {
 | ||||
| //	        break
 | ||||
| //	    }
 | ||||
| //	    unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr)
 | ||||
| //	}
 | ||||
| //	hash.Read(b)
 | ||||
| //	fmt.Println(hex.EncodeToString(b))
 | ||||
| //	// Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5
 | ||||
| //
 | ||||
| // For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html.
 | ||||
| type SockaddrALG struct { | ||||
|  | @ -1489,19 +1499,13 @@ func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error | |||
| //sys	keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL
 | ||||
| //sys	keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL
 | ||||
| 
 | ||||
| func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	var rsa RawSockaddrAny | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(&rsa)) | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(rsa)) | ||||
| 	msg.Namelen = uint32(SizeofSockaddrAny) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = &p[0] | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy byte | ||||
| 	if len(oob) > 0 { | ||||
| 		if len(p) == 0 { | ||||
| 		if emptyIovecs(iov) { | ||||
| 			var sockType int | ||||
| 			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | ||||
| 			if err != nil { | ||||
|  | @ -1509,53 +1513,36 @@ func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from | |||
| 			} | ||||
| 			// receive at least one normal byte
 | ||||
| 			if sockType != SOCK_DGRAM { | ||||
| 				iov.Base = &dummy | ||||
| 				iov.SetLen(1) | ||||
| 				var iova [1]Iovec | ||||
| 				iova[0].Base = &dummy | ||||
| 				iova[0].SetLen(1) | ||||
| 				iov = iova[:] | ||||
| 			} | ||||
| 		} | ||||
| 		msg.Control = &oob[0] | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = recvmsg(fd, &msg, flags); err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	oobn = int(msg.Controllen) | ||||
| 	recvflags = int(msg.Flags) | ||||
| 	// source address is only specified if the socket is unconnected
 | ||||
| 	if rsa.Addr.Family != AF_UNSPEC { | ||||
| 		from, err = anyToSockaddr(fd, &rsa) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { | ||||
| 	_, err = SendmsgN(fd, p, oob, to, flags) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	var ptr unsafe.Pointer | ||||
| 	var salen _Socklen | ||||
| 	if to != nil { | ||||
| 		var err error | ||||
| 		ptr, salen, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 	} | ||||
| func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	msg.Name = (*byte)(ptr) | ||||
| 	msg.Namelen = uint32(salen) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = &p[0] | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy byte | ||||
| 	var empty bool | ||||
| 	if len(oob) > 0 { | ||||
| 		if len(p) == 0 { | ||||
| 		empty := emptyIovecs(iov) | ||||
| 		if empty { | ||||
| 			var sockType int | ||||
| 			sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) | ||||
| 			if err != nil { | ||||
|  | @ -1563,19 +1550,22 @@ func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) | |||
| 			} | ||||
| 			// send at least one normal byte
 | ||||
| 			if sockType != SOCK_DGRAM { | ||||
| 				iov.Base = &dummy | ||||
| 				iov.SetLen(1) | ||||
| 				var iova [1]Iovec | ||||
| 				iova[0].Base = &dummy | ||||
| 				iova[0].SetLen(1) | ||||
| 			} | ||||
| 		} | ||||
| 		msg.Control = &oob[0] | ||||
| 		msg.SetControllen(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = sendmsg(fd, &msg, flags); err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	if len(oob) > 0 && len(p) == 0 { | ||||
| 	if len(oob) > 0 && empty { | ||||
| 		n = 0 | ||||
| 	} | ||||
| 	return n, nil | ||||
|  | @ -1838,6 +1828,9 @@ func Dup2(oldfd, newfd int) error { | |||
| //sys	Fremovexattr(fd int, attr string) (err error)
 | ||||
| //sys	Fsetxattr(fd int, attr string, dest []byte, flags int) (err error)
 | ||||
| //sys	Fsync(fd int) (err error)
 | ||||
| //sys	Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error)
 | ||||
| //sys	Fsopen(fsName string, flags int) (fd int, err error)
 | ||||
| //sys	Fspick(dirfd int, pathName string, flags int) (fd int, err error)
 | ||||
| //sys	Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64
 | ||||
| //sysnb	Getpgid(pid int) (pgid int, err error)
 | ||||
| 
 | ||||
|  | @ -1868,7 +1861,9 @@ func Getpgrp() (pid int) { | |||
| //sys	MemfdCreate(name string, flags int) (fd int, err error)
 | ||||
| //sys	Mkdirat(dirfd int, path string, mode uint32) (err error)
 | ||||
| //sys	Mknodat(dirfd int, path string, mode uint32, dev int) (err error)
 | ||||
| //sys	MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error)
 | ||||
| //sys	Nanosleep(time *Timespec, leftover *Timespec) (err error)
 | ||||
| //sys	OpenTree(dfd int, fileName string, flags uint) (r int, err error)
 | ||||
| //sys	PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error)
 | ||||
| //sys	PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT
 | ||||
| //sysnb	Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64
 | ||||
|  | @ -2193,7 +2188,7 @@ func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { | |||
| 			gid = Getgid() | ||||
| 		} | ||||
| 
 | ||||
| 		if uint32(gid) == st.Gid || isGroupMember(gid) { | ||||
| 		if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { | ||||
| 			fmode = (st.Mode >> 3) & 7 | ||||
| 		} else { | ||||
| 			fmode = st.Mode & 7 | ||||
|  | @ -2308,17 +2303,63 @@ type RemoteIovec struct { | |||
| 
 | ||||
| //sys	PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN
 | ||||
| //sys	PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD
 | ||||
| //sys	PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL
 | ||||
| 
 | ||||
| //sys	shmat(id int, addr uintptr, flag int) (ret uintptr, err error)
 | ||||
| //sys	shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error)
 | ||||
| //sys	shmdt(addr uintptr) (err error)
 | ||||
| //sys	shmget(key int, size int, flag int) (id int, err error)
 | ||||
| 
 | ||||
| //sys	getitimer(which int, currValue *Itimerval) (err error)
 | ||||
| //sys	setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error)
 | ||||
| 
 | ||||
| // MakeItimerval creates an Itimerval from interval and value durations.
 | ||||
| func MakeItimerval(interval, value time.Duration) Itimerval { | ||||
| 	return Itimerval{ | ||||
| 		Interval: NsecToTimeval(interval.Nanoseconds()), | ||||
| 		Value:    NsecToTimeval(value.Nanoseconds()), | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // A value which may be passed to the which parameter for Getitimer and
 | ||||
| // Setitimer.
 | ||||
| type ItimerWhich int | ||||
| 
 | ||||
| // Possible which values for Getitimer and Setitimer.
 | ||||
| const ( | ||||
| 	ItimerReal    ItimerWhich = ITIMER_REAL | ||||
| 	ItimerVirtual ItimerWhich = ITIMER_VIRTUAL | ||||
| 	ItimerProf    ItimerWhich = ITIMER_PROF | ||||
| ) | ||||
| 
 | ||||
| // Getitimer wraps getitimer(2) to return the current value of the timer
 | ||||
| // specified by which.
 | ||||
| func Getitimer(which ItimerWhich) (Itimerval, error) { | ||||
| 	var it Itimerval | ||||
| 	if err := getitimer(int(which), &it); err != nil { | ||||
| 		return Itimerval{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	return it, nil | ||||
| } | ||||
| 
 | ||||
| // Setitimer wraps setitimer(2) to arm or disarm the timer specified by which.
 | ||||
| // It returns the previous value of the timer.
 | ||||
| //
 | ||||
| // If the Itimerval argument is the zero value, the timer will be disarmed.
 | ||||
| func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { | ||||
| 	var prev Itimerval | ||||
| 	if err := setitimer(int(which), &it, &prev); err != nil { | ||||
| 		return Itimerval{}, err | ||||
| 	} | ||||
| 
 | ||||
| 	return prev, nil | ||||
| } | ||||
| 
 | ||||
| /* | ||||
|  * Unimplemented | ||||
|  */ | ||||
| // AfsSyscall
 | ||||
| // Alarm
 | ||||
| // ArchPrctl
 | ||||
| // Brk
 | ||||
| // ClockNanosleep
 | ||||
|  | @ -2334,7 +2375,6 @@ type RemoteIovec struct { | |||
| // GetMempolicy
 | ||||
| // GetRobustList
 | ||||
| // GetThreadArea
 | ||||
| // Getitimer
 | ||||
| // Getpmsg
 | ||||
| // IoCancel
 | ||||
| // IoDestroy
 | ||||
|  | @ -2412,5 +2452,4 @@ type RemoteIovec struct { | |||
| // Vfork
 | ||||
| // Vhangup
 | ||||
| // Vserver
 | ||||
| // Waitid
 | ||||
| // _Sysctl
 | ||||
|  |  | |||
|  | @ -35,8 +35,8 @@ func setTimeval(sec, usec int64) Timeval { | |||
| //sys	Iopl(level int) (err error)
 | ||||
| //sys	Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
 | ||||
| //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
 | ||||
| //sys	setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32
 | ||||
|  | @ -173,14 +173,6 @@ const ( | |||
| 	_SENDMMSG    = 20 | ||||
| ) | ||||
| 
 | ||||
| func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { | ||||
| 	fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) | ||||
| 	if e != 0 { | ||||
| 		err = e | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { | ||||
| 	fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) | ||||
| 	if e != 0 { | ||||
|  |  | |||
|  | @ -0,0 +1,14 @@ | |||
| // Copyright 2022 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.
 | ||||
| 
 | ||||
| //go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64)
 | ||||
| // +build linux
 | ||||
| // +build 386 amd64 mips mipsle mips64 mipsle ppc64 ppc64le ppc s390x sparc64
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| // SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH
 | ||||
| // values.
 | ||||
| 
 | ||||
| //sys	Alarm(seconds uint) (remaining uint, err error)
 | ||||
|  | @ -28,9 +28,10 @@ func Lstat(path string, stat *Stat_t) (err error) { | |||
| 	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) | ||||
| } | ||||
| 
 | ||||
| //sys	MemfdSecret(flags int) (fd int, err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| 
 | ||||
|  | @ -62,7 +63,6 @@ func Stat(path string, stat *Stat_t) (err error) { | |||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error)
 | ||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -27,7 +27,6 @@ func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { | |||
| 	return newoffset, nil | ||||
| } | ||||
| 
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  | @ -97,8 +96,8 @@ func Utime(path string, buf *Utimbuf) error { | |||
| 
 | ||||
| //sys	utimes(path string, times *[2]Timeval) (err error)
 | ||||
| 
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
 | ||||
| //sys	Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,8 +22,9 @@ import "unsafe" | |||
| //sysnb	getrlimit(resource int, rlim *Rlimit) (err error)
 | ||||
| //sysnb	Getuid() (uid int)
 | ||||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	MemfdSecret(flags int) (fd int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| 
 | ||||
|  | @ -66,7 +67,6 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) { | |||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -0,0 +1,226 @@ | |||
| // Copyright 2022 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.
 | ||||
| 
 | ||||
| //go:build loong64 && linux
 | ||||
| // +build loong64,linux
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| import "unsafe" | ||||
| 
 | ||||
| //sys	EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
 | ||||
| //sys	Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
 | ||||
| //sys	Fchown(fd int, uid int, gid int) (err error)
 | ||||
| //sys	Fstatfs(fd int, buf *Statfs_t) (err error)
 | ||||
| //sys	Ftruncate(fd int, length int64) (err error)
 | ||||
| //sysnb	Getegid() (egid int)
 | ||||
| //sysnb	Geteuid() (euid int)
 | ||||
| //sysnb	Getgid() (gid int)
 | ||||
| //sysnb	Getuid() (uid int)
 | ||||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| 
 | ||||
| func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { | ||||
| 	var ts *Timespec | ||||
| 	if timeout != nil { | ||||
| 		ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} | ||||
| 	} | ||||
| 	return Pselect(nfd, r, w, e, ts, nil) | ||||
| } | ||||
| 
 | ||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
 | ||||
| //sys	setfsgid(gid int) (prev int, err error)
 | ||||
| //sys	setfsuid(uid int) (prev int, err error)
 | ||||
| //sysnb	Setregid(rgid int, egid int) (err error)
 | ||||
| //sysnb	Setresgid(rgid int, egid int, sgid int) (err error)
 | ||||
| //sysnb	Setresuid(ruid int, euid int, suid int) (err error)
 | ||||
| //sysnb	Setreuid(ruid int, euid int) (err error)
 | ||||
| //sys	Shutdown(fd int, how int) (err error)
 | ||||
| //sys	Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
 | ||||
| 
 | ||||
| func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { | ||||
| 	return Timespec{ | ||||
| 		Sec:  x.Sec, | ||||
| 		Nsec: int64(x.Nsec), | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| func Fstatat(fd int, path string, stat *Stat_t, flags int) error { | ||||
| 	var r Statx_t | ||||
| 	// Do it the glibc way, add AT_NO_AUTOMOUNT.
 | ||||
| 	if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) | ||||
| 	stat.Ino = r.Ino | ||||
| 	stat.Mode = uint32(r.Mode) | ||||
| 	stat.Nlink = r.Nlink | ||||
| 	stat.Uid = r.Uid | ||||
| 	stat.Gid = r.Gid | ||||
| 	stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) | ||||
| 	// hope we don't get to process files so large to overflow these size
 | ||||
| 	// fields...
 | ||||
| 	stat.Size = int64(r.Size) | ||||
| 	stat.Blksize = int32(r.Blksize) | ||||
| 	stat.Blocks = int64(r.Blocks) | ||||
| 	stat.Atim = timespecFromStatxTimestamp(r.Atime) | ||||
| 	stat.Mtim = timespecFromStatxTimestamp(r.Mtime) | ||||
| 	stat.Ctim = timespecFromStatxTimestamp(r.Ctime) | ||||
| 
 | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func Fstat(fd int, stat *Stat_t) (err error) { | ||||
| 	return Fstatat(fd, "", stat, AT_EMPTY_PATH) | ||||
| } | ||||
| 
 | ||||
| func Stat(path string, stat *Stat_t) (err error) { | ||||
| 	return Fstatat(AT_FDCWD, path, stat, 0) | ||||
| } | ||||
| 
 | ||||
| func Lchown(path string, uid int, gid int) (err error) { | ||||
| 	return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) | ||||
| } | ||||
| 
 | ||||
| func Lstat(path string, stat *Stat_t) (err error) { | ||||
| 	return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) | ||||
| } | ||||
| 
 | ||||
| //sys	Statfs(path string, buf *Statfs_t) (err error)
 | ||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error)
 | ||||
| 
 | ||||
| func Ustat(dev int, ubuf *Ustat_t) (err error) { | ||||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sysnb	getgroups(n int, list *_Gid_t) (nn int, err error)
 | ||||
| //sysnb	setgroups(n int, list *_Gid_t) (err error)
 | ||||
| //sys	getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
 | ||||
| //sys	setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
 | ||||
| //sysnb	socket(domain int, typ int, proto int) (fd int, err error)
 | ||||
| //sysnb	socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
 | ||||
| //sysnb	getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
 | ||||
| //sysnb	getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
 | ||||
| //sys	recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
 | ||||
| //sys	sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
 | ||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
 | ||||
| //sys	mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
 | ||||
| 
 | ||||
| //sysnb	Gettimeofday(tv *Timeval) (err error)
 | ||||
| 
 | ||||
| func setTimespec(sec, nsec int64) Timespec { | ||||
| 	return Timespec{Sec: sec, Nsec: nsec} | ||||
| } | ||||
| 
 | ||||
| func setTimeval(sec, usec int64) Timeval { | ||||
| 	return Timeval{Sec: sec, Usec: usec} | ||||
| } | ||||
| 
 | ||||
| func Getrlimit(resource int, rlim *Rlimit) (err error) { | ||||
| 	err = Prlimit(0, resource, nil, rlim) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Setrlimit(resource int, rlim *Rlimit) (err error) { | ||||
| 	err = Prlimit(0, resource, rlim, nil) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { | ||||
| 	if tv == nil { | ||||
| 		return utimensat(dirfd, path, nil, 0) | ||||
| 	} | ||||
| 
 | ||||
| 	ts := []Timespec{ | ||||
| 		NsecToTimespec(TimevalToNsec(tv[0])), | ||||
| 		NsecToTimespec(TimevalToNsec(tv[1])), | ||||
| 	} | ||||
| 	return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||
| } | ||||
| 
 | ||||
| func Time(t *Time_t) (Time_t, error) { | ||||
| 	var tv Timeval | ||||
| 	err := Gettimeofday(&tv) | ||||
| 	if err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	if t != nil { | ||||
| 		*t = Time_t(tv.Sec) | ||||
| 	} | ||||
| 	return Time_t(tv.Sec), nil | ||||
| } | ||||
| 
 | ||||
| func Utime(path string, buf *Utimbuf) error { | ||||
| 	tv := []Timeval{ | ||||
| 		{Sec: buf.Actime}, | ||||
| 		{Sec: buf.Modtime}, | ||||
| 	} | ||||
| 	return Utimes(path, tv) | ||||
| } | ||||
| 
 | ||||
| func utimes(path string, tv *[2]Timeval) (err error) { | ||||
| 	if tv == nil { | ||||
| 		return utimensat(AT_FDCWD, path, nil, 0) | ||||
| 	} | ||||
| 
 | ||||
| 	ts := []Timespec{ | ||||
| 		NsecToTimespec(TimevalToNsec(tv[0])), | ||||
| 		NsecToTimespec(TimevalToNsec(tv[1])), | ||||
| 	} | ||||
| 	return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) | ||||
| } | ||||
| 
 | ||||
| func (r *PtraceRegs) PC() uint64 { return r.Era } | ||||
| 
 | ||||
| func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } | ||||
| 
 | ||||
| func (iov *Iovec) SetLen(length int) { | ||||
| 	iov.Len = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func (msghdr *Msghdr) SetControllen(length int) { | ||||
| 	msghdr.Controllen = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func (msghdr *Msghdr) SetIovlen(length int) { | ||||
| 	msghdr.Iovlen = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func (cmsg *Cmsghdr) SetLen(length int) { | ||||
| 	cmsg.Len = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { | ||||
| 	rsa.Service_name_len = uint64(length) | ||||
| } | ||||
| 
 | ||||
| func Pause() error { | ||||
| 	_, err := ppoll(nil, 0, nil, nil) | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { | ||||
| 	return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) | ||||
| } | ||||
| 
 | ||||
| //sys	kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error)
 | ||||
| 
 | ||||
| func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { | ||||
| 	cmdlineLen := len(cmdline) | ||||
| 	if cmdlineLen > 0 { | ||||
| 		// Account for the additional NULL byte added by
 | ||||
| 		// BytePtrFromString in kexecFileLoad. The kexec_file_load
 | ||||
| 		// syscall expects a NULL-terminated string.
 | ||||
| 		cmdlineLen++ | ||||
| 	} | ||||
| 	return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) | ||||
| } | ||||
|  | @ -21,8 +21,8 @@ package unix | |||
| //sys	Lchown(path string, uid int, gid int) (err error)
 | ||||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| 
 | ||||
|  | @ -48,7 +48,6 @@ func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err | |||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error)
 | ||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -25,8 +25,8 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||
| //sysnb	Getuid() (uid int)
 | ||||
| //sys	Lchown(path string, uid int, gid int) (err error)
 | ||||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
 | ||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
 | ||||
|  | @ -41,7 +41,6 @@ func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, | |||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
 | ||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -27,8 +27,8 @@ import ( | |||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
 | ||||
| //sys	sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
 | ||||
|  | @ -43,7 +43,6 @@ import ( | |||
| //sys	Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
 | ||||
| //sys	Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
 | ||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -26,8 +26,8 @@ package unix | |||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Lstat(path string, stat *Stat_t) (err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
 | ||||
|  | @ -45,7 +45,6 @@ package unix | |||
| //sys	Statfs(path string, buf *Statfs_t) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error)
 | ||||
| //sys	Ustat(dev int, ubuf *Ustat_t) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -22,8 +22,9 @@ import "unsafe" | |||
| //sysnb	Getrlimit(resource int, rlim *Rlimit) (err error)
 | ||||
| //sysnb	Getuid() (uid int)
 | ||||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	MemfdSecret(flags int) (fd int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| 
 | ||||
| func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { | ||||
|  | @ -65,7 +66,6 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) { | |||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -26,8 +26,8 @@ import ( | |||
| //sys	Lchown(path string, uid int, gid int) (err error)
 | ||||
| //sys	Lstat(path string, stat *Stat_t) (err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
 | ||||
|  | @ -145,15 +145,6 @@ const ( | |||
| 	netSendMMsg    = 20 | ||||
| ) | ||||
| 
 | ||||
| func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) { | ||||
| 	args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} | ||||
| 	fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0) | ||||
| 	if err != 0 { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	return int(fd), nil | ||||
| } | ||||
| 
 | ||||
| func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { | ||||
| 	args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} | ||||
| 	fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) | ||||
|  |  | |||
|  | @ -23,8 +23,8 @@ package unix | |||
| //sys	Listen(s int, n int) (err error)
 | ||||
| //sys	Lstat(path string, stat *Stat_t) (err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
 | ||||
| //sys	Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error)
 | ||||
| //sys	Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
 | ||||
| //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
 | ||||
|  | @ -42,7 +42,6 @@ package unix | |||
| //sys	Statfs(path string, buf *Statfs_t) (err error)
 | ||||
| //sys	SyncFileRange(fd int, off int64, n int64, flags int) (err error)
 | ||||
| //sys	Truncate(path string, length int64) (err error)
 | ||||
| //sys	accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
 | ||||
| //sys	accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
 | ||||
| //sys	bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
| //sys	connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
 | ||||
|  |  | |||
|  | @ -163,11 +163,6 @@ func sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| 	return -1, ENOSYS | ||||
| } | ||||
| 
 | ||||
| func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||
| 	// used on Darwin for UtimesNano
 | ||||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	ioctl(fd int, req uint, arg uintptr) (err error)
 | ||||
| 
 | ||||
| //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
 | ||||
|  | @ -313,8 +308,8 @@ func Statvfs(path string, buf *Statvfs_t) (err error) { | |||
| //sys	Open(path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Pathconf(path string, name int) (val int, err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	read(fd int, p []byte) (n int, err error)
 | ||||
| //sys	Readlink(path string, buf []byte) (n int, err error)
 | ||||
| //sys	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
 | ||||
|  |  | |||
|  | @ -81,6 +81,7 @@ func Pipe(p []int) (err error) { | |||
| } | ||||
| 
 | ||||
| //sysnb	pipe2(p *[2]_C_int, flags int) (err error)
 | ||||
| 
 | ||||
| func Pipe2(p []int, flags int) error { | ||||
| 	if len(p) != 2 { | ||||
| 		return EINVAL | ||||
|  | @ -95,6 +96,7 @@ func Pipe2(p []int, flags int) error { | |||
| } | ||||
| 
 | ||||
| //sys	Getdents(fd int, buf []byte) (n int, err error)
 | ||||
| 
 | ||||
| func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| 	n, err = Getdents(fd, buf) | ||||
| 	if err != nil || basep == nil { | ||||
|  | @ -149,11 +151,6 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| func setattrlistTimes(path string, times []Timespec, flags int) error { | ||||
| 	// used on Darwin for UtimesNano
 | ||||
| 	return ENOSYS | ||||
| } | ||||
| 
 | ||||
| //sys	ioctl(fd int, req uint, arg uintptr) (err error)
 | ||||
| 
 | ||||
| //sys	sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL
 | ||||
|  | @ -274,8 +271,8 @@ func Uname(uname *Utsname) error { | |||
| //sys	Open(path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error)
 | ||||
| //sys	Pathconf(path string, name int) (val int, err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	read(fd int, p []byte) (n int, err error)
 | ||||
| //sys	Readlink(path string, buf []byte) (n int, err error)
 | ||||
| //sys	Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
 | ||||
|  |  | |||
|  | @ -26,6 +26,10 @@ func (msghdr *Msghdr) SetControllen(length int) { | |||
| 	msghdr.Controllen = uint32(length) | ||||
| } | ||||
| 
 | ||||
| func (msghdr *Msghdr) SetIovlen(length int) { | ||||
| 	msghdr.Iovlen = uint32(length) | ||||
| } | ||||
| 
 | ||||
| func (cmsg *Cmsghdr) SetLen(length int) { | ||||
| 	cmsg.Len = uint32(length) | ||||
| } | ||||
|  |  | |||
|  | @ -451,77 +451,59 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) { | |||
| 
 | ||||
| //sys	recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg
 | ||||
| 
 | ||||
| func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	var rsa RawSockaddrAny | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(&rsa)) | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(rsa)) | ||||
| 	msg.Namelen = uint32(SizeofSockaddrAny) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = (*int8)(unsafe.Pointer(&p[0])) | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy int8 | ||||
| 	var dummy byte | ||||
| 	if len(oob) > 0 { | ||||
| 		// receive at least one normal byte
 | ||||
| 		if len(p) == 0 { | ||||
| 			iov.Base = &dummy | ||||
| 			iov.SetLen(1) | ||||
| 		if emptyIovecs(iov) { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Accrightslen = int32(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = recvmsg(fd, &msg, flags); n == -1 { | ||||
| 		return | ||||
| 	} | ||||
| 	oobn = int(msg.Accrightslen) | ||||
| 	// source address is only specified if the socket is unconnected
 | ||||
| 	if rsa.Addr.Family != AF_UNSPEC { | ||||
| 		from, err = anyToSockaddr(fd, &rsa) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { | ||||
| 	_, err = SendmsgN(fd, p, oob, to, flags) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| //sys	sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg
 | ||||
| 
 | ||||
| func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	var ptr unsafe.Pointer | ||||
| 	var salen _Socklen | ||||
| 	if to != nil { | ||||
| 		ptr, salen, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 	} | ||||
| func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { | ||||
| 	var msg Msghdr | ||||
| 	msg.Name = (*byte)(unsafe.Pointer(ptr)) | ||||
| 	msg.Namelen = uint32(salen) | ||||
| 	var iov Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov.Base = (*int8)(unsafe.Pointer(&p[0])) | ||||
| 		iov.SetLen(len(p)) | ||||
| 	} | ||||
| 	var dummy int8 | ||||
| 	var dummy byte | ||||
| 	var empty bool | ||||
| 	if len(oob) > 0 { | ||||
| 		// send at least one normal byte
 | ||||
| 		if len(p) == 0 { | ||||
| 			iov.Base = &dummy | ||||
| 			iov.SetLen(1) | ||||
| 		empty = emptyIovecs(iov) | ||||
| 		if empty { | ||||
| 			var iova [1]Iovec | ||||
| 			iova[0].Base = &dummy | ||||
| 			iova[0].SetLen(1) | ||||
| 			iov = iova[:] | ||||
| 		} | ||||
| 		msg.Accrightslen = int32(len(oob)) | ||||
| 	} | ||||
| 	msg.Iov = &iov | ||||
| 	msg.Iovlen = 1 | ||||
| 	if len(iov) > 0 { | ||||
| 		msg.Iov = &iov[0] | ||||
| 		msg.SetIovlen(len(iov)) | ||||
| 	} | ||||
| 	if n, err = sendmsg(fd, &msg, flags); err != nil { | ||||
| 		return 0, err | ||||
| 	} | ||||
| 	if len(oob) > 0 && len(p) == 0 { | ||||
| 	if len(oob) > 0 && empty { | ||||
| 		n = 0 | ||||
| 	} | ||||
| 	return n, nil | ||||
|  | @ -636,6 +618,7 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| //sys	Getpriority(which int, who int) (n int, err error)
 | ||||
| //sysnb	Getrlimit(which int, lim *Rlimit) (err error)
 | ||||
| //sysnb	Getrusage(who int, rusage *Rusage) (err error)
 | ||||
| //sysnb	Getsid(pid int) (sid int, err error)
 | ||||
| //sysnb	Gettimeofday(tv *Timeval) (err error)
 | ||||
| //sysnb	Getuid() (uid int)
 | ||||
| //sys	Kill(pid int, signum syscall.Signal) (err error)
 | ||||
|  | @ -661,8 +644,8 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e | |||
| //sys	Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error)
 | ||||
| //sys	Pathconf(path string, name int) (val int, err error)
 | ||||
| //sys	Pause() (err error)
 | ||||
| //sys	Pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	Pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pread(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	pwrite(fd int, p []byte, offset int64) (n int, err error)
 | ||||
| //sys	read(fd int, p []byte) (n int, err error)
 | ||||
| //sys	Readlink(path string, buf []byte) (n int, err error)
 | ||||
| //sys	Rename(from string, to string) (err error)
 | ||||
|  | @ -755,8 +738,20 @@ type fileObjCookie struct { | |||
| type EventPort struct { | ||||
| 	port  int | ||||
| 	mu    sync.Mutex | ||||
| 	fds   map[uintptr]interface{} | ||||
| 	fds   map[uintptr]*fileObjCookie | ||||
| 	paths map[string]*fileObjCookie | ||||
| 	// The user cookie presents an interesting challenge from a memory management perspective.
 | ||||
| 	// There are two paths by which we can discover that it is no longer in use:
 | ||||
| 	// 1. The user calls port_dissociate before any events fire
 | ||||
| 	// 2. An event fires and we return it to the user
 | ||||
| 	// The tricky situation is if the event has fired in the kernel but
 | ||||
| 	// the user hasn't requested/received it yet.
 | ||||
| 	// If the user wants to port_dissociate before the event has been processed,
 | ||||
| 	// we should handle things gracefully. To do so, we need to keep an extra
 | ||||
| 	// reference to the cookie around until the event is processed
 | ||||
| 	// thus the otherwise seemingly extraneous "cookies" map
 | ||||
| 	// The key of this map is a pointer to the corresponding &fCookie.cookie
 | ||||
| 	cookies map[*interface{}]*fileObjCookie | ||||
| } | ||||
| 
 | ||||
| // PortEvent is an abstraction of the port_event C struct.
 | ||||
|  | @ -780,9 +775,10 @@ func NewEventPort() (*EventPort, error) { | |||
| 		return nil, err | ||||
| 	} | ||||
| 	e := &EventPort{ | ||||
| 		port:  port, | ||||
| 		fds:   make(map[uintptr]interface{}), | ||||
| 		paths: make(map[string]*fileObjCookie), | ||||
| 		port:    port, | ||||
| 		fds:     make(map[uintptr]*fileObjCookie), | ||||
| 		paths:   make(map[string]*fileObjCookie), | ||||
| 		cookies: make(map[*interface{}]*fileObjCookie), | ||||
| 	} | ||||
| 	return e, nil | ||||
| } | ||||
|  | @ -797,9 +793,13 @@ func NewEventPort() (*EventPort, error) { | |||
| func (e *EventPort) Close() error { | ||||
| 	e.mu.Lock() | ||||
| 	defer e.mu.Unlock() | ||||
| 	err := Close(e.port) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	e.fds = nil | ||||
| 	e.paths = nil | ||||
| 	return Close(e.port) | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // PathIsWatched checks to see if path is associated with this EventPort.
 | ||||
|  | @ -836,6 +836,7 @@ func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, coo | |||
| 		return err | ||||
| 	} | ||||
| 	e.paths[path] = fCookie | ||||
| 	e.cookies[&fCookie.cookie] = fCookie | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | @ -848,11 +849,19 @@ func (e *EventPort) DissociatePath(path string) error { | |||
| 		return fmt.Errorf("%v is not associated with this Event Port", path) | ||||
| 	} | ||||
| 	_, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) | ||||
| 	if err != nil { | ||||
| 	// If the path is no longer associated with this event port (ENOENT)
 | ||||
| 	// we should delete it from our map. We can still return ENOENT to the caller.
 | ||||
| 	// But we need to save the cookie
 | ||||
| 	if err != nil && err != ENOENT { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err == nil { | ||||
| 		// dissociate was successful, safe to delete the cookie
 | ||||
| 		fCookie := e.paths[path] | ||||
| 		delete(e.cookies, &fCookie.cookie) | ||||
| 	} | ||||
| 	delete(e.paths, path) | ||||
| 	return nil | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| // AssociateFd wraps calls to port_associate(3c) on file descriptors.
 | ||||
|  | @ -862,12 +871,13 @@ func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) erro | |||
| 	if _, found := e.fds[fd]; found { | ||||
| 		return fmt.Errorf("%v is already associated with this Event Port", fd) | ||||
| 	} | ||||
| 	pcookie := &cookie | ||||
| 	_, err := port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(pcookie))) | ||||
| 	fCookie := &fileObjCookie{nil, cookie} | ||||
| 	_, err := port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(&fCookie.cookie))) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	e.fds[fd] = pcookie | ||||
| 	e.fds[fd] = fCookie | ||||
| 	e.cookies[&fCookie.cookie] = fCookie | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
|  | @ -880,11 +890,16 @@ func (e *EventPort) DissociateFd(fd uintptr) error { | |||
| 		return fmt.Errorf("%v is not associated with this Event Port", fd) | ||||
| 	} | ||||
| 	_, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) | ||||
| 	if err != nil { | ||||
| 	if err != nil && err != ENOENT { | ||||
| 		return err | ||||
| 	} | ||||
| 	if err == nil { | ||||
| 		// dissociate was successful, safe to delete the cookie
 | ||||
| 		fCookie := e.fds[fd] | ||||
| 		delete(e.cookies, &fCookie.cookie) | ||||
| 	} | ||||
| 	delete(e.fds, fd) | ||||
| 	return nil | ||||
| 	return err | ||||
| } | ||||
| 
 | ||||
| func createFileObj(name string, stat os.FileInfo) (*fileObj, error) { | ||||
|  | @ -912,26 +927,48 @@ func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { | |||
| 		return nil, err | ||||
| 	} | ||||
| 	p := new(PortEvent) | ||||
| 	p.Events = pe.Events | ||||
| 	p.Source = pe.Source | ||||
| 	e.mu.Lock() | ||||
| 	defer e.mu.Unlock() | ||||
| 	switch pe.Source { | ||||
| 	case PORT_SOURCE_FD: | ||||
| 		p.Fd = uintptr(pe.Object) | ||||
| 		cookie := (*interface{})(unsafe.Pointer(pe.User)) | ||||
| 		p.Cookie = *cookie | ||||
| 		delete(e.fds, p.Fd) | ||||
| 	case PORT_SOURCE_FILE: | ||||
| 		p.fobj = (*fileObj)(unsafe.Pointer(uintptr(pe.Object))) | ||||
| 		p.Path = BytePtrToString((*byte)(unsafe.Pointer(p.fobj.Name))) | ||||
| 		cookie := (*interface{})(unsafe.Pointer(pe.User)) | ||||
| 		p.Cookie = *cookie | ||||
| 		delete(e.paths, p.Path) | ||||
| 	} | ||||
| 	e.peIntToExt(pe, p) | ||||
| 	return p, nil | ||||
| } | ||||
| 
 | ||||
| // peIntToExt converts a cgo portEvent struct into the friendlier PortEvent
 | ||||
| // NOTE: Always call this function while holding the e.mu mutex
 | ||||
| func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) { | ||||
| 	peExt.Events = peInt.Events | ||||
| 	peExt.Source = peInt.Source | ||||
| 	cookie := (*interface{})(unsafe.Pointer(peInt.User)) | ||||
| 	peExt.Cookie = *cookie | ||||
| 	switch peInt.Source { | ||||
| 	case PORT_SOURCE_FD: | ||||
| 		delete(e.cookies, cookie) | ||||
| 		peExt.Fd = uintptr(peInt.Object) | ||||
| 		// Only remove the fds entry if it exists and this cookie matches
 | ||||
| 		if fobj, ok := e.fds[peExt.Fd]; ok { | ||||
| 			if &fobj.cookie == cookie { | ||||
| 				delete(e.fds, peExt.Fd) | ||||
| 			} | ||||
| 		} | ||||
| 	case PORT_SOURCE_FILE: | ||||
| 		if fCookie, ok := e.cookies[cookie]; ok && uintptr(unsafe.Pointer(fCookie.fobj)) == uintptr(peInt.Object) { | ||||
| 			// Use our stashed reference rather than using unsafe on what we got back
 | ||||
| 			// the unsafe version would be (*fileObj)(unsafe.Pointer(uintptr(peInt.Object)))
 | ||||
| 			peExt.fobj = fCookie.fobj | ||||
| 		} else { | ||||
| 			panic("mismanaged memory") | ||||
| 		} | ||||
| 		delete(e.cookies, cookie) | ||||
| 		peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) | ||||
| 		// Only remove the paths entry if it exists and this cookie matches
 | ||||
| 		if fobj, ok := e.paths[peExt.Path]; ok { | ||||
| 			if &fobj.cookie == cookie { | ||||
| 				delete(e.paths, peExt.Path) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // Pending wraps port_getn(3c) and returns how many events are pending.
 | ||||
| func (e *EventPort) Pending() (int, error) { | ||||
| 	var n uint32 = 0 | ||||
|  | @ -962,21 +999,7 @@ func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) | |||
| 	e.mu.Lock() | ||||
| 	defer e.mu.Unlock() | ||||
| 	for i := 0; i < int(got); i++ { | ||||
| 		s[i].Events = ps[i].Events | ||||
| 		s[i].Source = ps[i].Source | ||||
| 		switch ps[i].Source { | ||||
| 		case PORT_SOURCE_FD: | ||||
| 			s[i].Fd = uintptr(ps[i].Object) | ||||
| 			cookie := (*interface{})(unsafe.Pointer(ps[i].User)) | ||||
| 			s[i].Cookie = *cookie | ||||
| 			delete(e.fds, s[i].Fd) | ||||
| 		case PORT_SOURCE_FILE: | ||||
| 			s[i].fobj = (*fileObj)(unsafe.Pointer(uintptr(ps[i].Object))) | ||||
| 			s[i].Path = BytePtrToString((*byte)(unsafe.Pointer(s[i].fobj.Name))) | ||||
| 			cookie := (*interface{})(unsafe.Pointer(ps[i].User)) | ||||
| 			s[i].Cookie = *cookie | ||||
| 			delete(e.paths, s[i].Path) | ||||
| 		} | ||||
| 		e.peIntToExt(&ps[i], &s[i]) | ||||
| 	} | ||||
| 	return int(got), err | ||||
| } | ||||
|  |  | |||
|  | @ -177,6 +177,30 @@ func Write(fd int, p []byte) (n int, err error) { | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	n, err = pread(fd, p, offset) | ||||
| 	if raceenabled { | ||||
| 		if n > 0 { | ||||
| 			raceWriteRange(unsafe.Pointer(&p[0]), n) | ||||
| 		} | ||||
| 		if err == nil { | ||||
| 			raceAcquire(unsafe.Pointer(&ioSync)) | ||||
| 		} | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	if raceenabled { | ||||
| 		raceReleaseMerge(unsafe.Pointer(&ioSync)) | ||||
| 	} | ||||
| 	n, err = pwrite(fd, p, offset) | ||||
| 	if raceenabled && n > 0 { | ||||
| 		raceReadRange(unsafe.Pointer(&p[0]), n) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // For testing: clients can set this flag to force
 | ||||
| // creation of IPv6 sockets to return EAFNOSUPPORT.
 | ||||
| var SocketDisableIPv6 bool | ||||
|  | @ -313,6 +337,93 @@ func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { | |||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| 	var iov [1]Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov[0].Base = &p[0] | ||||
| 		iov[0].SetLen(len(p)) | ||||
| 	} | ||||
| 	var rsa RawSockaddrAny | ||||
| 	n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) | ||||
| 	// source address is only specified if the socket is unconnected
 | ||||
| 	if rsa.Addr.Family != AF_UNSPEC { | ||||
| 		from, err = anyToSockaddr(fd, &rsa) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // RecvmsgBuffers receives a message from a socket using the recvmsg
 | ||||
| // system call. The flags are passed to recvmsg. Any non-control data
 | ||||
| // read is scattered into the buffers slices. The results are:
 | ||||
| //   - n is the number of non-control data read into bufs
 | ||||
| //   - oobn is the number of control data read into oob; this may be interpreted using [ParseSocketControlMessage]
 | ||||
| //   - recvflags is flags returned by recvmsg
 | ||||
| //   - from is the address of the sender
 | ||||
| func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { | ||||
| 	iov := make([]Iovec, len(buffers)) | ||||
| 	for i := range buffers { | ||||
| 		if len(buffers[i]) > 0 { | ||||
| 			iov[i].Base = &buffers[i][0] | ||||
| 			iov[i].SetLen(len(buffers[i])) | ||||
| 		} else { | ||||
| 			iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) | ||||
| 		} | ||||
| 	} | ||||
| 	var rsa RawSockaddrAny | ||||
| 	n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) | ||||
| 	if err == nil && rsa.Addr.Family != AF_UNSPEC { | ||||
| 		from, err = anyToSockaddr(fd, &rsa) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { | ||||
| 	_, err = SendmsgN(fd, p, oob, to, flags) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	var iov [1]Iovec | ||||
| 	if len(p) > 0 { | ||||
| 		iov[0].Base = &p[0] | ||||
| 		iov[0].SetLen(len(p)) | ||||
| 	} | ||||
| 	var ptr unsafe.Pointer | ||||
| 	var salen _Socklen | ||||
| 	if to != nil { | ||||
| 		ptr, salen, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 	} | ||||
| 	return sendmsgN(fd, iov[:], oob, ptr, salen, flags) | ||||
| } | ||||
| 
 | ||||
| // SendmsgBuffers sends a message on a socket to an address using the sendmsg
 | ||||
| // system call. The flags are passed to sendmsg. Any non-control data written
 | ||||
| // is gathered from buffers. The function returns the number of bytes written
 | ||||
| // to the socket.
 | ||||
| func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { | ||||
| 	iov := make([]Iovec, len(buffers)) | ||||
| 	for i := range buffers { | ||||
| 		if len(buffers[i]) > 0 { | ||||
| 			iov[i].Base = &buffers[i][0] | ||||
| 			iov[i].SetLen(len(buffers[i])) | ||||
| 		} else { | ||||
| 			iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) | ||||
| 		} | ||||
| 	} | ||||
| 	var ptr unsafe.Pointer | ||||
| 	var salen _Socklen | ||||
| 	if to != nil { | ||||
| 		ptr, salen, err = to.sockaddr() | ||||
| 		if err != nil { | ||||
| 			return 0, err | ||||
| 		} | ||||
| 	} | ||||
| 	return sendmsgN(fd, iov, oob, ptr, salen, flags) | ||||
| } | ||||
| 
 | ||||
| func Send(s int, buf []byte, flags int) (err error) { | ||||
| 	return sendto(s, buf, flags, nil, 0) | ||||
| } | ||||
|  | @ -433,3 +544,13 @@ func Lutimes(path string, tv []Timeval) error { | |||
| 	} | ||||
| 	return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) | ||||
| } | ||||
| 
 | ||||
| // emptyIovec reports whether there are no bytes in the slice of Iovec.
 | ||||
| func emptyIovecs(iov []Iovec) bool { | ||||
| 	for i := range iov { | ||||
| 		if iov[i].Len > 0 { | ||||
| 			return false | ||||
| 		} | ||||
| 	} | ||||
| 	return true | ||||
| } | ||||
|  |  | |||
|  | @ -151,6 +151,7 @@ const ( | |||
| 	BIOCSETF                       = 0x80084267 | ||||
| 	BIOCSETFNR                     = 0x80084282 | ||||
| 	BIOCSETIF                      = 0x8020426c | ||||
| 	BIOCSETVLANPCP                 = 0x80044285 | ||||
| 	BIOCSETWF                      = 0x8008427b | ||||
| 	BIOCSETZBUF                    = 0x800c4281 | ||||
| 	BIOCSHDRCMPLT                  = 0x80044275 | ||||
|  | @ -447,7 +448,7 @@ const ( | |||
| 	DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1 | ||||
| 	DLT_INFINIBAND                 = 0xf7 | ||||
| 	DLT_IPFILTER                   = 0x74 | ||||
| 	DLT_IPMB                       = 0xc7 | ||||
| 	DLT_IPMB_KONTRON               = 0xc7 | ||||
| 	DLT_IPMB_LINUX                 = 0xd1 | ||||
| 	DLT_IPMI_HPM_2                 = 0x104 | ||||
| 	DLT_IPNET                      = 0xe2 | ||||
|  | @ -487,10 +488,11 @@ const ( | |||
| 	DLT_LINUX_LAPD                 = 0xb1 | ||||
| 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6 | ||||
| 	DLT_LINUX_SLL                  = 0x71 | ||||
| 	DLT_LINUX_SLL2                 = 0x114 | ||||
| 	DLT_LOOP                       = 0x6c | ||||
| 	DLT_LORATAP                    = 0x10e | ||||
| 	DLT_LTALK                      = 0x72 | ||||
| 	DLT_MATCHING_MAX               = 0x113 | ||||
| 	DLT_MATCHING_MAX               = 0x114 | ||||
| 	DLT_MATCHING_MIN               = 0x68 | ||||
| 	DLT_MFR                        = 0xb6 | ||||
| 	DLT_MOST                       = 0xd3 | ||||
|  | @ -734,6 +736,7 @@ const ( | |||
| 	IPPROTO_CMTP                   = 0x26 | ||||
| 	IPPROTO_CPHB                   = 0x49 | ||||
| 	IPPROTO_CPNX                   = 0x48 | ||||
| 	IPPROTO_DCCP                   = 0x21 | ||||
| 	IPPROTO_DDP                    = 0x25 | ||||
| 	IPPROTO_DGP                    = 0x56 | ||||
| 	IPPROTO_DIVERT                 = 0x102 | ||||
|  | @ -814,7 +817,6 @@ const ( | |||
| 	IPPROTO_SCTP                   = 0x84 | ||||
| 	IPPROTO_SDRP                   = 0x2a | ||||
| 	IPPROTO_SEND                   = 0x103 | ||||
| 	IPPROTO_SEP                    = 0x21 | ||||
| 	IPPROTO_SHIM6                  = 0x8c | ||||
| 	IPPROTO_SKIP                   = 0x39 | ||||
| 	IPPROTO_SPACER                 = 0x7fff | ||||
|  | @ -911,6 +913,7 @@ const ( | |||
| 	IPV6_V6ONLY                    = 0x1b | ||||
| 	IPV6_VERSION                   = 0x60 | ||||
| 	IPV6_VERSION_MASK              = 0xf0 | ||||
| 	IPV6_VLAN_PCP                  = 0x4b | ||||
| 	IP_ADD_MEMBERSHIP              = 0xc | ||||
| 	IP_ADD_SOURCE_MEMBERSHIP       = 0x46 | ||||
| 	IP_BINDANY                     = 0x18 | ||||
|  | @ -989,8 +992,12 @@ const ( | |||
| 	IP_TOS                         = 0x3 | ||||
| 	IP_TTL                         = 0x4 | ||||
| 	IP_UNBLOCK_SOURCE              = 0x49 | ||||
| 	IP_VLAN_PCP                    = 0x4b | ||||
| 	ISIG                           = 0x80 | ||||
| 	ISTRIP                         = 0x20 | ||||
| 	ITIMER_PROF                    = 0x2 | ||||
| 	ITIMER_REAL                    = 0x0 | ||||
| 	ITIMER_VIRTUAL                 = 0x1 | ||||
| 	IXANY                          = 0x800 | ||||
| 	IXOFF                          = 0x400 | ||||
| 	IXON                           = 0x200 | ||||
|  | @ -1000,7 +1007,6 @@ const ( | |||
| 	KERN_VERSION                   = 0x4 | ||||
| 	LOCAL_CONNWAIT                 = 0x4 | ||||
| 	LOCAL_CREDS                    = 0x2 | ||||
| 	LOCAL_CREDS_PERSISTENT         = 0x3 | ||||
| 	LOCAL_PEERCRED                 = 0x1 | ||||
| 	LOCAL_VENDOR                   = 0x80000000 | ||||
| 	LOCK_EX                        = 0x2 | ||||
|  | @ -1179,6 +1185,8 @@ const ( | |||
| 	O_NONBLOCK                     = 0x4 | ||||
| 	O_RDONLY                       = 0x0 | ||||
| 	O_RDWR                         = 0x2 | ||||
| 	O_RESOLVE_BENEATH              = 0x800000 | ||||
| 	O_SEARCH                       = 0x40000 | ||||
| 	O_SHLOCK                       = 0x10 | ||||
| 	O_SYNC                         = 0x80 | ||||
| 	O_TRUNC                        = 0x400 | ||||
|  | @ -1189,6 +1197,10 @@ const ( | |||
| 	PARMRK                         = 0x8 | ||||
| 	PARODD                         = 0x2000 | ||||
| 	PENDIN                         = 0x20000000 | ||||
| 	PIOD_READ_D                    = 0x1 | ||||
| 	PIOD_READ_I                    = 0x3 | ||||
| 	PIOD_WRITE_D                   = 0x2 | ||||
| 	PIOD_WRITE_I                   = 0x4 | ||||
| 	PRIO_PGRP                      = 0x1 | ||||
| 	PRIO_PROCESS                   = 0x0 | ||||
| 	PRIO_USER                      = 0x2 | ||||
|  | @ -1196,6 +1208,60 @@ const ( | |||
| 	PROT_NONE                      = 0x0 | ||||
| 	PROT_READ                      = 0x1 | ||||
| 	PROT_WRITE                     = 0x2 | ||||
| 	PTRACE_DEFAULT                 = 0x1 | ||||
| 	PTRACE_EXEC                    = 0x1 | ||||
| 	PTRACE_FORK                    = 0x8 | ||||
| 	PTRACE_LWP                     = 0x10 | ||||
| 	PTRACE_SCE                     = 0x2 | ||||
| 	PTRACE_SCX                     = 0x4 | ||||
| 	PTRACE_SYSCALL                 = 0x6 | ||||
| 	PTRACE_VFORK                   = 0x20 | ||||
| 	PT_ATTACH                      = 0xa | ||||
| 	PT_CLEARSTEP                   = 0x10 | ||||
| 	PT_CONTINUE                    = 0x7 | ||||
| 	PT_DETACH                      = 0xb | ||||
| 	PT_FIRSTMACH                   = 0x40 | ||||
| 	PT_FOLLOW_FORK                 = 0x17 | ||||
| 	PT_GETDBREGS                   = 0x25 | ||||
| 	PT_GETFPREGS                   = 0x23 | ||||
| 	PT_GETFSBASE                   = 0x47 | ||||
| 	PT_GETGSBASE                   = 0x49 | ||||
| 	PT_GETLWPLIST                  = 0xf | ||||
| 	PT_GETNUMLWPS                  = 0xe | ||||
| 	PT_GETREGS                     = 0x21 | ||||
| 	PT_GETXMMREGS                  = 0x40 | ||||
| 	PT_GETXSTATE                   = 0x45 | ||||
| 	PT_GETXSTATE_INFO              = 0x44 | ||||
| 	PT_GET_EVENT_MASK              = 0x19 | ||||
| 	PT_GET_SC_ARGS                 = 0x1b | ||||
| 	PT_GET_SC_RET                  = 0x1c | ||||
| 	PT_IO                          = 0xc | ||||
| 	PT_KILL                        = 0x8 | ||||
| 	PT_LWPINFO                     = 0xd | ||||
| 	PT_LWP_EVENTS                  = 0x18 | ||||
| 	PT_READ_D                      = 0x2 | ||||
| 	PT_READ_I                      = 0x1 | ||||
| 	PT_RESUME                      = 0x13 | ||||
| 	PT_SETDBREGS                   = 0x26 | ||||
| 	PT_SETFPREGS                   = 0x24 | ||||
| 	PT_SETFSBASE                   = 0x48 | ||||
| 	PT_SETGSBASE                   = 0x4a | ||||
| 	PT_SETREGS                     = 0x22 | ||||
| 	PT_SETSTEP                     = 0x11 | ||||
| 	PT_SETXMMREGS                  = 0x41 | ||||
| 	PT_SETXSTATE                   = 0x46 | ||||
| 	PT_SET_EVENT_MASK              = 0x1a | ||||
| 	PT_STEP                        = 0x9 | ||||
| 	PT_SUSPEND                     = 0x12 | ||||
| 	PT_SYSCALL                     = 0x16 | ||||
| 	PT_TO_SCE                      = 0x14 | ||||
| 	PT_TO_SCX                      = 0x15 | ||||
| 	PT_TRACE_ME                    = 0x0 | ||||
| 	PT_VM_ENTRY                    = 0x29 | ||||
| 	PT_VM_TIMESTAMP                = 0x28 | ||||
| 	PT_WRITE_D                     = 0x5 | ||||
| 	PT_WRITE_I                     = 0x4 | ||||
| 	P_ZONEID                       = 0xc | ||||
| 	RLIMIT_AS                      = 0xa | ||||
| 	RLIMIT_CORE                    = 0x4 | ||||
| 	RLIMIT_CPU                     = 0x0 | ||||
|  | @ -1320,10 +1386,12 @@ const ( | |||
| 	SIOCGHWADDR                    = 0xc020693e | ||||
| 	SIOCGI2C                       = 0xc020693d | ||||
| 	SIOCGIFADDR                    = 0xc0206921 | ||||
| 	SIOCGIFALIAS                   = 0xc044692d | ||||
| 	SIOCGIFBRDADDR                 = 0xc0206923 | ||||
| 	SIOCGIFCAP                     = 0xc020691f | ||||
| 	SIOCGIFCONF                    = 0xc0086924 | ||||
| 	SIOCGIFDESCR                   = 0xc020692a | ||||
| 	SIOCGIFDOWNREASON              = 0xc058699a | ||||
| 	SIOCGIFDSTADDR                 = 0xc0206922 | ||||
| 	SIOCGIFFIB                     = 0xc020695c | ||||
| 	SIOCGIFFLAGS                   = 0xc0206911 | ||||
|  | @ -1414,6 +1482,7 @@ const ( | |||
| 	SO_RCVBUF                      = 0x1002 | ||||
| 	SO_RCVLOWAT                    = 0x1004 | ||||
| 	SO_RCVTIMEO                    = 0x1006 | ||||
| 	SO_RERROR                      = 0x20000 | ||||
| 	SO_REUSEADDR                   = 0x4 | ||||
| 	SO_REUSEPORT                   = 0x200 | ||||
| 	SO_REUSEPORT_LB                = 0x10000 | ||||
|  | @ -1472,22 +1541,40 @@ const ( | |||
| 	TCOFLUSH                       = 0x2 | ||||
| 	TCOOFF                         = 0x1 | ||||
| 	TCOON                          = 0x2 | ||||
| 	TCPOPT_EOL                     = 0x0 | ||||
| 	TCPOPT_FAST_OPEN               = 0x22 | ||||
| 	TCPOPT_MAXSEG                  = 0x2 | ||||
| 	TCPOPT_NOP                     = 0x1 | ||||
| 	TCPOPT_PAD                     = 0x0 | ||||
| 	TCPOPT_SACK                    = 0x5 | ||||
| 	TCPOPT_SACK_PERMITTED          = 0x4 | ||||
| 	TCPOPT_SIGNATURE               = 0x13 | ||||
| 	TCPOPT_TIMESTAMP               = 0x8 | ||||
| 	TCPOPT_WINDOW                  = 0x3 | ||||
| 	TCP_BBR_ACK_COMP_ALG           = 0x448 | ||||
| 	TCP_BBR_ALGORITHM              = 0x43b | ||||
| 	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c | ||||
| 	TCP_BBR_DRAIN_PG               = 0x42e | ||||
| 	TCP_BBR_EXTRA_GAIN             = 0x449 | ||||
| 	TCP_BBR_EXTRA_STATE            = 0x453 | ||||
| 	TCP_BBR_FLOOR_MIN_TSO          = 0x454 | ||||
| 	TCP_BBR_HDWR_PACE              = 0x451 | ||||
| 	TCP_BBR_HOLD_TARGET            = 0x436 | ||||
| 	TCP_BBR_IWINTSO                = 0x42b | ||||
| 	TCP_BBR_LOWGAIN_FD             = 0x436 | ||||
| 	TCP_BBR_LOWGAIN_HALF           = 0x435 | ||||
| 	TCP_BBR_LOWGAIN_THRESH         = 0x434 | ||||
| 	TCP_BBR_MAX_RTO                = 0x439 | ||||
| 	TCP_BBR_MIN_RTO                = 0x438 | ||||
| 	TCP_BBR_MIN_TOPACEOUT          = 0x455 | ||||
| 	TCP_BBR_ONE_RETRAN             = 0x431 | ||||
| 	TCP_BBR_PACE_CROSS             = 0x442 | ||||
| 	TCP_BBR_PACE_DEL_TAR           = 0x43f | ||||
| 	TCP_BBR_PACE_OH                = 0x435 | ||||
| 	TCP_BBR_PACE_PER_SEC           = 0x43e | ||||
| 	TCP_BBR_PACE_SEG_MAX           = 0x440 | ||||
| 	TCP_BBR_PACE_SEG_MIN           = 0x441 | ||||
| 	TCP_BBR_POLICER_DETECT         = 0x457 | ||||
| 	TCP_BBR_PROBE_RTT_GAIN         = 0x44d | ||||
| 	TCP_BBR_PROBE_RTT_INT          = 0x430 | ||||
| 	TCP_BBR_PROBE_RTT_LEN          = 0x44e | ||||
|  | @ -1496,12 +1583,18 @@ const ( | |||
| 	TCP_BBR_REC_OVER_HPTS          = 0x43a | ||||
| 	TCP_BBR_RETRAN_WTSO            = 0x44b | ||||
| 	TCP_BBR_RWND_IS_APP            = 0x42f | ||||
| 	TCP_BBR_SEND_IWND_IN_TSO       = 0x44f | ||||
| 	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d | ||||
| 	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432 | ||||
| 	TCP_BBR_STARTUP_PG             = 0x42d | ||||
| 	TCP_BBR_TMR_PACE_OH            = 0x448 | ||||
| 	TCP_BBR_TSLIMITS               = 0x434 | ||||
| 	TCP_BBR_TSTMP_RAISES           = 0x456 | ||||
| 	TCP_BBR_UNLIMITED              = 0x43b | ||||
| 	TCP_BBR_USEDEL_RATE            = 0x437 | ||||
| 	TCP_BBR_USE_LOWGAIN            = 0x433 | ||||
| 	TCP_BBR_USE_RACK_CHEAT         = 0x450 | ||||
| 	TCP_BBR_UTTER_MAX_TSO          = 0x452 | ||||
| 	TCP_CA_NAME_MAX                = 0x10 | ||||
| 	TCP_CCALGOOPT                  = 0x41 | ||||
| 	TCP_CONGESTION                 = 0x40 | ||||
|  | @ -1541,6 +1634,7 @@ const ( | |||
| 	TCP_PCAP_OUT                   = 0x800 | ||||
| 	TCP_RACK_EARLY_RECOV           = 0x423 | ||||
| 	TCP_RACK_EARLY_SEG             = 0x424 | ||||
| 	TCP_RACK_GP_INCREASE           = 0x446 | ||||
| 	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444 | ||||
| 	TCP_RACK_MIN_PACE              = 0x445 | ||||
| 	TCP_RACK_MIN_PACE_SEG          = 0x446 | ||||
|  | @ -1554,7 +1648,6 @@ const ( | |||
| 	TCP_RACK_PRR_SENDALOT          = 0x421 | ||||
| 	TCP_RACK_REORD_FADE            = 0x426 | ||||
| 	TCP_RACK_REORD_THRESH          = 0x425 | ||||
| 	TCP_RACK_SESS_CWV              = 0x42a | ||||
| 	TCP_RACK_TLP_INC_VAR           = 0x429 | ||||
| 	TCP_RACK_TLP_REDUCE            = 0x41c | ||||
| 	TCP_RACK_TLP_THRESH            = 0x427 | ||||
|  | @ -1694,12 +1787,13 @@ const ( | |||
| 	EIDRM           = syscall.Errno(0x52) | ||||
| 	EILSEQ          = syscall.Errno(0x56) | ||||
| 	EINPROGRESS     = syscall.Errno(0x24) | ||||
| 	EINTEGRITY      = syscall.Errno(0x61) | ||||
| 	EINTR           = syscall.Errno(0x4) | ||||
| 	EINVAL          = syscall.Errno(0x16) | ||||
| 	EIO             = syscall.Errno(0x5) | ||||
| 	EISCONN         = syscall.Errno(0x38) | ||||
| 	EISDIR          = syscall.Errno(0x15) | ||||
| 	ELAST           = syscall.Errno(0x60) | ||||
| 	ELAST           = syscall.Errno(0x61) | ||||
| 	ELOOP           = syscall.Errno(0x3e) | ||||
| 	EMFILE          = syscall.Errno(0x18) | ||||
| 	EMLINK          = syscall.Errno(0x1f) | ||||
|  | @ -1842,7 +1936,7 @@ var errorList = [...]struct { | |||
| 	{32, "EPIPE", "broken pipe"}, | ||||
| 	{33, "EDOM", "numerical argument out of domain"}, | ||||
| 	{34, "ERANGE", "result too large"}, | ||||
| 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||
| 	{35, "EWOULDBLOCK", "resource temporarily unavailable"}, | ||||
| 	{36, "EINPROGRESS", "operation now in progress"}, | ||||
| 	{37, "EALREADY", "operation already in progress"}, | ||||
| 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||
|  | @ -1904,6 +1998,7 @@ var errorList = [...]struct { | |||
| 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||
| 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||
| 	{96, "EOWNERDEAD", "previous owner died"}, | ||||
| 	{97, "EINTEGRITY", "integrity check failed"}, | ||||
| } | ||||
| 
 | ||||
| // Signal table
 | ||||
|  |  | |||
|  | @ -151,6 +151,7 @@ const ( | |||
| 	BIOCSETF                       = 0x80104267 | ||||
| 	BIOCSETFNR                     = 0x80104282 | ||||
| 	BIOCSETIF                      = 0x8020426c | ||||
| 	BIOCSETVLANPCP                 = 0x80044285 | ||||
| 	BIOCSETWF                      = 0x8010427b | ||||
| 	BIOCSETZBUF                    = 0x80184281 | ||||
| 	BIOCSHDRCMPLT                  = 0x80044275 | ||||
|  | @ -447,7 +448,7 @@ const ( | |||
| 	DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1 | ||||
| 	DLT_INFINIBAND                 = 0xf7 | ||||
| 	DLT_IPFILTER                   = 0x74 | ||||
| 	DLT_IPMB                       = 0xc7 | ||||
| 	DLT_IPMB_KONTRON               = 0xc7 | ||||
| 	DLT_IPMB_LINUX                 = 0xd1 | ||||
| 	DLT_IPMI_HPM_2                 = 0x104 | ||||
| 	DLT_IPNET                      = 0xe2 | ||||
|  | @ -487,10 +488,11 @@ const ( | |||
| 	DLT_LINUX_LAPD                 = 0xb1 | ||||
| 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6 | ||||
| 	DLT_LINUX_SLL                  = 0x71 | ||||
| 	DLT_LINUX_SLL2                 = 0x114 | ||||
| 	DLT_LOOP                       = 0x6c | ||||
| 	DLT_LORATAP                    = 0x10e | ||||
| 	DLT_LTALK                      = 0x72 | ||||
| 	DLT_MATCHING_MAX               = 0x113 | ||||
| 	DLT_MATCHING_MAX               = 0x114 | ||||
| 	DLT_MATCHING_MIN               = 0x68 | ||||
| 	DLT_MFR                        = 0xb6 | ||||
| 	DLT_MOST                       = 0xd3 | ||||
|  | @ -734,6 +736,7 @@ const ( | |||
| 	IPPROTO_CMTP                   = 0x26 | ||||
| 	IPPROTO_CPHB                   = 0x49 | ||||
| 	IPPROTO_CPNX                   = 0x48 | ||||
| 	IPPROTO_DCCP                   = 0x21 | ||||
| 	IPPROTO_DDP                    = 0x25 | ||||
| 	IPPROTO_DGP                    = 0x56 | ||||
| 	IPPROTO_DIVERT                 = 0x102 | ||||
|  | @ -814,7 +817,6 @@ const ( | |||
| 	IPPROTO_SCTP                   = 0x84 | ||||
| 	IPPROTO_SDRP                   = 0x2a | ||||
| 	IPPROTO_SEND                   = 0x103 | ||||
| 	IPPROTO_SEP                    = 0x21 | ||||
| 	IPPROTO_SHIM6                  = 0x8c | ||||
| 	IPPROTO_SKIP                   = 0x39 | ||||
| 	IPPROTO_SPACER                 = 0x7fff | ||||
|  | @ -911,6 +913,7 @@ const ( | |||
| 	IPV6_V6ONLY                    = 0x1b | ||||
| 	IPV6_VERSION                   = 0x60 | ||||
| 	IPV6_VERSION_MASK              = 0xf0 | ||||
| 	IPV6_VLAN_PCP                  = 0x4b | ||||
| 	IP_ADD_MEMBERSHIP              = 0xc | ||||
| 	IP_ADD_SOURCE_MEMBERSHIP       = 0x46 | ||||
| 	IP_BINDANY                     = 0x18 | ||||
|  | @ -989,8 +992,12 @@ const ( | |||
| 	IP_TOS                         = 0x3 | ||||
| 	IP_TTL                         = 0x4 | ||||
| 	IP_UNBLOCK_SOURCE              = 0x49 | ||||
| 	IP_VLAN_PCP                    = 0x4b | ||||
| 	ISIG                           = 0x80 | ||||
| 	ISTRIP                         = 0x20 | ||||
| 	ITIMER_PROF                    = 0x2 | ||||
| 	ITIMER_REAL                    = 0x0 | ||||
| 	ITIMER_VIRTUAL                 = 0x1 | ||||
| 	IXANY                          = 0x800 | ||||
| 	IXOFF                          = 0x400 | ||||
| 	IXON                           = 0x200 | ||||
|  | @ -1000,7 +1007,6 @@ const ( | |||
| 	KERN_VERSION                   = 0x4 | ||||
| 	LOCAL_CONNWAIT                 = 0x4 | ||||
| 	LOCAL_CREDS                    = 0x2 | ||||
| 	LOCAL_CREDS_PERSISTENT         = 0x3 | ||||
| 	LOCAL_PEERCRED                 = 0x1 | ||||
| 	LOCAL_VENDOR                   = 0x80000000 | ||||
| 	LOCK_EX                        = 0x2 | ||||
|  | @ -1180,6 +1186,8 @@ const ( | |||
| 	O_NONBLOCK                     = 0x4 | ||||
| 	O_RDONLY                       = 0x0 | ||||
| 	O_RDWR                         = 0x2 | ||||
| 	O_RESOLVE_BENEATH              = 0x800000 | ||||
| 	O_SEARCH                       = 0x40000 | ||||
| 	O_SHLOCK                       = 0x10 | ||||
| 	O_SYNC                         = 0x80 | ||||
| 	O_TRUNC                        = 0x400 | ||||
|  | @ -1190,6 +1198,10 @@ const ( | |||
| 	PARMRK                         = 0x8 | ||||
| 	PARODD                         = 0x2000 | ||||
| 	PENDIN                         = 0x20000000 | ||||
| 	PIOD_READ_D                    = 0x1 | ||||
| 	PIOD_READ_I                    = 0x3 | ||||
| 	PIOD_WRITE_D                   = 0x2 | ||||
| 	PIOD_WRITE_I                   = 0x4 | ||||
| 	PRIO_PGRP                      = 0x1 | ||||
| 	PRIO_PROCESS                   = 0x0 | ||||
| 	PRIO_USER                      = 0x2 | ||||
|  | @ -1197,6 +1209,58 @@ const ( | |||
| 	PROT_NONE                      = 0x0 | ||||
| 	PROT_READ                      = 0x1 | ||||
| 	PROT_WRITE                     = 0x2 | ||||
| 	PTRACE_DEFAULT                 = 0x1 | ||||
| 	PTRACE_EXEC                    = 0x1 | ||||
| 	PTRACE_FORK                    = 0x8 | ||||
| 	PTRACE_LWP                     = 0x10 | ||||
| 	PTRACE_SCE                     = 0x2 | ||||
| 	PTRACE_SCX                     = 0x4 | ||||
| 	PTRACE_SYSCALL                 = 0x6 | ||||
| 	PTRACE_VFORK                   = 0x20 | ||||
| 	PT_ATTACH                      = 0xa | ||||
| 	PT_CLEARSTEP                   = 0x10 | ||||
| 	PT_CONTINUE                    = 0x7 | ||||
| 	PT_DETACH                      = 0xb | ||||
| 	PT_FIRSTMACH                   = 0x40 | ||||
| 	PT_FOLLOW_FORK                 = 0x17 | ||||
| 	PT_GETDBREGS                   = 0x25 | ||||
| 	PT_GETFPREGS                   = 0x23 | ||||
| 	PT_GETFSBASE                   = 0x47 | ||||
| 	PT_GETGSBASE                   = 0x49 | ||||
| 	PT_GETLWPLIST                  = 0xf | ||||
| 	PT_GETNUMLWPS                  = 0xe | ||||
| 	PT_GETREGS                     = 0x21 | ||||
| 	PT_GETXSTATE                   = 0x45 | ||||
| 	PT_GETXSTATE_INFO              = 0x44 | ||||
| 	PT_GET_EVENT_MASK              = 0x19 | ||||
| 	PT_GET_SC_ARGS                 = 0x1b | ||||
| 	PT_GET_SC_RET                  = 0x1c | ||||
| 	PT_IO                          = 0xc | ||||
| 	PT_KILL                        = 0x8 | ||||
| 	PT_LWPINFO                     = 0xd | ||||
| 	PT_LWP_EVENTS                  = 0x18 | ||||
| 	PT_READ_D                      = 0x2 | ||||
| 	PT_READ_I                      = 0x1 | ||||
| 	PT_RESUME                      = 0x13 | ||||
| 	PT_SETDBREGS                   = 0x26 | ||||
| 	PT_SETFPREGS                   = 0x24 | ||||
| 	PT_SETFSBASE                   = 0x48 | ||||
| 	PT_SETGSBASE                   = 0x4a | ||||
| 	PT_SETREGS                     = 0x22 | ||||
| 	PT_SETSTEP                     = 0x11 | ||||
| 	PT_SETXSTATE                   = 0x46 | ||||
| 	PT_SET_EVENT_MASK              = 0x1a | ||||
| 	PT_STEP                        = 0x9 | ||||
| 	PT_SUSPEND                     = 0x12 | ||||
| 	PT_SYSCALL                     = 0x16 | ||||
| 	PT_TO_SCE                      = 0x14 | ||||
| 	PT_TO_SCX                      = 0x15 | ||||
| 	PT_TRACE_ME                    = 0x0 | ||||
| 	PT_VM_ENTRY                    = 0x29 | ||||
| 	PT_VM_TIMESTAMP                = 0x28 | ||||
| 	PT_WRITE_D                     = 0x5 | ||||
| 	PT_WRITE_I                     = 0x4 | ||||
| 	P_ZONEID                       = 0xc | ||||
| 	RLIMIT_AS                      = 0xa | ||||
| 	RLIMIT_CORE                    = 0x4 | ||||
| 	RLIMIT_CPU                     = 0x0 | ||||
|  | @ -1321,10 +1385,12 @@ const ( | |||
| 	SIOCGHWADDR                    = 0xc020693e | ||||
| 	SIOCGI2C                       = 0xc020693d | ||||
| 	SIOCGIFADDR                    = 0xc0206921 | ||||
| 	SIOCGIFALIAS                   = 0xc044692d | ||||
| 	SIOCGIFBRDADDR                 = 0xc0206923 | ||||
| 	SIOCGIFCAP                     = 0xc020691f | ||||
| 	SIOCGIFCONF                    = 0xc0106924 | ||||
| 	SIOCGIFDESCR                   = 0xc020692a | ||||
| 	SIOCGIFDOWNREASON              = 0xc058699a | ||||
| 	SIOCGIFDSTADDR                 = 0xc0206922 | ||||
| 	SIOCGIFFIB                     = 0xc020695c | ||||
| 	SIOCGIFFLAGS                   = 0xc0206911 | ||||
|  | @ -1415,6 +1481,7 @@ const ( | |||
| 	SO_RCVBUF                      = 0x1002 | ||||
| 	SO_RCVLOWAT                    = 0x1004 | ||||
| 	SO_RCVTIMEO                    = 0x1006 | ||||
| 	SO_RERROR                      = 0x20000 | ||||
| 	SO_REUSEADDR                   = 0x4 | ||||
| 	SO_REUSEPORT                   = 0x200 | ||||
| 	SO_REUSEPORT_LB                = 0x10000 | ||||
|  | @ -1473,22 +1540,40 @@ const ( | |||
| 	TCOFLUSH                       = 0x2 | ||||
| 	TCOOFF                         = 0x1 | ||||
| 	TCOON                          = 0x2 | ||||
| 	TCPOPT_EOL                     = 0x0 | ||||
| 	TCPOPT_FAST_OPEN               = 0x22 | ||||
| 	TCPOPT_MAXSEG                  = 0x2 | ||||
| 	TCPOPT_NOP                     = 0x1 | ||||
| 	TCPOPT_PAD                     = 0x0 | ||||
| 	TCPOPT_SACK                    = 0x5 | ||||
| 	TCPOPT_SACK_PERMITTED          = 0x4 | ||||
| 	TCPOPT_SIGNATURE               = 0x13 | ||||
| 	TCPOPT_TIMESTAMP               = 0x8 | ||||
| 	TCPOPT_WINDOW                  = 0x3 | ||||
| 	TCP_BBR_ACK_COMP_ALG           = 0x448 | ||||
| 	TCP_BBR_ALGORITHM              = 0x43b | ||||
| 	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c | ||||
| 	TCP_BBR_DRAIN_PG               = 0x42e | ||||
| 	TCP_BBR_EXTRA_GAIN             = 0x449 | ||||
| 	TCP_BBR_EXTRA_STATE            = 0x453 | ||||
| 	TCP_BBR_FLOOR_MIN_TSO          = 0x454 | ||||
| 	TCP_BBR_HDWR_PACE              = 0x451 | ||||
| 	TCP_BBR_HOLD_TARGET            = 0x436 | ||||
| 	TCP_BBR_IWINTSO                = 0x42b | ||||
| 	TCP_BBR_LOWGAIN_FD             = 0x436 | ||||
| 	TCP_BBR_LOWGAIN_HALF           = 0x435 | ||||
| 	TCP_BBR_LOWGAIN_THRESH         = 0x434 | ||||
| 	TCP_BBR_MAX_RTO                = 0x439 | ||||
| 	TCP_BBR_MIN_RTO                = 0x438 | ||||
| 	TCP_BBR_MIN_TOPACEOUT          = 0x455 | ||||
| 	TCP_BBR_ONE_RETRAN             = 0x431 | ||||
| 	TCP_BBR_PACE_CROSS             = 0x442 | ||||
| 	TCP_BBR_PACE_DEL_TAR           = 0x43f | ||||
| 	TCP_BBR_PACE_OH                = 0x435 | ||||
| 	TCP_BBR_PACE_PER_SEC           = 0x43e | ||||
| 	TCP_BBR_PACE_SEG_MAX           = 0x440 | ||||
| 	TCP_BBR_PACE_SEG_MIN           = 0x441 | ||||
| 	TCP_BBR_POLICER_DETECT         = 0x457 | ||||
| 	TCP_BBR_PROBE_RTT_GAIN         = 0x44d | ||||
| 	TCP_BBR_PROBE_RTT_INT          = 0x430 | ||||
| 	TCP_BBR_PROBE_RTT_LEN          = 0x44e | ||||
|  | @ -1497,12 +1582,18 @@ const ( | |||
| 	TCP_BBR_REC_OVER_HPTS          = 0x43a | ||||
| 	TCP_BBR_RETRAN_WTSO            = 0x44b | ||||
| 	TCP_BBR_RWND_IS_APP            = 0x42f | ||||
| 	TCP_BBR_SEND_IWND_IN_TSO       = 0x44f | ||||
| 	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d | ||||
| 	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432 | ||||
| 	TCP_BBR_STARTUP_PG             = 0x42d | ||||
| 	TCP_BBR_TMR_PACE_OH            = 0x448 | ||||
| 	TCP_BBR_TSLIMITS               = 0x434 | ||||
| 	TCP_BBR_TSTMP_RAISES           = 0x456 | ||||
| 	TCP_BBR_UNLIMITED              = 0x43b | ||||
| 	TCP_BBR_USEDEL_RATE            = 0x437 | ||||
| 	TCP_BBR_USE_LOWGAIN            = 0x433 | ||||
| 	TCP_BBR_USE_RACK_CHEAT         = 0x450 | ||||
| 	TCP_BBR_UTTER_MAX_TSO          = 0x452 | ||||
| 	TCP_CA_NAME_MAX                = 0x10 | ||||
| 	TCP_CCALGOOPT                  = 0x41 | ||||
| 	TCP_CONGESTION                 = 0x40 | ||||
|  | @ -1542,6 +1633,7 @@ const ( | |||
| 	TCP_PCAP_OUT                   = 0x800 | ||||
| 	TCP_RACK_EARLY_RECOV           = 0x423 | ||||
| 	TCP_RACK_EARLY_SEG             = 0x424 | ||||
| 	TCP_RACK_GP_INCREASE           = 0x446 | ||||
| 	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444 | ||||
| 	TCP_RACK_MIN_PACE              = 0x445 | ||||
| 	TCP_RACK_MIN_PACE_SEG          = 0x446 | ||||
|  | @ -1555,7 +1647,6 @@ const ( | |||
| 	TCP_RACK_PRR_SENDALOT          = 0x421 | ||||
| 	TCP_RACK_REORD_FADE            = 0x426 | ||||
| 	TCP_RACK_REORD_THRESH          = 0x425 | ||||
| 	TCP_RACK_SESS_CWV              = 0x42a | ||||
| 	TCP_RACK_TLP_INC_VAR           = 0x429 | ||||
| 	TCP_RACK_TLP_REDUCE            = 0x41c | ||||
| 	TCP_RACK_TLP_THRESH            = 0x427 | ||||
|  | @ -1693,12 +1784,13 @@ const ( | |||
| 	EIDRM           = syscall.Errno(0x52) | ||||
| 	EILSEQ          = syscall.Errno(0x56) | ||||
| 	EINPROGRESS     = syscall.Errno(0x24) | ||||
| 	EINTEGRITY      = syscall.Errno(0x61) | ||||
| 	EINTR           = syscall.Errno(0x4) | ||||
| 	EINVAL          = syscall.Errno(0x16) | ||||
| 	EIO             = syscall.Errno(0x5) | ||||
| 	EISCONN         = syscall.Errno(0x38) | ||||
| 	EISDIR          = syscall.Errno(0x15) | ||||
| 	ELAST           = syscall.Errno(0x60) | ||||
| 	ELAST           = syscall.Errno(0x61) | ||||
| 	ELOOP           = syscall.Errno(0x3e) | ||||
| 	EMFILE          = syscall.Errno(0x18) | ||||
| 	EMLINK          = syscall.Errno(0x1f) | ||||
|  | @ -1841,7 +1933,7 @@ var errorList = [...]struct { | |||
| 	{32, "EPIPE", "broken pipe"}, | ||||
| 	{33, "EDOM", "numerical argument out of domain"}, | ||||
| 	{34, "ERANGE", "result too large"}, | ||||
| 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||
| 	{35, "EWOULDBLOCK", "resource temporarily unavailable"}, | ||||
| 	{36, "EINPROGRESS", "operation now in progress"}, | ||||
| 	{37, "EALREADY", "operation already in progress"}, | ||||
| 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||
|  | @ -1903,6 +1995,7 @@ var errorList = [...]struct { | |||
| 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||
| 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||
| 	{96, "EOWNERDEAD", "previous owner died"}, | ||||
| 	{97, "EINTEGRITY", "integrity check failed"}, | ||||
| } | ||||
| 
 | ||||
| // Signal table
 | ||||
|  |  | |||
|  | @ -151,6 +151,7 @@ const ( | |||
| 	BIOCSETF                       = 0x80084267 | ||||
| 	BIOCSETFNR                     = 0x80084282 | ||||
| 	BIOCSETIF                      = 0x8020426c | ||||
| 	BIOCSETVLANPCP                 = 0x80044285 | ||||
| 	BIOCSETWF                      = 0x8008427b | ||||
| 	BIOCSETZBUF                    = 0x800c4281 | ||||
| 	BIOCSHDRCMPLT                  = 0x80044275 | ||||
|  | @ -362,7 +363,7 @@ const ( | |||
| 	CTL_KERN                       = 0x1 | ||||
| 	CTL_MAXNAME                    = 0x18 | ||||
| 	CTL_NET                        = 0x4 | ||||
| 	DIOCGATTR                      = 0xc144648e | ||||
| 	DIOCGATTR                      = 0xc148648e | ||||
| 	DIOCGDELETE                    = 0x80106488 | ||||
| 	DIOCGFLUSH                     = 0x20006487 | ||||
| 	DIOCGFRONTSTUFF                = 0x40086486 | ||||
|  | @ -377,7 +378,7 @@ const ( | |||
| 	DIOCGSTRIPESIZE                = 0x4008648b | ||||
| 	DIOCSKERNELDUMP                = 0x804c6490 | ||||
| 	DIOCSKERNELDUMP_FREEBSD11      = 0x80046485 | ||||
| 	DIOCZONECMD                    = 0xc06c648f | ||||
| 	DIOCZONECMD                    = 0xc078648f | ||||
| 	DLT_A429                       = 0xb8 | ||||
| 	DLT_A653_ICM                   = 0xb9 | ||||
| 	DLT_AIRONET_HEADER             = 0x78 | ||||
|  | @ -407,7 +408,9 @@ const ( | |||
| 	DLT_C_HDLC_WITH_DIR            = 0xcd | ||||
| 	DLT_DBUS                       = 0xe7 | ||||
| 	DLT_DECT                       = 0xdd | ||||
| 	DLT_DISPLAYPORT_AUX            = 0x113 | ||||
| 	DLT_DOCSIS                     = 0x8f | ||||
| 	DLT_DOCSIS31_XRA31             = 0x111 | ||||
| 	DLT_DVB_CI                     = 0xeb | ||||
| 	DLT_ECONET                     = 0x73 | ||||
| 	DLT_EN10MB                     = 0x1 | ||||
|  | @ -417,6 +420,7 @@ const ( | |||
| 	DLT_ERF                        = 0xc5 | ||||
| 	DLT_ERF_ETH                    = 0xaf | ||||
| 	DLT_ERF_POS                    = 0xb0 | ||||
| 	DLT_ETHERNET_MPACKET           = 0x112 | ||||
| 	DLT_FC_2                       = 0xe0 | ||||
| 	DLT_FC_2_WITH_FRAME_DELIMS     = 0xe1 | ||||
| 	DLT_FDDI                       = 0xa | ||||
|  | @ -444,7 +448,7 @@ const ( | |||
| 	DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1 | ||||
| 	DLT_INFINIBAND                 = 0xf7 | ||||
| 	DLT_IPFILTER                   = 0x74 | ||||
| 	DLT_IPMB                       = 0xc7 | ||||
| 	DLT_IPMB_KONTRON               = 0xc7 | ||||
| 	DLT_IPMB_LINUX                 = 0xd1 | ||||
| 	DLT_IPMI_HPM_2                 = 0x104 | ||||
| 	DLT_IPNET                      = 0xe2 | ||||
|  | @ -484,9 +488,11 @@ const ( | |||
| 	DLT_LINUX_LAPD                 = 0xb1 | ||||
| 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6 | ||||
| 	DLT_LINUX_SLL                  = 0x71 | ||||
| 	DLT_LINUX_SLL2                 = 0x114 | ||||
| 	DLT_LOOP                       = 0x6c | ||||
| 	DLT_LORATAP                    = 0x10e | ||||
| 	DLT_LTALK                      = 0x72 | ||||
| 	DLT_MATCHING_MAX               = 0x109 | ||||
| 	DLT_MATCHING_MAX               = 0x114 | ||||
| 	DLT_MATCHING_MIN               = 0x68 | ||||
| 	DLT_MFR                        = 0xb6 | ||||
| 	DLT_MOST                       = 0xd3 | ||||
|  | @ -502,7 +508,9 @@ const ( | |||
| 	DLT_NFC_LLCP                   = 0xf5 | ||||
| 	DLT_NFLOG                      = 0xef | ||||
| 	DLT_NG40                       = 0xf4 | ||||
| 	DLT_NORDIC_BLE                 = 0x110 | ||||
| 	DLT_NULL                       = 0x0 | ||||
| 	DLT_OPENFLOW                   = 0x10b | ||||
| 	DLT_PCI_EXP                    = 0x7d | ||||
| 	DLT_PFLOG                      = 0x75 | ||||
| 	DLT_PFSYNC                     = 0x79 | ||||
|  | @ -526,15 +534,18 @@ const ( | |||
| 	DLT_RTAC_SERIAL                = 0xfa | ||||
| 	DLT_SCCP                       = 0x8e | ||||
| 	DLT_SCTP                       = 0xf8 | ||||
| 	DLT_SDLC                       = 0x10c | ||||
| 	DLT_SITA                       = 0xc4 | ||||
| 	DLT_SLIP                       = 0x8 | ||||
| 	DLT_SLIP_BSDOS                 = 0xd | ||||
| 	DLT_STANAG_5066_D_PDU          = 0xed | ||||
| 	DLT_SUNATM                     = 0x7b | ||||
| 	DLT_SYMANTEC_FIREWALL          = 0x63 | ||||
| 	DLT_TI_LLN_SNIFFER             = 0x10d | ||||
| 	DLT_TZSP                       = 0x80 | ||||
| 	DLT_USB                        = 0xba | ||||
| 	DLT_USBPCAP                    = 0xf9 | ||||
| 	DLT_USB_DARWIN                 = 0x10a | ||||
| 	DLT_USB_FREEBSD                = 0xba | ||||
| 	DLT_USB_LINUX                  = 0xbd | ||||
| 	DLT_USB_LINUX_MMAPPED          = 0xdc | ||||
|  | @ -554,6 +565,7 @@ const ( | |||
| 	DLT_USER7                      = 0x9a | ||||
| 	DLT_USER8                      = 0x9b | ||||
| 	DLT_USER9                      = 0x9c | ||||
| 	DLT_VSOCK                      = 0x10f | ||||
| 	DLT_WATTSTOPPER_DLM            = 0x107 | ||||
| 	DLT_WIHART                     = 0xdf | ||||
| 	DLT_WIRESHARK_UPPER_PDU        = 0xfc | ||||
|  | @ -578,6 +590,7 @@ const ( | |||
| 	ECHONL                         = 0x10 | ||||
| 	ECHOPRT                        = 0x20 | ||||
| 	EVFILT_AIO                     = -0x3 | ||||
| 	EVFILT_EMPTY                   = -0xd | ||||
| 	EVFILT_FS                      = -0x9 | ||||
| 	EVFILT_LIO                     = -0xa | ||||
| 	EVFILT_PROC                    = -0x5 | ||||
|  | @ -585,11 +598,12 @@ const ( | |||
| 	EVFILT_READ                    = -0x1 | ||||
| 	EVFILT_SENDFILE                = -0xc | ||||
| 	EVFILT_SIGNAL                  = -0x6 | ||||
| 	EVFILT_SYSCOUNT                = 0xc | ||||
| 	EVFILT_SYSCOUNT                = 0xd | ||||
| 	EVFILT_TIMER                   = -0x7 | ||||
| 	EVFILT_USER                    = -0xb | ||||
| 	EVFILT_VNODE                   = -0x4 | ||||
| 	EVFILT_WRITE                   = -0x2 | ||||
| 	EVNAMEMAP_NAME_SIZE            = 0x40 | ||||
| 	EV_ADD                         = 0x1 | ||||
| 	EV_CLEAR                       = 0x20 | ||||
| 	EV_DELETE                      = 0x2 | ||||
|  | @ -606,6 +620,7 @@ const ( | |||
| 	EV_RECEIPT                     = 0x40 | ||||
| 	EV_SYSFLAGS                    = 0xf000 | ||||
| 	EXTA                           = 0x4b00 | ||||
| 	EXTATTR_MAXNAMELEN             = 0xff | ||||
| 	EXTATTR_NAMESPACE_EMPTY        = 0x0 | ||||
| 	EXTATTR_NAMESPACE_SYSTEM       = 0x2 | ||||
| 	EXTATTR_NAMESPACE_USER         = 0x1 | ||||
|  | @ -647,6 +662,7 @@ const ( | |||
| 	IEXTEN                         = 0x400 | ||||
| 	IFAN_ARRIVAL                   = 0x0 | ||||
| 	IFAN_DEPARTURE                 = 0x1 | ||||
| 	IFCAP_WOL_MAGIC                = 0x2000 | ||||
| 	IFF_ALLMULTI                   = 0x200 | ||||
| 	IFF_ALTPHYS                    = 0x4000 | ||||
| 	IFF_BROADCAST                  = 0x2 | ||||
|  | @ -663,6 +679,7 @@ const ( | |||
| 	IFF_MONITOR                    = 0x40000 | ||||
| 	IFF_MULTICAST                  = 0x8000 | ||||
| 	IFF_NOARP                      = 0x80 | ||||
| 	IFF_NOGROUP                    = 0x800000 | ||||
| 	IFF_OACTIVE                    = 0x400 | ||||
| 	IFF_POINTOPOINT                = 0x10 | ||||
| 	IFF_PPROMISC                   = 0x20000 | ||||
|  | @ -719,6 +736,7 @@ const ( | |||
| 	IPPROTO_CMTP                   = 0x26 | ||||
| 	IPPROTO_CPHB                   = 0x49 | ||||
| 	IPPROTO_CPNX                   = 0x48 | ||||
| 	IPPROTO_DCCP                   = 0x21 | ||||
| 	IPPROTO_DDP                    = 0x25 | ||||
| 	IPPROTO_DGP                    = 0x56 | ||||
| 	IPPROTO_DIVERT                 = 0x102 | ||||
|  | @ -799,7 +817,6 @@ const ( | |||
| 	IPPROTO_SCTP                   = 0x84 | ||||
| 	IPPROTO_SDRP                   = 0x2a | ||||
| 	IPPROTO_SEND                   = 0x103 | ||||
| 	IPPROTO_SEP                    = 0x21 | ||||
| 	IPPROTO_SHIM6                  = 0x8c | ||||
| 	IPPROTO_SKIP                   = 0x39 | ||||
| 	IPPROTO_SPACER                 = 0x7fff | ||||
|  | @ -837,6 +854,7 @@ const ( | |||
| 	IPV6_DSTOPTS                   = 0x32 | ||||
| 	IPV6_FLOWID                    = 0x43 | ||||
| 	IPV6_FLOWINFO_MASK             = 0xffffff0f | ||||
| 	IPV6_FLOWLABEL_LEN             = 0x14 | ||||
| 	IPV6_FLOWLABEL_MASK            = 0xffff0f00 | ||||
| 	IPV6_FLOWTYPE                  = 0x44 | ||||
| 	IPV6_FRAGTTL                   = 0x78 | ||||
|  | @ -857,13 +875,13 @@ const ( | |||
| 	IPV6_MAX_GROUP_SRC_FILTER      = 0x200 | ||||
| 	IPV6_MAX_MEMBERSHIPS           = 0xfff | ||||
| 	IPV6_MAX_SOCK_SRC_FILTER       = 0x80 | ||||
| 	IPV6_MIN_MEMBERSHIPS           = 0x1f | ||||
| 	IPV6_MMTU                      = 0x500 | ||||
| 	IPV6_MSFILTER                  = 0x4a | ||||
| 	IPV6_MULTICAST_HOPS            = 0xa | ||||
| 	IPV6_MULTICAST_IF              = 0x9 | ||||
| 	IPV6_MULTICAST_LOOP            = 0xb | ||||
| 	IPV6_NEXTHOP                   = 0x30 | ||||
| 	IPV6_ORIGDSTADDR               = 0x48 | ||||
| 	IPV6_PATHMTU                   = 0x2c | ||||
| 	IPV6_PKTINFO                   = 0x2e | ||||
| 	IPV6_PORTRANGE                 = 0xe | ||||
|  | @ -875,6 +893,7 @@ const ( | |||
| 	IPV6_RECVFLOWID                = 0x46 | ||||
| 	IPV6_RECVHOPLIMIT              = 0x25 | ||||
| 	IPV6_RECVHOPOPTS               = 0x27 | ||||
| 	IPV6_RECVORIGDSTADDR           = 0x48 | ||||
| 	IPV6_RECVPATHMTU               = 0x2b | ||||
| 	IPV6_RECVPKTINFO               = 0x24 | ||||
| 	IPV6_RECVRSSBUCKETID           = 0x47 | ||||
|  | @ -894,6 +913,7 @@ const ( | |||
| 	IPV6_V6ONLY                    = 0x1b | ||||
| 	IPV6_VERSION                   = 0x60 | ||||
| 	IPV6_VERSION_MASK              = 0xf0 | ||||
| 	IPV6_VLAN_PCP                  = 0x4b | ||||
| 	IP_ADD_MEMBERSHIP              = 0xc | ||||
| 	IP_ADD_SOURCE_MEMBERSHIP       = 0x46 | ||||
| 	IP_BINDANY                     = 0x18 | ||||
|  | @ -935,10 +955,8 @@ const ( | |||
| 	IP_MAX_MEMBERSHIPS             = 0xfff | ||||
| 	IP_MAX_SOCK_MUTE_FILTER        = 0x80 | ||||
| 	IP_MAX_SOCK_SRC_FILTER         = 0x80 | ||||
| 	IP_MAX_SOURCE_FILTER           = 0x400 | ||||
| 	IP_MF                          = 0x2000 | ||||
| 	IP_MINTTL                      = 0x42 | ||||
| 	IP_MIN_MEMBERSHIPS             = 0x1f | ||||
| 	IP_MSFILTER                    = 0x4a | ||||
| 	IP_MSS                         = 0x240 | ||||
| 	IP_MULTICAST_IF                = 0x9 | ||||
|  | @ -948,6 +966,7 @@ const ( | |||
| 	IP_OFFMASK                     = 0x1fff | ||||
| 	IP_ONESBCAST                   = 0x17 | ||||
| 	IP_OPTIONS                     = 0x1 | ||||
| 	IP_ORIGDSTADDR                 = 0x1b | ||||
| 	IP_PORTRANGE                   = 0x13 | ||||
| 	IP_PORTRANGE_DEFAULT           = 0x0 | ||||
| 	IP_PORTRANGE_HIGH              = 0x1 | ||||
|  | @ -956,6 +975,7 @@ const ( | |||
| 	IP_RECVFLOWID                  = 0x5d | ||||
| 	IP_RECVIF                      = 0x14 | ||||
| 	IP_RECVOPTS                    = 0x5 | ||||
| 	IP_RECVORIGDSTADDR             = 0x1b | ||||
| 	IP_RECVRETOPTS                 = 0x6 | ||||
| 	IP_RECVRSSBUCKETID             = 0x5e | ||||
| 	IP_RECVTOS                     = 0x44 | ||||
|  | @ -972,8 +992,12 @@ const ( | |||
| 	IP_TOS                         = 0x3 | ||||
| 	IP_TTL                         = 0x4 | ||||
| 	IP_UNBLOCK_SOURCE              = 0x49 | ||||
| 	IP_VLAN_PCP                    = 0x4b | ||||
| 	ISIG                           = 0x80 | ||||
| 	ISTRIP                         = 0x20 | ||||
| 	ITIMER_PROF                    = 0x2 | ||||
| 	ITIMER_REAL                    = 0x0 | ||||
| 	ITIMER_VIRTUAL                 = 0x1 | ||||
| 	IXANY                          = 0x800 | ||||
| 	IXOFF                          = 0x400 | ||||
| 	IXON                           = 0x200 | ||||
|  | @ -983,7 +1007,6 @@ const ( | |||
| 	KERN_VERSION                   = 0x4 | ||||
| 	LOCAL_CONNWAIT                 = 0x4 | ||||
| 	LOCAL_CREDS                    = 0x2 | ||||
| 	LOCAL_CREDS_PERSISTENT         = 0x3 | ||||
| 	LOCAL_PEERCRED                 = 0x1 | ||||
| 	LOCAL_VENDOR                   = 0x80000000 | ||||
| 	LOCK_EX                        = 0x2 | ||||
|  | @ -1071,10 +1094,12 @@ const ( | |||
| 	MNT_SUSPEND                    = 0x4 | ||||
| 	MNT_SYNCHRONOUS                = 0x2 | ||||
| 	MNT_UNION                      = 0x20 | ||||
| 	MNT_UNTRUSTED                  = 0x800000000 | ||||
| 	MNT_UPDATE                     = 0x10000 | ||||
| 	MNT_UPDATEMASK                 = 0x2d8d0807e | ||||
| 	MNT_UPDATEMASK                 = 0xad8d0807e | ||||
| 	MNT_USER                       = 0x8000 | ||||
| 	MNT_VISFLAGMASK                = 0x3fef0ffff | ||||
| 	MNT_VERIFIED                   = 0x400000000 | ||||
| 	MNT_VISFLAGMASK                = 0xffef0ffff | ||||
| 	MNT_WAIT                       = 0x1 | ||||
| 	MSG_CMSG_CLOEXEC               = 0x40000 | ||||
| 	MSG_COMPAT                     = 0x8000 | ||||
|  | @ -1103,6 +1128,7 @@ const ( | |||
| 	NFDBITS                        = 0x20 | ||||
| 	NOFLSH                         = 0x80000000 | ||||
| 	NOKERNINFO                     = 0x2000000 | ||||
| 	NOTE_ABSTIME                   = 0x10 | ||||
| 	NOTE_ATTRIB                    = 0x8 | ||||
| 	NOTE_CHILD                     = 0x4 | ||||
| 	NOTE_CLOSE                     = 0x100 | ||||
|  | @ -1159,6 +1185,8 @@ const ( | |||
| 	O_NONBLOCK                     = 0x4 | ||||
| 	O_RDONLY                       = 0x0 | ||||
| 	O_RDWR                         = 0x2 | ||||
| 	O_RESOLVE_BENEATH              = 0x800000 | ||||
| 	O_SEARCH                       = 0x40000 | ||||
| 	O_SHLOCK                       = 0x10 | ||||
| 	O_SYNC                         = 0x80 | ||||
| 	O_TRUNC                        = 0x400 | ||||
|  | @ -1169,6 +1197,10 @@ const ( | |||
| 	PARMRK                         = 0x8 | ||||
| 	PARODD                         = 0x2000 | ||||
| 	PENDIN                         = 0x20000000 | ||||
| 	PIOD_READ_D                    = 0x1 | ||||
| 	PIOD_READ_I                    = 0x3 | ||||
| 	PIOD_WRITE_D                   = 0x2 | ||||
| 	PIOD_WRITE_I                   = 0x4 | ||||
| 	PRIO_PGRP                      = 0x1 | ||||
| 	PRIO_PROCESS                   = 0x0 | ||||
| 	PRIO_USER                      = 0x2 | ||||
|  | @ -1176,6 +1208,53 @@ const ( | |||
| 	PROT_NONE                      = 0x0 | ||||
| 	PROT_READ                      = 0x1 | ||||
| 	PROT_WRITE                     = 0x2 | ||||
| 	PTRACE_DEFAULT                 = 0x1 | ||||
| 	PTRACE_EXEC                    = 0x1 | ||||
| 	PTRACE_FORK                    = 0x8 | ||||
| 	PTRACE_LWP                     = 0x10 | ||||
| 	PTRACE_SCE                     = 0x2 | ||||
| 	PTRACE_SCX                     = 0x4 | ||||
| 	PTRACE_SYSCALL                 = 0x6 | ||||
| 	PTRACE_VFORK                   = 0x20 | ||||
| 	PT_ATTACH                      = 0xa | ||||
| 	PT_CLEARSTEP                   = 0x10 | ||||
| 	PT_CONTINUE                    = 0x7 | ||||
| 	PT_DETACH                      = 0xb | ||||
| 	PT_FIRSTMACH                   = 0x40 | ||||
| 	PT_FOLLOW_FORK                 = 0x17 | ||||
| 	PT_GETDBREGS                   = 0x25 | ||||
| 	PT_GETFPREGS                   = 0x23 | ||||
| 	PT_GETLWPLIST                  = 0xf | ||||
| 	PT_GETNUMLWPS                  = 0xe | ||||
| 	PT_GETREGS                     = 0x21 | ||||
| 	PT_GETVFPREGS                  = 0x40 | ||||
| 	PT_GET_EVENT_MASK              = 0x19 | ||||
| 	PT_GET_SC_ARGS                 = 0x1b | ||||
| 	PT_GET_SC_RET                  = 0x1c | ||||
| 	PT_IO                          = 0xc | ||||
| 	PT_KILL                        = 0x8 | ||||
| 	PT_LWPINFO                     = 0xd | ||||
| 	PT_LWP_EVENTS                  = 0x18 | ||||
| 	PT_READ_D                      = 0x2 | ||||
| 	PT_READ_I                      = 0x1 | ||||
| 	PT_RESUME                      = 0x13 | ||||
| 	PT_SETDBREGS                   = 0x26 | ||||
| 	PT_SETFPREGS                   = 0x24 | ||||
| 	PT_SETREGS                     = 0x22 | ||||
| 	PT_SETSTEP                     = 0x11 | ||||
| 	PT_SETVFPREGS                  = 0x41 | ||||
| 	PT_SET_EVENT_MASK              = 0x1a | ||||
| 	PT_STEP                        = 0x9 | ||||
| 	PT_SUSPEND                     = 0x12 | ||||
| 	PT_SYSCALL                     = 0x16 | ||||
| 	PT_TO_SCE                      = 0x14 | ||||
| 	PT_TO_SCX                      = 0x15 | ||||
| 	PT_TRACE_ME                    = 0x0 | ||||
| 	PT_VM_ENTRY                    = 0x29 | ||||
| 	PT_VM_TIMESTAMP                = 0x28 | ||||
| 	PT_WRITE_D                     = 0x5 | ||||
| 	PT_WRITE_I                     = 0x4 | ||||
| 	P_ZONEID                       = 0xc | ||||
| 	RLIMIT_AS                      = 0xa | ||||
| 	RLIMIT_CORE                    = 0x4 | ||||
| 	RLIMIT_CPU                     = 0x0 | ||||
|  | @ -1257,7 +1336,6 @@ const ( | |||
| 	RTV_WEIGHT                     = 0x100 | ||||
| 	RT_ALL_FIBS                    = -0x1 | ||||
| 	RT_BLACKHOLE                   = 0x40 | ||||
| 	RT_CACHING_CONTEXT             = 0x1 | ||||
| 	RT_DEFAULT_FIB                 = 0x0 | ||||
| 	RT_HAS_GW                      = 0x80 | ||||
| 	RT_HAS_HEADER                  = 0x10 | ||||
|  | @ -1267,15 +1345,17 @@ const ( | |||
| 	RT_LLE_CACHE                   = 0x100 | ||||
| 	RT_MAY_LOOP                    = 0x8 | ||||
| 	RT_MAY_LOOP_BIT                = 0x3 | ||||
| 	RT_NORTREF                     = 0x2 | ||||
| 	RT_REJECT                      = 0x20 | ||||
| 	RUSAGE_CHILDREN                = -0x1 | ||||
| 	RUSAGE_SELF                    = 0x0 | ||||
| 	RUSAGE_THREAD                  = 0x1 | ||||
| 	SCM_BINTIME                    = 0x4 | ||||
| 	SCM_CREDS                      = 0x3 | ||||
| 	SCM_MONOTONIC                  = 0x6 | ||||
| 	SCM_REALTIME                   = 0x5 | ||||
| 	SCM_RIGHTS                     = 0x1 | ||||
| 	SCM_TIMESTAMP                  = 0x2 | ||||
| 	SCM_TIME_INFO                  = 0x7 | ||||
| 	SEEK_CUR                       = 0x1 | ||||
| 	SEEK_DATA                      = 0x3 | ||||
| 	SEEK_END                       = 0x2 | ||||
|  | @ -1299,10 +1379,12 @@ const ( | |||
| 	SIOCGHWADDR                    = 0xc020693e | ||||
| 	SIOCGI2C                       = 0xc020693d | ||||
| 	SIOCGIFADDR                    = 0xc0206921 | ||||
| 	SIOCGIFALIAS                   = 0xc044692d | ||||
| 	SIOCGIFBRDADDR                 = 0xc0206923 | ||||
| 	SIOCGIFCAP                     = 0xc020691f | ||||
| 	SIOCGIFCONF                    = 0xc0086924 | ||||
| 	SIOCGIFDESCR                   = 0xc020692a | ||||
| 	SIOCGIFDOWNREASON              = 0xc058699a | ||||
| 	SIOCGIFDSTADDR                 = 0xc0206922 | ||||
| 	SIOCGIFFIB                     = 0xc020695c | ||||
| 	SIOCGIFFLAGS                   = 0xc0206911 | ||||
|  | @ -1318,8 +1400,11 @@ const ( | |||
| 	SIOCGIFPDSTADDR                = 0xc0206948 | ||||
| 	SIOCGIFPHYS                    = 0xc0206935 | ||||
| 	SIOCGIFPSRCADDR                = 0xc0206947 | ||||
| 	SIOCGIFRSSHASH                 = 0xc0186997 | ||||
| 	SIOCGIFRSSKEY                  = 0xc0946996 | ||||
| 	SIOCGIFSTATUS                  = 0xc331693b | ||||
| 	SIOCGIFXMEDIA                  = 0xc028698b | ||||
| 	SIOCGLANPCP                    = 0xc0206998 | ||||
| 	SIOCGLOWAT                     = 0x40047303 | ||||
| 	SIOCGPGRP                      = 0x40047309 | ||||
| 	SIOCGPRIVATE_0                 = 0xc0206950 | ||||
|  | @ -1350,6 +1435,7 @@ const ( | |||
| 	SIOCSIFPHYS                    = 0x80206936 | ||||
| 	SIOCSIFRVNET                   = 0xc020695b | ||||
| 	SIOCSIFVNET                    = 0xc020695a | ||||
| 	SIOCSLANPCP                    = 0x80206999 | ||||
| 	SIOCSLOWAT                     = 0x80047302 | ||||
| 	SIOCSPGRP                      = 0x80047308 | ||||
| 	SIOCSTUNFIB                    = 0x8020695f | ||||
|  | @ -1369,6 +1455,7 @@ const ( | |||
| 	SO_BINTIME                     = 0x2000 | ||||
| 	SO_BROADCAST                   = 0x20 | ||||
| 	SO_DEBUG                       = 0x1 | ||||
| 	SO_DOMAIN                      = 0x1019 | ||||
| 	SO_DONTROUTE                   = 0x10 | ||||
| 	SO_ERROR                       = 0x1007 | ||||
| 	SO_KEEPALIVE                   = 0x8 | ||||
|  | @ -1377,6 +1464,7 @@ const ( | |||
| 	SO_LISTENINCQLEN               = 0x1013 | ||||
| 	SO_LISTENQLEN                  = 0x1012 | ||||
| 	SO_LISTENQLIMIT                = 0x1011 | ||||
| 	SO_MAX_PACING_RATE             = 0x1018 | ||||
| 	SO_NOSIGPIPE                   = 0x800 | ||||
| 	SO_NO_DDP                      = 0x8000 | ||||
| 	SO_NO_OFFLOAD                  = 0x4000 | ||||
|  | @ -1387,13 +1475,22 @@ const ( | |||
| 	SO_RCVBUF                      = 0x1002 | ||||
| 	SO_RCVLOWAT                    = 0x1004 | ||||
| 	SO_RCVTIMEO                    = 0x1006 | ||||
| 	SO_RERROR                      = 0x20000 | ||||
| 	SO_REUSEADDR                   = 0x4 | ||||
| 	SO_REUSEPORT                   = 0x200 | ||||
| 	SO_REUSEPORT_LB                = 0x10000 | ||||
| 	SO_SETFIB                      = 0x1014 | ||||
| 	SO_SNDBUF                      = 0x1001 | ||||
| 	SO_SNDLOWAT                    = 0x1003 | ||||
| 	SO_SNDTIMEO                    = 0x1005 | ||||
| 	SO_TIMESTAMP                   = 0x400 | ||||
| 	SO_TS_BINTIME                  = 0x1 | ||||
| 	SO_TS_CLOCK                    = 0x1017 | ||||
| 	SO_TS_CLOCK_MAX                = 0x3 | ||||
| 	SO_TS_DEFAULT                  = 0x0 | ||||
| 	SO_TS_MONOTONIC                = 0x3 | ||||
| 	SO_TS_REALTIME                 = 0x2 | ||||
| 	SO_TS_REALTIME_MICRO           = 0x0 | ||||
| 	SO_TYPE                        = 0x1008 | ||||
| 	SO_USELOOPBACK                 = 0x40 | ||||
| 	SO_USER_COOKIE                 = 0x1015 | ||||
|  | @ -1437,10 +1534,69 @@ const ( | |||
| 	TCOFLUSH                       = 0x2 | ||||
| 	TCOOFF                         = 0x1 | ||||
| 	TCOON                          = 0x2 | ||||
| 	TCPOPT_EOL                     = 0x0 | ||||
| 	TCPOPT_FAST_OPEN               = 0x22 | ||||
| 	TCPOPT_MAXSEG                  = 0x2 | ||||
| 	TCPOPT_NOP                     = 0x1 | ||||
| 	TCPOPT_PAD                     = 0x0 | ||||
| 	TCPOPT_SACK                    = 0x5 | ||||
| 	TCPOPT_SACK_PERMITTED          = 0x4 | ||||
| 	TCPOPT_SIGNATURE               = 0x13 | ||||
| 	TCPOPT_TIMESTAMP               = 0x8 | ||||
| 	TCPOPT_WINDOW                  = 0x3 | ||||
| 	TCP_BBR_ACK_COMP_ALG           = 0x448 | ||||
| 	TCP_BBR_ALGORITHM              = 0x43b | ||||
| 	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c | ||||
| 	TCP_BBR_DRAIN_PG               = 0x42e | ||||
| 	TCP_BBR_EXTRA_GAIN             = 0x449 | ||||
| 	TCP_BBR_EXTRA_STATE            = 0x453 | ||||
| 	TCP_BBR_FLOOR_MIN_TSO          = 0x454 | ||||
| 	TCP_BBR_HDWR_PACE              = 0x451 | ||||
| 	TCP_BBR_HOLD_TARGET            = 0x436 | ||||
| 	TCP_BBR_IWINTSO                = 0x42b | ||||
| 	TCP_BBR_LOWGAIN_FD             = 0x436 | ||||
| 	TCP_BBR_LOWGAIN_HALF           = 0x435 | ||||
| 	TCP_BBR_LOWGAIN_THRESH         = 0x434 | ||||
| 	TCP_BBR_MAX_RTO                = 0x439 | ||||
| 	TCP_BBR_MIN_RTO                = 0x438 | ||||
| 	TCP_BBR_MIN_TOPACEOUT          = 0x455 | ||||
| 	TCP_BBR_ONE_RETRAN             = 0x431 | ||||
| 	TCP_BBR_PACE_CROSS             = 0x442 | ||||
| 	TCP_BBR_PACE_DEL_TAR           = 0x43f | ||||
| 	TCP_BBR_PACE_OH                = 0x435 | ||||
| 	TCP_BBR_PACE_PER_SEC           = 0x43e | ||||
| 	TCP_BBR_PACE_SEG_MAX           = 0x440 | ||||
| 	TCP_BBR_PACE_SEG_MIN           = 0x441 | ||||
| 	TCP_BBR_POLICER_DETECT         = 0x457 | ||||
| 	TCP_BBR_PROBE_RTT_GAIN         = 0x44d | ||||
| 	TCP_BBR_PROBE_RTT_INT          = 0x430 | ||||
| 	TCP_BBR_PROBE_RTT_LEN          = 0x44e | ||||
| 	TCP_BBR_RACK_RTT_USE           = 0x44a | ||||
| 	TCP_BBR_RECFORCE               = 0x42c | ||||
| 	TCP_BBR_REC_OVER_HPTS          = 0x43a | ||||
| 	TCP_BBR_RETRAN_WTSO            = 0x44b | ||||
| 	TCP_BBR_RWND_IS_APP            = 0x42f | ||||
| 	TCP_BBR_SEND_IWND_IN_TSO       = 0x44f | ||||
| 	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d | ||||
| 	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432 | ||||
| 	TCP_BBR_STARTUP_PG             = 0x42d | ||||
| 	TCP_BBR_TMR_PACE_OH            = 0x448 | ||||
| 	TCP_BBR_TSLIMITS               = 0x434 | ||||
| 	TCP_BBR_TSTMP_RAISES           = 0x456 | ||||
| 	TCP_BBR_UNLIMITED              = 0x43b | ||||
| 	TCP_BBR_USEDEL_RATE            = 0x437 | ||||
| 	TCP_BBR_USE_LOWGAIN            = 0x433 | ||||
| 	TCP_BBR_USE_RACK_CHEAT         = 0x450 | ||||
| 	TCP_BBR_UTTER_MAX_TSO          = 0x452 | ||||
| 	TCP_CA_NAME_MAX                = 0x10 | ||||
| 	TCP_CCALGOOPT                  = 0x41 | ||||
| 	TCP_CONGESTION                 = 0x40 | ||||
| 	TCP_DATA_AFTER_CLOSE           = 0x44c | ||||
| 	TCP_DELACK                     = 0x48 | ||||
| 	TCP_FASTOPEN                   = 0x401 | ||||
| 	TCP_FASTOPEN_MAX_COOKIE_LEN    = 0x10 | ||||
| 	TCP_FASTOPEN_MIN_COOKIE_LEN    = 0x4 | ||||
| 	TCP_FASTOPEN_PSK_LEN           = 0x10 | ||||
| 	TCP_FUNCTION_BLK               = 0x2000 | ||||
| 	TCP_FUNCTION_NAME_LEN_MAX      = 0x20 | ||||
| 	TCP_INFO                       = 0x20 | ||||
|  | @ -1448,6 +1604,12 @@ const ( | |||
| 	TCP_KEEPIDLE                   = 0x100 | ||||
| 	TCP_KEEPINIT                   = 0x80 | ||||
| 	TCP_KEEPINTVL                  = 0x200 | ||||
| 	TCP_LOG                        = 0x22 | ||||
| 	TCP_LOGBUF                     = 0x23 | ||||
| 	TCP_LOGDUMP                    = 0x25 | ||||
| 	TCP_LOGDUMPID                  = 0x26 | ||||
| 	TCP_LOGID                      = 0x24 | ||||
| 	TCP_LOG_ID_LEN                 = 0x40 | ||||
| 	TCP_MAXBURST                   = 0x4 | ||||
| 	TCP_MAXHLEN                    = 0x3c | ||||
| 	TCP_MAXOLEN                    = 0x28 | ||||
|  | @ -1463,8 +1625,30 @@ const ( | |||
| 	TCP_NOPUSH                     = 0x4 | ||||
| 	TCP_PCAP_IN                    = 0x1000 | ||||
| 	TCP_PCAP_OUT                   = 0x800 | ||||
| 	TCP_RACK_EARLY_RECOV           = 0x423 | ||||
| 	TCP_RACK_EARLY_SEG             = 0x424 | ||||
| 	TCP_RACK_GP_INCREASE           = 0x446 | ||||
| 	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444 | ||||
| 	TCP_RACK_MIN_PACE              = 0x445 | ||||
| 	TCP_RACK_MIN_PACE_SEG          = 0x446 | ||||
| 	TCP_RACK_MIN_TO                = 0x422 | ||||
| 	TCP_RACK_PACE_ALWAYS           = 0x41f | ||||
| 	TCP_RACK_PACE_MAX_SEG          = 0x41e | ||||
| 	TCP_RACK_PACE_REDUCE           = 0x41d | ||||
| 	TCP_RACK_PKT_DELAY             = 0x428 | ||||
| 	TCP_RACK_PROP                  = 0x41b | ||||
| 	TCP_RACK_PROP_RATE             = 0x420 | ||||
| 	TCP_RACK_PRR_SENDALOT          = 0x421 | ||||
| 	TCP_RACK_REORD_FADE            = 0x426 | ||||
| 	TCP_RACK_REORD_THRESH          = 0x425 | ||||
| 	TCP_RACK_TLP_INC_VAR           = 0x429 | ||||
| 	TCP_RACK_TLP_REDUCE            = 0x41c | ||||
| 	TCP_RACK_TLP_THRESH            = 0x427 | ||||
| 	TCP_RACK_TLP_USE               = 0x447 | ||||
| 	TCP_VENDOR                     = 0x80000000 | ||||
| 	TCSAFLUSH                      = 0x2 | ||||
| 	TIMER_ABSTIME                  = 0x1 | ||||
| 	TIMER_RELTIME                  = 0x0 | ||||
| 	TIOCCBRK                       = 0x2000747a | ||||
| 	TIOCCDTR                       = 0x20007478 | ||||
| 	TIOCCONS                       = 0x80047462 | ||||
|  | @ -1528,6 +1712,8 @@ const ( | |||
| 	TIOCTIMESTAMP                  = 0x40107459 | ||||
| 	TIOCUCNTL                      = 0x80047466 | ||||
| 	TOSTOP                         = 0x400000 | ||||
| 	UTIME_NOW                      = -0x1 | ||||
| 	UTIME_OMIT                     = -0x2 | ||||
| 	VDISCARD                       = 0xf | ||||
| 	VDSUSP                         = 0xb | ||||
| 	VEOF                           = 0x0 | ||||
|  | @ -1592,12 +1778,13 @@ const ( | |||
| 	EIDRM           = syscall.Errno(0x52) | ||||
| 	EILSEQ          = syscall.Errno(0x56) | ||||
| 	EINPROGRESS     = syscall.Errno(0x24) | ||||
| 	EINTEGRITY      = syscall.Errno(0x61) | ||||
| 	EINTR           = syscall.Errno(0x4) | ||||
| 	EINVAL          = syscall.Errno(0x16) | ||||
| 	EIO             = syscall.Errno(0x5) | ||||
| 	EISCONN         = syscall.Errno(0x38) | ||||
| 	EISDIR          = syscall.Errno(0x15) | ||||
| 	ELAST           = syscall.Errno(0x60) | ||||
| 	ELAST           = syscall.Errno(0x61) | ||||
| 	ELOOP           = syscall.Errno(0x3e) | ||||
| 	EMFILE          = syscall.Errno(0x18) | ||||
| 	EMLINK          = syscall.Errno(0x1f) | ||||
|  | @ -1740,7 +1927,7 @@ var errorList = [...]struct { | |||
| 	{32, "EPIPE", "broken pipe"}, | ||||
| 	{33, "EDOM", "numerical argument out of domain"}, | ||||
| 	{34, "ERANGE", "result too large"}, | ||||
| 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||
| 	{35, "EWOULDBLOCK", "resource temporarily unavailable"}, | ||||
| 	{36, "EINPROGRESS", "operation now in progress"}, | ||||
| 	{37, "EALREADY", "operation already in progress"}, | ||||
| 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||
|  | @ -1802,6 +1989,7 @@ var errorList = [...]struct { | |||
| 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||
| 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||
| 	{96, "EOWNERDEAD", "previous owner died"}, | ||||
| 	{97, "EINTEGRITY", "integrity check failed"}, | ||||
| } | ||||
| 
 | ||||
| // Signal table
 | ||||
|  |  | |||
|  | @ -151,6 +151,7 @@ const ( | |||
| 	BIOCSETF                       = 0x80104267 | ||||
| 	BIOCSETFNR                     = 0x80104282 | ||||
| 	BIOCSETIF                      = 0x8020426c | ||||
| 	BIOCSETVLANPCP                 = 0x80044285 | ||||
| 	BIOCSETWF                      = 0x8010427b | ||||
| 	BIOCSETZBUF                    = 0x80184281 | ||||
| 	BIOCSHDRCMPLT                  = 0x80044275 | ||||
|  | @ -447,7 +448,7 @@ const ( | |||
| 	DLT_IEEE802_16_MAC_CPS_RADIO   = 0xc1 | ||||
| 	DLT_INFINIBAND                 = 0xf7 | ||||
| 	DLT_IPFILTER                   = 0x74 | ||||
| 	DLT_IPMB                       = 0xc7 | ||||
| 	DLT_IPMB_KONTRON               = 0xc7 | ||||
| 	DLT_IPMB_LINUX                 = 0xd1 | ||||
| 	DLT_IPMI_HPM_2                 = 0x104 | ||||
| 	DLT_IPNET                      = 0xe2 | ||||
|  | @ -487,10 +488,11 @@ const ( | |||
| 	DLT_LINUX_LAPD                 = 0xb1 | ||||
| 	DLT_LINUX_PPP_WITHDIRECTION    = 0xa6 | ||||
| 	DLT_LINUX_SLL                  = 0x71 | ||||
| 	DLT_LINUX_SLL2                 = 0x114 | ||||
| 	DLT_LOOP                       = 0x6c | ||||
| 	DLT_LORATAP                    = 0x10e | ||||
| 	DLT_LTALK                      = 0x72 | ||||
| 	DLT_MATCHING_MAX               = 0x113 | ||||
| 	DLT_MATCHING_MAX               = 0x114 | ||||
| 	DLT_MATCHING_MIN               = 0x68 | ||||
| 	DLT_MFR                        = 0xb6 | ||||
| 	DLT_MOST                       = 0xd3 | ||||
|  | @ -734,6 +736,7 @@ const ( | |||
| 	IPPROTO_CMTP                   = 0x26 | ||||
| 	IPPROTO_CPHB                   = 0x49 | ||||
| 	IPPROTO_CPNX                   = 0x48 | ||||
| 	IPPROTO_DCCP                   = 0x21 | ||||
| 	IPPROTO_DDP                    = 0x25 | ||||
| 	IPPROTO_DGP                    = 0x56 | ||||
| 	IPPROTO_DIVERT                 = 0x102 | ||||
|  | @ -814,7 +817,6 @@ const ( | |||
| 	IPPROTO_SCTP                   = 0x84 | ||||
| 	IPPROTO_SDRP                   = 0x2a | ||||
| 	IPPROTO_SEND                   = 0x103 | ||||
| 	IPPROTO_SEP                    = 0x21 | ||||
| 	IPPROTO_SHIM6                  = 0x8c | ||||
| 	IPPROTO_SKIP                   = 0x39 | ||||
| 	IPPROTO_SPACER                 = 0x7fff | ||||
|  | @ -911,6 +913,7 @@ const ( | |||
| 	IPV6_V6ONLY                    = 0x1b | ||||
| 	IPV6_VERSION                   = 0x60 | ||||
| 	IPV6_VERSION_MASK              = 0xf0 | ||||
| 	IPV6_VLAN_PCP                  = 0x4b | ||||
| 	IP_ADD_MEMBERSHIP              = 0xc | ||||
| 	IP_ADD_SOURCE_MEMBERSHIP       = 0x46 | ||||
| 	IP_BINDANY                     = 0x18 | ||||
|  | @ -989,8 +992,12 @@ const ( | |||
| 	IP_TOS                         = 0x3 | ||||
| 	IP_TTL                         = 0x4 | ||||
| 	IP_UNBLOCK_SOURCE              = 0x49 | ||||
| 	IP_VLAN_PCP                    = 0x4b | ||||
| 	ISIG                           = 0x80 | ||||
| 	ISTRIP                         = 0x20 | ||||
| 	ITIMER_PROF                    = 0x2 | ||||
| 	ITIMER_REAL                    = 0x0 | ||||
| 	ITIMER_VIRTUAL                 = 0x1 | ||||
| 	IXANY                          = 0x800 | ||||
| 	IXOFF                          = 0x400 | ||||
| 	IXON                           = 0x200 | ||||
|  | @ -1000,7 +1007,6 @@ const ( | |||
| 	KERN_VERSION                   = 0x4 | ||||
| 	LOCAL_CONNWAIT                 = 0x4 | ||||
| 	LOCAL_CREDS                    = 0x2 | ||||
| 	LOCAL_CREDS_PERSISTENT         = 0x3 | ||||
| 	LOCAL_PEERCRED                 = 0x1 | ||||
| 	LOCAL_VENDOR                   = 0x80000000 | ||||
| 	LOCK_EX                        = 0x2 | ||||
|  | @ -1180,6 +1186,8 @@ const ( | |||
| 	O_NONBLOCK                     = 0x4 | ||||
| 	O_RDONLY                       = 0x0 | ||||
| 	O_RDWR                         = 0x2 | ||||
| 	O_RESOLVE_BENEATH              = 0x800000 | ||||
| 	O_SEARCH                       = 0x40000 | ||||
| 	O_SHLOCK                       = 0x10 | ||||
| 	O_SYNC                         = 0x80 | ||||
| 	O_TRUNC                        = 0x400 | ||||
|  | @ -1190,6 +1198,10 @@ const ( | |||
| 	PARMRK                         = 0x8 | ||||
| 	PARODD                         = 0x2000 | ||||
| 	PENDIN                         = 0x20000000 | ||||
| 	PIOD_READ_D                    = 0x1 | ||||
| 	PIOD_READ_I                    = 0x3 | ||||
| 	PIOD_WRITE_D                   = 0x2 | ||||
| 	PIOD_WRITE_I                   = 0x4 | ||||
| 	PRIO_PGRP                      = 0x1 | ||||
| 	PRIO_PROCESS                   = 0x0 | ||||
| 	PRIO_USER                      = 0x2 | ||||
|  | @ -1197,6 +1209,51 @@ const ( | |||
| 	PROT_NONE                      = 0x0 | ||||
| 	PROT_READ                      = 0x1 | ||||
| 	PROT_WRITE                     = 0x2 | ||||
| 	PTRACE_DEFAULT                 = 0x1 | ||||
| 	PTRACE_EXEC                    = 0x1 | ||||
| 	PTRACE_FORK                    = 0x8 | ||||
| 	PTRACE_LWP                     = 0x10 | ||||
| 	PTRACE_SCE                     = 0x2 | ||||
| 	PTRACE_SCX                     = 0x4 | ||||
| 	PTRACE_SYSCALL                 = 0x6 | ||||
| 	PTRACE_VFORK                   = 0x20 | ||||
| 	PT_ATTACH                      = 0xa | ||||
| 	PT_CLEARSTEP                   = 0x10 | ||||
| 	PT_CONTINUE                    = 0x7 | ||||
| 	PT_DETACH                      = 0xb | ||||
| 	PT_FIRSTMACH                   = 0x40 | ||||
| 	PT_FOLLOW_FORK                 = 0x17 | ||||
| 	PT_GETDBREGS                   = 0x25 | ||||
| 	PT_GETFPREGS                   = 0x23 | ||||
| 	PT_GETLWPLIST                  = 0xf | ||||
| 	PT_GETNUMLWPS                  = 0xe | ||||
| 	PT_GETREGS                     = 0x21 | ||||
| 	PT_GET_EVENT_MASK              = 0x19 | ||||
| 	PT_GET_SC_ARGS                 = 0x1b | ||||
| 	PT_GET_SC_RET                  = 0x1c | ||||
| 	PT_IO                          = 0xc | ||||
| 	PT_KILL                        = 0x8 | ||||
| 	PT_LWPINFO                     = 0xd | ||||
| 	PT_LWP_EVENTS                  = 0x18 | ||||
| 	PT_READ_D                      = 0x2 | ||||
| 	PT_READ_I                      = 0x1 | ||||
| 	PT_RESUME                      = 0x13 | ||||
| 	PT_SETDBREGS                   = 0x26 | ||||
| 	PT_SETFPREGS                   = 0x24 | ||||
| 	PT_SETREGS                     = 0x22 | ||||
| 	PT_SETSTEP                     = 0x11 | ||||
| 	PT_SET_EVENT_MASK              = 0x1a | ||||
| 	PT_STEP                        = 0x9 | ||||
| 	PT_SUSPEND                     = 0x12 | ||||
| 	PT_SYSCALL                     = 0x16 | ||||
| 	PT_TO_SCE                      = 0x14 | ||||
| 	PT_TO_SCX                      = 0x15 | ||||
| 	PT_TRACE_ME                    = 0x0 | ||||
| 	PT_VM_ENTRY                    = 0x29 | ||||
| 	PT_VM_TIMESTAMP                = 0x28 | ||||
| 	PT_WRITE_D                     = 0x5 | ||||
| 	PT_WRITE_I                     = 0x4 | ||||
| 	P_ZONEID                       = 0xc | ||||
| 	RLIMIT_AS                      = 0xa | ||||
| 	RLIMIT_CORE                    = 0x4 | ||||
| 	RLIMIT_CPU                     = 0x0 | ||||
|  | @ -1321,10 +1378,12 @@ const ( | |||
| 	SIOCGHWADDR                    = 0xc020693e | ||||
| 	SIOCGI2C                       = 0xc020693d | ||||
| 	SIOCGIFADDR                    = 0xc0206921 | ||||
| 	SIOCGIFALIAS                   = 0xc044692d | ||||
| 	SIOCGIFBRDADDR                 = 0xc0206923 | ||||
| 	SIOCGIFCAP                     = 0xc020691f | ||||
| 	SIOCGIFCONF                    = 0xc0106924 | ||||
| 	SIOCGIFDESCR                   = 0xc020692a | ||||
| 	SIOCGIFDOWNREASON              = 0xc058699a | ||||
| 	SIOCGIFDSTADDR                 = 0xc0206922 | ||||
| 	SIOCGIFFIB                     = 0xc020695c | ||||
| 	SIOCGIFFLAGS                   = 0xc0206911 | ||||
|  | @ -1415,6 +1474,7 @@ const ( | |||
| 	SO_RCVBUF                      = 0x1002 | ||||
| 	SO_RCVLOWAT                    = 0x1004 | ||||
| 	SO_RCVTIMEO                    = 0x1006 | ||||
| 	SO_RERROR                      = 0x20000 | ||||
| 	SO_REUSEADDR                   = 0x4 | ||||
| 	SO_REUSEPORT                   = 0x200 | ||||
| 	SO_REUSEPORT_LB                = 0x10000 | ||||
|  | @ -1473,22 +1533,40 @@ const ( | |||
| 	TCOFLUSH                       = 0x2 | ||||
| 	TCOOFF                         = 0x1 | ||||
| 	TCOON                          = 0x2 | ||||
| 	TCPOPT_EOL                     = 0x0 | ||||
| 	TCPOPT_FAST_OPEN               = 0x22 | ||||
| 	TCPOPT_MAXSEG                  = 0x2 | ||||
| 	TCPOPT_NOP                     = 0x1 | ||||
| 	TCPOPT_PAD                     = 0x0 | ||||
| 	TCPOPT_SACK                    = 0x5 | ||||
| 	TCPOPT_SACK_PERMITTED          = 0x4 | ||||
| 	TCPOPT_SIGNATURE               = 0x13 | ||||
| 	TCPOPT_TIMESTAMP               = 0x8 | ||||
| 	TCPOPT_WINDOW                  = 0x3 | ||||
| 	TCP_BBR_ACK_COMP_ALG           = 0x448 | ||||
| 	TCP_BBR_ALGORITHM              = 0x43b | ||||
| 	TCP_BBR_DRAIN_INC_EXTRA        = 0x43c | ||||
| 	TCP_BBR_DRAIN_PG               = 0x42e | ||||
| 	TCP_BBR_EXTRA_GAIN             = 0x449 | ||||
| 	TCP_BBR_EXTRA_STATE            = 0x453 | ||||
| 	TCP_BBR_FLOOR_MIN_TSO          = 0x454 | ||||
| 	TCP_BBR_HDWR_PACE              = 0x451 | ||||
| 	TCP_BBR_HOLD_TARGET            = 0x436 | ||||
| 	TCP_BBR_IWINTSO                = 0x42b | ||||
| 	TCP_BBR_LOWGAIN_FD             = 0x436 | ||||
| 	TCP_BBR_LOWGAIN_HALF           = 0x435 | ||||
| 	TCP_BBR_LOWGAIN_THRESH         = 0x434 | ||||
| 	TCP_BBR_MAX_RTO                = 0x439 | ||||
| 	TCP_BBR_MIN_RTO                = 0x438 | ||||
| 	TCP_BBR_MIN_TOPACEOUT          = 0x455 | ||||
| 	TCP_BBR_ONE_RETRAN             = 0x431 | ||||
| 	TCP_BBR_PACE_CROSS             = 0x442 | ||||
| 	TCP_BBR_PACE_DEL_TAR           = 0x43f | ||||
| 	TCP_BBR_PACE_OH                = 0x435 | ||||
| 	TCP_BBR_PACE_PER_SEC           = 0x43e | ||||
| 	TCP_BBR_PACE_SEG_MAX           = 0x440 | ||||
| 	TCP_BBR_PACE_SEG_MIN           = 0x441 | ||||
| 	TCP_BBR_POLICER_DETECT         = 0x457 | ||||
| 	TCP_BBR_PROBE_RTT_GAIN         = 0x44d | ||||
| 	TCP_BBR_PROBE_RTT_INT          = 0x430 | ||||
| 	TCP_BBR_PROBE_RTT_LEN          = 0x44e | ||||
|  | @ -1497,12 +1575,18 @@ const ( | |||
| 	TCP_BBR_REC_OVER_HPTS          = 0x43a | ||||
| 	TCP_BBR_RETRAN_WTSO            = 0x44b | ||||
| 	TCP_BBR_RWND_IS_APP            = 0x42f | ||||
| 	TCP_BBR_SEND_IWND_IN_TSO       = 0x44f | ||||
| 	TCP_BBR_STARTUP_EXIT_EPOCH     = 0x43d | ||||
| 	TCP_BBR_STARTUP_LOSS_EXIT      = 0x432 | ||||
| 	TCP_BBR_STARTUP_PG             = 0x42d | ||||
| 	TCP_BBR_TMR_PACE_OH            = 0x448 | ||||
| 	TCP_BBR_TSLIMITS               = 0x434 | ||||
| 	TCP_BBR_TSTMP_RAISES           = 0x456 | ||||
| 	TCP_BBR_UNLIMITED              = 0x43b | ||||
| 	TCP_BBR_USEDEL_RATE            = 0x437 | ||||
| 	TCP_BBR_USE_LOWGAIN            = 0x433 | ||||
| 	TCP_BBR_USE_RACK_CHEAT         = 0x450 | ||||
| 	TCP_BBR_UTTER_MAX_TSO          = 0x452 | ||||
| 	TCP_CA_NAME_MAX                = 0x10 | ||||
| 	TCP_CCALGOOPT                  = 0x41 | ||||
| 	TCP_CONGESTION                 = 0x40 | ||||
|  | @ -1542,6 +1626,7 @@ const ( | |||
| 	TCP_PCAP_OUT                   = 0x800 | ||||
| 	TCP_RACK_EARLY_RECOV           = 0x423 | ||||
| 	TCP_RACK_EARLY_SEG             = 0x424 | ||||
| 	TCP_RACK_GP_INCREASE           = 0x446 | ||||
| 	TCP_RACK_IDLE_REDUCE_HIGH      = 0x444 | ||||
| 	TCP_RACK_MIN_PACE              = 0x445 | ||||
| 	TCP_RACK_MIN_PACE_SEG          = 0x446 | ||||
|  | @ -1555,7 +1640,6 @@ const ( | |||
| 	TCP_RACK_PRR_SENDALOT          = 0x421 | ||||
| 	TCP_RACK_REORD_FADE            = 0x426 | ||||
| 	TCP_RACK_REORD_THRESH          = 0x425 | ||||
| 	TCP_RACK_SESS_CWV              = 0x42a | ||||
| 	TCP_RACK_TLP_INC_VAR           = 0x429 | ||||
| 	TCP_RACK_TLP_REDUCE            = 0x41c | ||||
| 	TCP_RACK_TLP_THRESH            = 0x427 | ||||
|  | @ -1694,12 +1778,13 @@ const ( | |||
| 	EIDRM           = syscall.Errno(0x52) | ||||
| 	EILSEQ          = syscall.Errno(0x56) | ||||
| 	EINPROGRESS     = syscall.Errno(0x24) | ||||
| 	EINTEGRITY      = syscall.Errno(0x61) | ||||
| 	EINTR           = syscall.Errno(0x4) | ||||
| 	EINVAL          = syscall.Errno(0x16) | ||||
| 	EIO             = syscall.Errno(0x5) | ||||
| 	EISCONN         = syscall.Errno(0x38) | ||||
| 	EISDIR          = syscall.Errno(0x15) | ||||
| 	ELAST           = syscall.Errno(0x60) | ||||
| 	ELAST           = syscall.Errno(0x61) | ||||
| 	ELOOP           = syscall.Errno(0x3e) | ||||
| 	EMFILE          = syscall.Errno(0x18) | ||||
| 	EMLINK          = syscall.Errno(0x1f) | ||||
|  | @ -1842,7 +1927,7 @@ var errorList = [...]struct { | |||
| 	{32, "EPIPE", "broken pipe"}, | ||||
| 	{33, "EDOM", "numerical argument out of domain"}, | ||||
| 	{34, "ERANGE", "result too large"}, | ||||
| 	{35, "EAGAIN", "resource temporarily unavailable"}, | ||||
| 	{35, "EWOULDBLOCK", "resource temporarily unavailable"}, | ||||
| 	{36, "EINPROGRESS", "operation now in progress"}, | ||||
| 	{37, "EALREADY", "operation already in progress"}, | ||||
| 	{38, "ENOTSOCK", "socket operation on non-socket"}, | ||||
|  | @ -1904,6 +1989,7 @@ var errorList = [...]struct { | |||
| 	{94, "ECAPMODE", "not permitted in capability mode"}, | ||||
| 	{95, "ENOTRECOVERABLE", "state not recoverable"}, | ||||
| 	{96, "EOWNERDEAD", "previous owner died"}, | ||||
| 	{97, "EINTEGRITY", "integrity check failed"}, | ||||
| } | ||||
| 
 | ||||
| // Signal table
 | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -38,7 +38,8 @@ const ( | |||
| 	AF_KEY                                      = 0xf | ||||
| 	AF_LLC                                      = 0x1a | ||||
| 	AF_LOCAL                                    = 0x1 | ||||
| 	AF_MAX                                      = 0x2d | ||||
| 	AF_MAX                                      = 0x2e | ||||
| 	AF_MCTP                                     = 0x2d | ||||
| 	AF_MPLS                                     = 0x1c | ||||
| 	AF_NETBEUI                                  = 0xd | ||||
| 	AF_NETLINK                                  = 0x10 | ||||
|  | @ -139,6 +140,306 @@ const ( | |||
| 	ARPHRD_VOID                                 = 0xffff | ||||
| 	ARPHRD_VSOCKMON                             = 0x33a | ||||
| 	ARPHRD_X25                                  = 0x10f | ||||
| 	AUDIT_ADD                                   = 0x3eb | ||||
| 	AUDIT_ADD_RULE                              = 0x3f3 | ||||
| 	AUDIT_ALWAYS                                = 0x2 | ||||
| 	AUDIT_ANOM_ABEND                            = 0x6a5 | ||||
| 	AUDIT_ANOM_CREAT                            = 0x6a7 | ||||
| 	AUDIT_ANOM_LINK                             = 0x6a6 | ||||
| 	AUDIT_ANOM_PROMISCUOUS                      = 0x6a4 | ||||
| 	AUDIT_ARCH                                  = 0xb | ||||
| 	AUDIT_ARCH_AARCH64                          = 0xc00000b7 | ||||
| 	AUDIT_ARCH_ALPHA                            = 0xc0009026 | ||||
| 	AUDIT_ARCH_ARCOMPACT                        = 0x4000005d | ||||
| 	AUDIT_ARCH_ARCOMPACTBE                      = 0x5d | ||||
| 	AUDIT_ARCH_ARCV2                            = 0x400000c3 | ||||
| 	AUDIT_ARCH_ARCV2BE                          = 0xc3 | ||||
| 	AUDIT_ARCH_ARM                              = 0x40000028 | ||||
| 	AUDIT_ARCH_ARMEB                            = 0x28 | ||||
| 	AUDIT_ARCH_C6X                              = 0x4000008c | ||||
| 	AUDIT_ARCH_C6XBE                            = 0x8c | ||||
| 	AUDIT_ARCH_CRIS                             = 0x4000004c | ||||
| 	AUDIT_ARCH_CSKY                             = 0x400000fc | ||||
| 	AUDIT_ARCH_FRV                              = 0x5441 | ||||
| 	AUDIT_ARCH_H8300                            = 0x2e | ||||
| 	AUDIT_ARCH_HEXAGON                          = 0xa4 | ||||
| 	AUDIT_ARCH_I386                             = 0x40000003 | ||||
| 	AUDIT_ARCH_IA64                             = 0xc0000032 | ||||
| 	AUDIT_ARCH_LOONGARCH32                      = 0x40000102 | ||||
| 	AUDIT_ARCH_LOONGARCH64                      = 0xc0000102 | ||||
| 	AUDIT_ARCH_M32R                             = 0x58 | ||||
| 	AUDIT_ARCH_M68K                             = 0x4 | ||||
| 	AUDIT_ARCH_MICROBLAZE                       = 0xbd | ||||
| 	AUDIT_ARCH_MIPS                             = 0x8 | ||||
| 	AUDIT_ARCH_MIPS64                           = 0x80000008 | ||||
| 	AUDIT_ARCH_MIPS64N32                        = 0xa0000008 | ||||
| 	AUDIT_ARCH_MIPSEL                           = 0x40000008 | ||||
| 	AUDIT_ARCH_MIPSEL64                         = 0xc0000008 | ||||
| 	AUDIT_ARCH_MIPSEL64N32                      = 0xe0000008 | ||||
| 	AUDIT_ARCH_NDS32                            = 0x400000a7 | ||||
| 	AUDIT_ARCH_NDS32BE                          = 0xa7 | ||||
| 	AUDIT_ARCH_NIOS2                            = 0x40000071 | ||||
| 	AUDIT_ARCH_OPENRISC                         = 0x5c | ||||
| 	AUDIT_ARCH_PARISC                           = 0xf | ||||
| 	AUDIT_ARCH_PARISC64                         = 0x8000000f | ||||
| 	AUDIT_ARCH_PPC                              = 0x14 | ||||
| 	AUDIT_ARCH_PPC64                            = 0x80000015 | ||||
| 	AUDIT_ARCH_PPC64LE                          = 0xc0000015 | ||||
| 	AUDIT_ARCH_RISCV32                          = 0x400000f3 | ||||
| 	AUDIT_ARCH_RISCV64                          = 0xc00000f3 | ||||
| 	AUDIT_ARCH_S390                             = 0x16 | ||||
| 	AUDIT_ARCH_S390X                            = 0x80000016 | ||||
| 	AUDIT_ARCH_SH                               = 0x2a | ||||
| 	AUDIT_ARCH_SH64                             = 0x8000002a | ||||
| 	AUDIT_ARCH_SHEL                             = 0x4000002a | ||||
| 	AUDIT_ARCH_SHEL64                           = 0xc000002a | ||||
| 	AUDIT_ARCH_SPARC                            = 0x2 | ||||
| 	AUDIT_ARCH_SPARC64                          = 0x8000002b | ||||
| 	AUDIT_ARCH_TILEGX                           = 0xc00000bf | ||||
| 	AUDIT_ARCH_TILEGX32                         = 0x400000bf | ||||
| 	AUDIT_ARCH_TILEPRO                          = 0x400000bc | ||||
| 	AUDIT_ARCH_UNICORE                          = 0x4000006e | ||||
| 	AUDIT_ARCH_X86_64                           = 0xc000003e | ||||
| 	AUDIT_ARCH_XTENSA                           = 0x5e | ||||
| 	AUDIT_ARG0                                  = 0xc8 | ||||
| 	AUDIT_ARG1                                  = 0xc9 | ||||
| 	AUDIT_ARG2                                  = 0xca | ||||
| 	AUDIT_ARG3                                  = 0xcb | ||||
| 	AUDIT_AVC                                   = 0x578 | ||||
| 	AUDIT_AVC_PATH                              = 0x57a | ||||
| 	AUDIT_BITMASK_SIZE                          = 0x40 | ||||
| 	AUDIT_BIT_MASK                              = 0x8000000 | ||||
| 	AUDIT_BIT_TEST                              = 0x48000000 | ||||
| 	AUDIT_BPF                                   = 0x536 | ||||
| 	AUDIT_BPRM_FCAPS                            = 0x529 | ||||
| 	AUDIT_CAPSET                                = 0x52a | ||||
| 	AUDIT_CLASS_CHATTR                          = 0x2 | ||||
| 	AUDIT_CLASS_CHATTR_32                       = 0x3 | ||||
| 	AUDIT_CLASS_DIR_WRITE                       = 0x0 | ||||
| 	AUDIT_CLASS_DIR_WRITE_32                    = 0x1 | ||||
| 	AUDIT_CLASS_READ                            = 0x4 | ||||
| 	AUDIT_CLASS_READ_32                         = 0x5 | ||||
| 	AUDIT_CLASS_SIGNAL                          = 0x8 | ||||
| 	AUDIT_CLASS_SIGNAL_32                       = 0x9 | ||||
| 	AUDIT_CLASS_WRITE                           = 0x6 | ||||
| 	AUDIT_CLASS_WRITE_32                        = 0x7 | ||||
| 	AUDIT_COMPARE_AUID_TO_EUID                  = 0x10 | ||||
| 	AUDIT_COMPARE_AUID_TO_FSUID                 = 0xe | ||||
| 	AUDIT_COMPARE_AUID_TO_OBJ_UID               = 0x5 | ||||
| 	AUDIT_COMPARE_AUID_TO_SUID                  = 0xf | ||||
| 	AUDIT_COMPARE_EGID_TO_FSGID                 = 0x17 | ||||
| 	AUDIT_COMPARE_EGID_TO_OBJ_GID               = 0x4 | ||||
| 	AUDIT_COMPARE_EGID_TO_SGID                  = 0x18 | ||||
| 	AUDIT_COMPARE_EUID_TO_FSUID                 = 0x12 | ||||
| 	AUDIT_COMPARE_EUID_TO_OBJ_UID               = 0x3 | ||||
| 	AUDIT_COMPARE_EUID_TO_SUID                  = 0x11 | ||||
| 	AUDIT_COMPARE_FSGID_TO_OBJ_GID              = 0x9 | ||||
| 	AUDIT_COMPARE_FSUID_TO_OBJ_UID              = 0x8 | ||||
| 	AUDIT_COMPARE_GID_TO_EGID                   = 0x14 | ||||
| 	AUDIT_COMPARE_GID_TO_FSGID                  = 0x15 | ||||
| 	AUDIT_COMPARE_GID_TO_OBJ_GID                = 0x2 | ||||
| 	AUDIT_COMPARE_GID_TO_SGID                   = 0x16 | ||||
| 	AUDIT_COMPARE_SGID_TO_FSGID                 = 0x19 | ||||
| 	AUDIT_COMPARE_SGID_TO_OBJ_GID               = 0x7 | ||||
| 	AUDIT_COMPARE_SUID_TO_FSUID                 = 0x13 | ||||
| 	AUDIT_COMPARE_SUID_TO_OBJ_UID               = 0x6 | ||||
| 	AUDIT_COMPARE_UID_TO_AUID                   = 0xa | ||||
| 	AUDIT_COMPARE_UID_TO_EUID                   = 0xb | ||||
| 	AUDIT_COMPARE_UID_TO_FSUID                  = 0xc | ||||
| 	AUDIT_COMPARE_UID_TO_OBJ_UID                = 0x1 | ||||
| 	AUDIT_COMPARE_UID_TO_SUID                   = 0xd | ||||
| 	AUDIT_CONFIG_CHANGE                         = 0x519 | ||||
| 	AUDIT_CWD                                   = 0x51b | ||||
| 	AUDIT_DAEMON_ABORT                          = 0x4b2 | ||||
| 	AUDIT_DAEMON_CONFIG                         = 0x4b3 | ||||
| 	AUDIT_DAEMON_END                            = 0x4b1 | ||||
| 	AUDIT_DAEMON_START                          = 0x4b0 | ||||
| 	AUDIT_DEL                                   = 0x3ec | ||||
| 	AUDIT_DEL_RULE                              = 0x3f4 | ||||
| 	AUDIT_DEVMAJOR                              = 0x64 | ||||
| 	AUDIT_DEVMINOR                              = 0x65 | ||||
| 	AUDIT_DIR                                   = 0x6b | ||||
| 	AUDIT_DM_CTRL                               = 0x53a | ||||
| 	AUDIT_DM_EVENT                              = 0x53b | ||||
| 	AUDIT_EGID                                  = 0x6 | ||||
| 	AUDIT_EOE                                   = 0x528 | ||||
| 	AUDIT_EQUAL                                 = 0x40000000 | ||||
| 	AUDIT_EUID                                  = 0x2 | ||||
| 	AUDIT_EVENT_LISTENER                        = 0x537 | ||||
| 	AUDIT_EXE                                   = 0x70 | ||||
| 	AUDIT_EXECVE                                = 0x51d | ||||
| 	AUDIT_EXIT                                  = 0x67 | ||||
| 	AUDIT_FAIL_PANIC                            = 0x2 | ||||
| 	AUDIT_FAIL_PRINTK                           = 0x1 | ||||
| 	AUDIT_FAIL_SILENT                           = 0x0 | ||||
| 	AUDIT_FANOTIFY                              = 0x533 | ||||
| 	AUDIT_FD_PAIR                               = 0x525 | ||||
| 	AUDIT_FEATURE_BITMAP_ALL                    = 0x7f | ||||
| 	AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT          = 0x1 | ||||
| 	AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME      = 0x2 | ||||
| 	AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND         = 0x8 | ||||
| 	AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH        = 0x4 | ||||
| 	AUDIT_FEATURE_BITMAP_FILTER_FS              = 0x40 | ||||
| 	AUDIT_FEATURE_BITMAP_LOST_RESET             = 0x20 | ||||
| 	AUDIT_FEATURE_BITMAP_SESSIONID_FILTER       = 0x10 | ||||
| 	AUDIT_FEATURE_CHANGE                        = 0x530 | ||||
| 	AUDIT_FEATURE_LOGINUID_IMMUTABLE            = 0x1 | ||||
| 	AUDIT_FEATURE_ONLY_UNSET_LOGINUID           = 0x0 | ||||
| 	AUDIT_FEATURE_VERSION                       = 0x1 | ||||
| 	AUDIT_FIELD_COMPARE                         = 0x6f | ||||
| 	AUDIT_FILETYPE                              = 0x6c | ||||
| 	AUDIT_FILTERKEY                             = 0xd2 | ||||
| 	AUDIT_FILTER_ENTRY                          = 0x2 | ||||
| 	AUDIT_FILTER_EXCLUDE                        = 0x5 | ||||
| 	AUDIT_FILTER_EXIT                           = 0x4 | ||||
| 	AUDIT_FILTER_FS                             = 0x6 | ||||
| 	AUDIT_FILTER_PREPEND                        = 0x10 | ||||
| 	AUDIT_FILTER_TASK                           = 0x1 | ||||
| 	AUDIT_FILTER_TYPE                           = 0x5 | ||||
| 	AUDIT_FILTER_URING_EXIT                     = 0x7 | ||||
| 	AUDIT_FILTER_USER                           = 0x0 | ||||
| 	AUDIT_FILTER_WATCH                          = 0x3 | ||||
| 	AUDIT_FIRST_KERN_ANOM_MSG                   = 0x6a4 | ||||
| 	AUDIT_FIRST_USER_MSG                        = 0x44c | ||||
| 	AUDIT_FIRST_USER_MSG2                       = 0x834 | ||||
| 	AUDIT_FSGID                                 = 0x8 | ||||
| 	AUDIT_FSTYPE                                = 0x1a | ||||
| 	AUDIT_FSUID                                 = 0x4 | ||||
| 	AUDIT_GET                                   = 0x3e8 | ||||
| 	AUDIT_GET_FEATURE                           = 0x3fb | ||||
| 	AUDIT_GID                                   = 0x5 | ||||
| 	AUDIT_GREATER_THAN                          = 0x20000000 | ||||
| 	AUDIT_GREATER_THAN_OR_EQUAL                 = 0x60000000 | ||||
| 	AUDIT_INODE                                 = 0x66 | ||||
| 	AUDIT_INTEGRITY_DATA                        = 0x708 | ||||
| 	AUDIT_INTEGRITY_EVM_XATTR                   = 0x70e | ||||
| 	AUDIT_INTEGRITY_HASH                        = 0x70b | ||||
| 	AUDIT_INTEGRITY_METADATA                    = 0x709 | ||||
| 	AUDIT_INTEGRITY_PCR                         = 0x70c | ||||
| 	AUDIT_INTEGRITY_POLICY_RULE                 = 0x70f | ||||
| 	AUDIT_INTEGRITY_RULE                        = 0x70d | ||||
| 	AUDIT_INTEGRITY_STATUS                      = 0x70a | ||||
| 	AUDIT_IPC                                   = 0x517 | ||||
| 	AUDIT_IPC_SET_PERM                          = 0x51f | ||||
| 	AUDIT_KERNEL                                = 0x7d0 | ||||
| 	AUDIT_KERNEL_OTHER                          = 0x524 | ||||
| 	AUDIT_KERN_MODULE                           = 0x532 | ||||
| 	AUDIT_LAST_FEATURE                          = 0x1 | ||||
| 	AUDIT_LAST_KERN_ANOM_MSG                    = 0x707 | ||||
| 	AUDIT_LAST_USER_MSG                         = 0x4af | ||||
| 	AUDIT_LAST_USER_MSG2                        = 0xbb7 | ||||
| 	AUDIT_LESS_THAN                             = 0x10000000 | ||||
| 	AUDIT_LESS_THAN_OR_EQUAL                    = 0x50000000 | ||||
| 	AUDIT_LIST                                  = 0x3ea | ||||
| 	AUDIT_LIST_RULES                            = 0x3f5 | ||||
| 	AUDIT_LOGIN                                 = 0x3ee | ||||
| 	AUDIT_LOGINUID                              = 0x9 | ||||
| 	AUDIT_LOGINUID_SET                          = 0x18 | ||||
| 	AUDIT_MAC_CALIPSO_ADD                       = 0x58a | ||||
| 	AUDIT_MAC_CALIPSO_DEL                       = 0x58b | ||||
| 	AUDIT_MAC_CIPSOV4_ADD                       = 0x57f | ||||
| 	AUDIT_MAC_CIPSOV4_DEL                       = 0x580 | ||||
| 	AUDIT_MAC_CONFIG_CHANGE                     = 0x57d | ||||
| 	AUDIT_MAC_IPSEC_ADDSA                       = 0x583 | ||||
| 	AUDIT_MAC_IPSEC_ADDSPD                      = 0x585 | ||||
| 	AUDIT_MAC_IPSEC_DELSA                       = 0x584 | ||||
| 	AUDIT_MAC_IPSEC_DELSPD                      = 0x586 | ||||
| 	AUDIT_MAC_IPSEC_EVENT                       = 0x587 | ||||
| 	AUDIT_MAC_MAP_ADD                           = 0x581 | ||||
| 	AUDIT_MAC_MAP_DEL                           = 0x582 | ||||
| 	AUDIT_MAC_POLICY_LOAD                       = 0x57b | ||||
| 	AUDIT_MAC_STATUS                            = 0x57c | ||||
| 	AUDIT_MAC_UNLBL_ALLOW                       = 0x57e | ||||
| 	AUDIT_MAC_UNLBL_STCADD                      = 0x588 | ||||
| 	AUDIT_MAC_UNLBL_STCDEL                      = 0x589 | ||||
| 	AUDIT_MAKE_EQUIV                            = 0x3f7 | ||||
| 	AUDIT_MAX_FIELDS                            = 0x40 | ||||
| 	AUDIT_MAX_FIELD_COMPARE                     = 0x19 | ||||
| 	AUDIT_MAX_KEY_LEN                           = 0x100 | ||||
| 	AUDIT_MESSAGE_TEXT_MAX                      = 0x2170 | ||||
| 	AUDIT_MMAP                                  = 0x52b | ||||
| 	AUDIT_MQ_GETSETATTR                         = 0x523 | ||||
| 	AUDIT_MQ_NOTIFY                             = 0x522 | ||||
| 	AUDIT_MQ_OPEN                               = 0x520 | ||||
| 	AUDIT_MQ_SENDRECV                           = 0x521 | ||||
| 	AUDIT_MSGTYPE                               = 0xc | ||||
| 	AUDIT_NEGATE                                = 0x80000000 | ||||
| 	AUDIT_NETFILTER_CFG                         = 0x52d | ||||
| 	AUDIT_NETFILTER_PKT                         = 0x52c | ||||
| 	AUDIT_NEVER                                 = 0x0 | ||||
| 	AUDIT_NLGRP_MAX                             = 0x1 | ||||
| 	AUDIT_NOT_EQUAL                             = 0x30000000 | ||||
| 	AUDIT_NR_FILTERS                            = 0x8 | ||||
| 	AUDIT_OBJ_GID                               = 0x6e | ||||
| 	AUDIT_OBJ_LEV_HIGH                          = 0x17 | ||||
| 	AUDIT_OBJ_LEV_LOW                           = 0x16 | ||||
| 	AUDIT_OBJ_PID                               = 0x526 | ||||
| 	AUDIT_OBJ_ROLE                              = 0x14 | ||||
| 	AUDIT_OBJ_TYPE                              = 0x15 | ||||
| 	AUDIT_OBJ_UID                               = 0x6d | ||||
| 	AUDIT_OBJ_USER                              = 0x13 | ||||
| 	AUDIT_OPENAT2                               = 0x539 | ||||
| 	AUDIT_OPERATORS                             = 0x78000000 | ||||
| 	AUDIT_PATH                                  = 0x516 | ||||
| 	AUDIT_PERM                                  = 0x6a | ||||
| 	AUDIT_PERM_ATTR                             = 0x8 | ||||
| 	AUDIT_PERM_EXEC                             = 0x1 | ||||
| 	AUDIT_PERM_READ                             = 0x4 | ||||
| 	AUDIT_PERM_WRITE                            = 0x2 | ||||
| 	AUDIT_PERS                                  = 0xa | ||||
| 	AUDIT_PID                                   = 0x0 | ||||
| 	AUDIT_POSSIBLE                              = 0x1 | ||||
| 	AUDIT_PPID                                  = 0x12 | ||||
| 	AUDIT_PROCTITLE                             = 0x52f | ||||
| 	AUDIT_REPLACE                               = 0x531 | ||||
| 	AUDIT_SADDR_FAM                             = 0x71 | ||||
| 	AUDIT_SECCOMP                               = 0x52e | ||||
| 	AUDIT_SELINUX_ERR                           = 0x579 | ||||
| 	AUDIT_SESSIONID                             = 0x19 | ||||
| 	AUDIT_SET                                   = 0x3e9 | ||||
| 	AUDIT_SET_FEATURE                           = 0x3fa | ||||
| 	AUDIT_SGID                                  = 0x7 | ||||
| 	AUDIT_SID_UNSET                             = 0xffffffff | ||||
| 	AUDIT_SIGNAL_INFO                           = 0x3f2 | ||||
| 	AUDIT_SOCKADDR                              = 0x51a | ||||
| 	AUDIT_SOCKETCALL                            = 0x518 | ||||
| 	AUDIT_STATUS_BACKLOG_LIMIT                  = 0x10 | ||||
| 	AUDIT_STATUS_BACKLOG_WAIT_TIME              = 0x20 | ||||
| 	AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL       = 0x80 | ||||
| 	AUDIT_STATUS_ENABLED                        = 0x1 | ||||
| 	AUDIT_STATUS_FAILURE                        = 0x2 | ||||
| 	AUDIT_STATUS_LOST                           = 0x40 | ||||
| 	AUDIT_STATUS_PID                            = 0x4 | ||||
| 	AUDIT_STATUS_RATE_LIMIT                     = 0x8 | ||||
| 	AUDIT_SUBJ_CLR                              = 0x11 | ||||
| 	AUDIT_SUBJ_ROLE                             = 0xe | ||||
| 	AUDIT_SUBJ_SEN                              = 0x10 | ||||
| 	AUDIT_SUBJ_TYPE                             = 0xf | ||||
| 	AUDIT_SUBJ_USER                             = 0xd | ||||
| 	AUDIT_SUCCESS                               = 0x68 | ||||
| 	AUDIT_SUID                                  = 0x3 | ||||
| 	AUDIT_SYSCALL                               = 0x514 | ||||
| 	AUDIT_SYSCALL_CLASSES                       = 0x10 | ||||
| 	AUDIT_TIME_ADJNTPVAL                        = 0x535 | ||||
| 	AUDIT_TIME_INJOFFSET                        = 0x534 | ||||
| 	AUDIT_TRIM                                  = 0x3f6 | ||||
| 	AUDIT_TTY                                   = 0x527 | ||||
| 	AUDIT_TTY_GET                               = 0x3f8 | ||||
| 	AUDIT_TTY_SET                               = 0x3f9 | ||||
| 	AUDIT_UID                                   = 0x1 | ||||
| 	AUDIT_UID_UNSET                             = 0xffffffff | ||||
| 	AUDIT_UNUSED_BITS                           = 0x7fffc00 | ||||
| 	AUDIT_URINGOP                               = 0x538 | ||||
| 	AUDIT_USER                                  = 0x3ed | ||||
| 	AUDIT_USER_AVC                              = 0x453 | ||||
| 	AUDIT_USER_TTY                              = 0x464 | ||||
| 	AUDIT_VERSION_BACKLOG_LIMIT                 = 0x1 | ||||
| 	AUDIT_VERSION_BACKLOG_WAIT_TIME             = 0x2 | ||||
| 	AUDIT_VERSION_LATEST                        = 0x7f | ||||
| 	AUDIT_WATCH                                 = 0x69 | ||||
| 	AUDIT_WATCH_INS                             = 0x3ef | ||||
| 	AUDIT_WATCH_LIST                            = 0x3f1 | ||||
| 	AUDIT_WATCH_REM                             = 0x3f0 | ||||
| 	AUTOFS_SUPER_MAGIC                          = 0x187 | ||||
| 	B0                                          = 0x0 | ||||
| 	B110                                        = 0x3 | ||||
|  | @ -183,6 +484,7 @@ const ( | |||
| 	BPF_F_ALLOW_MULTI                           = 0x2 | ||||
| 	BPF_F_ALLOW_OVERRIDE                        = 0x1 | ||||
| 	BPF_F_ANY_ALIGNMENT                         = 0x2 | ||||
| 	BPF_F_KPROBE_MULTI_RETURN                   = 0x1 | ||||
| 	BPF_F_QUERY_EFFECTIVE                       = 0x1 | ||||
| 	BPF_F_REPLACE                               = 0x4 | ||||
| 	BPF_F_SLEEPABLE                             = 0x10 | ||||
|  | @ -190,6 +492,8 @@ const ( | |||
| 	BPF_F_TEST_RND_HI32                         = 0x4 | ||||
| 	BPF_F_TEST_RUN_ON_CPU                       = 0x1 | ||||
| 	BPF_F_TEST_STATE_FREQ                       = 0x8 | ||||
| 	BPF_F_TEST_XDP_LIVE_FRAMES                  = 0x2 | ||||
| 	BPF_F_XDP_HAS_FRAGS                         = 0x20 | ||||
| 	BPF_H                                       = 0x8 | ||||
| 	BPF_IMM                                     = 0x0 | ||||
| 	BPF_IND                                     = 0x40 | ||||
|  | @ -259,6 +563,17 @@ const ( | |||
| 	BUS_USB                                     = 0x3 | ||||
| 	BUS_VIRTUAL                                 = 0x6 | ||||
| 	CAN_BCM                                     = 0x2 | ||||
| 	CAN_CTRLMODE_3_SAMPLES                      = 0x4 | ||||
| 	CAN_CTRLMODE_BERR_REPORTING                 = 0x10 | ||||
| 	CAN_CTRLMODE_CC_LEN8_DLC                    = 0x100 | ||||
| 	CAN_CTRLMODE_FD                             = 0x20 | ||||
| 	CAN_CTRLMODE_FD_NON_ISO                     = 0x80 | ||||
| 	CAN_CTRLMODE_LISTENONLY                     = 0x2 | ||||
| 	CAN_CTRLMODE_LOOPBACK                       = 0x1 | ||||
| 	CAN_CTRLMODE_ONE_SHOT                       = 0x8 | ||||
| 	CAN_CTRLMODE_PRESUME_ACK                    = 0x40 | ||||
| 	CAN_CTRLMODE_TDC_AUTO                       = 0x200 | ||||
| 	CAN_CTRLMODE_TDC_MANUAL                     = 0x400 | ||||
| 	CAN_EFF_FLAG                                = 0x80000000 | ||||
| 	CAN_EFF_ID_BITS                             = 0x1d | ||||
| 	CAN_EFF_MASK                                = 0x1fffffff | ||||
|  | @ -336,6 +651,7 @@ const ( | |||
| 	CAN_RTR_FLAG                                = 0x40000000 | ||||
| 	CAN_SFF_ID_BITS                             = 0xb | ||||
| 	CAN_SFF_MASK                                = 0x7ff | ||||
| 	CAN_TERMINATION_DISABLED                    = 0x0 | ||||
| 	CAN_TP16                                    = 0x3 | ||||
| 	CAN_TP20                                    = 0x4 | ||||
| 	CAP_AUDIT_CONTROL                           = 0x1e | ||||
|  | @ -380,9 +696,11 @@ const ( | |||
| 	CAP_SYS_TIME                                = 0x19 | ||||
| 	CAP_SYS_TTY_CONFIG                          = 0x1a | ||||
| 	CAP_WAKE_ALARM                              = 0x23 | ||||
| 	CEPH_SUPER_MAGIC                            = 0xc36400 | ||||
| 	CFLUSH                                      = 0xf | ||||
| 	CGROUP2_SUPER_MAGIC                         = 0x63677270 | ||||
| 	CGROUP_SUPER_MAGIC                          = 0x27e0eb | ||||
| 	CIFS_SUPER_MAGIC                            = 0xff534d42 | ||||
| 	CLOCK_BOOTTIME                              = 0x7 | ||||
| 	CLOCK_BOOTTIME_ALARM                        = 0x9 | ||||
| 	CLOCK_DEFAULT                               = 0x0 | ||||
|  | @ -502,9 +820,9 @@ const ( | |||
| 	DM_UUID_FLAG                                = 0x4000 | ||||
| 	DM_UUID_LEN                                 = 0x81 | ||||
| 	DM_VERSION                                  = 0xc138fd00 | ||||
| 	DM_VERSION_EXTRA                            = "-ioctl (2021-03-22)" | ||||
| 	DM_VERSION_EXTRA                            = "-ioctl (2022-02-22)" | ||||
| 	DM_VERSION_MAJOR                            = 0x4 | ||||
| 	DM_VERSION_MINOR                            = 0x2d | ||||
| 	DM_VERSION_MINOR                            = 0x2e | ||||
| 	DM_VERSION_PATCHLEVEL                       = 0x0 | ||||
| 	DT_BLK                                      = 0x6 | ||||
| 	DT_CHR                                      = 0x2 | ||||
|  | @ -520,6 +838,55 @@ const ( | |||
| 	EFD_SEMAPHORE                               = 0x1 | ||||
| 	EFIVARFS_MAGIC                              = 0xde5e81e4 | ||||
| 	EFS_SUPER_MAGIC                             = 0x414a53 | ||||
| 	EM_386                                      = 0x3 | ||||
| 	EM_486                                      = 0x6 | ||||
| 	EM_68K                                      = 0x4 | ||||
| 	EM_860                                      = 0x7 | ||||
| 	EM_88K                                      = 0x5 | ||||
| 	EM_AARCH64                                  = 0xb7 | ||||
| 	EM_ALPHA                                    = 0x9026 | ||||
| 	EM_ALTERA_NIOS2                             = 0x71 | ||||
| 	EM_ARCOMPACT                                = 0x5d | ||||
| 	EM_ARCV2                                    = 0xc3 | ||||
| 	EM_ARM                                      = 0x28 | ||||
| 	EM_BLACKFIN                                 = 0x6a | ||||
| 	EM_BPF                                      = 0xf7 | ||||
| 	EM_CRIS                                     = 0x4c | ||||
| 	EM_CSKY                                     = 0xfc | ||||
| 	EM_CYGNUS_M32R                              = 0x9041 | ||||
| 	EM_CYGNUS_MN10300                           = 0xbeef | ||||
| 	EM_FRV                                      = 0x5441 | ||||
| 	EM_H8_300                                   = 0x2e | ||||
| 	EM_HEXAGON                                  = 0xa4 | ||||
| 	EM_IA_64                                    = 0x32 | ||||
| 	EM_LOONGARCH                                = 0x102 | ||||
| 	EM_M32                                      = 0x1 | ||||
| 	EM_M32R                                     = 0x58 | ||||
| 	EM_MICROBLAZE                               = 0xbd | ||||
| 	EM_MIPS                                     = 0x8 | ||||
| 	EM_MIPS_RS3_LE                              = 0xa | ||||
| 	EM_MIPS_RS4_BE                              = 0xa | ||||
| 	EM_MN10300                                  = 0x59 | ||||
| 	EM_NDS32                                    = 0xa7 | ||||
| 	EM_NONE                                     = 0x0 | ||||
| 	EM_OPENRISC                                 = 0x5c | ||||
| 	EM_PARISC                                   = 0xf | ||||
| 	EM_PPC                                      = 0x14 | ||||
| 	EM_PPC64                                    = 0x15 | ||||
| 	EM_RISCV                                    = 0xf3 | ||||
| 	EM_S390                                     = 0x16 | ||||
| 	EM_S390_OLD                                 = 0xa390 | ||||
| 	EM_SH                                       = 0x2a | ||||
| 	EM_SPARC                                    = 0x2 | ||||
| 	EM_SPARC32PLUS                              = 0x12 | ||||
| 	EM_SPARCV9                                  = 0x2b | ||||
| 	EM_SPU                                      = 0x17 | ||||
| 	EM_TILEGX                                   = 0xbf | ||||
| 	EM_TILEPRO                                  = 0xbc | ||||
| 	EM_TI_C6000                                 = 0x8c | ||||
| 	EM_UNICORE                                  = 0x6e | ||||
| 	EM_X86_64                                   = 0x3e | ||||
| 	EM_XTENSA                                   = 0x5e | ||||
| 	ENCODING_DEFAULT                            = 0x0 | ||||
| 	ENCODING_FM_MARK                            = 0x3 | ||||
| 	ENCODING_FM_SPACE                           = 0x4 | ||||
|  | @ -697,6 +1064,7 @@ const ( | |||
| 	ETH_P_EDSA                                  = 0xdada | ||||
| 	ETH_P_ERSPAN                                = 0x88be | ||||
| 	ETH_P_ERSPAN2                               = 0x22eb | ||||
| 	ETH_P_ETHERCAT                              = 0x88a4 | ||||
| 	ETH_P_FCOE                                  = 0x8906 | ||||
| 	ETH_P_FIP                                   = 0x8914 | ||||
| 	ETH_P_HDLC                                  = 0x19 | ||||
|  | @ -734,6 +1102,7 @@ const ( | |||
| 	ETH_P_PPP_MP                                = 0x8 | ||||
| 	ETH_P_PPP_SES                               = 0x8864 | ||||
| 	ETH_P_PREAUTH                               = 0x88c7 | ||||
| 	ETH_P_PROFINET                              = 0x8892 | ||||
| 	ETH_P_PRP                                   = 0x88fb | ||||
| 	ETH_P_PUP                                   = 0x200 | ||||
| 	ETH_P_PUPAT                                 = 0x201 | ||||
|  | @ -771,6 +1140,7 @@ const ( | |||
| 	EV_SYN                                      = 0x0 | ||||
| 	EV_VERSION                                  = 0x10001 | ||||
| 	EXABYTE_ENABLE_NEST                         = 0xf0 | ||||
| 	EXFAT_SUPER_MAGIC                           = 0x2011bab0 | ||||
| 	EXT2_SUPER_MAGIC                            = 0xef53 | ||||
| 	EXT3_SUPER_MAGIC                            = 0xef53 | ||||
| 	EXT4_SUPER_MAGIC                            = 0xef53 | ||||
|  | @ -813,12 +1183,15 @@ const ( | |||
| 	FAN_EVENT_INFO_TYPE_DFID_NAME               = 0x2 | ||||
| 	FAN_EVENT_INFO_TYPE_ERROR                   = 0x5 | ||||
| 	FAN_EVENT_INFO_TYPE_FID                     = 0x1 | ||||
| 	FAN_EVENT_INFO_TYPE_NEW_DFID_NAME           = 0xc | ||||
| 	FAN_EVENT_INFO_TYPE_OLD_DFID_NAME           = 0xa | ||||
| 	FAN_EVENT_INFO_TYPE_PIDFD                   = 0x4 | ||||
| 	FAN_EVENT_METADATA_LEN                      = 0x18 | ||||
| 	FAN_EVENT_ON_CHILD                          = 0x8000000 | ||||
| 	FAN_FS_ERROR                                = 0x8000 | ||||
| 	FAN_MARK_ADD                                = 0x1 | ||||
| 	FAN_MARK_DONT_FOLLOW                        = 0x4 | ||||
| 	FAN_MARK_EVICTABLE                          = 0x200 | ||||
| 	FAN_MARK_FILESYSTEM                         = 0x100 | ||||
| 	FAN_MARK_FLUSH                              = 0x80 | ||||
| 	FAN_MARK_IGNORED_MASK                       = 0x20 | ||||
|  | @ -841,17 +1214,27 @@ const ( | |||
| 	FAN_OPEN_EXEC_PERM                          = 0x40000 | ||||
| 	FAN_OPEN_PERM                               = 0x10000 | ||||
| 	FAN_Q_OVERFLOW                              = 0x4000 | ||||
| 	FAN_RENAME                                  = 0x10000000 | ||||
| 	FAN_REPORT_DFID_NAME                        = 0xc00 | ||||
| 	FAN_REPORT_DFID_NAME_TARGET                 = 0x1e00 | ||||
| 	FAN_REPORT_DIR_FID                          = 0x400 | ||||
| 	FAN_REPORT_FID                              = 0x200 | ||||
| 	FAN_REPORT_NAME                             = 0x800 | ||||
| 	FAN_REPORT_PIDFD                            = 0x80 | ||||
| 	FAN_REPORT_TARGET_FID                       = 0x1000 | ||||
| 	FAN_REPORT_TID                              = 0x100 | ||||
| 	FAN_UNLIMITED_MARKS                         = 0x20 | ||||
| 	FAN_UNLIMITED_QUEUE                         = 0x10 | ||||
| 	FD_CLOEXEC                                  = 0x1 | ||||
| 	FD_SETSIZE                                  = 0x400 | ||||
| 	FF0                                         = 0x0 | ||||
| 	FIB_RULE_DEV_DETACHED                       = 0x8 | ||||
| 	FIB_RULE_FIND_SADDR                         = 0x10000 | ||||
| 	FIB_RULE_IIF_DETACHED                       = 0x8 | ||||
| 	FIB_RULE_INVERT                             = 0x2 | ||||
| 	FIB_RULE_OIF_DETACHED                       = 0x10 | ||||
| 	FIB_RULE_PERMANENT                          = 0x1 | ||||
| 	FIB_RULE_UNRESOLVED                         = 0x4 | ||||
| 	FIDEDUPERANGE                               = 0xc0189436 | ||||
| 	FSCRYPT_KEY_DESCRIPTOR_SIZE                 = 0x8 | ||||
| 	FSCRYPT_KEY_DESC_PREFIX                     = "fscrypt:" | ||||
|  | @ -914,6 +1297,7 @@ const ( | |||
| 	FS_VERITY_METADATA_TYPE_DESCRIPTOR          = 0x2 | ||||
| 	FS_VERITY_METADATA_TYPE_MERKLE_TREE         = 0x1 | ||||
| 	FS_VERITY_METADATA_TYPE_SIGNATURE           = 0x3 | ||||
| 	FUSE_SUPER_MAGIC                            = 0x65735546 | ||||
| 	FUTEXFS_SUPER_MAGIC                         = 0xbad1dea | ||||
| 	F_ADD_SEALS                                 = 0x409 | ||||
| 	F_DUPFD                                     = 0x0 | ||||
|  | @ -1026,7 +1410,7 @@ const ( | |||
| 	IFA_F_STABLE_PRIVACY                        = 0x800 | ||||
| 	IFA_F_TEMPORARY                             = 0x1 | ||||
| 	IFA_F_TENTATIVE                             = 0x40 | ||||
| 	IFA_MAX                                     = 0xa | ||||
| 	IFA_MAX                                     = 0xb | ||||
| 	IFF_ALLMULTI                                = 0x200 | ||||
| 	IFF_ATTACH_QUEUE                            = 0x200 | ||||
| 	IFF_AUTOMEDIA                               = 0x4000 | ||||
|  | @ -1267,15 +1651,21 @@ const ( | |||
| 	IP_XFRM_POLICY                              = 0x11 | ||||
| 	ISOFS_SUPER_MAGIC                           = 0x9660 | ||||
| 	ISTRIP                                      = 0x20 | ||||
| 	ITIMER_PROF                                 = 0x2 | ||||
| 	ITIMER_REAL                                 = 0x0 | ||||
| 	ITIMER_VIRTUAL                              = 0x1 | ||||
| 	IUTF8                                       = 0x4000 | ||||
| 	IXANY                                       = 0x800 | ||||
| 	JFFS2_SUPER_MAGIC                           = 0x72b6 | ||||
| 	KCMPROTO_CONNECTED                          = 0x0 | ||||
| 	KCM_RECV_DISABLE                            = 0x1 | ||||
| 	KEXEC_ARCH_386                              = 0x30000 | ||||
| 	KEXEC_ARCH_68K                              = 0x40000 | ||||
| 	KEXEC_ARCH_AARCH64                          = 0xb70000 | ||||
| 	KEXEC_ARCH_ARM                              = 0x280000 | ||||
| 	KEXEC_ARCH_DEFAULT                          = 0x0 | ||||
| 	KEXEC_ARCH_IA_64                            = 0x320000 | ||||
| 	KEXEC_ARCH_LOONGARCH                        = 0x1020000 | ||||
| 	KEXEC_ARCH_MASK                             = 0xffff0000 | ||||
| 	KEXEC_ARCH_MIPS                             = 0x80000 | ||||
| 	KEXEC_ARCH_MIPS_LE                          = 0xa0000 | ||||
|  | @ -1368,6 +1758,7 @@ const ( | |||
| 	LANDLOCK_ACCESS_FS_MAKE_SYM                 = 0x1000 | ||||
| 	LANDLOCK_ACCESS_FS_READ_DIR                 = 0x8 | ||||
| 	LANDLOCK_ACCESS_FS_READ_FILE                = 0x4 | ||||
| 	LANDLOCK_ACCESS_FS_REFER                    = 0x2000 | ||||
| 	LANDLOCK_ACCESS_FS_REMOVE_DIR               = 0x10 | ||||
| 	LANDLOCK_ACCESS_FS_REMOVE_FILE              = 0x20 | ||||
| 	LANDLOCK_ACCESS_FS_WRITE_FILE               = 0x2 | ||||
|  | @ -1477,6 +1868,7 @@ const ( | |||
| 	MNT_DETACH                                  = 0x2 | ||||
| 	MNT_EXPIRE                                  = 0x4 | ||||
| 	MNT_FORCE                                   = 0x1 | ||||
| 	MODULE_INIT_COMPRESSED_FILE                 = 0x4 | ||||
| 	MODULE_INIT_IGNORE_MODVERSIONS              = 0x1 | ||||
| 	MODULE_INIT_IGNORE_VERMAGIC                 = 0x2 | ||||
| 	MOUNT_ATTR_IDMAP                            = 0x100000 | ||||
|  | @ -1722,6 +2114,7 @@ const ( | |||
| 	NLM_F_ACK_TLVS                              = 0x200 | ||||
| 	NLM_F_APPEND                                = 0x800 | ||||
| 	NLM_F_ATOMIC                                = 0x400 | ||||
| 	NLM_F_BULK                                  = 0x200 | ||||
| 	NLM_F_CAPPED                                = 0x100 | ||||
| 	NLM_F_CREATE                                = 0x400 | ||||
| 	NLM_F_DUMP                                  = 0x300 | ||||
|  | @ -1831,6 +2224,9 @@ const ( | |||
| 	PERF_MEM_BLK_NA                             = 0x1 | ||||
| 	PERF_MEM_BLK_SHIFT                          = 0x28 | ||||
| 	PERF_MEM_HOPS_0                             = 0x1 | ||||
| 	PERF_MEM_HOPS_1                             = 0x2 | ||||
| 	PERF_MEM_HOPS_2                             = 0x3 | ||||
| 	PERF_MEM_HOPS_3                             = 0x4 | ||||
| 	PERF_MEM_HOPS_SHIFT                         = 0x2b | ||||
| 	PERF_MEM_LOCK_LOCKED                        = 0x2 | ||||
| 	PERF_MEM_LOCK_NA                            = 0x1 | ||||
|  | @ -2034,6 +2430,13 @@ const ( | |||
| 	PR_SET_TIMING                               = 0xe | ||||
| 	PR_SET_TSC                                  = 0x1a | ||||
| 	PR_SET_UNALIGN                              = 0x6 | ||||
| 	PR_SET_VMA                                  = 0x53564d41 | ||||
| 	PR_SET_VMA_ANON_NAME                        = 0x0 | ||||
| 	PR_SME_GET_VL                               = 0x40 | ||||
| 	PR_SME_SET_VL                               = 0x3f | ||||
| 	PR_SME_SET_VL_ONEXEC                        = 0x40000 | ||||
| 	PR_SME_VL_INHERIT                           = 0x20000 | ||||
| 	PR_SME_VL_LEN_MASK                          = 0xffff | ||||
| 	PR_SPEC_DISABLE                             = 0x4 | ||||
| 	PR_SPEC_DISABLE_NOEXEC                      = 0x10 | ||||
| 	PR_SPEC_ENABLE                              = 0x2 | ||||
|  | @ -2117,6 +2520,10 @@ const ( | |||
| 	PTRACE_SYSCALL_INFO_NONE                    = 0x0 | ||||
| 	PTRACE_SYSCALL_INFO_SECCOMP                 = 0x3 | ||||
| 	PTRACE_TRACEME                              = 0x0 | ||||
| 	P_ALL                                       = 0x0 | ||||
| 	P_PGID                                      = 0x2 | ||||
| 	P_PID                                       = 0x1 | ||||
| 	P_PIDFD                                     = 0x3 | ||||
| 	QNX4_SUPER_MAGIC                            = 0x2f | ||||
| 	QNX6_SUPER_MAGIC                            = 0x68191122 | ||||
| 	RAMFS_MAGIC                                 = 0x858458f6 | ||||
|  | @ -2182,8 +2589,9 @@ const ( | |||
| 	RTC_FEATURE_ALARM                           = 0x0 | ||||
| 	RTC_FEATURE_ALARM_RES_2S                    = 0x3 | ||||
| 	RTC_FEATURE_ALARM_RES_MINUTE                = 0x1 | ||||
| 	RTC_FEATURE_ALARM_WAKEUP_ONLY               = 0x7 | ||||
| 	RTC_FEATURE_BACKUP_SWITCH_MODE              = 0x6 | ||||
| 	RTC_FEATURE_CNT                             = 0x7 | ||||
| 	RTC_FEATURE_CNT                             = 0x8 | ||||
| 	RTC_FEATURE_CORRECTION                      = 0x5 | ||||
| 	RTC_FEATURE_NEED_WEEK_DAY                   = 0x2 | ||||
| 	RTC_FEATURE_UPDATE_INTERRUPT                = 0x4 | ||||
|  | @ -2257,6 +2665,7 @@ const ( | |||
| 	RTM_DELRULE                                 = 0x21 | ||||
| 	RTM_DELTCLASS                               = 0x29 | ||||
| 	RTM_DELTFILTER                              = 0x2d | ||||
| 	RTM_DELTUNNEL                               = 0x79 | ||||
| 	RTM_DELVLAN                                 = 0x71 | ||||
| 	RTM_F_CLONED                                = 0x200 | ||||
| 	RTM_F_EQUALIZE                              = 0x400 | ||||
|  | @ -2289,8 +2698,9 @@ const ( | |||
| 	RTM_GETSTATS                                = 0x5e | ||||
| 	RTM_GETTCLASS                               = 0x2a | ||||
| 	RTM_GETTFILTER                              = 0x2e | ||||
| 	RTM_GETTUNNEL                               = 0x7a | ||||
| 	RTM_GETVLAN                                 = 0x72 | ||||
| 	RTM_MAX                                     = 0x77 | ||||
| 	RTM_MAX                                     = 0x7b | ||||
| 	RTM_NEWACTION                               = 0x30 | ||||
| 	RTM_NEWADDR                                 = 0x14 | ||||
| 	RTM_NEWADDRLABEL                            = 0x48 | ||||
|  | @ -2314,11 +2724,13 @@ const ( | |||
| 	RTM_NEWSTATS                                = 0x5c | ||||
| 	RTM_NEWTCLASS                               = 0x28 | ||||
| 	RTM_NEWTFILTER                              = 0x2c | ||||
| 	RTM_NR_FAMILIES                             = 0x1a | ||||
| 	RTM_NR_MSGTYPES                             = 0x68 | ||||
| 	RTM_NEWTUNNEL                               = 0x78 | ||||
| 	RTM_NR_FAMILIES                             = 0x1b | ||||
| 	RTM_NR_MSGTYPES                             = 0x6c | ||||
| 	RTM_SETDCB                                  = 0x4f | ||||
| 	RTM_SETLINK                                 = 0x13 | ||||
| 	RTM_SETNEIGHTBL                             = 0x43 | ||||
| 	RTM_SETSTATS                                = 0x5f | ||||
| 	RTNH_ALIGNTO                                = 0x4 | ||||
| 	RTNH_COMPARE_MASK                           = 0x59 | ||||
| 	RTNH_F_DEAD                                 = 0x1 | ||||
|  | @ -2442,6 +2854,9 @@ const ( | |||
| 	SIOCGSTAMPNS                                = 0x8907 | ||||
| 	SIOCGSTAMPNS_OLD                            = 0x8907 | ||||
| 	SIOCGSTAMP_OLD                              = 0x8906 | ||||
| 	SIOCKCMATTACH                               = 0x89e0 | ||||
| 	SIOCKCMCLONE                                = 0x89e2 | ||||
| 	SIOCKCMUNATTACH                             = 0x89e1 | ||||
| 	SIOCOUTQNSD                                 = 0x894b | ||||
| 	SIOCPROTOPRIVATE                            = 0x89e0 | ||||
| 	SIOCRTMSG                                   = 0x890d | ||||
|  | @ -2484,6 +2899,7 @@ const ( | |||
| 	SMART_STATUS                                = 0xda | ||||
| 	SMART_WRITE_LOG_SECTOR                      = 0xd6 | ||||
| 	SMART_WRITE_THRESHOLDS                      = 0xd7 | ||||
| 	SMB2_SUPER_MAGIC                            = 0xfe534d42 | ||||
| 	SMB_SUPER_MAGIC                             = 0x517b | ||||
| 	SOCKFS_MAGIC                                = 0x534f434b | ||||
| 	SOCK_BUF_LOCK_MASK                          = 0x3 | ||||
|  | @ -2495,6 +2911,9 @@ const ( | |||
| 	SOCK_RDM                                    = 0x4 | ||||
| 	SOCK_SEQPACKET                              = 0x5 | ||||
| 	SOCK_SNDBUF_LOCK                            = 0x1 | ||||
| 	SOCK_TXREHASH_DEFAULT                       = 0xff | ||||
| 	SOCK_TXREHASH_DISABLED                      = 0x0 | ||||
| 	SOCK_TXREHASH_ENABLED                       = 0x1 | ||||
| 	SOL_AAL                                     = 0x109 | ||||
| 	SOL_ALG                                     = 0x117 | ||||
| 	SOL_ATM                                     = 0x108 | ||||
|  | @ -2510,6 +2929,8 @@ const ( | |||
| 	SOL_IUCV                                    = 0x115 | ||||
| 	SOL_KCM                                     = 0x119 | ||||
| 	SOL_LLC                                     = 0x10c | ||||
| 	SOL_MCTP                                    = 0x11d | ||||
| 	SOL_MPTCP                                   = 0x11c | ||||
| 	SOL_NETBEUI                                 = 0x10b | ||||
| 	SOL_NETLINK                                 = 0x10e | ||||
| 	SOL_NFC                                     = 0x118 | ||||
|  | @ -2519,6 +2940,7 @@ const ( | |||
| 	SOL_RAW                                     = 0xff | ||||
| 	SOL_RDS                                     = 0x114 | ||||
| 	SOL_RXRPC                                   = 0x110 | ||||
| 	SOL_SMC                                     = 0x11e | ||||
| 	SOL_TCP                                     = 0x6 | ||||
| 	SOL_TIPC                                    = 0x10f | ||||
| 	SOL_TLS                                     = 0x11a | ||||
|  | @ -2625,7 +3047,7 @@ const ( | |||
| 	TASKSTATS_GENL_NAME                         = "TASKSTATS" | ||||
| 	TASKSTATS_GENL_VERSION                      = 0x1 | ||||
| 	TASKSTATS_TYPE_MAX                          = 0x6 | ||||
| 	TASKSTATS_VERSION                           = 0xa | ||||
| 	TASKSTATS_VERSION                           = 0xd | ||||
| 	TCIFLUSH                                    = 0x0 | ||||
| 	TCIOFF                                      = 0x2 | ||||
| 	TCIOFLUSH                                   = 0x2 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build 386,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m32 _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -326,6 +326,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -350,6 +351,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build amd64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -m64 _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -327,6 +327,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -351,6 +352,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build arm,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -333,6 +333,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -357,6 +358,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build arm64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -323,6 +323,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -347,6 +348,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  | @ -511,6 +513,7 @@ const ( | |||
| 	WORDSIZE                         = 0x40 | ||||
| 	XCASE                            = 0x4 | ||||
| 	XTABS                            = 0x1800 | ||||
| 	ZA_MAGIC                         = 0x54366345 | ||||
| 	_HIDIOCGRAWNAME                  = 0x80804804 | ||||
| 	_HIDIOCGRAWPHYS                  = 0x80404805 | ||||
| 	_HIDIOCGRAWUNIQ                  = 0x80404808 | ||||
|  |  | |||
|  | @ -0,0 +1,818 @@ | |||
| // mkerrors.sh -Wall -Werror -static -I/tmp/include
 | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT.
 | ||||
| 
 | ||||
| //go:build loong64 && linux
 | ||||
| // +build loong64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
| import "syscall" | ||||
| 
 | ||||
| const ( | ||||
| 	B1000000                         = 0x1008 | ||||
| 	B115200                          = 0x1002 | ||||
| 	B1152000                         = 0x1009 | ||||
| 	B1500000                         = 0x100a | ||||
| 	B2000000                         = 0x100b | ||||
| 	B230400                          = 0x1003 | ||||
| 	B2500000                         = 0x100c | ||||
| 	B3000000                         = 0x100d | ||||
| 	B3500000                         = 0x100e | ||||
| 	B4000000                         = 0x100f | ||||
| 	B460800                          = 0x1004 | ||||
| 	B500000                          = 0x1005 | ||||
| 	B57600                           = 0x1001 | ||||
| 	B576000                          = 0x1006 | ||||
| 	B921600                          = 0x1007 | ||||
| 	BLKBSZGET                        = 0x80081270 | ||||
| 	BLKBSZSET                        = 0x40081271 | ||||
| 	BLKFLSBUF                        = 0x1261 | ||||
| 	BLKFRAGET                        = 0x1265 | ||||
| 	BLKFRASET                        = 0x1264 | ||||
| 	BLKGETSIZE                       = 0x1260 | ||||
| 	BLKGETSIZE64                     = 0x80081272 | ||||
| 	BLKPBSZGET                       = 0x127b | ||||
| 	BLKRAGET                         = 0x1263 | ||||
| 	BLKRASET                         = 0x1262 | ||||
| 	BLKROGET                         = 0x125e | ||||
| 	BLKROSET                         = 0x125d | ||||
| 	BLKRRPART                        = 0x125f | ||||
| 	BLKSECTGET                       = 0x1267 | ||||
| 	BLKSECTSET                       = 0x1266 | ||||
| 	BLKSSZGET                        = 0x1268 | ||||
| 	BOTHER                           = 0x1000 | ||||
| 	BS1                              = 0x2000 | ||||
| 	BSDLY                            = 0x2000 | ||||
| 	CBAUD                            = 0x100f | ||||
| 	CBAUDEX                          = 0x1000 | ||||
| 	CIBAUD                           = 0x100f0000 | ||||
| 	CLOCAL                           = 0x800 | ||||
| 	CR1                              = 0x200 | ||||
| 	CR2                              = 0x400 | ||||
| 	CR3                              = 0x600 | ||||
| 	CRDLY                            = 0x600 | ||||
| 	CREAD                            = 0x80 | ||||
| 	CS6                              = 0x10 | ||||
| 	CS7                              = 0x20 | ||||
| 	CS8                              = 0x30 | ||||
| 	CSIZE                            = 0x30 | ||||
| 	CSTOPB                           = 0x40 | ||||
| 	ECCGETLAYOUT                     = 0x81484d11 | ||||
| 	ECCGETSTATS                      = 0x80104d12 | ||||
| 	ECHOCTL                          = 0x200 | ||||
| 	ECHOE                            = 0x10 | ||||
| 	ECHOK                            = 0x20 | ||||
| 	ECHOKE                           = 0x800 | ||||
| 	ECHONL                           = 0x40 | ||||
| 	ECHOPRT                          = 0x400 | ||||
| 	EFD_CLOEXEC                      = 0x80000 | ||||
| 	EFD_NONBLOCK                     = 0x800 | ||||
| 	EPOLL_CLOEXEC                    = 0x80000 | ||||
| 	EXTPROC                          = 0x10000 | ||||
| 	FF1                              = 0x8000 | ||||
| 	FFDLY                            = 0x8000 | ||||
| 	FICLONE                          = 0x40049409 | ||||
| 	FICLONERANGE                     = 0x4020940d | ||||
| 	FLUSHO                           = 0x1000 | ||||
| 	FPU_CTX_MAGIC                    = 0x46505501 | ||||
| 	FS_IOC_ENABLE_VERITY             = 0x40806685 | ||||
| 	FS_IOC_GETFLAGS                  = 0x80086601 | ||||
| 	FS_IOC_GET_ENCRYPTION_NONCE      = 0x8010661b | ||||
| 	FS_IOC_GET_ENCRYPTION_POLICY     = 0x400c6615 | ||||
| 	FS_IOC_GET_ENCRYPTION_PWSALT     = 0x40106614 | ||||
| 	FS_IOC_SETFLAGS                  = 0x40086602 | ||||
| 	FS_IOC_SET_ENCRYPTION_POLICY     = 0x800c6613 | ||||
| 	F_GETLK                          = 0x5 | ||||
| 	F_GETLK64                        = 0x5 | ||||
| 	F_GETOWN                         = 0x9 | ||||
| 	F_RDLCK                          = 0x0 | ||||
| 	F_SETLK                          = 0x6 | ||||
| 	F_SETLK64                        = 0x6 | ||||
| 	F_SETLKW                         = 0x7 | ||||
| 	F_SETLKW64                       = 0x7 | ||||
| 	F_SETOWN                         = 0x8 | ||||
| 	F_UNLCK                          = 0x2 | ||||
| 	F_WRLCK                          = 0x1 | ||||
| 	HIDIOCGRAWINFO                   = 0x80084803 | ||||
| 	HIDIOCGRDESC                     = 0x90044802 | ||||
| 	HIDIOCGRDESCSIZE                 = 0x80044801 | ||||
| 	HUPCL                            = 0x400 | ||||
| 	ICANON                           = 0x2 | ||||
| 	IEXTEN                           = 0x8000 | ||||
| 	IN_CLOEXEC                       = 0x80000 | ||||
| 	IN_NONBLOCK                      = 0x800 | ||||
| 	IOCTL_VM_SOCKETS_GET_LOCAL_CID   = 0x7b9 | ||||
| 	ISIG                             = 0x1 | ||||
| 	IUCLC                            = 0x200 | ||||
| 	IXOFF                            = 0x1000 | ||||
| 	IXON                             = 0x400 | ||||
| 	MAP_ANON                         = 0x20 | ||||
| 	MAP_ANONYMOUS                    = 0x20 | ||||
| 	MAP_DENYWRITE                    = 0x800 | ||||
| 	MAP_EXECUTABLE                   = 0x1000 | ||||
| 	MAP_GROWSDOWN                    = 0x100 | ||||
| 	MAP_HUGETLB                      = 0x40000 | ||||
| 	MAP_LOCKED                       = 0x2000 | ||||
| 	MAP_NONBLOCK                     = 0x10000 | ||||
| 	MAP_NORESERVE                    = 0x4000 | ||||
| 	MAP_POPULATE                     = 0x8000 | ||||
| 	MAP_STACK                        = 0x20000 | ||||
| 	MAP_SYNC                         = 0x80000 | ||||
| 	MCL_CURRENT                      = 0x1 | ||||
| 	MCL_FUTURE                       = 0x2 | ||||
| 	MCL_ONFAULT                      = 0x4 | ||||
| 	MEMERASE                         = 0x40084d02 | ||||
| 	MEMERASE64                       = 0x40104d14 | ||||
| 	MEMGETBADBLOCK                   = 0x40084d0b | ||||
| 	MEMGETINFO                       = 0x80204d01 | ||||
| 	MEMGETOOBSEL                     = 0x80c84d0a | ||||
| 	MEMGETREGIONCOUNT                = 0x80044d07 | ||||
| 	MEMISLOCKED                      = 0x80084d17 | ||||
| 	MEMLOCK                          = 0x40084d05 | ||||
| 	MEMREADOOB                       = 0xc0104d04 | ||||
| 	MEMSETBADBLOCK                   = 0x40084d0c | ||||
| 	MEMUNLOCK                        = 0x40084d06 | ||||
| 	MEMWRITEOOB                      = 0xc0104d03 | ||||
| 	MTDFILEMODE                      = 0x4d13 | ||||
| 	NFDBITS                          = 0x40 | ||||
| 	NLDLY                            = 0x100 | ||||
| 	NOFLSH                           = 0x80 | ||||
| 	NS_GET_NSTYPE                    = 0xb703 | ||||
| 	NS_GET_OWNER_UID                 = 0xb704 | ||||
| 	NS_GET_PARENT                    = 0xb702 | ||||
| 	NS_GET_USERNS                    = 0xb701 | ||||
| 	OLCUC                            = 0x2 | ||||
| 	ONLCR                            = 0x4 | ||||
| 	OTPERASE                         = 0x400c4d19 | ||||
| 	OTPGETREGIONCOUNT                = 0x40044d0e | ||||
| 	OTPGETREGIONINFO                 = 0x400c4d0f | ||||
| 	OTPLOCK                          = 0x800c4d10 | ||||
| 	OTPSELECT                        = 0x80044d0d | ||||
| 	O_APPEND                         = 0x400 | ||||
| 	O_ASYNC                          = 0x2000 | ||||
| 	O_CLOEXEC                        = 0x80000 | ||||
| 	O_CREAT                          = 0x40 | ||||
| 	O_DIRECT                         = 0x4000 | ||||
| 	O_DIRECTORY                      = 0x10000 | ||||
| 	O_DSYNC                          = 0x1000 | ||||
| 	O_EXCL                           = 0x80 | ||||
| 	O_FSYNC                          = 0x101000 | ||||
| 	O_LARGEFILE                      = 0x0 | ||||
| 	O_NDELAY                         = 0x800 | ||||
| 	O_NOATIME                        = 0x40000 | ||||
| 	O_NOCTTY                         = 0x100 | ||||
| 	O_NOFOLLOW                       = 0x20000 | ||||
| 	O_NONBLOCK                       = 0x800 | ||||
| 	O_PATH                           = 0x200000 | ||||
| 	O_RSYNC                          = 0x101000 | ||||
| 	O_SYNC                           = 0x101000 | ||||
| 	O_TMPFILE                        = 0x410000 | ||||
| 	O_TRUNC                          = 0x200 | ||||
| 	PARENB                           = 0x100 | ||||
| 	PARODD                           = 0x200 | ||||
| 	PENDIN                           = 0x4000 | ||||
| 	PERF_EVENT_IOC_DISABLE           = 0x2401 | ||||
| 	PERF_EVENT_IOC_ENABLE            = 0x2400 | ||||
| 	PERF_EVENT_IOC_ID                = 0x80082407 | ||||
| 	PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b | ||||
| 	PERF_EVENT_IOC_PAUSE_OUTPUT      = 0x40042409 | ||||
| 	PERF_EVENT_IOC_PERIOD            = 0x40082404 | ||||
| 	PERF_EVENT_IOC_QUERY_BPF         = 0xc008240a | ||||
| 	PERF_EVENT_IOC_REFRESH           = 0x2402 | ||||
| 	PERF_EVENT_IOC_RESET             = 0x2403 | ||||
| 	PERF_EVENT_IOC_SET_BPF           = 0x40042408 | ||||
| 	PERF_EVENT_IOC_SET_FILTER        = 0x40082406 | ||||
| 	PERF_EVENT_IOC_SET_OUTPUT        = 0x2405 | ||||
| 	PPPIOCATTACH                     = 0x4004743d | ||||
| 	PPPIOCATTCHAN                    = 0x40047438 | ||||
| 	PPPIOCBRIDGECHAN                 = 0x40047435 | ||||
| 	PPPIOCCONNECT                    = 0x4004743a | ||||
| 	PPPIOCDETACH                     = 0x4004743c | ||||
| 	PPPIOCDISCONN                    = 0x7439 | ||||
| 	PPPIOCGASYNCMAP                  = 0x80047458 | ||||
| 	PPPIOCGCHAN                      = 0x80047437 | ||||
| 	PPPIOCGDEBUG                     = 0x80047441 | ||||
| 	PPPIOCGFLAGS                     = 0x8004745a | ||||
| 	PPPIOCGIDLE                      = 0x8010743f | ||||
| 	PPPIOCGIDLE32                    = 0x8008743f | ||||
| 	PPPIOCGIDLE64                    = 0x8010743f | ||||
| 	PPPIOCGL2TPSTATS                 = 0x80487436 | ||||
| 	PPPIOCGMRU                       = 0x80047453 | ||||
| 	PPPIOCGRASYNCMAP                 = 0x80047455 | ||||
| 	PPPIOCGUNIT                      = 0x80047456 | ||||
| 	PPPIOCGXASYNCMAP                 = 0x80207450 | ||||
| 	PPPIOCSACTIVE                    = 0x40107446 | ||||
| 	PPPIOCSASYNCMAP                  = 0x40047457 | ||||
| 	PPPIOCSCOMPRESS                  = 0x4010744d | ||||
| 	PPPIOCSDEBUG                     = 0x40047440 | ||||
| 	PPPIOCSFLAGS                     = 0x40047459 | ||||
| 	PPPIOCSMAXCID                    = 0x40047451 | ||||
| 	PPPIOCSMRRU                      = 0x4004743b | ||||
| 	PPPIOCSMRU                       = 0x40047452 | ||||
| 	PPPIOCSNPMODE                    = 0x4008744b | ||||
| 	PPPIOCSPASS                      = 0x40107447 | ||||
| 	PPPIOCSRASYNCMAP                 = 0x40047454 | ||||
| 	PPPIOCSXASYNCMAP                 = 0x4020744f | ||||
| 	PPPIOCUNBRIDGECHAN               = 0x7434 | ||||
| 	PPPIOCXFERUNIT                   = 0x744e | ||||
| 	PR_SET_PTRACER_ANY               = 0xffffffffffffffff | ||||
| 	PTRACE_SYSEMU                    = 0x1f | ||||
| 	PTRACE_SYSEMU_SINGLESTEP         = 0x20 | ||||
| 	RLIMIT_AS                        = 0x9 | ||||
| 	RLIMIT_MEMLOCK                   = 0x8 | ||||
| 	RLIMIT_NOFILE                    = 0x7 | ||||
| 	RLIMIT_NPROC                     = 0x6 | ||||
| 	RLIMIT_RSS                       = 0x5 | ||||
| 	RNDADDENTROPY                    = 0x40085203 | ||||
| 	RNDADDTOENTCNT                   = 0x40045201 | ||||
| 	RNDCLEARPOOL                     = 0x5206 | ||||
| 	RNDGETENTCNT                     = 0x80045200 | ||||
| 	RNDGETPOOL                       = 0x80085202 | ||||
| 	RNDRESEEDCRNG                    = 0x5207 | ||||
| 	RNDZAPENTCNT                     = 0x5204 | ||||
| 	RTC_AIE_OFF                      = 0x7002 | ||||
| 	RTC_AIE_ON                       = 0x7001 | ||||
| 	RTC_ALM_READ                     = 0x80247008 | ||||
| 	RTC_ALM_SET                      = 0x40247007 | ||||
| 	RTC_EPOCH_READ                   = 0x8008700d | ||||
| 	RTC_EPOCH_SET                    = 0x4008700e | ||||
| 	RTC_IRQP_READ                    = 0x8008700b | ||||
| 	RTC_IRQP_SET                     = 0x4008700c | ||||
| 	RTC_PARAM_GET                    = 0x40187013 | ||||
| 	RTC_PARAM_SET                    = 0x40187014 | ||||
| 	RTC_PIE_OFF                      = 0x7006 | ||||
| 	RTC_PIE_ON                       = 0x7005 | ||||
| 	RTC_PLL_GET                      = 0x80207011 | ||||
| 	RTC_PLL_SET                      = 0x40207012 | ||||
| 	RTC_RD_TIME                      = 0x80247009 | ||||
| 	RTC_SET_TIME                     = 0x4024700a | ||||
| 	RTC_UIE_OFF                      = 0x7004 | ||||
| 	RTC_UIE_ON                       = 0x7003 | ||||
| 	RTC_VL_CLR                       = 0x7014 | ||||
| 	RTC_VL_READ                      = 0x80047013 | ||||
| 	RTC_WIE_OFF                      = 0x7010 | ||||
| 	RTC_WIE_ON                       = 0x700f | ||||
| 	RTC_WKALM_RD                     = 0x80287010 | ||||
| 	RTC_WKALM_SET                    = 0x4028700f | ||||
| 	SCM_TIMESTAMPING                 = 0x25 | ||||
| 	SCM_TIMESTAMPING_OPT_STATS       = 0x36 | ||||
| 	SCM_TIMESTAMPING_PKTINFO         = 0x3a | ||||
| 	SCM_TIMESTAMPNS                  = 0x23 | ||||
| 	SCM_TXTIME                       = 0x3d | ||||
| 	SCM_WIFI_STATUS                  = 0x29 | ||||
| 	SFD_CLOEXEC                      = 0x80000 | ||||
| 	SFD_NONBLOCK                     = 0x800 | ||||
| 	SIOCATMARK                       = 0x8905 | ||||
| 	SIOCGPGRP                        = 0x8904 | ||||
| 	SIOCGSTAMPNS_NEW                 = 0x80108907 | ||||
| 	SIOCGSTAMP_NEW                   = 0x80108906 | ||||
| 	SIOCINQ                          = 0x541b | ||||
| 	SIOCOUTQ                         = 0x5411 | ||||
| 	SIOCSPGRP                        = 0x8902 | ||||
| 	SOCK_CLOEXEC                     = 0x80000 | ||||
| 	SOCK_DGRAM                       = 0x2 | ||||
| 	SOCK_NONBLOCK                    = 0x800 | ||||
| 	SOCK_STREAM                      = 0x1 | ||||
| 	SOL_SOCKET                       = 0x1 | ||||
| 	SO_ACCEPTCONN                    = 0x1e | ||||
| 	SO_ATTACH_BPF                    = 0x32 | ||||
| 	SO_ATTACH_REUSEPORT_CBPF         = 0x33 | ||||
| 	SO_ATTACH_REUSEPORT_EBPF         = 0x34 | ||||
| 	SO_BINDTODEVICE                  = 0x19 | ||||
| 	SO_BINDTOIFINDEX                 = 0x3e | ||||
| 	SO_BPF_EXTENSIONS                = 0x30 | ||||
| 	SO_BROADCAST                     = 0x6 | ||||
| 	SO_BSDCOMPAT                     = 0xe | ||||
| 	SO_BUF_LOCK                      = 0x48 | ||||
| 	SO_BUSY_POLL                     = 0x2e | ||||
| 	SO_BUSY_POLL_BUDGET              = 0x46 | ||||
| 	SO_CNX_ADVICE                    = 0x35 | ||||
| 	SO_COOKIE                        = 0x39 | ||||
| 	SO_DETACH_REUSEPORT_BPF          = 0x44 | ||||
| 	SO_DOMAIN                        = 0x27 | ||||
| 	SO_DONTROUTE                     = 0x5 | ||||
| 	SO_ERROR                         = 0x4 | ||||
| 	SO_INCOMING_CPU                  = 0x31 | ||||
| 	SO_INCOMING_NAPI_ID              = 0x38 | ||||
| 	SO_KEEPALIVE                     = 0x9 | ||||
| 	SO_LINGER                        = 0xd | ||||
| 	SO_LOCK_FILTER                   = 0x2c | ||||
| 	SO_MARK                          = 0x24 | ||||
| 	SO_MAX_PACING_RATE               = 0x2f | ||||
| 	SO_MEMINFO                       = 0x37 | ||||
| 	SO_NETNS_COOKIE                  = 0x47 | ||||
| 	SO_NOFCS                         = 0x2b | ||||
| 	SO_OOBINLINE                     = 0xa | ||||
| 	SO_PASSCRED                      = 0x10 | ||||
| 	SO_PASSSEC                       = 0x22 | ||||
| 	SO_PEEK_OFF                      = 0x2a | ||||
| 	SO_PEERCRED                      = 0x11 | ||||
| 	SO_PEERGROUPS                    = 0x3b | ||||
| 	SO_PEERSEC                       = 0x1f | ||||
| 	SO_PREFER_BUSY_POLL              = 0x45 | ||||
| 	SO_PROTOCOL                      = 0x26 | ||||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
| 	SO_RESERVE_MEM                   = 0x49 | ||||
| 	SO_REUSEADDR                     = 0x2 | ||||
| 	SO_REUSEPORT                     = 0xf | ||||
| 	SO_RXQ_OVFL                      = 0x28 | ||||
| 	SO_SECURITY_AUTHENTICATION       = 0x16 | ||||
| 	SO_SECURITY_ENCRYPTION_NETWORK   = 0x18 | ||||
| 	SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 | ||||
| 	SO_SELECT_ERR_QUEUE              = 0x2d | ||||
| 	SO_SNDBUF                        = 0x7 | ||||
| 	SO_SNDBUFFORCE                   = 0x20 | ||||
| 	SO_SNDLOWAT                      = 0x13 | ||||
| 	SO_SNDTIMEO                      = 0x15 | ||||
| 	SO_SNDTIMEO_NEW                  = 0x43 | ||||
| 	SO_SNDTIMEO_OLD                  = 0x15 | ||||
| 	SO_TIMESTAMPING                  = 0x25 | ||||
| 	SO_TIMESTAMPING_NEW              = 0x41 | ||||
| 	SO_TIMESTAMPING_OLD              = 0x25 | ||||
| 	SO_TIMESTAMPNS                   = 0x23 | ||||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
| 	SO_ZEROCOPY                      = 0x3c | ||||
| 	TAB1                             = 0x800 | ||||
| 	TAB2                             = 0x1000 | ||||
| 	TAB3                             = 0x1800 | ||||
| 	TABDLY                           = 0x1800 | ||||
| 	TCFLSH                           = 0x540b | ||||
| 	TCGETA                           = 0x5405 | ||||
| 	TCGETS                           = 0x5401 | ||||
| 	TCGETS2                          = 0x802c542a | ||||
| 	TCGETX                           = 0x5432 | ||||
| 	TCSAFLUSH                        = 0x2 | ||||
| 	TCSBRK                           = 0x5409 | ||||
| 	TCSBRKP                          = 0x5425 | ||||
| 	TCSETA                           = 0x5406 | ||||
| 	TCSETAF                          = 0x5408 | ||||
| 	TCSETAW                          = 0x5407 | ||||
| 	TCSETS                           = 0x5402 | ||||
| 	TCSETS2                          = 0x402c542b | ||||
| 	TCSETSF                          = 0x5404 | ||||
| 	TCSETSF2                         = 0x402c542d | ||||
| 	TCSETSW                          = 0x5403 | ||||
| 	TCSETSW2                         = 0x402c542c | ||||
| 	TCSETX                           = 0x5433 | ||||
| 	TCSETXF                          = 0x5434 | ||||
| 	TCSETXW                          = 0x5435 | ||||
| 	TCXONC                           = 0x540a | ||||
| 	TFD_CLOEXEC                      = 0x80000 | ||||
| 	TFD_NONBLOCK                     = 0x800 | ||||
| 	TIOCCBRK                         = 0x5428 | ||||
| 	TIOCCONS                         = 0x541d | ||||
| 	TIOCEXCL                         = 0x540c | ||||
| 	TIOCGDEV                         = 0x80045432 | ||||
| 	TIOCGETD                         = 0x5424 | ||||
| 	TIOCGEXCL                        = 0x80045440 | ||||
| 	TIOCGICOUNT                      = 0x545d | ||||
| 	TIOCGISO7816                     = 0x80285442 | ||||
| 	TIOCGLCKTRMIOS                   = 0x5456 | ||||
| 	TIOCGPGRP                        = 0x540f | ||||
| 	TIOCGPKT                         = 0x80045438 | ||||
| 	TIOCGPTLCK                       = 0x80045439 | ||||
| 	TIOCGPTN                         = 0x80045430 | ||||
| 	TIOCGPTPEER                      = 0x5441 | ||||
| 	TIOCGRS485                       = 0x542e | ||||
| 	TIOCGSERIAL                      = 0x541e | ||||
| 	TIOCGSID                         = 0x5429 | ||||
| 	TIOCGSOFTCAR                     = 0x5419 | ||||
| 	TIOCGWINSZ                       = 0x5413 | ||||
| 	TIOCINQ                          = 0x541b | ||||
| 	TIOCLINUX                        = 0x541c | ||||
| 	TIOCMBIC                         = 0x5417 | ||||
| 	TIOCMBIS                         = 0x5416 | ||||
| 	TIOCMGET                         = 0x5415 | ||||
| 	TIOCMIWAIT                       = 0x545c | ||||
| 	TIOCMSET                         = 0x5418 | ||||
| 	TIOCM_CAR                        = 0x40 | ||||
| 	TIOCM_CD                         = 0x40 | ||||
| 	TIOCM_CTS                        = 0x20 | ||||
| 	TIOCM_DSR                        = 0x100 | ||||
| 	TIOCM_RI                         = 0x80 | ||||
| 	TIOCM_RNG                        = 0x80 | ||||
| 	TIOCM_SR                         = 0x10 | ||||
| 	TIOCM_ST                         = 0x8 | ||||
| 	TIOCNOTTY                        = 0x5422 | ||||
| 	TIOCNXCL                         = 0x540d | ||||
| 	TIOCOUTQ                         = 0x5411 | ||||
| 	TIOCPKT                          = 0x5420 | ||||
| 	TIOCSBRK                         = 0x5427 | ||||
| 	TIOCSCTTY                        = 0x540e | ||||
| 	TIOCSERCONFIG                    = 0x5453 | ||||
| 	TIOCSERGETLSR                    = 0x5459 | ||||
| 	TIOCSERGETMULTI                  = 0x545a | ||||
| 	TIOCSERGSTRUCT                   = 0x5458 | ||||
| 	TIOCSERGWILD                     = 0x5454 | ||||
| 	TIOCSERSETMULTI                  = 0x545b | ||||
| 	TIOCSERSWILD                     = 0x5455 | ||||
| 	TIOCSER_TEMT                     = 0x1 | ||||
| 	TIOCSETD                         = 0x5423 | ||||
| 	TIOCSIG                          = 0x40045436 | ||||
| 	TIOCSISO7816                     = 0xc0285443 | ||||
| 	TIOCSLCKTRMIOS                   = 0x5457 | ||||
| 	TIOCSPGRP                        = 0x5410 | ||||
| 	TIOCSPTLCK                       = 0x40045431 | ||||
| 	TIOCSRS485                       = 0x542f | ||||
| 	TIOCSSERIAL                      = 0x541f | ||||
| 	TIOCSSOFTCAR                     = 0x541a | ||||
| 	TIOCSTI                          = 0x5412 | ||||
| 	TIOCSWINSZ                       = 0x5414 | ||||
| 	TIOCVHANGUP                      = 0x5437 | ||||
| 	TOSTOP                           = 0x100 | ||||
| 	TUNATTACHFILTER                  = 0x401054d5 | ||||
| 	TUNDETACHFILTER                  = 0x401054d6 | ||||
| 	TUNGETDEVNETNS                   = 0x54e3 | ||||
| 	TUNGETFEATURES                   = 0x800454cf | ||||
| 	TUNGETFILTER                     = 0x801054db | ||||
| 	TUNGETIFF                        = 0x800454d2 | ||||
| 	TUNGETSNDBUF                     = 0x800454d3 | ||||
| 	TUNGETVNETBE                     = 0x800454df | ||||
| 	TUNGETVNETHDRSZ                  = 0x800454d7 | ||||
| 	TUNGETVNETLE                     = 0x800454dd | ||||
| 	TUNSETCARRIER                    = 0x400454e2 | ||||
| 	TUNSETDEBUG                      = 0x400454c9 | ||||
| 	TUNSETFILTEREBPF                 = 0x800454e1 | ||||
| 	TUNSETGROUP                      = 0x400454ce | ||||
| 	TUNSETIFF                        = 0x400454ca | ||||
| 	TUNSETIFINDEX                    = 0x400454da | ||||
| 	TUNSETLINK                       = 0x400454cd | ||||
| 	TUNSETNOCSUM                     = 0x400454c8 | ||||
| 	TUNSETOFFLOAD                    = 0x400454d0 | ||||
| 	TUNSETOWNER                      = 0x400454cc | ||||
| 	TUNSETPERSIST                    = 0x400454cb | ||||
| 	TUNSETQUEUE                      = 0x400454d9 | ||||
| 	TUNSETSNDBUF                     = 0x400454d4 | ||||
| 	TUNSETSTEERINGEBPF               = 0x800454e0 | ||||
| 	TUNSETTXFILTER                   = 0x400454d1 | ||||
| 	TUNSETVNETBE                     = 0x400454de | ||||
| 	TUNSETVNETHDRSZ                  = 0x400454d8 | ||||
| 	TUNSETVNETLE                     = 0x400454dc | ||||
| 	UBI_IOCATT                       = 0x40186f40 | ||||
| 	UBI_IOCDET                       = 0x40046f41 | ||||
| 	UBI_IOCEBCH                      = 0x40044f02 | ||||
| 	UBI_IOCEBER                      = 0x40044f01 | ||||
| 	UBI_IOCEBISMAP                   = 0x80044f05 | ||||
| 	UBI_IOCEBMAP                     = 0x40084f03 | ||||
| 	UBI_IOCEBUNMAP                   = 0x40044f04 | ||||
| 	UBI_IOCMKVOL                     = 0x40986f00 | ||||
| 	UBI_IOCRMVOL                     = 0x40046f01 | ||||
| 	UBI_IOCRNVOL                     = 0x51106f03 | ||||
| 	UBI_IOCRPEB                      = 0x40046f04 | ||||
| 	UBI_IOCRSVOL                     = 0x400c6f02 | ||||
| 	UBI_IOCSETVOLPROP                = 0x40104f06 | ||||
| 	UBI_IOCSPEB                      = 0x40046f05 | ||||
| 	UBI_IOCVOLCRBLK                  = 0x40804f07 | ||||
| 	UBI_IOCVOLRMBLK                  = 0x4f08 | ||||
| 	UBI_IOCVOLUP                     = 0x40084f00 | ||||
| 	VDISCARD                         = 0xd | ||||
| 	VEOF                             = 0x4 | ||||
| 	VEOL                             = 0xb | ||||
| 	VEOL2                            = 0x10 | ||||
| 	VMIN                             = 0x6 | ||||
| 	VREPRINT                         = 0xc | ||||
| 	VSTART                           = 0x8 | ||||
| 	VSTOP                            = 0x9 | ||||
| 	VSUSP                            = 0xa | ||||
| 	VSWTC                            = 0x7 | ||||
| 	VT1                              = 0x4000 | ||||
| 	VTDLY                            = 0x4000 | ||||
| 	VTIME                            = 0x5 | ||||
| 	VWERASE                          = 0xe | ||||
| 	WDIOC_GETBOOTSTATUS              = 0x80045702 | ||||
| 	WDIOC_GETPRETIMEOUT              = 0x80045709 | ||||
| 	WDIOC_GETSTATUS                  = 0x80045701 | ||||
| 	WDIOC_GETSUPPORT                 = 0x80285700 | ||||
| 	WDIOC_GETTEMP                    = 0x80045703 | ||||
| 	WDIOC_GETTIMELEFT                = 0x8004570a | ||||
| 	WDIOC_GETTIMEOUT                 = 0x80045707 | ||||
| 	WDIOC_KEEPALIVE                  = 0x80045705 | ||||
| 	WDIOC_SETOPTIONS                 = 0x80045704 | ||||
| 	WORDSIZE                         = 0x40 | ||||
| 	XCASE                            = 0x4 | ||||
| 	XTABS                            = 0x1800 | ||||
| 	_HIDIOCGRAWNAME                  = 0x80804804 | ||||
| 	_HIDIOCGRAWPHYS                  = 0x80404805 | ||||
| 	_HIDIOCGRAWUNIQ                  = 0x80404808 | ||||
| ) | ||||
| 
 | ||||
| // Errors
 | ||||
| const ( | ||||
| 	EADDRINUSE      = syscall.Errno(0x62) | ||||
| 	EADDRNOTAVAIL   = syscall.Errno(0x63) | ||||
| 	EADV            = syscall.Errno(0x44) | ||||
| 	EAFNOSUPPORT    = syscall.Errno(0x61) | ||||
| 	EALREADY        = syscall.Errno(0x72) | ||||
| 	EBADE           = syscall.Errno(0x34) | ||||
| 	EBADFD          = syscall.Errno(0x4d) | ||||
| 	EBADMSG         = syscall.Errno(0x4a) | ||||
| 	EBADR           = syscall.Errno(0x35) | ||||
| 	EBADRQC         = syscall.Errno(0x38) | ||||
| 	EBADSLT         = syscall.Errno(0x39) | ||||
| 	EBFONT          = syscall.Errno(0x3b) | ||||
| 	ECANCELED       = syscall.Errno(0x7d) | ||||
| 	ECHRNG          = syscall.Errno(0x2c) | ||||
| 	ECOMM           = syscall.Errno(0x46) | ||||
| 	ECONNABORTED    = syscall.Errno(0x67) | ||||
| 	ECONNREFUSED    = syscall.Errno(0x6f) | ||||
| 	ECONNRESET      = syscall.Errno(0x68) | ||||
| 	EDEADLK         = syscall.Errno(0x23) | ||||
| 	EDEADLOCK       = syscall.Errno(0x23) | ||||
| 	EDESTADDRREQ    = syscall.Errno(0x59) | ||||
| 	EDOTDOT         = syscall.Errno(0x49) | ||||
| 	EDQUOT          = syscall.Errno(0x7a) | ||||
| 	EHOSTDOWN       = syscall.Errno(0x70) | ||||
| 	EHOSTUNREACH    = syscall.Errno(0x71) | ||||
| 	EHWPOISON       = syscall.Errno(0x85) | ||||
| 	EIDRM           = syscall.Errno(0x2b) | ||||
| 	EILSEQ          = syscall.Errno(0x54) | ||||
| 	EINPROGRESS     = syscall.Errno(0x73) | ||||
| 	EISCONN         = syscall.Errno(0x6a) | ||||
| 	EISNAM          = syscall.Errno(0x78) | ||||
| 	EKEYEXPIRED     = syscall.Errno(0x7f) | ||||
| 	EKEYREJECTED    = syscall.Errno(0x81) | ||||
| 	EKEYREVOKED     = syscall.Errno(0x80) | ||||
| 	EL2HLT          = syscall.Errno(0x33) | ||||
| 	EL2NSYNC        = syscall.Errno(0x2d) | ||||
| 	EL3HLT          = syscall.Errno(0x2e) | ||||
| 	EL3RST          = syscall.Errno(0x2f) | ||||
| 	ELIBACC         = syscall.Errno(0x4f) | ||||
| 	ELIBBAD         = syscall.Errno(0x50) | ||||
| 	ELIBEXEC        = syscall.Errno(0x53) | ||||
| 	ELIBMAX         = syscall.Errno(0x52) | ||||
| 	ELIBSCN         = syscall.Errno(0x51) | ||||
| 	ELNRNG          = syscall.Errno(0x30) | ||||
| 	ELOOP           = syscall.Errno(0x28) | ||||
| 	EMEDIUMTYPE     = syscall.Errno(0x7c) | ||||
| 	EMSGSIZE        = syscall.Errno(0x5a) | ||||
| 	EMULTIHOP       = syscall.Errno(0x48) | ||||
| 	ENAMETOOLONG    = syscall.Errno(0x24) | ||||
| 	ENAVAIL         = syscall.Errno(0x77) | ||||
| 	ENETDOWN        = syscall.Errno(0x64) | ||||
| 	ENETRESET       = syscall.Errno(0x66) | ||||
| 	ENETUNREACH     = syscall.Errno(0x65) | ||||
| 	ENOANO          = syscall.Errno(0x37) | ||||
| 	ENOBUFS         = syscall.Errno(0x69) | ||||
| 	ENOCSI          = syscall.Errno(0x32) | ||||
| 	ENODATA         = syscall.Errno(0x3d) | ||||
| 	ENOKEY          = syscall.Errno(0x7e) | ||||
| 	ENOLCK          = syscall.Errno(0x25) | ||||
| 	ENOLINK         = syscall.Errno(0x43) | ||||
| 	ENOMEDIUM       = syscall.Errno(0x7b) | ||||
| 	ENOMSG          = syscall.Errno(0x2a) | ||||
| 	ENONET          = syscall.Errno(0x40) | ||||
| 	ENOPKG          = syscall.Errno(0x41) | ||||
| 	ENOPROTOOPT     = syscall.Errno(0x5c) | ||||
| 	ENOSR           = syscall.Errno(0x3f) | ||||
| 	ENOSTR          = syscall.Errno(0x3c) | ||||
| 	ENOSYS          = syscall.Errno(0x26) | ||||
| 	ENOTCONN        = syscall.Errno(0x6b) | ||||
| 	ENOTEMPTY       = syscall.Errno(0x27) | ||||
| 	ENOTNAM         = syscall.Errno(0x76) | ||||
| 	ENOTRECOVERABLE = syscall.Errno(0x83) | ||||
| 	ENOTSOCK        = syscall.Errno(0x58) | ||||
| 	ENOTSUP         = syscall.Errno(0x5f) | ||||
| 	ENOTUNIQ        = syscall.Errno(0x4c) | ||||
| 	EOPNOTSUPP      = syscall.Errno(0x5f) | ||||
| 	EOVERFLOW       = syscall.Errno(0x4b) | ||||
| 	EOWNERDEAD      = syscall.Errno(0x82) | ||||
| 	EPFNOSUPPORT    = syscall.Errno(0x60) | ||||
| 	EPROTO          = syscall.Errno(0x47) | ||||
| 	EPROTONOSUPPORT = syscall.Errno(0x5d) | ||||
| 	EPROTOTYPE      = syscall.Errno(0x5b) | ||||
| 	EREMCHG         = syscall.Errno(0x4e) | ||||
| 	EREMOTE         = syscall.Errno(0x42) | ||||
| 	EREMOTEIO       = syscall.Errno(0x79) | ||||
| 	ERESTART        = syscall.Errno(0x55) | ||||
| 	ERFKILL         = syscall.Errno(0x84) | ||||
| 	ESHUTDOWN       = syscall.Errno(0x6c) | ||||
| 	ESOCKTNOSUPPORT = syscall.Errno(0x5e) | ||||
| 	ESRMNT          = syscall.Errno(0x45) | ||||
| 	ESTALE          = syscall.Errno(0x74) | ||||
| 	ESTRPIPE        = syscall.Errno(0x56) | ||||
| 	ETIME           = syscall.Errno(0x3e) | ||||
| 	ETIMEDOUT       = syscall.Errno(0x6e) | ||||
| 	ETOOMANYREFS    = syscall.Errno(0x6d) | ||||
| 	EUCLEAN         = syscall.Errno(0x75) | ||||
| 	EUNATCH         = syscall.Errno(0x31) | ||||
| 	EUSERS          = syscall.Errno(0x57) | ||||
| 	EXFULL          = syscall.Errno(0x36) | ||||
| ) | ||||
| 
 | ||||
| // Signals
 | ||||
| const ( | ||||
| 	SIGBUS    = syscall.Signal(0x7) | ||||
| 	SIGCHLD   = syscall.Signal(0x11) | ||||
| 	SIGCLD    = syscall.Signal(0x11) | ||||
| 	SIGCONT   = syscall.Signal(0x12) | ||||
| 	SIGIO     = syscall.Signal(0x1d) | ||||
| 	SIGPOLL   = syscall.Signal(0x1d) | ||||
| 	SIGPROF   = syscall.Signal(0x1b) | ||||
| 	SIGPWR    = syscall.Signal(0x1e) | ||||
| 	SIGSTKFLT = syscall.Signal(0x10) | ||||
| 	SIGSTOP   = syscall.Signal(0x13) | ||||
| 	SIGSYS    = syscall.Signal(0x1f) | ||||
| 	SIGTSTP   = syscall.Signal(0x14) | ||||
| 	SIGTTIN   = syscall.Signal(0x15) | ||||
| 	SIGTTOU   = syscall.Signal(0x16) | ||||
| 	SIGURG    = syscall.Signal(0x17) | ||||
| 	SIGUSR1   = syscall.Signal(0xa) | ||||
| 	SIGUSR2   = syscall.Signal(0xc) | ||||
| 	SIGVTALRM = syscall.Signal(0x1a) | ||||
| 	SIGWINCH  = syscall.Signal(0x1c) | ||||
| 	SIGXCPU   = syscall.Signal(0x18) | ||||
| 	SIGXFSZ   = syscall.Signal(0x19) | ||||
| ) | ||||
| 
 | ||||
| // Error table
 | ||||
| var errorList = [...]struct { | ||||
| 	num  syscall.Errno | ||||
| 	name string | ||||
| 	desc string | ||||
| }{ | ||||
| 	{1, "EPERM", "operation not permitted"}, | ||||
| 	{2, "ENOENT", "no such file or directory"}, | ||||
| 	{3, "ESRCH", "no such process"}, | ||||
| 	{4, "EINTR", "interrupted system call"}, | ||||
| 	{5, "EIO", "input/output error"}, | ||||
| 	{6, "ENXIO", "no such device or address"}, | ||||
| 	{7, "E2BIG", "argument list too long"}, | ||||
| 	{8, "ENOEXEC", "exec format error"}, | ||||
| 	{9, "EBADF", "bad file descriptor"}, | ||||
| 	{10, "ECHILD", "no child processes"}, | ||||
| 	{11, "EAGAIN", "resource temporarily unavailable"}, | ||||
| 	{12, "ENOMEM", "cannot allocate memory"}, | ||||
| 	{13, "EACCES", "permission denied"}, | ||||
| 	{14, "EFAULT", "bad address"}, | ||||
| 	{15, "ENOTBLK", "block device required"}, | ||||
| 	{16, "EBUSY", "device or resource busy"}, | ||||
| 	{17, "EEXIST", "file exists"}, | ||||
| 	{18, "EXDEV", "invalid cross-device link"}, | ||||
| 	{19, "ENODEV", "no such device"}, | ||||
| 	{20, "ENOTDIR", "not a directory"}, | ||||
| 	{21, "EISDIR", "is a directory"}, | ||||
| 	{22, "EINVAL", "invalid argument"}, | ||||
| 	{23, "ENFILE", "too many open files in system"}, | ||||
| 	{24, "EMFILE", "too many open files"}, | ||||
| 	{25, "ENOTTY", "inappropriate ioctl for device"}, | ||||
| 	{26, "ETXTBSY", "text file busy"}, | ||||
| 	{27, "EFBIG", "file too large"}, | ||||
| 	{28, "ENOSPC", "no space left on device"}, | ||||
| 	{29, "ESPIPE", "illegal seek"}, | ||||
| 	{30, "EROFS", "read-only file system"}, | ||||
| 	{31, "EMLINK", "too many links"}, | ||||
| 	{32, "EPIPE", "broken pipe"}, | ||||
| 	{33, "EDOM", "numerical argument out of domain"}, | ||||
| 	{34, "ERANGE", "numerical result out of range"}, | ||||
| 	{35, "EDEADLK", "resource deadlock avoided"}, | ||||
| 	{36, "ENAMETOOLONG", "file name too long"}, | ||||
| 	{37, "ENOLCK", "no locks available"}, | ||||
| 	{38, "ENOSYS", "function not implemented"}, | ||||
| 	{39, "ENOTEMPTY", "directory not empty"}, | ||||
| 	{40, "ELOOP", "too many levels of symbolic links"}, | ||||
| 	{42, "ENOMSG", "no message of desired type"}, | ||||
| 	{43, "EIDRM", "identifier removed"}, | ||||
| 	{44, "ECHRNG", "channel number out of range"}, | ||||
| 	{45, "EL2NSYNC", "level 2 not synchronized"}, | ||||
| 	{46, "EL3HLT", "level 3 halted"}, | ||||
| 	{47, "EL3RST", "level 3 reset"}, | ||||
| 	{48, "ELNRNG", "link number out of range"}, | ||||
| 	{49, "EUNATCH", "protocol driver not attached"}, | ||||
| 	{50, "ENOCSI", "no CSI structure available"}, | ||||
| 	{51, "EL2HLT", "level 2 halted"}, | ||||
| 	{52, "EBADE", "invalid exchange"}, | ||||
| 	{53, "EBADR", "invalid request descriptor"}, | ||||
| 	{54, "EXFULL", "exchange full"}, | ||||
| 	{55, "ENOANO", "no anode"}, | ||||
| 	{56, "EBADRQC", "invalid request code"}, | ||||
| 	{57, "EBADSLT", "invalid slot"}, | ||||
| 	{59, "EBFONT", "bad font file format"}, | ||||
| 	{60, "ENOSTR", "device not a stream"}, | ||||
| 	{61, "ENODATA", "no data available"}, | ||||
| 	{62, "ETIME", "timer expired"}, | ||||
| 	{63, "ENOSR", "out of streams resources"}, | ||||
| 	{64, "ENONET", "machine is not on the network"}, | ||||
| 	{65, "ENOPKG", "package not installed"}, | ||||
| 	{66, "EREMOTE", "object is remote"}, | ||||
| 	{67, "ENOLINK", "link has been severed"}, | ||||
| 	{68, "EADV", "advertise error"}, | ||||
| 	{69, "ESRMNT", "srmount error"}, | ||||
| 	{70, "ECOMM", "communication error on send"}, | ||||
| 	{71, "EPROTO", "protocol error"}, | ||||
| 	{72, "EMULTIHOP", "multihop attempted"}, | ||||
| 	{73, "EDOTDOT", "RFS specific error"}, | ||||
| 	{74, "EBADMSG", "bad message"}, | ||||
| 	{75, "EOVERFLOW", "value too large for defined data type"}, | ||||
| 	{76, "ENOTUNIQ", "name not unique on network"}, | ||||
| 	{77, "EBADFD", "file descriptor in bad state"}, | ||||
| 	{78, "EREMCHG", "remote address changed"}, | ||||
| 	{79, "ELIBACC", "can not access a needed shared library"}, | ||||
| 	{80, "ELIBBAD", "accessing a corrupted shared library"}, | ||||
| 	{81, "ELIBSCN", ".lib section in a.out corrupted"}, | ||||
| 	{82, "ELIBMAX", "attempting to link in too many shared libraries"}, | ||||
| 	{83, "ELIBEXEC", "cannot exec a shared library directly"}, | ||||
| 	{84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, | ||||
| 	{85, "ERESTART", "interrupted system call should be restarted"}, | ||||
| 	{86, "ESTRPIPE", "streams pipe error"}, | ||||
| 	{87, "EUSERS", "too many users"}, | ||||
| 	{88, "ENOTSOCK", "socket operation on non-socket"}, | ||||
| 	{89, "EDESTADDRREQ", "destination address required"}, | ||||
| 	{90, "EMSGSIZE", "message too long"}, | ||||
| 	{91, "EPROTOTYPE", "protocol wrong type for socket"}, | ||||
| 	{92, "ENOPROTOOPT", "protocol not available"}, | ||||
| 	{93, "EPROTONOSUPPORT", "protocol not supported"}, | ||||
| 	{94, "ESOCKTNOSUPPORT", "socket type not supported"}, | ||||
| 	{95, "ENOTSUP", "operation not supported"}, | ||||
| 	{96, "EPFNOSUPPORT", "protocol family not supported"}, | ||||
| 	{97, "EAFNOSUPPORT", "address family not supported by protocol"}, | ||||
| 	{98, "EADDRINUSE", "address already in use"}, | ||||
| 	{99, "EADDRNOTAVAIL", "cannot assign requested address"}, | ||||
| 	{100, "ENETDOWN", "network is down"}, | ||||
| 	{101, "ENETUNREACH", "network is unreachable"}, | ||||
| 	{102, "ENETRESET", "network dropped connection on reset"}, | ||||
| 	{103, "ECONNABORTED", "software caused connection abort"}, | ||||
| 	{104, "ECONNRESET", "connection reset by peer"}, | ||||
| 	{105, "ENOBUFS", "no buffer space available"}, | ||||
| 	{106, "EISCONN", "transport endpoint is already connected"}, | ||||
| 	{107, "ENOTCONN", "transport endpoint is not connected"}, | ||||
| 	{108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, | ||||
| 	{109, "ETOOMANYREFS", "too many references: cannot splice"}, | ||||
| 	{110, "ETIMEDOUT", "connection timed out"}, | ||||
| 	{111, "ECONNREFUSED", "connection refused"}, | ||||
| 	{112, "EHOSTDOWN", "host is down"}, | ||||
| 	{113, "EHOSTUNREACH", "no route to host"}, | ||||
| 	{114, "EALREADY", "operation already in progress"}, | ||||
| 	{115, "EINPROGRESS", "operation now in progress"}, | ||||
| 	{116, "ESTALE", "stale file handle"}, | ||||
| 	{117, "EUCLEAN", "structure needs cleaning"}, | ||||
| 	{118, "ENOTNAM", "not a XENIX named type file"}, | ||||
| 	{119, "ENAVAIL", "no XENIX semaphores available"}, | ||||
| 	{120, "EISNAM", "is a named type file"}, | ||||
| 	{121, "EREMOTEIO", "remote I/O error"}, | ||||
| 	{122, "EDQUOT", "disk quota exceeded"}, | ||||
| 	{123, "ENOMEDIUM", "no medium found"}, | ||||
| 	{124, "EMEDIUMTYPE", "wrong medium type"}, | ||||
| 	{125, "ECANCELED", "operation canceled"}, | ||||
| 	{126, "ENOKEY", "required key not available"}, | ||||
| 	{127, "EKEYEXPIRED", "key has expired"}, | ||||
| 	{128, "EKEYREVOKED", "key has been revoked"}, | ||||
| 	{129, "EKEYREJECTED", "key was rejected by service"}, | ||||
| 	{130, "EOWNERDEAD", "owner died"}, | ||||
| 	{131, "ENOTRECOVERABLE", "state not recoverable"}, | ||||
| 	{132, "ERFKILL", "operation not possible due to RF-kill"}, | ||||
| 	{133, "EHWPOISON", "memory page has hardware error"}, | ||||
| } | ||||
| 
 | ||||
| // Signal table
 | ||||
| var signalList = [...]struct { | ||||
| 	num  syscall.Signal | ||||
| 	name string | ||||
| 	desc string | ||||
| }{ | ||||
| 	{1, "SIGHUP", "hangup"}, | ||||
| 	{2, "SIGINT", "interrupt"}, | ||||
| 	{3, "SIGQUIT", "quit"}, | ||||
| 	{4, "SIGILL", "illegal instruction"}, | ||||
| 	{5, "SIGTRAP", "trace/breakpoint trap"}, | ||||
| 	{6, "SIGABRT", "aborted"}, | ||||
| 	{7, "SIGBUS", "bus error"}, | ||||
| 	{8, "SIGFPE", "floating point exception"}, | ||||
| 	{9, "SIGKILL", "killed"}, | ||||
| 	{10, "SIGUSR1", "user defined signal 1"}, | ||||
| 	{11, "SIGSEGV", "segmentation fault"}, | ||||
| 	{12, "SIGUSR2", "user defined signal 2"}, | ||||
| 	{13, "SIGPIPE", "broken pipe"}, | ||||
| 	{14, "SIGALRM", "alarm clock"}, | ||||
| 	{15, "SIGTERM", "terminated"}, | ||||
| 	{16, "SIGSTKFLT", "stack fault"}, | ||||
| 	{17, "SIGCHLD", "child exited"}, | ||||
| 	{18, "SIGCONT", "continued"}, | ||||
| 	{19, "SIGSTOP", "stopped (signal)"}, | ||||
| 	{20, "SIGTSTP", "stopped"}, | ||||
| 	{21, "SIGTTIN", "stopped (tty input)"}, | ||||
| 	{22, "SIGTTOU", "stopped (tty output)"}, | ||||
| 	{23, "SIGURG", "urgent I/O condition"}, | ||||
| 	{24, "SIGXCPU", "CPU time limit exceeded"}, | ||||
| 	{25, "SIGXFSZ", "file size limit exceeded"}, | ||||
| 	{26, "SIGVTALRM", "virtual timer expired"}, | ||||
| 	{27, "SIGPROF", "profiling timer expired"}, | ||||
| 	{28, "SIGWINCH", "window changed"}, | ||||
| 	{29, "SIGIO", "I/O possible"}, | ||||
| 	{30, "SIGPWR", "power failure"}, | ||||
| 	{31, "SIGSYS", "bad system call"}, | ||||
| } | ||||
|  | @ -5,7 +5,7 @@ | |||
| // +build mips,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -326,6 +326,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x1002 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x1004 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x1006 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x1006 | ||||
|  | @ -351,6 +352,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x1008 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build mips64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -326,6 +326,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x1002 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x1004 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x1006 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x1006 | ||||
|  | @ -351,6 +352,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x1008 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build mips64le,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -326,6 +326,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x1002 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x1004 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x1006 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x1006 | ||||
|  | @ -351,6 +352,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x1008 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build mipsle,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -326,6 +326,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x1002 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x1004 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x1006 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x1006 | ||||
|  | @ -351,6 +352,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x1008 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build ppc,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -381,6 +381,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x10 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x12 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x12 | ||||
|  | @ -405,6 +406,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build ppc64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -385,6 +385,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x10 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x12 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x12 | ||||
|  | @ -409,6 +410,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build ppc64le,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -385,6 +385,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x10 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x12 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x12 | ||||
|  | @ -409,6 +410,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build riscv64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -314,6 +314,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -338,6 +339,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build s390x,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include -fsigned-char _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -389,6 +389,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x8 | ||||
| 	SO_RCVBUFFORCE                   = 0x21 | ||||
| 	SO_RCVLOWAT                      = 0x12 | ||||
| 	SO_RCVMARK                       = 0x4b | ||||
| 	SO_RCVTIMEO                      = 0x14 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x42 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x14 | ||||
|  | @ -413,6 +414,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x40 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x23 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x3f | ||||
| 	SO_TXREHASH                      = 0x4a | ||||
| 	SO_TXTIME                        = 0x3d | ||||
| 	SO_TYPE                          = 0x3 | ||||
| 	SO_WIFI_STATUS                   = 0x29 | ||||
|  |  | |||
|  | @ -5,7 +5,7 @@ | |||
| // +build sparc64,linux
 | ||||
| 
 | ||||
| // Code generated by cmd/cgo -godefs; DO NOT EDIT.
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include /build/unix/_const.go
 | ||||
| // cgo -godefs -- -Wall -Werror -static -I/tmp/include _const.go
 | ||||
| 
 | ||||
| package unix | ||||
| 
 | ||||
|  | @ -380,6 +380,7 @@ const ( | |||
| 	SO_RCVBUF                        = 0x1002 | ||||
| 	SO_RCVBUFFORCE                   = 0x100b | ||||
| 	SO_RCVLOWAT                      = 0x800 | ||||
| 	SO_RCVMARK                       = 0x54 | ||||
| 	SO_RCVTIMEO                      = 0x2000 | ||||
| 	SO_RCVTIMEO_NEW                  = 0x44 | ||||
| 	SO_RCVTIMEO_OLD                  = 0x2000 | ||||
|  | @ -404,6 +405,7 @@ const ( | |||
| 	SO_TIMESTAMPNS_NEW               = 0x42 | ||||
| 	SO_TIMESTAMPNS_OLD               = 0x21 | ||||
| 	SO_TIMESTAMP_NEW                 = 0x46 | ||||
| 	SO_TXREHASH                      = 0x53 | ||||
| 	SO_TXTIME                        = 0x3f | ||||
| 	SO_TYPE                          = 0x1008 | ||||
| 	SO_WIFI_STATUS                   = 0x25 | ||||
|  |  | |||
|  | @ -975,7 +975,7 @@ func Pause() (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = &p[0] | ||||
|  | @ -992,7 +992,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = &p[0] | ||||
|  |  | |||
|  | @ -931,7 +931,7 @@ func Pause() (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = &p[0] | ||||
|  | @ -946,7 +946,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = &p[0] | ||||
|  |  | |||
|  | @ -643,17 +643,22 @@ var libc_flistxattr_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { | ||||
| 	_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) | ||||
| func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| var libc_setattrlist_trampoline_addr uintptr | ||||
| var libc_utimensat_trampoline_addr uintptr | ||||
| 
 | ||||
| //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
 | ||||
| //go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib"
 | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
|  | @ -1638,6 +1643,30 @@ var libc_mknod_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(fsType) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	var _p1 *byte | ||||
| 	_p1, err = BytePtrFromString(dir) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| var libc_mount_trampoline_addr uintptr | ||||
| 
 | ||||
| //go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib"
 | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Open(path string, mode int, perm uint32) (fd int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1698,7 +1727,7 @@ var libc_pathconf_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1719,7 +1748,7 @@ var libc_pread_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  |  | |||
|  | @ -228,11 +228,11 @@ TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 | |||
| GLOBL	·libc_flistxattr_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_setattrlist(SB) | ||||
| TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_utimensat(SB) | ||||
| 
 | ||||
| GLOBL	·libc_setattrlist_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) | ||||
| GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_fcntl(SB) | ||||
|  | @ -600,6 +600,12 @@ TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 | |||
| GLOBL	·libc_mknod_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_mount(SB) | ||||
| 
 | ||||
| GLOBL	·libc_mount_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_open(SB) | ||||
| 
 | ||||
|  |  | |||
|  | @ -643,17 +643,22 @@ var libc_flistxattr_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func setattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) { | ||||
| 	_, _, e1 := syscall_syscall6(libc_setattrlist_trampoline_addr, uintptr(unsafe.Pointer(path)), uintptr(list), uintptr(buf), uintptr(size), uintptr(options), 0) | ||||
| func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| var libc_setattrlist_trampoline_addr uintptr | ||||
| var libc_utimensat_trampoline_addr uintptr | ||||
| 
 | ||||
| //go:cgo_import_dynamic libc_setattrlist setattrlist "/usr/lib/libSystem.B.dylib"
 | ||||
| //go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib"
 | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
|  | @ -1638,6 +1643,30 @@ var libc_mknod_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(fsType) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	var _p1 *byte | ||||
| 	_p1, err = BytePtrFromString(dir) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| var libc_mount_trampoline_addr uintptr | ||||
| 
 | ||||
| //go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib"
 | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Open(path string, mode int, perm uint32) (fd int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1698,7 +1727,7 @@ var libc_pathconf_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1719,7 +1748,7 @@ var libc_pread_trampoline_addr uintptr | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  |  | |||
|  | @ -228,11 +228,11 @@ TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 | |||
| GLOBL	·libc_flistxattr_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_setattrlist_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_setattrlist(SB) | ||||
| TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_utimensat(SB) | ||||
| 
 | ||||
| GLOBL	·libc_setattrlist_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_setattrlist_trampoline_addr(SB)/8, $libc_setattrlist_trampoline<>(SB) | ||||
| GLOBL	·libc_utimensat_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_fcntl(SB) | ||||
|  | @ -600,6 +600,12 @@ TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 | |||
| GLOBL	·libc_mknod_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_mount(SB) | ||||
| 
 | ||||
| GLOBL	·libc_mount_trampoline_addr(SB), RODATA, $8 | ||||
| DATA	·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) | ||||
| 
 | ||||
| TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 | ||||
| 	JMP	libc_open(SB) | ||||
| 
 | ||||
|  |  | |||
|  | @ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat(fd int, stat *stat_freebsd11_t) (err error) { | ||||
| func Fstat(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -922,17 +922,7 @@ func fstat(fd int, stat *stat_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat_freebsd12(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { | ||||
| func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -947,22 +937,7 @@ func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | ||||
| func Fstatfs(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -972,16 +947,6 @@ func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsync(fd int) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1002,7 +967,7 @@ func Ftruncate(fd int, length int64) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
|  | @ -1019,23 +984,6 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) | ||||
| 	n = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Getdtablesize() (size int) { | ||||
| 	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) | ||||
| 	size = int(r0) | ||||
|  | @ -1257,21 +1205,6 @@ func Listen(s int, backlog int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func lstat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mkdir(path string, mode uint32) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1317,43 +1250,13 @@ func Mkfifo(path string, mode uint32) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknod(path string, mode uint32, dev int) (err error) { | ||||
| func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat(fd int, path string, mode uint32, dev int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
|  | @ -1420,7 +1323,7 @@ func Pathconf(path string, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1437,7 +1340,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1753,22 +1656,7 @@ func Setuid(uid int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func stat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs(path string, stat *statfs_freebsd11_t) (err error) { | ||||
| func Statfs(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1783,21 +1671,6 @@ func statfs(path string, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs_freebsd12(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Symlink(path string, link string) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  |  | |||
|  | @ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat(fd int, stat *stat_freebsd11_t) (err error) { | ||||
| func Fstat(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -922,17 +922,7 @@ func fstat(fd int, stat *stat_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat_freebsd12(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { | ||||
| func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -947,22 +937,7 @@ func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | ||||
| func Fstatfs(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -972,16 +947,6 @@ func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsync(fd int) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1002,7 +967,7 @@ func Ftruncate(fd int, length int64) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
|  | @ -1019,23 +984,6 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) | ||||
| 	n = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Getdtablesize() (size int) { | ||||
| 	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) | ||||
| 	size = int(r0) | ||||
|  | @ -1257,21 +1205,6 @@ func Listen(s int, backlog int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func lstat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mkdir(path string, mode uint32) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1317,22 +1250,7 @@ func Mkfifo(path string, mode uint32) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknod(path string, mode uint32, dev int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat(fd int, path string, mode uint32, dev int) (err error) { | ||||
| func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1347,21 +1265,6 @@ func mknodat(fd int, path string, mode uint32, dev int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Nanosleep(time *Timespec, leftover *Timespec) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1420,7 +1323,7 @@ func Pathconf(path string, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1437,7 +1340,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1753,22 +1656,7 @@ func Setuid(uid int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func stat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs(path string, stat *statfs_freebsd11_t) (err error) { | ||||
| func Statfs(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1783,21 +1671,6 @@ func statfs(path string, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs_freebsd12(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Symlink(path string, link string) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  |  | |||
|  | @ -351,22 +351,6 @@ func Munlockall() (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(mib) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&mib[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func pipe2(p *[2]_C_int, flags int) (err error) { | ||||
| 	_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -404,6 +388,22 @@ func ioctl(fd int, req uint, arg uintptr) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(mib) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&mib[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func ptrace(request int, pid int, addr uintptr, data int) (err error) { | ||||
| 	_, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat(fd int, stat *stat_freebsd11_t) (err error) { | ||||
| func Fstat(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -922,17 +922,7 @@ func fstat(fd int, stat *stat_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat_freebsd12(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { | ||||
| func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -947,22 +937,7 @@ func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | ||||
| func Fstatfs(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -972,16 +947,6 @@ func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsync(fd int) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1002,7 +967,7 @@ func Ftruncate(fd int, length int64) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
|  | @ -1019,23 +984,6 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) | ||||
| 	n = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Getdtablesize() (size int) { | ||||
| 	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) | ||||
| 	size = int(r0) | ||||
|  | @ -1257,21 +1205,6 @@ func Listen(s int, backlog int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func lstat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mkdir(path string, mode uint32) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1317,43 +1250,13 @@ func Mkfifo(path string, mode uint32) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknod(path string, mode uint32, dev int) (err error) { | ||||
| func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat(fd int, path string, mode uint32, dev int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
|  | @ -1420,7 +1323,7 @@ func Pathconf(path string, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1437,7 +1340,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1753,22 +1656,7 @@ func Setuid(uid int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func stat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs(path string, stat *statfs_freebsd11_t) (err error) { | ||||
| func Statfs(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1783,21 +1671,6 @@ func statfs(path string, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs_freebsd12(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Symlink(path string, link string) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  |  | |||
|  | @ -912,7 +912,7 @@ func Fpathconf(fd int, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat(fd int, stat *stat_freebsd11_t) (err error) { | ||||
| func Fstat(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -922,17 +922,7 @@ func fstat(fd int, stat *stat_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstat_freebsd12(fd int, stat *Stat_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) { | ||||
| func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -947,22 +937,7 @@ func fstatat(fd int, path string, stat *stat_freebsd11_t, flags int) (err error) | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatat_freebsd12(fd int, path string, stat *Stat_t, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_FSTATAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | ||||
| func Fstatfs(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
|  | @ -972,16 +947,6 @@ func fstatfs(fd int, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func fstatfs_freebsd12(fd int, stat *Statfs_t) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSTATFS_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsync(fd int) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1002,7 +967,7 @@ func Ftruncate(fd int, length int64) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | ||||
| func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
|  | @ -1019,23 +984,6 @@ func getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getdirentries_freebsd12(fd int, buf []byte, basep *uint64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&buf[0]) | ||||
| 	} else { | ||||
| 		_p0 = unsafe.Pointer(&_zero) | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall6(SYS_GETDIRENTRIES_FREEBSD12, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) | ||||
| 	n = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Getdtablesize() (size int) { | ||||
| 	r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) | ||||
| 	size = int(r0) | ||||
|  | @ -1257,21 +1205,6 @@ func Listen(s int, backlog int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func lstat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Mkdir(path string, mode uint32) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  | @ -1317,22 +1250,7 @@ func Mkfifo(path string, mode uint32) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknod(path string, mode uint32, dev int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat(fd int, path string, mode uint32, dev int) (err error) { | ||||
| func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1347,21 +1265,6 @@ func mknodat(fd int, path string, mode uint32, dev int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func mknodat_freebsd12(fd int, path string, mode uint32, dev uint64) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MKNODAT_FREEBSD12, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Nanosleep(time *Timespec, leftover *Timespec) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1420,7 +1323,7 @@ func Pathconf(path string, name int) (val int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1437,7 +1340,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -1753,22 +1656,7 @@ func Setuid(uid int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func stat(path string, stat *stat_freebsd11_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs(path string, stat *statfs_freebsd11_t) (err error) { | ||||
| func Statfs(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
|  | @ -1783,21 +1671,6 @@ func statfs(path string, stat *statfs_freebsd11_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func statfs_freebsd12(path string, stat *Statfs_t) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall(SYS_STATFS_FREEBSD12, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Symlink(path string, link string) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(path) | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -231,6 +231,16 @@ func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { | ||||
| 	_, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { | ||||
| 	r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) | ||||
| 	ret = int(r0) | ||||
|  | @ -818,6 +828,49 @@ func Fsync(fd int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) | ||||
| 	fsfd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fsopen(fsName string, flags int) (fd int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(fsName) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) | ||||
| 	fd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(pathName) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) | ||||
| 	fd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Getdents(fd int, buf []byte) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(buf) > 0 { | ||||
|  | @ -1195,6 +1248,26 @@ func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(fromPathName) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	var _p1 *byte | ||||
| 	_p1, err = BytePtrFromString(toPathName) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	_, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Nanosleep(time *Timespec, leftover *Timespec) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -1205,6 +1278,22 @@ func Nanosleep(time *Timespec, leftover *Timespec) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func OpenTree(dfd int, fileName string, flags uint) (r int, err error) { | ||||
| 	var _p0 *byte | ||||
| 	_p0, err = BytePtrFromString(fileName) | ||||
| 	if err != nil { | ||||
| 		return | ||||
| 	} | ||||
| 	r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) | ||||
| 	r = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) | ||||
| 	fd = int(r0) | ||||
|  | @ -1992,6 +2081,16 @@ func PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { | ||||
| 	_, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) | ||||
| 	ret = uintptr(r0) | ||||
|  | @ -2032,3 +2131,23 @@ func shmget(key int, size int, flag int) (id int, err error) { | |||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func getitimer(which int, currValue *Itimerval) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| // go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go
 | ||||
| // go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go
 | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT.
 | ||||
| 
 | ||||
| //go:build linux && 386
 | ||||
|  | @ -200,7 +200,7 @@ func Lstat(path string, stat *Stat_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -217,7 +217,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -524,3 +524,14 @@ func utimes(path string, times *[2]Timeval) (err error) { | |||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Alarm(seconds uint) (remaining uint, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) | ||||
| 	remaining = uint(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| // go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go
 | ||||
| // go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go
 | ||||
| // Code generated by the command above; see README.md. DO NOT EDIT.
 | ||||
| 
 | ||||
| //go:build linux && amd64
 | ||||
|  | @ -215,6 +215,17 @@ func Listen(s int, n int) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func MemfdSecret(flags int) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) | ||||
| 	fd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pause() (err error) { | ||||
| 	_, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) | ||||
| 	if e1 != 0 { | ||||
|  | @ -225,7 +236,7 @@ func Pause() (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -242,7 +253,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -444,17 +455,6 @@ func Ustat(dev int, ubuf *Ustat_t) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) | ||||
| 	fd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) | ||||
| 	fd = int(r0) | ||||
|  | @ -691,3 +691,14 @@ func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, f | |||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Alarm(seconds uint) (remaining uint, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) | ||||
| 	remaining = uint(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  |  | |||
|  | @ -46,17 +46,6 @@ func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) | ||||
| 	fd = int(r0) | ||||
| 	if e1 != 0 { | ||||
| 		err = errnoErr(e1) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { | ||||
| 	r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) | ||||
| 	fd = int(r0) | ||||
|  | @ -549,7 +538,7 @@ func utimes(path string, times *[2]Timeval) (err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pread(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  | @ -566,7 +555,7 @@ func Pread(fd int, p []byte, offset int64) (n int, err error) { | |||
| 
 | ||||
| // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
 | ||||
| 
 | ||||
| func Pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| func pwrite(fd int, p []byte, offset int64) (n int, err error) { | ||||
| 	var _p0 unsafe.Pointer | ||||
| 	if len(p) > 0 { | ||||
| 		_p0 = unsafe.Pointer(&p[0]) | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
		Reference in New Issue