// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Package syscall contains an interface to the low-level operating system // primitives. The details vary depending on the underlying system, and // by default, godoc will display the syscall documentation for the current // system. If you want godoc to display syscall documentation for another // system, set $GOOS and $GOARCH to the desired system. For example, if // you want to view documentation for freebsd/arm on linux/amd64, set $GOOS // to freebsd and $GOARCH to arm. // The primary use of syscall is inside other packages that provide a more // portable interface to the system, such as "os", "time" and "net". Use // those packages rather than this one if you can. // For details of the functions and data types in this package consult // the manuals for the appropriate operating system. // These calls return err == nil to indicate success; otherwise // err is an operating system error describing the failure. // On most systems, that error has type [Errno]. // // NOTE: Most of the functions, types, and constants defined in // this package are also available in the [golang.org/x/sys] package. // That package has more system call support than this one, // and most new code should prefer that package where possible. // See https://golang.org/s/go1.4-syscall for more information.
package syscall import //go:generate go run ./mksyscall_windows.go -systemdll -output zsyscall_windows.go syscall_windows.go security_windows.go // StringByteSlice converts a string to a NUL-terminated []byte, // If s contains a NUL byte this function panics instead of // returning an error. // // Deprecated: Use ByteSliceFromString instead. func ( string) []byte { , := ByteSliceFromString() if != nil { panic("syscall: string with NUL passed to StringByteSlice") } return } // ByteSliceFromString returns a NUL-terminated slice of bytes // containing the text of s. If s contains a NUL byte at any // location, it returns (nil, [EINVAL]). func ( string) ([]byte, error) { if bytealg.IndexByteString(, 0) != -1 { return nil, EINVAL } := make([]byte, len()+1) copy(, ) return , nil } // StringBytePtr returns a pointer to a NUL-terminated array of bytes. // If s contains a NUL byte this function panics instead of returning // an error. // // Deprecated: Use [BytePtrFromString] instead. func ( string) *byte { return &StringByteSlice()[0] } // BytePtrFromString returns a pointer to a NUL-terminated array of // bytes containing the text of s. If s contains a NUL byte at any // location, it returns (nil, [EINVAL]). func ( string) (*byte, error) { , := ByteSliceFromString() if != nil { return nil, } return &[0], nil } // Single-word zero for use when we need a valid pointer to 0 bytes. // See mksyscall.pl. var _zero uintptr // Unix returns the time stored in ts as seconds plus nanoseconds. func ( *Timespec) () ( int64, int64) { return int64(.Sec), int64(.Nsec) } // Unix returns the time stored in tv as seconds plus nanoseconds. func ( *Timeval) () ( int64, int64) { return int64(.Sec), int64(.Usec) * 1000 } // Nano returns the time stored in ts as nanoseconds. func ( *Timespec) () int64 { return int64(.Sec)*1e9 + int64(.Nsec) } // Nano returns the time stored in tv as nanoseconds. func ( *Timeval) () int64 { return int64(.Sec)*1e9 + int64(.Usec)*1000 } // Getpagesize and Exit are provided by the runtime. func () int func ( int) // runtimeSetenv and runtimeUnsetenv are provided by the runtime. func runtimeSetenv(, string) func runtimeUnsetenv( string)