Compare commits
2 Commits
4eb6a27dc6
...
2b841c2456
Author | SHA1 | Date |
---|---|---|
|
2b841c2456 | |
|
8a0be67a1a |
12
go.mod
12
go.mod
|
@ -1,15 +1,15 @@
|
|||
module github.com/containers/oci-seccomp-bpf-hook
|
||||
|
||||
go 1.23.0
|
||||
go 1.23.3
|
||||
|
||||
toolchain go1.23.8
|
||||
toolchain go1.23.12
|
||||
|
||||
require (
|
||||
github.com/containers/common v0.62.3
|
||||
github.com/containers/storage v1.58.0
|
||||
github.com/containers/common v0.64.1
|
||||
github.com/containers/storage v1.59.1
|
||||
github.com/iovisor/gobpf v0.2.1-0.20221005153822-16120a1bf4d4
|
||||
github.com/opencontainers/runtime-spec v1.2.1
|
||||
github.com/seccomp/libseccomp-golang v0.10.0
|
||||
github.com/seccomp/libseccomp-golang v0.11.0
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
github.com/stretchr/testify v1.10.0
|
||||
)
|
||||
|
@ -22,7 +22,7 @@ require (
|
|||
github.com/moby/sys/mountinfo v0.7.2 // indirect
|
||||
github.com/moby/sys/user v0.4.0 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
golang.org/x/sys v0.32.0 // indirect
|
||||
golang.org/x/sys v0.34.0 // indirect
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
|
22
go.sum
22
go.sum
|
@ -1,7 +1,7 @@
|
|||
github.com/containers/common v0.62.3 h1:aOGryqXfW6aKBbHbqOveH7zB+ihavUN03X/2pUSvWFI=
|
||||
github.com/containers/common v0.62.3/go.mod h1:3R8kDox2prC9uj/a2hmXj/YjZz5sBEUNrcDiw51S0Lo=
|
||||
github.com/containers/storage v1.58.0 h1:Q7SyyCCjqgT3wYNgRNIL8o/wUS92heIj2/cc8Sewvcc=
|
||||
github.com/containers/storage v1.58.0/go.mod h1:w7Jl6oG+OpeLGLzlLyOZPkmUso40kjpzgrHUk5tyBlo=
|
||||
github.com/containers/common v0.64.1 h1:E8vSiL+B84/UCsyVSb70GoxY9cu+0bseLujm4EKF6GE=
|
||||
github.com/containers/common v0.64.1/go.mod h1:CtfQNHoCAZqWeXMwdShcsxmMJSeGRgKKMqAwRKmWrHE=
|
||||
github.com/containers/storage v1.59.1 h1:11Zu68MXsEQGBBd+GadPrHPpWeqjKS8hJDGiAHgIqDs=
|
||||
github.com/containers/storage v1.59.1/go.mod h1:KoAYHnAjP3/cTsRS+mmWZGkufSY2GACiKQ4V3ZLQnR0=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -26,27 +26,25 @@ github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs=
|
|||
github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs=
|
||||
github.com/opencontainers/runtime-spec v1.2.1 h1:S4k4ryNgEpxW1dzyqffOmhI1BHYcjzU8lpJfSlR0xww=
|
||||
github.com/opencontainers/runtime-spec v1.2.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20241108202711-f7e3563b0271 h1:TPj0pMLCTy1CKwmrat3hqTxoZfqOuTy0asG0ccpGk8Q=
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20241108202711-f7e3563b0271/go.mod h1:oIH6VwKkaDOO+SIYZpdwrC/0wKYqrfO6E1sG1j3UVws=
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20250523060157-0ea5ed0382a2 h1:2xZEHOdeQBV6PW8ZtimN863bIOl7OCW/X10K0cnxKeA=
|
||||
github.com/opencontainers/runtime-tools v0.9.1-0.20250523060157-0ea5ed0382a2/go.mod h1:MXdPzqAA8pHC58USHqNCSjyLnRQ6D+NjbpP+02Z1U/0=
|
||||
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/seccomp/libseccomp-golang v0.10.0 h1:aA4bp+/Zzi0BnWZ2F1wgNBs5gTpm+na2rWM6M9YjLpY=
|
||||
github.com/seccomp/libseccomp-golang v0.10.0/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg=
|
||||
github.com/seccomp/libseccomp-golang v0.11.0 h1:SDkcBRqGLP+sezmMACkxO1EfgbghxIxnRKfd6mHUEis=
|
||||
github.com/seccomp/libseccomp-golang v0.11.0/go.mod h1:5m1Lk8E9OwgZTTVz4bBOer7JuazaBa+xTkM895tDiWc=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
|
||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
|
||||
golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
|
||||
golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
|
|
|
@ -145,6 +145,7 @@ func DefaultProfile() *Seccomp {
|
|||
"fadvise64",
|
||||
"fadvise64_64",
|
||||
"fallocate",
|
||||
"fanotify_init",
|
||||
"fanotify_mark",
|
||||
"fchdir",
|
||||
"fchmod",
|
||||
|
@ -614,7 +615,6 @@ func DefaultProfile() *Seccomp {
|
|||
{
|
||||
Names: []string{
|
||||
"bpf",
|
||||
"fanotify_init",
|
||||
"lookup_dcookie",
|
||||
"quotactl",
|
||||
"quotactl_fd",
|
||||
|
@ -630,7 +630,6 @@ func DefaultProfile() *Seccomp {
|
|||
},
|
||||
{
|
||||
Names: []string{
|
||||
"fanotify_init",
|
||||
"lookup_dcookie",
|
||||
"perf_event_open",
|
||||
"quotactl",
|
||||
|
|
|
@ -152,6 +152,7 @@
|
|||
"fadvise64",
|
||||
"fadvise64_64",
|
||||
"fallocate",
|
||||
"fanotify_init",
|
||||
"fanotify_mark",
|
||||
"fchdir",
|
||||
"fchmod",
|
||||
|
@ -691,7 +692,6 @@
|
|||
{
|
||||
"names": [
|
||||
"bpf",
|
||||
"fanotify_init",
|
||||
"lookup_dcookie",
|
||||
"quotactl",
|
||||
"quotactl_fd",
|
||||
|
@ -711,7 +711,6 @@
|
|||
},
|
||||
{
|
||||
"names": [
|
||||
"fanotify_init",
|
||||
"lookup_dcookie",
|
||||
"perf_event_open",
|
||||
"quotactl",
|
||||
|
|
|
@ -1,4 +1,12 @@
|
|||
# For documentation, see https://golangci-lint.run/usage/configuration/
|
||||
linters:
|
||||
version: "2"
|
||||
|
||||
formatters:
|
||||
enable:
|
||||
- gofumpt
|
||||
|
||||
linters:
|
||||
exclusions:
|
||||
generated: disable
|
||||
presets:
|
||||
- std-error-handling
|
||||
|
|
|
@ -2,6 +2,18 @@ libseccomp-golang: Releases
|
|||
===============================================================================
|
||||
https://github.com/seccomp/libseccomp-golang
|
||||
|
||||
* Version 0.11.0 - April 23, 2025
|
||||
- Add new architectures (LOONGARCH64, M68K, SH, SHEB)
|
||||
- Add support for SCMP_FLTATR_CTL_WAITKILL (GetWaitKill, SetWaitKill)
|
||||
- Add support for filter precompute (Precompute)
|
||||
- Add support for transactions (Transaction{Start,Commit,Reject})
|
||||
- Add ExportBPFMem
|
||||
- Improve documentation for struct fields
|
||||
- Fix TestRuleAddAndLoad for ppc architecture
|
||||
- Fix TestRuleAddAndLoad to not use magic number
|
||||
- Remove unused get_*_version implementation
|
||||
- Test against latest libseccomp and Go versions
|
||||
|
||||
* Version 0.10.0 - June 9, 2022
|
||||
- Minimum supported version of libseccomp bumped to v2.3.1
|
||||
- Add seccomp userspace notification API (ActNotify, filter.*Notif*)
|
||||
|
|
|
@ -17,8 +17,28 @@ import (
|
|||
"unsafe"
|
||||
)
|
||||
|
||||
// #include <stdlib.h>
|
||||
// #include <seccomp.h>
|
||||
/*
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <seccomp.h>
|
||||
|
||||
// The following functions were added in libseccomp v2.6.0.
|
||||
#if SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR < 6
|
||||
int seccomp_precompute(scmp_filter_ctx ctx) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
int seccomp_export_bpf_mem(const scmp_filter_ctx ctx, void *buf, size_t *len) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
int seccomp_transaction_start(const scmp_filter_ctx ctx) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
int seccomp_transaction_commit(const scmp_filter_ctx ctx) {
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
void seccomp_transaction_reject(const scmp_filter_ctx ctx) {}
|
||||
#endif
|
||||
*/
|
||||
import "C"
|
||||
|
||||
// Exported types
|
||||
|
@ -33,8 +53,9 @@ type VersionError struct {
|
|||
|
||||
func init() {
|
||||
// This forces the cgo libseccomp to initialize its internal API support state,
|
||||
// which is necessary on older versions of libseccomp in order to work
|
||||
// which is necessary on older versions of libseccomp (< 2.5.0) in order to work
|
||||
// correctly.
|
||||
// TODO: remove once libseccomp < v2.5.0 is not supported.
|
||||
_, _ = getAPI()
|
||||
}
|
||||
|
||||
|
@ -78,49 +99,44 @@ type ScmpSyscall int32
|
|||
type ScmpFd int32
|
||||
|
||||
// ScmpNotifData describes the system call context that triggered a notification.
|
||||
//
|
||||
// Syscall: the syscall number
|
||||
// Arch: the filter architecture
|
||||
// InstrPointer: address of the instruction that triggered a notification
|
||||
// Args: arguments (up to 6) for the syscall
|
||||
//
|
||||
type ScmpNotifData struct {
|
||||
// Syscall is the syscall number.
|
||||
Syscall ScmpSyscall `json:"syscall,omitempty"`
|
||||
// Arch is the filter architecture.
|
||||
Arch ScmpArch `json:"arch,omitempty"`
|
||||
// InstrPointer is the address of the instruction that triggered a notification.
|
||||
InstrPointer uint64 `json:"instr_pointer,omitempty"`
|
||||
// Args are the arguments (up to 6) for the syscall.
|
||||
Args []uint64 `json:"args,omitempty"`
|
||||
}
|
||||
|
||||
// ScmpNotifReq represents a seccomp userspace notification. See NotifReceive() for
|
||||
// info on how to pull such a notification.
|
||||
//
|
||||
// ID: notification ID
|
||||
// Pid: process that triggered the notification event
|
||||
// Flags: filter flags (see seccomp(2))
|
||||
// Data: system call context that triggered the notification
|
||||
//
|
||||
type ScmpNotifReq struct {
|
||||
// ID is the notification ID.
|
||||
ID uint64 `json:"id,omitempty"`
|
||||
// Pid is the process that triggered the notification event.
|
||||
Pid uint32 `json:"pid,omitempty"`
|
||||
// Flags is filter flags (see seccomp(2)).
|
||||
Flags uint32 `json:"flags,omitempty"`
|
||||
// Data is system call context that triggered the notification.
|
||||
Data ScmpNotifData `json:"data,omitempty"`
|
||||
}
|
||||
|
||||
// ScmpNotifResp represents a seccomp userspace notification response. See NotifRespond()
|
||||
// for info on how to push such a response.
|
||||
//
|
||||
// ID: notification ID (must match the corresponding ScmpNotifReq ID)
|
||||
// Error: must be 0 if no error occurred, or an error constant from package
|
||||
// syscall (e.g., syscall.EPERM, etc). In the latter case, it's used
|
||||
// as an error return from the syscall that created the notification.
|
||||
// Val: return value for the syscall that created the notification. Only
|
||||
// relevant if Error is 0.
|
||||
// Flags: userspace notification response flag (e.g., NotifRespFlagContinue)
|
||||
//
|
||||
type ScmpNotifResp struct {
|
||||
// ID is the notification ID (must match the corresponding ScmpNotifReq ID).
|
||||
ID uint64 `json:"id,omitempty"`
|
||||
// Error must be 0 if no error occurred, or an error constant from
|
||||
// package syscall (e.g., syscall.EPERM, etc). In the latter case, it
|
||||
// is used as an error return from the syscall that created the
|
||||
// notification.
|
||||
Error int32 `json:"error,omitempty"`
|
||||
// Val is a return value for the syscall that created the notification.
|
||||
// Only relevant if Error is 0.
|
||||
Val uint64 `json:"val,omitempty"`
|
||||
// Flags is userspace notification response flag (e.g., NotifRespFlagContinue).
|
||||
Flags uint32 `json:"flags,omitempty"`
|
||||
}
|
||||
|
||||
|
@ -175,6 +191,14 @@ const (
|
|||
ArchPARISC64
|
||||
// ArchRISCV64 represents RISCV64
|
||||
ArchRISCV64
|
||||
// ArchLOONGARCH64 represents 64-bit LoongArch.
|
||||
ArchLOONGARCH64
|
||||
// ArchM68K represents 32-bit Motorola 68000.
|
||||
ArchM68K
|
||||
// ArchSH represents SuperH.
|
||||
ArchSH
|
||||
// ArchSHEB represents Big-endian SuperH.
|
||||
ArchSHEB
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -306,6 +330,14 @@ func GetArchFromString(arch string) (ScmpArch, error) {
|
|||
return ArchPARISC64, nil
|
||||
case "riscv64":
|
||||
return ArchRISCV64, nil
|
||||
case "loongarch64":
|
||||
return ArchLOONGARCH64, nil
|
||||
case "m68k":
|
||||
return ArchM68K, nil
|
||||
case "sh":
|
||||
return ArchSH, nil
|
||||
case "sheb":
|
||||
return ArchSHEB, nil
|
||||
default:
|
||||
return ArchInvalid, fmt.Errorf("cannot convert unrecognized string %q", arch)
|
||||
}
|
||||
|
@ -352,6 +384,14 @@ func (a ScmpArch) String() string {
|
|||
return "parisc64"
|
||||
case ArchRISCV64:
|
||||
return "riscv64"
|
||||
case ArchLOONGARCH64:
|
||||
return "loong64"
|
||||
case ArchM68K:
|
||||
return "m68k"
|
||||
case ArchSH:
|
||||
return "sh"
|
||||
case ArchSHEB:
|
||||
return "sheb"
|
||||
case ArchNative:
|
||||
return "native"
|
||||
case ArchInvalid:
|
||||
|
@ -798,6 +838,26 @@ func (f *ScmpFilter) RemoveArch(arch ScmpArch) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// Precompute precomputes the seccomp filter for later use by [Load] and
|
||||
// similar functions. Not only does this improve performance of [Load],
|
||||
// it also ensures that the seccomp filter can be loaded in an
|
||||
// async-signal-safe manner if no changes have been made to the filter
|
||||
// since it was precomputed.
|
||||
func (f *ScmpFilter) Precompute() error {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if !f.valid {
|
||||
return errBadFilter
|
||||
}
|
||||
|
||||
if retCode := C.seccomp_precompute(f.filterCtx); retCode != 0 {
|
||||
return errRc(retCode)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Load loads a filter context into the kernel.
|
||||
// Returns an error if the filter context is invalid or the syscall failed.
|
||||
func (f *ScmpFilter) Load() error {
|
||||
|
@ -941,6 +1001,25 @@ func (f *ScmpFilter) GetRawRC() (bool, error) {
|
|||
return true, nil
|
||||
}
|
||||
|
||||
// GetWaitKill returns the current state of WaitKill flag,
|
||||
// or an error if an issue was encountered retrieving the value.
|
||||
// See SetWaitKill for more details.
|
||||
func (f *ScmpFilter) GetWaitKill() (bool, error) {
|
||||
val, err := f.getFilterAttr(filterAttrWaitKill)
|
||||
if err != nil {
|
||||
if e := checkAPI("GetWaitKill", 7, 2, 6, 0); e != nil {
|
||||
err = e
|
||||
}
|
||||
|
||||
return false, err
|
||||
}
|
||||
if val == 0 {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
return true, nil
|
||||
}
|
||||
|
||||
// SetBadArchAction sets the default action taken on a syscall for an
|
||||
// architecture not in the filter, or an error if an issue was encountered
|
||||
// setting the value.
|
||||
|
@ -1053,6 +1132,25 @@ func (f *ScmpFilter) SetRawRC(state bool) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// SetWaitKill sets whether libseccomp should request wait killable semantics
|
||||
// when possible. Defaults to false.
|
||||
func (f *ScmpFilter) SetWaitKill(state bool) error {
|
||||
var toSet C.uint32_t = 0x0
|
||||
|
||||
if state {
|
||||
toSet = 0x1
|
||||
}
|
||||
|
||||
err := f.setFilterAttr(filterAttrWaitKill, toSet)
|
||||
if err != nil {
|
||||
if e := checkAPI("SetWaitKill", 7, 2, 6, 0); e != nil {
|
||||
err = e
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
// SetSyscallPriority sets a syscall's priority.
|
||||
// This provides a hint to the filter generator in libseccomp about the
|
||||
// importance of this syscall. High-priority syscalls are placed
|
||||
|
@ -1154,6 +1252,30 @@ func (f *ScmpFilter) ExportBPF(file *os.File) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// ExportBPFMem is similar to [ExportBPF], except the data is written into
|
||||
// a memory and returned as []byte.
|
||||
func (f *ScmpFilter) ExportBPFMem() ([]byte, error) {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if !f.valid {
|
||||
return nil, errBadFilter
|
||||
}
|
||||
|
||||
var len C.size_t
|
||||
// Get the size required.
|
||||
if retCode := C.seccomp_export_bpf_mem(f.filterCtx, unsafe.Pointer(nil), &len); retCode < 0 {
|
||||
return nil, errRc(retCode)
|
||||
}
|
||||
// Get the data.
|
||||
buf := make([]byte, int(len))
|
||||
if retCode := C.seccomp_export_bpf_mem(f.filterCtx, unsafe.Pointer(&buf[0]), &len); retCode < 0 {
|
||||
return nil, errRc(retCode)
|
||||
}
|
||||
|
||||
return buf, nil
|
||||
}
|
||||
|
||||
// Userspace Notification API
|
||||
|
||||
// GetNotifFd returns the userspace notification file descriptor associated with the given
|
||||
|
@ -1186,3 +1308,53 @@ func NotifRespond(fd ScmpFd, scmpResp *ScmpNotifResp) error {
|
|||
func NotifIDValid(fd ScmpFd, id uint64) error {
|
||||
return notifIDValid(fd, id)
|
||||
}
|
||||
|
||||
// TransactionStart starts a new seccomp filter transaction that the caller can
|
||||
// use to perform any number of filter modifications which can then be
|
||||
// committed to the filter using [TransactionCommit] or rejected using
|
||||
// [TransactionReject]. It is important to note that transactions only affect
|
||||
// the seccomp filter state while it is being managed by libseccomp; seccomp
|
||||
// filters which have been loaded into the kernel can not be modified, only new
|
||||
// seccomp filters can be added on top of the existing loaded filter stack.
|
||||
func (f *ScmpFilter) TransactionStart() error {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if !f.valid {
|
||||
return errBadFilter
|
||||
}
|
||||
|
||||
if retCode := C.seccomp_transaction_start(f.filterCtx); retCode < 0 {
|
||||
return errRc(retCode)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// TransactionReject rejects a transaction started by [TransactionStart].
|
||||
func (f *ScmpFilter) TransactionReject() {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if !f.valid {
|
||||
return
|
||||
}
|
||||
|
||||
C.seccomp_transaction_reject(f.filterCtx)
|
||||
}
|
||||
|
||||
// TransactionCommit commits a transaction started by [TransactionStart].
|
||||
func (f *ScmpFilter) TransactionCommit() error {
|
||||
f.lock.Lock()
|
||||
defer f.lock.Unlock()
|
||||
|
||||
if !f.valid {
|
||||
return errBadFilter
|
||||
}
|
||||
|
||||
if retCode := C.seccomp_transaction_commit(f.filterCtx); retCode < 0 {
|
||||
return errRc(retCode)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -68,6 +68,22 @@ const uint32_t C_ARCH_BAD = ARCH_BAD;
|
|||
#define SCMP_ARCH_RISCV64 ARCH_BAD
|
||||
#endif
|
||||
|
||||
#ifndef SCMP_ARCH_LOONGARCH64
|
||||
#define SCMP_ARCH_LOONGARCH64 ARCH_BAD
|
||||
#endif
|
||||
|
||||
#ifndef SCMP_ARCH_M68K
|
||||
#define SCMP_ARCH_M68K ARCH_BAD
|
||||
#endif
|
||||
|
||||
#ifndef SCMP_ARCH_SH
|
||||
#define SCMP_ARCH_SH ARCH_BAD
|
||||
#endif
|
||||
|
||||
#ifndef SCMP_ARCH_SHEB
|
||||
#define SCMP_ARCH_SHEB ARCH_BAD
|
||||
#endif
|
||||
|
||||
const uint32_t C_ARCH_NATIVE = SCMP_ARCH_NATIVE;
|
||||
const uint32_t C_ARCH_X86 = SCMP_ARCH_X86;
|
||||
const uint32_t C_ARCH_X86_64 = SCMP_ARCH_X86_64;
|
||||
|
@ -88,6 +104,10 @@ const uint32_t C_ARCH_S390X = SCMP_ARCH_S390X;
|
|||
const uint32_t C_ARCH_PARISC = SCMP_ARCH_PARISC;
|
||||
const uint32_t C_ARCH_PARISC64 = SCMP_ARCH_PARISC64;
|
||||
const uint32_t C_ARCH_RISCV64 = SCMP_ARCH_RISCV64;
|
||||
const uint32_t C_ARCH_LOONGARCH64 = SCMP_ARCH_LOONGARCH64;
|
||||
const uint32_t C_ARCH_M68K = SCMP_ARCH_M68K;
|
||||
const uint32_t C_ARCH_SH = SCMP_ARCH_SH;
|
||||
const uint32_t C_ARCH_SHEB = SCMP_ARCH_SHEB;
|
||||
|
||||
#ifndef SCMP_ACT_LOG
|
||||
#define SCMP_ACT_LOG 0x7ffc0000U
|
||||
|
@ -128,6 +148,11 @@ const uint32_t C_ACT_NOTIFY = SCMP_ACT_NOTIFY;
|
|||
#define SCMP_FLTATR_API_SYSRAWRC _SCMP_FLTATR_MIN
|
||||
#endif
|
||||
|
||||
// Added in libseccomp v2.6.0.
|
||||
#if SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR < 6
|
||||
#define SCMP_FLTATR_CTL_WAITKILL _SCMP_FLTATR_MIN
|
||||
#endif
|
||||
|
||||
const uint32_t C_ATTRIBUTE_DEFAULT = (uint32_t)SCMP_FLTATR_ACT_DEFAULT;
|
||||
const uint32_t C_ATTRIBUTE_BADARCH = (uint32_t)SCMP_FLTATR_ACT_BADARCH;
|
||||
const uint32_t C_ATTRIBUTE_NNP = (uint32_t)SCMP_FLTATR_CTL_NNP;
|
||||
|
@ -136,6 +161,7 @@ const uint32_t C_ATTRIBUTE_LOG = (uint32_t)SCMP_FLTATR_CTL_LOG;
|
|||
const uint32_t C_ATTRIBUTE_SSB = (uint32_t)SCMP_FLTATR_CTL_SSB;
|
||||
const uint32_t C_ATTRIBUTE_OPTIMIZE = (uint32_t)SCMP_FLTATR_CTL_OPTIMIZE;
|
||||
const uint32_t C_ATTRIBUTE_SYSRAWRC = (uint32_t)SCMP_FLTATR_API_SYSRAWRC;
|
||||
const uint32_t C_ATTRIBUTE_WAITKILL = (uint32_t)SCMP_FLTATR_CTL_WAITKILL;
|
||||
|
||||
const int C_CMP_NE = (int)SCMP_CMP_NE;
|
||||
const int C_CMP_LT = (int)SCMP_CMP_LT;
|
||||
|
@ -145,11 +171,6 @@ const int C_CMP_GE = (int)SCMP_CMP_GE;
|
|||
const int C_CMP_GT = (int)SCMP_CMP_GT;
|
||||
const int C_CMP_MASKED_EQ = (int)SCMP_CMP_MASKED_EQ;
|
||||
|
||||
const int C_VERSION_MAJOR = SCMP_VER_MAJOR;
|
||||
const int C_VERSION_MINOR = SCMP_VER_MINOR;
|
||||
const int C_VERSION_MICRO = SCMP_VER_MICRO;
|
||||
|
||||
#if SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR >= 3
|
||||
unsigned int get_major_version()
|
||||
{
|
||||
return seccomp_version()->major;
|
||||
|
@ -164,22 +185,6 @@ unsigned int get_micro_version()
|
|||
{
|
||||
return seccomp_version()->micro;
|
||||
}
|
||||
#else
|
||||
unsigned int get_major_version()
|
||||
{
|
||||
return (unsigned int)C_VERSION_MAJOR;
|
||||
}
|
||||
|
||||
unsigned int get_minor_version()
|
||||
{
|
||||
return (unsigned int)C_VERSION_MINOR;
|
||||
}
|
||||
|
||||
unsigned int get_micro_version()
|
||||
{
|
||||
return (unsigned int)C_VERSION_MICRO;
|
||||
}
|
||||
#endif
|
||||
|
||||
// The libseccomp API level functions were added in v2.4.0
|
||||
#if SCMP_VER_MAJOR == 2 && SCMP_VER_MINOR < 4
|
||||
|
@ -284,6 +289,7 @@ const (
|
|||
filterAttrSSB
|
||||
filterAttrOptimize
|
||||
filterAttrRawRC
|
||||
filterAttrWaitKill
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -291,7 +297,7 @@ const (
|
|||
scmpError C.int = -1
|
||||
// Comparison boundaries to check for architecture validity
|
||||
archStart ScmpArch = ArchNative
|
||||
archEnd ScmpArch = ArchRISCV64
|
||||
archEnd ScmpArch = ArchSHEB
|
||||
// Comparison boundaries to check for action validity
|
||||
actionStart ScmpAction = ActKillThread
|
||||
actionEnd ScmpAction = ActKillProcess
|
||||
|
@ -552,6 +558,14 @@ func archFromNative(a C.uint32_t) (ScmpArch, error) {
|
|||
return ArchPARISC64, nil
|
||||
case C.C_ARCH_RISCV64:
|
||||
return ArchRISCV64, nil
|
||||
case C.C_ARCH_LOONGARCH64:
|
||||
return ArchLOONGARCH64, nil
|
||||
case C.C_ARCH_M68K:
|
||||
return ArchM68K, nil
|
||||
case C.C_ARCH_SH:
|
||||
return ArchSH, nil
|
||||
case C.C_ARCH_SHEB:
|
||||
return ArchSHEB, nil
|
||||
default:
|
||||
return 0x0, fmt.Errorf("unrecognized architecture %#x", uint32(a))
|
||||
}
|
||||
|
@ -598,6 +612,14 @@ func (a ScmpArch) toNative() C.uint32_t {
|
|||
return C.C_ARCH_PARISC64
|
||||
case ArchRISCV64:
|
||||
return C.C_ARCH_RISCV64
|
||||
case ArchLOONGARCH64:
|
||||
return C.C_ARCH_LOONGARCH64
|
||||
case ArchM68K:
|
||||
return C.C_ARCH_M68K
|
||||
case ArchSH:
|
||||
return C.C_ARCH_SH
|
||||
case ArchSHEB:
|
||||
return C.C_ARCH_SHEB
|
||||
case ArchNative:
|
||||
return C.C_ARCH_NATIVE
|
||||
default:
|
||||
|
@ -694,6 +716,8 @@ func (a scmpFilterAttr) toNative() uint32 {
|
|||
return uint32(C.C_ATTRIBUTE_OPTIMIZE)
|
||||
case filterAttrRawRC:
|
||||
return uint32(C.C_ATTRIBUTE_SYSRAWRC)
|
||||
case filterAttrWaitKill:
|
||||
return uint32(C.C_ATTRIBUTE_WAITKILL)
|
||||
default:
|
||||
return 0x0
|
||||
}
|
||||
|
@ -794,10 +818,7 @@ func notifReceive(fd ScmpFd) (*ScmpNotifReq, error) {
|
|||
if retCode := C.seccomp_notify_alloc(&req, &resp); retCode != 0 {
|
||||
return nil, errRc(retCode)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
C.seccomp_notify_free(req, resp)
|
||||
}()
|
||||
defer C.seccomp_notify_free(req, resp)
|
||||
|
||||
for {
|
||||
retCode, errno := C.seccomp_notify_receive(C.int(fd), req)
|
||||
|
@ -831,10 +852,7 @@ func notifRespond(fd ScmpFd, scmpResp *ScmpNotifResp) error {
|
|||
if retCode := C.seccomp_notify_alloc(&req, &resp); retCode != 0 {
|
||||
return errRc(retCode)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
C.seccomp_notify_free(req, resp)
|
||||
}()
|
||||
defer C.seccomp_notify_free(req, resp)
|
||||
|
||||
scmpResp.toNative(resp)
|
||||
|
||||
|
|
|
@ -319,6 +319,7 @@ const (
|
|||
AUDIT_INTEGRITY_POLICY_RULE = 0x70f
|
||||
AUDIT_INTEGRITY_RULE = 0x70d
|
||||
AUDIT_INTEGRITY_STATUS = 0x70a
|
||||
AUDIT_INTEGRITY_USERSPACE = 0x710
|
||||
AUDIT_IPC = 0x517
|
||||
AUDIT_IPC_SET_PERM = 0x51f
|
||||
AUDIT_IPE_ACCESS = 0x58c
|
||||
|
@ -843,9 +844,9 @@ const (
|
|||
DM_UUID_FLAG = 0x4000
|
||||
DM_UUID_LEN = 0x81
|
||||
DM_VERSION = 0xc138fd00
|
||||
DM_VERSION_EXTRA = "-ioctl (2023-03-01)"
|
||||
DM_VERSION_EXTRA = "-ioctl (2025-01-17)"
|
||||
DM_VERSION_MAJOR = 0x4
|
||||
DM_VERSION_MINOR = 0x30
|
||||
DM_VERSION_MINOR = 0x31
|
||||
DM_VERSION_PATCHLEVEL = 0x0
|
||||
DT_BLK = 0x6
|
||||
DT_CHR = 0x2
|
||||
|
@ -941,6 +942,8 @@ const (
|
|||
ETHER_FLOW = 0x12
|
||||
ETHTOOL_BUSINFO_LEN = 0x20
|
||||
ETHTOOL_EROMVERS_LEN = 0x20
|
||||
ETHTOOL_FAMILY_NAME = "ethtool"
|
||||
ETHTOOL_FAMILY_VERSION = 0x1
|
||||
ETHTOOL_FEC_AUTO = 0x2
|
||||
ETHTOOL_FEC_BASER = 0x10
|
||||
ETHTOOL_FEC_LLRS = 0x20
|
||||
|
@ -1203,6 +1206,9 @@ const (
|
|||
FAN_DENY = 0x2
|
||||
FAN_ENABLE_AUDIT = 0x40
|
||||
FAN_EPIDFD = -0x2
|
||||
FAN_ERRNO_BITS = 0x8
|
||||
FAN_ERRNO_MASK = 0xff
|
||||
FAN_ERRNO_SHIFT = 0x18
|
||||
FAN_EVENT_INFO_TYPE_DFID = 0x3
|
||||
FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2
|
||||
FAN_EVENT_INFO_TYPE_ERROR = 0x5
|
||||
|
@ -1210,6 +1216,7 @@ const (
|
|||
FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc
|
||||
FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa
|
||||
FAN_EVENT_INFO_TYPE_PIDFD = 0x4
|
||||
FAN_EVENT_INFO_TYPE_RANGE = 0x6
|
||||
FAN_EVENT_METADATA_LEN = 0x18
|
||||
FAN_EVENT_ON_CHILD = 0x8000000
|
||||
FAN_FS_ERROR = 0x8000
|
||||
|
@ -1240,6 +1247,7 @@ const (
|
|||
FAN_OPEN_EXEC = 0x1000
|
||||
FAN_OPEN_EXEC_PERM = 0x40000
|
||||
FAN_OPEN_PERM = 0x10000
|
||||
FAN_PRE_ACCESS = 0x100000
|
||||
FAN_Q_OVERFLOW = 0x4000
|
||||
FAN_RENAME = 0x10000000
|
||||
FAN_REPORT_DFID_NAME = 0xc00
|
||||
|
@ -2787,7 +2795,7 @@ const (
|
|||
RTAX_UNSPEC = 0x0
|
||||
RTAX_WINDOW = 0x3
|
||||
RTA_ALIGNTO = 0x4
|
||||
RTA_MAX = 0x1e
|
||||
RTA_MAX = 0x1f
|
||||
RTCF_DIRECTSRC = 0x4000000
|
||||
RTCF_DOREDIRECT = 0x1000000
|
||||
RTCF_LOG = 0x2000000
|
||||
|
@ -2864,10 +2872,12 @@ const (
|
|||
RTM_DELACTION = 0x31
|
||||
RTM_DELADDR = 0x15
|
||||
RTM_DELADDRLABEL = 0x49
|
||||
RTM_DELANYCAST = 0x3d
|
||||
RTM_DELCHAIN = 0x65
|
||||
RTM_DELLINK = 0x11
|
||||
RTM_DELLINKPROP = 0x6d
|
||||
RTM_DELMDB = 0x55
|
||||
RTM_DELMULTICAST = 0x39
|
||||
RTM_DELNEIGH = 0x1d
|
||||
RTM_DELNETCONF = 0x51
|
||||
RTM_DELNEXTHOP = 0x69
|
||||
|
@ -2917,11 +2927,13 @@ const (
|
|||
RTM_NEWACTION = 0x30
|
||||
RTM_NEWADDR = 0x14
|
||||
RTM_NEWADDRLABEL = 0x48
|
||||
RTM_NEWANYCAST = 0x3c
|
||||
RTM_NEWCACHEREPORT = 0x60
|
||||
RTM_NEWCHAIN = 0x64
|
||||
RTM_NEWLINK = 0x10
|
||||
RTM_NEWLINKPROP = 0x6c
|
||||
RTM_NEWMDB = 0x54
|
||||
RTM_NEWMULTICAST = 0x38
|
||||
RTM_NEWNDUSEROPT = 0x44
|
||||
RTM_NEWNEIGH = 0x1c
|
||||
RTM_NEWNEIGHTBL = 0x40
|
||||
|
@ -2987,11 +2999,12 @@ const (
|
|||
RUSAGE_THREAD = 0x1
|
||||
RWF_APPEND = 0x10
|
||||
RWF_ATOMIC = 0x40
|
||||
RWF_DONTCACHE = 0x80
|
||||
RWF_DSYNC = 0x2
|
||||
RWF_HIPRI = 0x1
|
||||
RWF_NOAPPEND = 0x20
|
||||
RWF_NOWAIT = 0x8
|
||||
RWF_SUPPORTED = 0x7f
|
||||
RWF_SUPPORTED = 0xff
|
||||
RWF_SYNC = 0x4
|
||||
RWF_WRITE_LIFE_NOT_SET = 0x0
|
||||
SCHED_BATCH = 0x3
|
||||
|
@ -3271,6 +3284,7 @@ const (
|
|||
STATX_BTIME = 0x800
|
||||
STATX_CTIME = 0x80
|
||||
STATX_DIOALIGN = 0x2000
|
||||
STATX_DIO_READ_ALIGN = 0x20000
|
||||
STATX_GID = 0x10
|
||||
STATX_INO = 0x100
|
||||
STATX_MNT_ID = 0x1000
|
||||
|
@ -3322,7 +3336,7 @@ const (
|
|||
TASKSTATS_GENL_NAME = "TASKSTATS"
|
||||
TASKSTATS_GENL_VERSION = 0x1
|
||||
TASKSTATS_TYPE_MAX = 0x6
|
||||
TASKSTATS_VERSION = 0xe
|
||||
TASKSTATS_VERSION = 0xf
|
||||
TCIFLUSH = 0x0
|
||||
TCIOFF = 0x2
|
||||
TCIOFLUSH = 0x2
|
||||
|
@ -3503,6 +3517,7 @@ const (
|
|||
TP_STATUS_WRONG_FORMAT = 0x4
|
||||
TRACEFS_MAGIC = 0x74726163
|
||||
TS_COMM_LEN = 0x20
|
||||
UBI_IOCECNFO = 0xc01c6f06
|
||||
UDF_SUPER_MAGIC = 0x15013346
|
||||
UDP_CORK = 0x1
|
||||
UDP_ENCAP = 0x64
|
||||
|
|
|
@ -372,6 +372,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -373,6 +373,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -378,6 +378,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -371,6 +371,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -365,6 +365,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -371,6 +371,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
|
|
|
@ -371,6 +371,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
|
|
|
@ -371,6 +371,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
|
|
|
@ -371,6 +371,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x1004
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x1006
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x1006
|
||||
|
|
|
@ -426,6 +426,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x10
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x12
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x12
|
||||
|
|
|
@ -430,6 +430,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x10
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x12
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x12
|
||||
|
|
|
@ -430,6 +430,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x10
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x12
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x12
|
||||
|
|
|
@ -362,6 +362,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -434,6 +434,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x21
|
||||
SO_RCVLOWAT = 0x12
|
||||
SO_RCVMARK = 0x4b
|
||||
SO_RCVPRIORITY = 0x52
|
||||
SO_RCVTIMEO = 0x14
|
||||
SO_RCVTIMEO_NEW = 0x42
|
||||
SO_RCVTIMEO_OLD = 0x14
|
||||
|
|
|
@ -473,6 +473,7 @@ const (
|
|||
SO_RCVBUFFORCE = 0x100b
|
||||
SO_RCVLOWAT = 0x800
|
||||
SO_RCVMARK = 0x54
|
||||
SO_RCVPRIORITY = 0x5b
|
||||
SO_RCVTIMEO = 0x2000
|
||||
SO_RCVTIMEO_NEW = 0x44
|
||||
SO_RCVTIMEO_OLD = 0x2000
|
||||
|
|
|
@ -114,7 +114,7 @@ type Statx_t struct {
|
|||
Atomic_write_unit_min uint32
|
||||
Atomic_write_unit_max uint32
|
||||
Atomic_write_segments_max uint32
|
||||
_ [1]uint32
|
||||
Dio_read_offset_align uint32
|
||||
_ [9]uint64
|
||||
}
|
||||
|
||||
|
@ -2226,8 +2226,11 @@ const (
|
|||
NFT_PAYLOAD_LL_HEADER = 0x0
|
||||
NFT_PAYLOAD_NETWORK_HEADER = 0x1
|
||||
NFT_PAYLOAD_TRANSPORT_HEADER = 0x2
|
||||
NFT_PAYLOAD_INNER_HEADER = 0x3
|
||||
NFT_PAYLOAD_TUN_HEADER = 0x4
|
||||
NFT_PAYLOAD_CSUM_NONE = 0x0
|
||||
NFT_PAYLOAD_CSUM_INET = 0x1
|
||||
NFT_PAYLOAD_CSUM_SCTP = 0x2
|
||||
NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1
|
||||
NFTA_PAYLOAD_UNSPEC = 0x0
|
||||
NFTA_PAYLOAD_DREG = 0x1
|
||||
|
@ -3802,7 +3805,16 @@ const (
|
|||
ETHTOOL_MSG_PSE_GET = 0x24
|
||||
ETHTOOL_MSG_PSE_SET = 0x25
|
||||
ETHTOOL_MSG_RSS_GET = 0x26
|
||||
ETHTOOL_MSG_USER_MAX = 0x2d
|
||||
ETHTOOL_MSG_PLCA_GET_CFG = 0x27
|
||||
ETHTOOL_MSG_PLCA_SET_CFG = 0x28
|
||||
ETHTOOL_MSG_PLCA_GET_STATUS = 0x29
|
||||
ETHTOOL_MSG_MM_GET = 0x2a
|
||||
ETHTOOL_MSG_MM_SET = 0x2b
|
||||
ETHTOOL_MSG_MODULE_FW_FLASH_ACT = 0x2c
|
||||
ETHTOOL_MSG_PHY_GET = 0x2d
|
||||
ETHTOOL_MSG_TSCONFIG_GET = 0x2e
|
||||
ETHTOOL_MSG_TSCONFIG_SET = 0x2f
|
||||
ETHTOOL_MSG_USER_MAX = 0x2f
|
||||
ETHTOOL_MSG_KERNEL_NONE = 0x0
|
||||
ETHTOOL_MSG_STRSET_GET_REPLY = 0x1
|
||||
ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2
|
||||
|
@ -3842,7 +3854,17 @@ const (
|
|||
ETHTOOL_MSG_MODULE_NTF = 0x24
|
||||
ETHTOOL_MSG_PSE_GET_REPLY = 0x25
|
||||
ETHTOOL_MSG_RSS_GET_REPLY = 0x26
|
||||
ETHTOOL_MSG_KERNEL_MAX = 0x2e
|
||||
ETHTOOL_MSG_PLCA_GET_CFG_REPLY = 0x27
|
||||
ETHTOOL_MSG_PLCA_GET_STATUS_REPLY = 0x28
|
||||
ETHTOOL_MSG_PLCA_NTF = 0x29
|
||||
ETHTOOL_MSG_MM_GET_REPLY = 0x2a
|
||||
ETHTOOL_MSG_MM_NTF = 0x2b
|
||||
ETHTOOL_MSG_MODULE_FW_FLASH_NTF = 0x2c
|
||||
ETHTOOL_MSG_PHY_GET_REPLY = 0x2d
|
||||
ETHTOOL_MSG_PHY_NTF = 0x2e
|
||||
ETHTOOL_MSG_TSCONFIG_GET_REPLY = 0x2f
|
||||
ETHTOOL_MSG_TSCONFIG_SET_REPLY = 0x30
|
||||
ETHTOOL_MSG_KERNEL_MAX = 0x30
|
||||
ETHTOOL_FLAG_COMPACT_BITSETS = 0x1
|
||||
ETHTOOL_FLAG_OMIT_REPLY = 0x2
|
||||
ETHTOOL_FLAG_STATS = 0x4
|
||||
|
@ -3949,7 +3971,12 @@ const (
|
|||
ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb
|
||||
ETHTOOL_A_RINGS_CQE_SIZE = 0xc
|
||||
ETHTOOL_A_RINGS_TX_PUSH = 0xd
|
||||
ETHTOOL_A_RINGS_MAX = 0x10
|
||||
ETHTOOL_A_RINGS_RX_PUSH = 0xe
|
||||
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 0xf
|
||||
ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 0x10
|
||||
ETHTOOL_A_RINGS_HDS_THRESH = 0x11
|
||||
ETHTOOL_A_RINGS_HDS_THRESH_MAX = 0x12
|
||||
ETHTOOL_A_RINGS_MAX = 0x12
|
||||
ETHTOOL_A_CHANNELS_UNSPEC = 0x0
|
||||
ETHTOOL_A_CHANNELS_HEADER = 0x1
|
||||
ETHTOOL_A_CHANNELS_RX_MAX = 0x2
|
||||
|
@ -4015,7 +4042,9 @@ const (
|
|||
ETHTOOL_A_TSINFO_TX_TYPES = 0x3
|
||||
ETHTOOL_A_TSINFO_RX_FILTERS = 0x4
|
||||
ETHTOOL_A_TSINFO_PHC_INDEX = 0x5
|
||||
ETHTOOL_A_TSINFO_MAX = 0x6
|
||||
ETHTOOL_A_TSINFO_STATS = 0x6
|
||||
ETHTOOL_A_TSINFO_HWTSTAMP_PROVIDER = 0x7
|
||||
ETHTOOL_A_TSINFO_MAX = 0x7
|
||||
ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0
|
||||
ETHTOOL_A_CABLE_TEST_HEADER = 0x1
|
||||
ETHTOOL_A_CABLE_TEST_MAX = 0x1
|
||||
|
@ -4613,6 +4642,7 @@ const (
|
|||
NL80211_ATTR_AKM_SUITES = 0x4c
|
||||
NL80211_ATTR_AP_ISOLATE = 0x60
|
||||
NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135
|
||||
NL80211_ATTR_ASSOC_SPP_AMSDU = 0x14a
|
||||
NL80211_ATTR_AUTH_DATA = 0x9c
|
||||
NL80211_ATTR_AUTH_TYPE = 0x35
|
||||
NL80211_ATTR_BANDS = 0xef
|
||||
|
@ -4623,6 +4653,7 @@ const (
|
|||
NL80211_ATTR_BSS_BASIC_RATES = 0x24
|
||||
NL80211_ATTR_BSS = 0x2f
|
||||
NL80211_ATTR_BSS_CTS_PROT = 0x1c
|
||||
NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA = 0x147
|
||||
NL80211_ATTR_BSS_HT_OPMODE = 0x6d
|
||||
NL80211_ATTR_BSSID = 0xf5
|
||||
NL80211_ATTR_BSS_SELECT = 0xe3
|
||||
|
@ -4682,6 +4713,7 @@ const (
|
|||
NL80211_ATTR_DTIM_PERIOD = 0xd
|
||||
NL80211_ATTR_DURATION = 0x57
|
||||
NL80211_ATTR_EHT_CAPABILITY = 0x136
|
||||
NL80211_ATTR_EMA_RNR_ELEMS = 0x145
|
||||
NL80211_ATTR_EML_CAPABILITY = 0x13d
|
||||
NL80211_ATTR_EXT_CAPA = 0xa9
|
||||
NL80211_ATTR_EXT_CAPA_MASK = 0xaa
|
||||
|
@ -4717,6 +4749,7 @@ const (
|
|||
NL80211_ATTR_HIDDEN_SSID = 0x7e
|
||||
NL80211_ATTR_HT_CAPABILITY = 0x1f
|
||||
NL80211_ATTR_HT_CAPABILITY_MASK = 0x94
|
||||
NL80211_ATTR_HW_TIMESTAMP_ENABLED = 0x144
|
||||
NL80211_ATTR_IE_ASSOC_RESP = 0x80
|
||||
NL80211_ATTR_IE = 0x2a
|
||||
NL80211_ATTR_IE_PROBE_RESP = 0x7f
|
||||
|
@ -4747,9 +4780,10 @@ const (
|
|||
NL80211_ATTR_MAC_HINT = 0xc8
|
||||
NL80211_ATTR_MAC_MASK = 0xd7
|
||||
NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca
|
||||
NL80211_ATTR_MAX = 0x14d
|
||||
NL80211_ATTR_MAX = 0x150
|
||||
NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4
|
||||
NL80211_ATTR_MAX_CSA_COUNTERS = 0xce
|
||||
NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 0x143
|
||||
NL80211_ATTR_MAX_MATCH_SETS = 0x85
|
||||
NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c
|
||||
NL80211_ATTR_MAX_NUM_PMKIDS = 0x56
|
||||
|
@ -4774,9 +4808,12 @@ const (
|
|||
NL80211_ATTR_MGMT_SUBTYPE = 0x29
|
||||
NL80211_ATTR_MLD_ADDR = 0x13a
|
||||
NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e
|
||||
NL80211_ATTR_MLO_LINK_DISABLED = 0x146
|
||||
NL80211_ATTR_MLO_LINK_ID = 0x139
|
||||
NL80211_ATTR_MLO_LINKS = 0x138
|
||||
NL80211_ATTR_MLO_SUPPORT = 0x13b
|
||||
NL80211_ATTR_MLO_TTLM_DLINK = 0x148
|
||||
NL80211_ATTR_MLO_TTLM_ULINK = 0x149
|
||||
NL80211_ATTR_MNTR_FLAGS = 0x17
|
||||
NL80211_ATTR_MPATH_INFO = 0x1b
|
||||
NL80211_ATTR_MPATH_NEXT_HOP = 0x1a
|
||||
|
@ -4809,12 +4846,14 @@ const (
|
|||
NL80211_ATTR_PORT_AUTHORIZED = 0x103
|
||||
NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5
|
||||
NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6
|
||||
NL80211_ATTR_POWER_RULE_PSD = 0x8
|
||||
NL80211_ATTR_PREV_BSSID = 0x4f
|
||||
NL80211_ATTR_PRIVACY = 0x46
|
||||
NL80211_ATTR_PROBE_RESP = 0x91
|
||||
NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90
|
||||
NL80211_ATTR_PROTOCOL_FEATURES = 0xad
|
||||
NL80211_ATTR_PS_STATE = 0x5d
|
||||
NL80211_ATTR_PUNCT_BITMAP = 0x142
|
||||
NL80211_ATTR_QOS_MAP = 0xc7
|
||||
NL80211_ATTR_RADAR_BACKGROUND = 0x134
|
||||
NL80211_ATTR_RADAR_EVENT = 0xa8
|
||||
|
@ -4943,7 +4982,9 @@ const (
|
|||
NL80211_ATTR_WIPHY_FREQ = 0x26
|
||||
NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9
|
||||
NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122
|
||||
NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS = 0x14c
|
||||
NL80211_ATTR_WIPHY_NAME = 0x2
|
||||
NL80211_ATTR_WIPHY_RADIOS = 0x14b
|
||||
NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e
|
||||
NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d
|
||||
NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40
|
||||
|
@ -4978,6 +5019,8 @@ const (
|
|||
NL80211_BAND_ATTR_IFTYPE_DATA = 0x9
|
||||
NL80211_BAND_ATTR_MAX = 0xd
|
||||
NL80211_BAND_ATTR_RATES = 0x2
|
||||
NL80211_BAND_ATTR_S1G_CAPA = 0xd
|
||||
NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 0xc
|
||||
NL80211_BAND_ATTR_VHT_CAPA = 0x8
|
||||
NL80211_BAND_ATTR_VHT_MCS_SET = 0x7
|
||||
NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8
|
||||
|
@ -5001,6 +5044,10 @@ const (
|
|||
NL80211_BSS_BEACON_INTERVAL = 0x4
|
||||
NL80211_BSS_BEACON_TSF = 0xd
|
||||
NL80211_BSS_BSSID = 0x1
|
||||
NL80211_BSS_CANNOT_USE_6GHZ_PWR_MISMATCH = 0x2
|
||||
NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 0x1
|
||||
NL80211_BSS_CANNOT_USE_REASONS = 0x18
|
||||
NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 0x2
|
||||
NL80211_BSS_CAPABILITY = 0x5
|
||||
NL80211_BSS_CHAIN_SIGNAL = 0x13
|
||||
NL80211_BSS_CHAN_WIDTH_10 = 0x1
|
||||
|
@ -5032,6 +5079,9 @@ const (
|
|||
NL80211_BSS_STATUS = 0x9
|
||||
NL80211_BSS_STATUS_IBSS_JOINED = 0x2
|
||||
NL80211_BSS_TSF = 0x3
|
||||
NL80211_BSS_USE_FOR = 0x17
|
||||
NL80211_BSS_USE_FOR_MLD_LINK = 0x2
|
||||
NL80211_BSS_USE_FOR_NORMAL = 0x1
|
||||
NL80211_CHAN_HT20 = 0x1
|
||||
NL80211_CHAN_HT40MINUS = 0x2
|
||||
NL80211_CHAN_HT40PLUS = 0x3
|
||||
|
@ -5117,7 +5167,8 @@ const (
|
|||
NL80211_CMD_LEAVE_IBSS = 0x2c
|
||||
NL80211_CMD_LEAVE_MESH = 0x45
|
||||
NL80211_CMD_LEAVE_OCB = 0x6d
|
||||
NL80211_CMD_MAX = 0x9b
|
||||
NL80211_CMD_LINKS_REMOVED = 0x9a
|
||||
NL80211_CMD_MAX = 0x9d
|
||||
NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29
|
||||
NL80211_CMD_MODIFY_LINK_STA = 0x97
|
||||
NL80211_CMD_NAN_MATCH = 0x78
|
||||
|
@ -5161,6 +5212,7 @@ const (
|
|||
NL80211_CMD_SET_COALESCE = 0x65
|
||||
NL80211_CMD_SET_CQM = 0x3f
|
||||
NL80211_CMD_SET_FILS_AAD = 0x92
|
||||
NL80211_CMD_SET_HW_TIMESTAMP = 0x99
|
||||
NL80211_CMD_SET_INTERFACE = 0x6
|
||||
NL80211_CMD_SET_KEY = 0xa
|
||||
NL80211_CMD_SET_MAC_ACL = 0x5d
|
||||
|
@ -5180,6 +5232,7 @@ const (
|
|||
NL80211_CMD_SET_SAR_SPECS = 0x8c
|
||||
NL80211_CMD_SET_STATION = 0x12
|
||||
NL80211_CMD_SET_TID_CONFIG = 0x89
|
||||
NL80211_CMD_SET_TID_TO_LINK_MAPPING = 0x9b
|
||||
NL80211_CMD_SET_TX_BITRATE_MASK = 0x39
|
||||
NL80211_CMD_SET_WDS_PEER = 0x42
|
||||
NL80211_CMD_SET_WIPHY = 0x2
|
||||
|
@ -5247,6 +5300,7 @@ const (
|
|||
NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21
|
||||
NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22
|
||||
NL80211_EXT_FEATURE_AQL = 0x28
|
||||
NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 0x40
|
||||
NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e
|
||||
NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29
|
||||
NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36
|
||||
|
@ -5262,6 +5316,7 @@ const (
|
|||
NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd
|
||||
NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b
|
||||
NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c
|
||||
NL80211_EXT_FEATURE_DFS_CONCURRENT = 0x43
|
||||
NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19
|
||||
NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20
|
||||
NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24
|
||||
|
@ -5281,9 +5336,12 @@ const (
|
|||
NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14
|
||||
NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13
|
||||
NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31
|
||||
NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 0x42
|
||||
NL80211_EXT_FEATURE_OWE_OFFLOAD = 0x41
|
||||
NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d
|
||||
NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b
|
||||
NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39
|
||||
NL80211_EXT_FEATURE_PUNCT = 0x3e
|
||||
NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c
|
||||
NL80211_EXT_FEATURE_RRM = 0x1
|
||||
NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33
|
||||
|
@ -5295,8 +5353,10 @@ const (
|
|||
NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23
|
||||
NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc
|
||||
NL80211_EXT_FEATURE_SECURE_LTF = 0x37
|
||||
NL80211_EXT_FEATURE_SECURE_NAN = 0x3f
|
||||
NL80211_EXT_FEATURE_SECURE_RTT = 0x38
|
||||
NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5
|
||||
NL80211_EXT_FEATURE_SPP_AMSDU_SUPPORT = 0x44
|
||||
NL80211_EXT_FEATURE_STA_TX_PWR = 0x25
|
||||
NL80211_EXT_FEATURE_TXQS = 0x1c
|
||||
NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35
|
||||
|
@ -5343,7 +5403,10 @@ const (
|
|||
NL80211_FREQUENCY_ATTR_2MHZ = 0x16
|
||||
NL80211_FREQUENCY_ATTR_4MHZ = 0x17
|
||||
NL80211_FREQUENCY_ATTR_8MHZ = 0x18
|
||||
NL80211_FREQUENCY_ATTR_ALLOW_6GHZ_VLP_AP = 0x21
|
||||
NL80211_FREQUENCY_ATTR_CAN_MONITOR = 0x20
|
||||
NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd
|
||||
NL80211_FREQUENCY_ATTR_DFS_CONCURRENT = 0x1d
|
||||
NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7
|
||||
NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8
|
||||
NL80211_FREQUENCY_ATTR_DISABLED = 0x2
|
||||
|
@ -5357,6 +5420,8 @@ const (
|
|||
NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc
|
||||
NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10
|
||||
NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a
|
||||
NL80211_FREQUENCY_ATTR_NO_6GHZ_AFC_CLIENT = 0x1f
|
||||
NL80211_FREQUENCY_ATTR_NO_6GHZ_VLP_CLIENT = 0x1e
|
||||
NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb
|
||||
NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b
|
||||
NL80211_FREQUENCY_ATTR_NO_HE = 0x13
|
||||
|
@ -5364,8 +5429,11 @@ const (
|
|||
NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa
|
||||
NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3
|
||||
NL80211_FREQUENCY_ATTR_NO_IR = 0x3
|
||||
NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT = 0x1f
|
||||
NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT = 0x1e
|
||||
NL80211_FREQUENCY_ATTR_OFFSET = 0x14
|
||||
NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3
|
||||
NL80211_FREQUENCY_ATTR_PSD = 0x1c
|
||||
NL80211_FREQUENCY_ATTR_RADAR = 0x5
|
||||
NL80211_FREQUENCY_ATTR_WMM = 0x12
|
||||
NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3
|
||||
|
@ -5430,6 +5498,7 @@ const (
|
|||
NL80211_IFTYPE_STATION = 0x2
|
||||
NL80211_IFTYPE_UNSPECIFIED = 0x0
|
||||
NL80211_IFTYPE_WDS = 0x5
|
||||
NL80211_KCK_EXT_LEN_32 = 0x20
|
||||
NL80211_KCK_EXT_LEN = 0x18
|
||||
NL80211_KCK_LEN = 0x10
|
||||
NL80211_KEK_EXT_LEN = 0x20
|
||||
|
@ -5458,6 +5527,7 @@ const (
|
|||
NL80211_MAX_SUPP_HT_RATES = 0x4d
|
||||
NL80211_MAX_SUPP_RATES = 0x20
|
||||
NL80211_MAX_SUPP_REG_RULES = 0x80
|
||||
NL80211_MAX_SUPP_SELECTORS = 0x80
|
||||
NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5
|
||||
NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3
|
||||
NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5
|
||||
|
@ -5703,11 +5773,16 @@ const (
|
|||
NL80211_RADAR_PRE_CAC_EXPIRED = 0x4
|
||||
NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb
|
||||
NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa
|
||||
NL80211_RATE_INFO_16_MHZ_WIDTH = 0x1d
|
||||
NL80211_RATE_INFO_1_MHZ_WIDTH = 0x19
|
||||
NL80211_RATE_INFO_2_MHZ_WIDTH = 0x1a
|
||||
NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12
|
||||
NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3
|
||||
NL80211_RATE_INFO_4_MHZ_WIDTH = 0x1b
|
||||
NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc
|
||||
NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8
|
||||
NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9
|
||||
NL80211_RATE_INFO_8_MHZ_WIDTH = 0x1c
|
||||
NL80211_RATE_INFO_BITRATE32 = 0x5
|
||||
NL80211_RATE_INFO_BITRATE = 0x1
|
||||
NL80211_RATE_INFO_EHT_GI_0_8 = 0x0
|
||||
|
@ -5753,6 +5828,8 @@ const (
|
|||
NL80211_RATE_INFO_HE_RU_ALLOC = 0x11
|
||||
NL80211_RATE_INFO_MAX = 0x1d
|
||||
NL80211_RATE_INFO_MCS = 0x2
|
||||
NL80211_RATE_INFO_S1G_MCS = 0x17
|
||||
NL80211_RATE_INFO_S1G_NSS = 0x18
|
||||
NL80211_RATE_INFO_SHORT_GI = 0x4
|
||||
NL80211_RATE_INFO_VHT_MCS = 0x6
|
||||
NL80211_RATE_INFO_VHT_NSS = 0x7
|
||||
|
@ -5770,14 +5847,19 @@ const (
|
|||
NL80211_REKEY_DATA_KEK = 0x1
|
||||
NL80211_REKEY_DATA_REPLAY_CTR = 0x3
|
||||
NL80211_REPLAY_CTR_LEN = 0x8
|
||||
NL80211_RRF_ALLOW_6GHZ_VLP_AP = 0x1000000
|
||||
NL80211_RRF_AUTO_BW = 0x800
|
||||
NL80211_RRF_DFS = 0x10
|
||||
NL80211_RRF_DFS_CONCURRENT = 0x200000
|
||||
NL80211_RRF_GO_CONCURRENT = 0x1000
|
||||
NL80211_RRF_IR_CONCURRENT = 0x1000
|
||||
NL80211_RRF_NO_160MHZ = 0x10000
|
||||
NL80211_RRF_NO_320MHZ = 0x40000
|
||||
NL80211_RRF_NO_6GHZ_AFC_CLIENT = 0x800000
|
||||
NL80211_RRF_NO_6GHZ_VLP_CLIENT = 0x400000
|
||||
NL80211_RRF_NO_80MHZ = 0x8000
|
||||
NL80211_RRF_NO_CCK = 0x2
|
||||
NL80211_RRF_NO_EHT = 0x80000
|
||||
NL80211_RRF_NO_HE = 0x20000
|
||||
NL80211_RRF_NO_HT40 = 0x6000
|
||||
NL80211_RRF_NO_HT40MINUS = 0x2000
|
||||
|
@ -5788,7 +5870,10 @@ const (
|
|||
NL80211_RRF_NO_IR = 0x80
|
||||
NL80211_RRF_NO_OFDM = 0x1
|
||||
NL80211_RRF_NO_OUTDOOR = 0x8
|
||||
NL80211_RRF_NO_UHB_AFC_CLIENT = 0x800000
|
||||
NL80211_RRF_NO_UHB_VLP_CLIENT = 0x400000
|
||||
NL80211_RRF_PASSIVE_SCAN = 0x80
|
||||
NL80211_RRF_PSD = 0x100000
|
||||
NL80211_RRF_PTMP_ONLY = 0x40
|
||||
NL80211_RRF_PTP_ONLY = 0x20
|
||||
NL80211_RXMGMT_FLAG_ANSWERED = 0x1
|
||||
|
@ -5849,6 +5934,7 @@ const (
|
|||
NL80211_STA_FLAG_MAX_OLD_API = 0x6
|
||||
NL80211_STA_FLAG_MFP = 0x4
|
||||
NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2
|
||||
NL80211_STA_FLAG_SPP_AMSDU = 0x8
|
||||
NL80211_STA_FLAG_TDLS_PEER = 0x6
|
||||
NL80211_STA_FLAG_WME = 0x3
|
||||
NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23
|
||||
|
@ -6007,6 +6093,13 @@ const (
|
|||
NL80211_VHT_CAPABILITY_LEN = 0xc
|
||||
NL80211_VHT_NSS_MAX = 0x8
|
||||
NL80211_WIPHY_NAME_MAXLEN = 0x40
|
||||
NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE = 0x2
|
||||
NL80211_WIPHY_RADIO_ATTR_INDEX = 0x1
|
||||
NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION = 0x3
|
||||
NL80211_WIPHY_RADIO_ATTR_MAX = 0x4
|
||||
NL80211_WIPHY_RADIO_FREQ_ATTR_END = 0x2
|
||||
NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = 0x2
|
||||
NL80211_WIPHY_RADIO_FREQ_ATTR_START = 0x1
|
||||
NL80211_WMMR_AIFSN = 0x3
|
||||
NL80211_WMMR_CW_MAX = 0x2
|
||||
NL80211_WMMR_CW_MIN = 0x1
|
||||
|
@ -6038,6 +6131,7 @@ const (
|
|||
NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4
|
||||
NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9
|
||||
NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe
|
||||
NL80211_WOWLAN_TRIG_UNPROTECTED_DEAUTH_DISASSOC = 0x14
|
||||
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa
|
||||
NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb
|
||||
NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc
|
||||
|
|
|
@ -285,10 +285,16 @@ type Taskstats struct {
|
|||
_ [4]byte
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -324,11 +330,17 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
_ [4]byte
|
||||
Ac_tgetime uint64
|
||||
|
@ -336,8 +348,12 @@ type Taskstats struct {
|
|||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint32
|
||||
|
|
|
@ -300,10 +300,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -338,19 +344,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -276,10 +276,16 @@ type Taskstats struct {
|
|||
_ [4]byte
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]uint8
|
||||
|
@ -315,11 +321,17 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
_ [4]byte
|
||||
Ac_tgetime uint64
|
||||
|
@ -327,8 +339,12 @@ type Taskstats struct {
|
|||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint32
|
||||
|
|
|
@ -279,10 +279,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -317,19 +323,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -280,10 +280,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -318,19 +324,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -281,10 +281,16 @@ type Taskstats struct {
|
|||
_ [4]byte
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -320,11 +326,17 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
_ [4]byte
|
||||
Ac_tgetime uint64
|
||||
|
@ -332,8 +344,12 @@ type Taskstats struct {
|
|||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint32
|
||||
|
|
|
@ -282,10 +282,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -320,19 +326,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -282,10 +282,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -320,19 +326,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -281,10 +281,16 @@ type Taskstats struct {
|
|||
_ [4]byte
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -320,11 +326,17 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
_ [4]byte
|
||||
Ac_tgetime uint64
|
||||
|
@ -332,8 +344,12 @@ type Taskstats struct {
|
|||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint32
|
||||
|
|
|
@ -288,10 +288,16 @@ type Taskstats struct {
|
|||
_ [4]byte
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]uint8
|
||||
|
@ -327,11 +333,17 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
_ [4]byte
|
||||
Ac_tgetime uint64
|
||||
|
@ -339,8 +351,12 @@ type Taskstats struct {
|
|||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint32
|
||||
|
|
|
@ -289,10 +289,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]uint8
|
||||
|
@ -327,19 +333,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -289,10 +289,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]uint8
|
||||
|
@ -327,19 +333,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -307,10 +307,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]uint8
|
||||
|
@ -345,19 +351,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -302,10 +302,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -340,19 +346,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -284,10 +284,16 @@ type Taskstats struct {
|
|||
Ac_nice uint8
|
||||
Cpu_count uint64
|
||||
Cpu_delay_total uint64
|
||||
Cpu_delay_max uint64
|
||||
Cpu_delay_min uint64
|
||||
Blkio_count uint64
|
||||
Blkio_delay_total uint64
|
||||
Blkio_delay_max uint64
|
||||
Blkio_delay_min uint64
|
||||
Swapin_count uint64
|
||||
Swapin_delay_total uint64
|
||||
Swapin_delay_max uint64
|
||||
Swapin_delay_min uint64
|
||||
Cpu_run_real_total uint64
|
||||
Cpu_run_virtual_total uint64
|
||||
Ac_comm [32]int8
|
||||
|
@ -322,19 +328,29 @@ type Taskstats struct {
|
|||
Cpu_scaled_run_real_total uint64
|
||||
Freepages_count uint64
|
||||
Freepages_delay_total uint64
|
||||
Freepages_delay_max uint64
|
||||
Freepages_delay_min uint64
|
||||
Thrashing_count uint64
|
||||
Thrashing_delay_total uint64
|
||||
Thrashing_delay_max uint64
|
||||
Thrashing_delay_min uint64
|
||||
Ac_btime64 uint64
|
||||
Compact_count uint64
|
||||
Compact_delay_total uint64
|
||||
Compact_delay_max uint64
|
||||
Compact_delay_min uint64
|
||||
Ac_tgid uint32
|
||||
Ac_tgetime uint64
|
||||
Ac_exe_dev uint64
|
||||
Ac_exe_inode uint64
|
||||
Wpcopy_count uint64
|
||||
Wpcopy_delay_total uint64
|
||||
Wpcopy_delay_max uint64
|
||||
Wpcopy_delay_min uint64
|
||||
Irq_count uint64
|
||||
Irq_delay_total uint64
|
||||
Irq_delay_max uint64
|
||||
Irq_delay_min uint64
|
||||
}
|
||||
|
||||
type cpuMask uint64
|
||||
|
|
|
@ -1303,7 +1303,10 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE
|
|||
return nil, err
|
||||
}
|
||||
if absoluteSDSize > 0 {
|
||||
absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0]))
|
||||
absoluteSD = new(SECURITY_DESCRIPTOR)
|
||||
if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) {
|
||||
panic("sizeof(SECURITY_DESCRIPTOR) too small")
|
||||
}
|
||||
}
|
||||
var (
|
||||
dacl *ACL
|
||||
|
@ -1312,19 +1315,55 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE
|
|||
group *SID
|
||||
)
|
||||
if daclSize > 0 {
|
||||
dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0]))
|
||||
dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize))))
|
||||
}
|
||||
if saclSize > 0 {
|
||||
sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0]))
|
||||
sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize))))
|
||||
}
|
||||
if ownerSize > 0 {
|
||||
owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0]))
|
||||
owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize))))
|
||||
}
|
||||
if groupSize > 0 {
|
||||
group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0]))
|
||||
group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize))))
|
||||
}
|
||||
// We call into Windows via makeAbsoluteSD, which sets up
|
||||
// pointers within absoluteSD that point to other chunks of memory
|
||||
// we pass into makeAbsoluteSD, and that happens outside the view of the GC.
|
||||
// We therefore take some care here to then verify the pointers are as we expect
|
||||
// and set them explicitly in view of the GC. See https://go.dev/issue/73199.
|
||||
// TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575.
|
||||
err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize,
|
||||
dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize)
|
||||
if err != nil {
|
||||
// Don't return absoluteSD, which might be partially initialized.
|
||||
return nil, err
|
||||
}
|
||||
// Before using any fields, verify absoluteSD is in the format we expect according to Windows.
|
||||
// See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors
|
||||
absControl, _, err := absoluteSD.Control()
|
||||
if err != nil {
|
||||
panic("absoluteSD: " + err.Error())
|
||||
}
|
||||
if absControl&SE_SELF_RELATIVE != 0 {
|
||||
panic("absoluteSD not in absolute format")
|
||||
}
|
||||
if absoluteSD.dacl != dacl {
|
||||
panic("dacl pointer mismatch")
|
||||
}
|
||||
if absoluteSD.sacl != sacl {
|
||||
panic("sacl pointer mismatch")
|
||||
}
|
||||
if absoluteSD.owner != owner {
|
||||
panic("owner pointer mismatch")
|
||||
}
|
||||
if absoluteSD.group != group {
|
||||
panic("group pointer mismatch")
|
||||
}
|
||||
absoluteSD.dacl = dacl
|
||||
absoluteSD.sacl = sacl
|
||||
absoluteSD.owner = owner
|
||||
absoluteSD.group = group
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -870,6 +870,7 @@ const socket_error = uintptr(^uint32(0))
|
|||
//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom
|
||||
//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo
|
||||
//sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW
|
||||
//sys WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW
|
||||
//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname
|
||||
//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname
|
||||
//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs
|
||||
|
@ -1698,8 +1699,9 @@ func NewNTUnicodeString(s string) (*NTUnicodeString, error) {
|
|||
|
||||
// Slice returns a uint16 slice that aliases the data in the NTUnicodeString.
|
||||
func (s *NTUnicodeString) Slice() []uint16 {
|
||||
slice := unsafe.Slice(s.Buffer, s.MaximumLength)
|
||||
return slice[:s.Length]
|
||||
// Note: this rounds the length down, if it happens
|
||||
// to (incorrectly) be odd. Probably safer than rounding up.
|
||||
return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2]
|
||||
}
|
||||
|
||||
func (s *NTUnicodeString) String() string {
|
||||
|
|
|
@ -2700,6 +2700,8 @@ type CommTimeouts struct {
|
|||
|
||||
// NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING.
|
||||
type NTUnicodeString struct {
|
||||
// Note: Length and MaximumLength are in *bytes*, not uint16s.
|
||||
// They should always be even.
|
||||
Length uint16
|
||||
MaximumLength uint16
|
||||
Buffer *uint16
|
||||
|
@ -3628,3 +3630,213 @@ const (
|
|||
KLF_NOTELLSHELL = 0x00000080
|
||||
KLF_SETFORPROCESS = 0x00000100
|
||||
)
|
||||
|
||||
// Virtual Key codes
|
||||
// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
|
||||
const (
|
||||
VK_LBUTTON = 0x01
|
||||
VK_RBUTTON = 0x02
|
||||
VK_CANCEL = 0x03
|
||||
VK_MBUTTON = 0x04
|
||||
VK_XBUTTON1 = 0x05
|
||||
VK_XBUTTON2 = 0x06
|
||||
VK_BACK = 0x08
|
||||
VK_TAB = 0x09
|
||||
VK_CLEAR = 0x0C
|
||||
VK_RETURN = 0x0D
|
||||
VK_SHIFT = 0x10
|
||||
VK_CONTROL = 0x11
|
||||
VK_MENU = 0x12
|
||||
VK_PAUSE = 0x13
|
||||
VK_CAPITAL = 0x14
|
||||
VK_KANA = 0x15
|
||||
VK_HANGEUL = 0x15
|
||||
VK_HANGUL = 0x15
|
||||
VK_IME_ON = 0x16
|
||||
VK_JUNJA = 0x17
|
||||
VK_FINAL = 0x18
|
||||
VK_HANJA = 0x19
|
||||
VK_KANJI = 0x19
|
||||
VK_IME_OFF = 0x1A
|
||||
VK_ESCAPE = 0x1B
|
||||
VK_CONVERT = 0x1C
|
||||
VK_NONCONVERT = 0x1D
|
||||
VK_ACCEPT = 0x1E
|
||||
VK_MODECHANGE = 0x1F
|
||||
VK_SPACE = 0x20
|
||||
VK_PRIOR = 0x21
|
||||
VK_NEXT = 0x22
|
||||
VK_END = 0x23
|
||||
VK_HOME = 0x24
|
||||
VK_LEFT = 0x25
|
||||
VK_UP = 0x26
|
||||
VK_RIGHT = 0x27
|
||||
VK_DOWN = 0x28
|
||||
VK_SELECT = 0x29
|
||||
VK_PRINT = 0x2A
|
||||
VK_EXECUTE = 0x2B
|
||||
VK_SNAPSHOT = 0x2C
|
||||
VK_INSERT = 0x2D
|
||||
VK_DELETE = 0x2E
|
||||
VK_HELP = 0x2F
|
||||
VK_LWIN = 0x5B
|
||||
VK_RWIN = 0x5C
|
||||
VK_APPS = 0x5D
|
||||
VK_SLEEP = 0x5F
|
||||
VK_NUMPAD0 = 0x60
|
||||
VK_NUMPAD1 = 0x61
|
||||
VK_NUMPAD2 = 0x62
|
||||
VK_NUMPAD3 = 0x63
|
||||
VK_NUMPAD4 = 0x64
|
||||
VK_NUMPAD5 = 0x65
|
||||
VK_NUMPAD6 = 0x66
|
||||
VK_NUMPAD7 = 0x67
|
||||
VK_NUMPAD8 = 0x68
|
||||
VK_NUMPAD9 = 0x69
|
||||
VK_MULTIPLY = 0x6A
|
||||
VK_ADD = 0x6B
|
||||
VK_SEPARATOR = 0x6C
|
||||
VK_SUBTRACT = 0x6D
|
||||
VK_DECIMAL = 0x6E
|
||||
VK_DIVIDE = 0x6F
|
||||
VK_F1 = 0x70
|
||||
VK_F2 = 0x71
|
||||
VK_F3 = 0x72
|
||||
VK_F4 = 0x73
|
||||
VK_F5 = 0x74
|
||||
VK_F6 = 0x75
|
||||
VK_F7 = 0x76
|
||||
VK_F8 = 0x77
|
||||
VK_F9 = 0x78
|
||||
VK_F10 = 0x79
|
||||
VK_F11 = 0x7A
|
||||
VK_F12 = 0x7B
|
||||
VK_F13 = 0x7C
|
||||
VK_F14 = 0x7D
|
||||
VK_F15 = 0x7E
|
||||
VK_F16 = 0x7F
|
||||
VK_F17 = 0x80
|
||||
VK_F18 = 0x81
|
||||
VK_F19 = 0x82
|
||||
VK_F20 = 0x83
|
||||
VK_F21 = 0x84
|
||||
VK_F22 = 0x85
|
||||
VK_F23 = 0x86
|
||||
VK_F24 = 0x87
|
||||
VK_NUMLOCK = 0x90
|
||||
VK_SCROLL = 0x91
|
||||
VK_OEM_NEC_EQUAL = 0x92
|
||||
VK_OEM_FJ_JISHO = 0x92
|
||||
VK_OEM_FJ_MASSHOU = 0x93
|
||||
VK_OEM_FJ_TOUROKU = 0x94
|
||||
VK_OEM_FJ_LOYA = 0x95
|
||||
VK_OEM_FJ_ROYA = 0x96
|
||||
VK_LSHIFT = 0xA0
|
||||
VK_RSHIFT = 0xA1
|
||||
VK_LCONTROL = 0xA2
|
||||
VK_RCONTROL = 0xA3
|
||||
VK_LMENU = 0xA4
|
||||
VK_RMENU = 0xA5
|
||||
VK_BROWSER_BACK = 0xA6
|
||||
VK_BROWSER_FORWARD = 0xA7
|
||||
VK_BROWSER_REFRESH = 0xA8
|
||||
VK_BROWSER_STOP = 0xA9
|
||||
VK_BROWSER_SEARCH = 0xAA
|
||||
VK_BROWSER_FAVORITES = 0xAB
|
||||
VK_BROWSER_HOME = 0xAC
|
||||
VK_VOLUME_MUTE = 0xAD
|
||||
VK_VOLUME_DOWN = 0xAE
|
||||
VK_VOLUME_UP = 0xAF
|
||||
VK_MEDIA_NEXT_TRACK = 0xB0
|
||||
VK_MEDIA_PREV_TRACK = 0xB1
|
||||
VK_MEDIA_STOP = 0xB2
|
||||
VK_MEDIA_PLAY_PAUSE = 0xB3
|
||||
VK_LAUNCH_MAIL = 0xB4
|
||||
VK_LAUNCH_MEDIA_SELECT = 0xB5
|
||||
VK_LAUNCH_APP1 = 0xB6
|
||||
VK_LAUNCH_APP2 = 0xB7
|
||||
VK_OEM_1 = 0xBA
|
||||
VK_OEM_PLUS = 0xBB
|
||||
VK_OEM_COMMA = 0xBC
|
||||
VK_OEM_MINUS = 0xBD
|
||||
VK_OEM_PERIOD = 0xBE
|
||||
VK_OEM_2 = 0xBF
|
||||
VK_OEM_3 = 0xC0
|
||||
VK_OEM_4 = 0xDB
|
||||
VK_OEM_5 = 0xDC
|
||||
VK_OEM_6 = 0xDD
|
||||
VK_OEM_7 = 0xDE
|
||||
VK_OEM_8 = 0xDF
|
||||
VK_OEM_AX = 0xE1
|
||||
VK_OEM_102 = 0xE2
|
||||
VK_ICO_HELP = 0xE3
|
||||
VK_ICO_00 = 0xE4
|
||||
VK_PROCESSKEY = 0xE5
|
||||
VK_ICO_CLEAR = 0xE6
|
||||
VK_OEM_RESET = 0xE9
|
||||
VK_OEM_JUMP = 0xEA
|
||||
VK_OEM_PA1 = 0xEB
|
||||
VK_OEM_PA2 = 0xEC
|
||||
VK_OEM_PA3 = 0xED
|
||||
VK_OEM_WSCTRL = 0xEE
|
||||
VK_OEM_CUSEL = 0xEF
|
||||
VK_OEM_ATTN = 0xF0
|
||||
VK_OEM_FINISH = 0xF1
|
||||
VK_OEM_COPY = 0xF2
|
||||
VK_OEM_AUTO = 0xF3
|
||||
VK_OEM_ENLW = 0xF4
|
||||
VK_OEM_BACKTAB = 0xF5
|
||||
VK_ATTN = 0xF6
|
||||
VK_CRSEL = 0xF7
|
||||
VK_EXSEL = 0xF8
|
||||
VK_EREOF = 0xF9
|
||||
VK_PLAY = 0xFA
|
||||
VK_ZOOM = 0xFB
|
||||
VK_NONAME = 0xFC
|
||||
VK_PA1 = 0xFD
|
||||
VK_OEM_CLEAR = 0xFE
|
||||
)
|
||||
|
||||
// Mouse button constants.
|
||||
// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
|
||||
const (
|
||||
FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001
|
||||
RIGHTMOST_BUTTON_PRESSED = 0x0002
|
||||
FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004
|
||||
FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008
|
||||
FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010
|
||||
)
|
||||
|
||||
// Control key state constaints.
|
||||
// https://docs.microsoft.com/en-us/windows/console/key-event-record-str
|
||||
// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
|
||||
const (
|
||||
CAPSLOCK_ON = 0x0080
|
||||
ENHANCED_KEY = 0x0100
|
||||
LEFT_ALT_PRESSED = 0x0002
|
||||
LEFT_CTRL_PRESSED = 0x0008
|
||||
NUMLOCK_ON = 0x0020
|
||||
RIGHT_ALT_PRESSED = 0x0001
|
||||
RIGHT_CTRL_PRESSED = 0x0004
|
||||
SCROLLLOCK_ON = 0x0040
|
||||
SHIFT_PRESSED = 0x0010
|
||||
)
|
||||
|
||||
// Mouse event record event flags.
|
||||
// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str
|
||||
const (
|
||||
MOUSE_MOVED = 0x0001
|
||||
DOUBLE_CLICK = 0x0002
|
||||
MOUSE_WHEELED = 0x0004
|
||||
MOUSE_HWHEELED = 0x0008
|
||||
)
|
||||
|
||||
// Input Record Event Types
|
||||
// https://learn.microsoft.com/en-us/windows/console/input-record-str
|
||||
const (
|
||||
FOCUS_EVENT = 0x0010
|
||||
KEY_EVENT = 0x0001
|
||||
MENU_EVENT = 0x0008
|
||||
MOUSE_EVENT = 0x0002
|
||||
WINDOW_BUFFER_SIZE_EVENT = 0x0004
|
||||
)
|
||||
|
|
|
@ -511,6 +511,7 @@ var (
|
|||
procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW")
|
||||
procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW")
|
||||
procWSACleanup = modws2_32.NewProc("WSACleanup")
|
||||
procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW")
|
||||
procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW")
|
||||
procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult")
|
||||
procWSAIoctl = modws2_32.NewProc("WSAIoctl")
|
||||
|
@ -4391,6 +4392,14 @@ func WSACleanup() (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) {
|
||||
r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info)))
|
||||
if r1 != 0 {
|
||||
err = errnoErr(e1)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) {
|
||||
r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength)))
|
||||
n = int32(r0)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# github.com/containers/common v0.62.3
|
||||
## explicit; go 1.22.8
|
||||
# github.com/containers/common v0.64.1
|
||||
## explicit; go 1.23.3
|
||||
github.com/containers/common/pkg/seccomp
|
||||
# github.com/containers/storage v1.58.0
|
||||
# github.com/containers/storage v1.59.1
|
||||
## explicit; go 1.23.0
|
||||
github.com/containers/storage/pkg/fileutils
|
||||
github.com/containers/storage/pkg/idtools
|
||||
|
@ -39,8 +39,8 @@ github.com/opencontainers/runtime-spec/specs-go
|
|||
# github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
|
||||
## explicit
|
||||
github.com/pmezard/go-difflib/difflib
|
||||
# github.com/seccomp/libseccomp-golang v0.10.0
|
||||
## explicit; go 1.14
|
||||
# github.com/seccomp/libseccomp-golang v0.11.0
|
||||
## explicit; go 1.19
|
||||
github.com/seccomp/libseccomp-golang
|
||||
# github.com/sirupsen/logrus v1.9.3
|
||||
## explicit; go 1.13
|
||||
|
@ -50,7 +50,7 @@ github.com/sirupsen/logrus/hooks/syslog
|
|||
## explicit; go 1.17
|
||||
github.com/stretchr/testify/assert
|
||||
github.com/stretchr/testify/assert/yaml
|
||||
# golang.org/x/sys v0.32.0
|
||||
# golang.org/x/sys v0.34.0
|
||||
## explicit; go 1.23.0
|
||||
golang.org/x/sys/unix
|
||||
golang.org/x/sys/windows
|
||||
|
|
Loading…
Reference in New Issue