use coinmarketcap pro api v1

pull/38/head
Miguel Mota 5 years ago
parent 3080174642
commit e457a89755

@ -517,6 +517,10 @@ Frequently asked questions:
- A: Run `cointop --clean` to delete the cache and then rerun cointop. If you're still not seeing any data, then please [submit an issue](https://github.com/miguelmota/cointop/issues/new). - A: Run `cointop --clean` to delete the cache and then rerun cointop. If you're still not seeing any data, then please [submit an issue](https://github.com/miguelmota/cointop/issues/new).
- Q: How do I add my CoinMarketCap Pro API Key?
- A: Export the environment variable `CMC_PRO_API_KEY` containing the API key.
- Q: I installed cointop without errors but the command is not found. - Q: I installed cointop without errors but the command is not found.
- A: Make sure your `GOPATH` and `PATH` is set correctly. - A: Make sure your `GOPATH` and `PATH` is set correctly.

@ -3,183 +3,117 @@ package coinmarketcap
import ( import (
"errors" "errors"
"fmt" "fmt"
"os"
"strconv" "strconv"
"strings" "strings"
"sync" "sync"
"time" "time"
apitypes "github.com/miguelmota/cointop/cointop/common/api/types" apitypes "github.com/miguelmota/cointop/cointop/common/api/types"
cmc "github.com/miguelmota/cointop/cointop/common/cmc" cmc "github.com/miguelmota/go-coinmarketcap/pro/v1"
cmcv2 "github.com/miguelmota/go-coinmarketcap/v2"
) )
// Service service // Service service
type Service struct { type Service struct {
client *cmc.Client
} }
// New new service // New new service
func New() *Service { func New() *Service {
return &Service{} client := cmc.NewClient(&cmc.Config{
ProAPIKey: os.Getenv("CMC_PRO_API_KEY"),
})
return &Service{
client: client,
}
} }
// Ping ping API // Ping ping API
func (s *Service) Ping() error { func (s *Service) Ping() error {
ticker, err := cmc.Ticker(&cmc.TickerOptions{ info, err := s.client.Cryptocurrency.Info(&cmc.InfoOptions{
Symbol: "ETH", Symbol: "BTC",
}) })
if err != nil { if err != nil {
return errors.New("failed to ping") return errors.New("failed to ping")
} }
if ticker == nil { if info == nil {
return errors.New("failed to ping") return errors.New("failed to ping")
} }
return nil return nil
} }
func getLimitedCoinDataV2(convert string, offset int) (map[string]apitypes.Coin, error) { func (s *Service) getLimitedCoinData(convert string, offset int) (map[string]apitypes.Coin, error) {
ret := make(map[string]apitypes.Coin) ret := make(map[string]apitypes.Coin)
max := 100 max := 100
coins, err := cmc.Tickers(&cmc.TickersOptions{
Convert: convert,
Start: max * offset,
Limit: max,
})
if err != nil {
return ret, err
}
for _, v := range coins {
ret[v.Name] = apitypes.Coin{
ID: v.Slug,
Name: v.Name,
Symbol: v.Symbol,
Rank: v.Rank,
AvailableSupply: v.CirculatingSupply,
TotalSupply: v.TotalSupply,
MarketCap: v.Quotes[convert].MarketCap,
Price: v.Quotes[convert].Price,
PercentChange1H: v.Quotes[convert].PercentChange1H,
PercentChange24H: v.Quotes[convert].PercentChange24H,
PercentChange7D: v.Quotes[convert].PercentChange7D,
Volume24H: formatVolume(v.Quotes[convert].Volume24H),
LastUpdated: strconv.Itoa(v.LastUpdated),
}
}
return ret, nil
}
func getLimitedCoinData(convert string, offset int) (map[string]apitypes.Coin, error) { listings, err := s.client.Cryptocurrency.LatestListings(&cmc.ListingOptions{
ret := make(map[string]apitypes.Coin) Limit: max,
max := 100
coins, err := cmc.Tickers(&cmc.TickersOptions{
Convert: convert, Convert: convert,
Start: max * offset, Start: max * offset,
Limit: max,
}) })
if err != nil { if err != nil {
return ret, err return nil, err
} }
for _, v := range coins { for _, v := range listings {
price := formatPrice(v.Quotes[convert].Price, convert) price := formatPrice(v.Quote[convert].Price, convert)
ret[v.Name] = apitypes.Coin{ lastUpdated, err := time.Parse(time.RFC3339, v.LastUpdated)
ID: strings.ToLower(v.Name), if err != nil {
Name: v.Name, return nil, err
Symbol: v.Symbol,
Rank: v.Rank,
AvailableSupply: v.CirculatingSupply,
TotalSupply: v.TotalSupply,
MarketCap: v.Quotes[convert].MarketCap,
Price: price,
PercentChange1H: v.Quotes[convert].PercentChange1H,
PercentChange24H: v.Quotes[convert].PercentChange24H,
PercentChange7D: v.Quotes[convert].PercentChange7D,
Volume24H: formatVolume(v.Quotes[convert].Volume24H),
LastUpdated: strconv.Itoa(v.LastUpdated),
} }
}
return ret, nil
}
// GetAllCoinData1 get all coin data
func (s *Service) GetAllCoinData1(convert string) (map[string]apitypes.Coin, error) {
ret := make(map[string]apitypes.Coin)
coins, err := cmc.V1Tickers(0, convert)
if err != nil {
return ret, err
}
for _, v := range coins {
price := formatPrice(v.Quotes[convert].Price, convert)
ret[v.Name] = apitypes.Coin{ ret[v.Name] = apitypes.Coin{
ID: strings.ToLower(v.Name), ID: strings.ToLower(v.Name),
Name: v.Name, Name: v.Name,
Symbol: v.Symbol, Symbol: v.Symbol,
Rank: v.Rank, Rank: int(v.CMCRank),
AvailableSupply: v.AvailableSupply, AvailableSupply: v.CirculatingSupply,
TotalSupply: v.TotalSupply, TotalSupply: v.TotalSupply,
MarketCap: v.Quotes[convert].MarketCap, MarketCap: float64(int(v.Quote[convert].MarketCap)),
Price: price, Price: price,
PercentChange1H: v.PercentChange1H, PercentChange1H: v.Quote[convert].PercentChange1H,
PercentChange24H: v.PercentChange24H, PercentChange24H: v.Quote[convert].PercentChange24H,
PercentChange7D: v.PercentChange7D, PercentChange7D: v.Quote[convert].PercentChange7D,
Volume24H: formatVolume(v.Quotes[convert].Volume24H), Volume24H: formatVolume(v.Quote[convert].Volume24H),
LastUpdated: strconv.Itoa(v.LastUpdated), LastUpdated: strconv.Itoa(int(lastUpdated.Unix())),
} }
} }
return ret, nil return ret, nil
} }
// GetAllCoinDataV2 gets all coin data
// V1 is currently better for fetching all the coins at once
func (s *Service) GetAllCoinDataV2(convert string) (map[string]apitypes.Coin, error) {
var wg sync.WaitGroup
ret := make(map[string]apitypes.Coin)
var mutex sync.Mutex
for i := 0; i < 5; i++ {
wg.Add(1)
go func(j int) {
defer wg.Done()
coins, err := getLimitedCoinDataV2(convert, j)
if err != nil {
return
}
mutex.Lock()
for k, v := range coins {
ret[k] = v
}
mutex.Unlock()
}(i)
}
wg.Wait()
return ret, nil
}
// GetAllCoinData gets all coin data. Need to paginate through all pages // GetAllCoinData gets all coin data. Need to paginate through all pages
func (s *Service) GetAllCoinData(convert string) (map[string]apitypes.Coin, error) { func (s *Service) GetAllCoinData(convert string) (chan map[string]apitypes.Coin, error) {
var wg sync.WaitGroup var wg sync.WaitGroup
ret := make(map[string]apitypes.Coin) ch := make(chan map[string]apitypes.Coin)
var mutex sync.Mutex go func() {
for i := 0; i < 17; i++ { var mutex sync.Mutex
time.Sleep(500 * time.Millisecond) maxPages := 15
wg.Add(1) for i := 0; i < maxPages; i++ {
go func(j int) { time.Sleep(time.Duration(i) * time.Second)
defer wg.Done() wg.Add(1)
coins, err := getLimitedCoinData(convert, j) go func(j int) {
if err != nil { defer wg.Done()
return coins, err := s.getLimitedCoinData(convert, j)
} if err != nil {
mutex.Lock() return
for k, v := range coins { }
ret[k] = v mutex.Lock()
} defer mutex.Unlock()
mutex.Unlock() ret := make(map[string]apitypes.Coin)
}(i) for k, v := range coins {
} ret[k] = v
wg.Wait() }
return ret, nil ch <- ret
}(i)
}
wg.Wait()
}()
return ch, nil
} }
// GetCoinGraphData gets coin graph data // GetCoinGraphData gets coin graph data
func (s *Service) GetCoinGraphData(coin string, start int64, end int64) (apitypes.CoinGraph, error) { func (s *Service) GetCoinGraphData(coin string, start int64, end int64) (apitypes.CoinGraph, error) {
ret := apitypes.CoinGraph{} ret := apitypes.CoinGraph{}
graphData, err := cmc.TickerGraph(&cmc.TickerGraphOptions{ graphData, err := cmcv2.TickerGraph(&cmcv2.TickerGraphOptions{
Symbol: coin, Symbol: coin,
Start: start, Start: start,
End: end, End: end,
@ -198,7 +132,7 @@ func (s *Service) GetCoinGraphData(coin string, start int64, end int64) (apitype
// GetGlobalMarketGraphData gets global market graph data // GetGlobalMarketGraphData gets global market graph data
func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) { func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.MarketGraph, error) {
ret := apitypes.MarketGraph{} ret := apitypes.MarketGraph{}
graphData, err := cmc.GlobalMarketGraph(&cmc.GlobalMarketGraphOptions{ graphData, err := cmcv2.GlobalMarketGraph(&cmcv2.GlobalMarketGraphOptions{
Start: start, Start: start,
End: end, End: end,
}) })
@ -214,19 +148,20 @@ func (s *Service) GetGlobalMarketGraphData(start int64, end int64) (apitypes.Mar
// GetGlobalMarketData gets global market data // GetGlobalMarketData gets global market data
func (s *Service) GetGlobalMarketData(convert string) (apitypes.GlobalMarketData, error) { func (s *Service) GetGlobalMarketData(convert string) (apitypes.GlobalMarketData, error) {
ret := apitypes.GlobalMarketData{} ret := apitypes.GlobalMarketData{}
market, err := cmc.GlobalMarket(&cmc.GlobalMarketOptions{ market, err := s.client.GlobalMetrics.LatestQuotes(&cmc.QuoteOptions{
Convert: convert, Convert: convert,
}) })
if err != nil { if err != nil {
return ret, err return ret, err
} }
ret = apitypes.GlobalMarketData{ ret = apitypes.GlobalMarketData{
TotalMarketCapUSD: market.Quotes[convert].TotalMarketCap, TotalMarketCapUSD: market.Quote[convert].TotalMarketCap,
Total24HVolumeUSD: market.Quotes[convert].TotalVolume24H, Total24HVolumeUSD: market.Quote[convert].TotalVolume24H,
BitcoinPercentageOfMarketCap: market.BitcoinPercentageOfMarketCap, BitcoinPercentageOfMarketCap: market.BTCDominance,
ActiveCurrencies: market.ActiveCurrencies, ActiveCurrencies: int(market.ActiveCryptocurrencies),
ActiveAssets: 0, ActiveAssets: 0,
ActiveMarkets: market.ActiveMarkets, ActiveMarkets: int(market.ActiveMarketPairs),
} }
return ret, nil return ret, nil
} }

@ -7,7 +7,7 @@ import (
// Interface interface // Interface interface
type Interface interface { type Interface interface {
Ping() error Ping() error
GetAllCoinData(convert string) (map[string]types.Coin, error) GetAllCoinData(convert string) (chan map[string]types.Coin, error)
GetCoinGraphData(coin string, start int64, end int64) (types.CoinGraph, error) GetCoinGraphData(coin string, start int64, end int64) (types.CoinGraph, error)
GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error) GetGlobalMarketGraphData(start int64, end int64) (types.MarketGraph, error)
GetGlobalMarketData(convert string) (types.GlobalMarketData, error) GetGlobalMarketData(convert string) (types.GlobalMarketData, error)

@ -1,63 +0,0 @@
package coinmarketcap
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"github.com/miguelmota/cointop/cointop/common/cmc/types"
)
// V1Tickers get information about all coins listed in Coin Market Cap
func V1Tickers(limit int, convert string) (map[string]*types.V1Ticker, error) {
var params []string
if limit >= 0 {
params = append(params, fmt.Sprintf("limit=%v", limit))
}
if convert != "" {
params = append(params, fmt.Sprintf("convert=%v", convert))
}
baseURL := "https://api.coinmarketcap.com/v1"
url := fmt.Sprintf("%s/ticker?%s", baseURL, strings.Join(params, "&"))
resp, err := makeReq(url)
var data []*types.V1Ticker
err = json.Unmarshal(resp, &data)
if err != nil {
return nil, err
}
var mapstring []map[string]interface{}
err = json.Unmarshal(resp, &mapstring)
if err != nil {
return nil, err
}
// creating map from the array
allCoins := make(map[string]*types.V1Ticker)
for i := 0; i < len(data); i++ {
allCoins[data[i].ID] = data[i]
}
for _, item := range mapstring {
id, _ := item["id"].(string)
priceifc := item[fmt.Sprintf("price_%s", strings.ToLower(convert))]
pricestr, _ := priceifc.(string)
price, _ := strconv.ParseFloat(pricestr, 64)
marketcapifc := item[fmt.Sprintf("market_cap_%s", strings.ToLower(convert))]
marketcapstr, _ := marketcapifc.(string)
marketcap, _ := strconv.ParseFloat(marketcapstr, 64)
volumeifc := item[fmt.Sprintf("24h_volume_%s", strings.ToLower(convert))]
volumestr, _ := volumeifc.(string)
volume, _ := strconv.ParseFloat(volumestr, 64)
quotes := &types.TickerQuote{
Price: price,
Volume24H: volume,
MarketCap: marketcap,
}
allCoins[id].Quotes = map[string]*types.TickerQuote{}
allCoins[id].Quotes[strings.ToUpper(convert)] = quotes
}
return allCoins, nil
}

@ -1,14 +0,0 @@
package coinmarketcap
import "testing"
func TestV1Tickers(t *testing.T) {
coins, err := V1Tickers(10, "EUR")
if err != nil {
t.FailNow()
}
if len(coins) != 10 {
t.FailNow()
}
}

@ -2,10 +2,8 @@ package cointop
import ( import (
"sync" "sync"
"time"
types "github.com/miguelmota/cointop/cointop/common/api/types" types "github.com/miguelmota/cointop/cointop/common/api/types"
"github.com/miguelmota/cointop/cointop/common/filecache"
) )
var coinslock sync.Mutex var coinslock sync.Mutex
@ -13,10 +11,8 @@ var coinslock sync.Mutex
func (ct *Cointop) updateCoins() error { func (ct *Cointop) updateCoins() error {
coinslock.Lock() coinslock.Lock()
defer coinslock.Unlock() defer coinslock.Unlock()
list := []*coin{}
cachekey := "allcoinsslugmap" cachekey := "allcoinsslugmap"
var err error
var allcoinsslugmap map[string]types.Coin var allcoinsslugmap map[string]types.Coin
cached, found := ct.cache.Get(cachekey) cached, found := ct.cache.Get(cachekey)
if found { if found {
@ -28,16 +24,34 @@ func (ct *Cointop) updateCoins() error {
// cache miss // cache miss
if allcoinsslugmap == nil { if allcoinsslugmap == nil {
ct.debuglog("cache miss") ct.debuglog("cache miss")
allcoinsslugmap, err = ct.api.GetAllCoinData(ct.currencyconversion) ch, err := ct.api.GetAllCoinData(ct.currencyconversion)
if err != nil { if err != nil {
return err return err
} }
ct.cache.Set(cachekey, allcoinsslugmap, 10*time.Second)
go func() { for {
filecache.Set(cachekey, allcoinsslugmap, 24*time.Hour) coins, ok := <-ch
}() if !ok {
break
}
ct.updateCoinsMap(coins, true)
ct.updateTable()
}
/*
ct.cache.Set(cachekey, allcoinsslugmap, 10*time.Second)
go func() {
filecache.Set(cachekey, allcoinsslugmap, 24*time.Hour)
}()
*/
} else {
ct.updateCoinsMap(allcoinsslugmap, false)
} }
return nil
}
func (ct *Cointop) updateCoinsMap(allcoinsslugmap map[string]types.Coin, b bool) {
if len(ct.allcoinsslugmap) == 0 { if len(ct.allcoinsslugmap) == 0 {
ct.allcoinsslugmap = map[string]*coin{} ct.allcoinsslugmap = map[string]*coin{}
} }
@ -61,15 +75,17 @@ func (ct *Cointop) updateCoins() error {
if last != nil { if last != nil {
ct.allcoinsslugmap[k].Favorite = last.Favorite ct.allcoinsslugmap[k].Favorite = last.Favorite
} }
}
if len(ct.allcoins) == 0 { if b {
for i := range ct.allcoinsslugmap { ct.allcoins = append(ct.allcoins, ct.allcoinsslugmap[k])
coin := ct.allcoinsslugmap[i]
list = append(list, coin)
} }
ct.allcoins = list }
ct.sort(ct.sortby, ct.sortdesc, ct.allcoins)
} else { //if len(ct.allcoins) == 0 {
if b {
//ct.sort(ct.sortby, ct.sortdesc, ct.allcoins)
}
if !b {
// update list in place without changing order // update list in place without changing order
for i := range ct.allcoinsslugmap { for i := range ct.allcoinsslugmap {
cm := ct.allcoinsslugmap[i] cm := ct.allcoinsslugmap[i]
@ -95,5 +111,4 @@ func (ct *Cointop) updateCoins() error {
} }
} }
} }
return nil
} }

@ -67,6 +67,7 @@ func (ct *Cointop) updateMarketbar() error {
var err error var err error
cachekey := "market" cachekey := "market"
cached, found := ct.cache.Get(cachekey) cached, found := ct.cache.Get(cachekey)
if found { if found {
// cache hit // cache hit
var ok bool var ok bool
@ -93,14 +94,12 @@ func (ct *Cointop) updateMarketbar() error {
} }
content = fmt.Sprintf( content = fmt.Sprintf(
"[ Chart: %s %s ] Global ▶ Market Cap: $%s • 24H Volume: $%s • BTC Dominance: %.2f%% • Active Currencies: %s • Active Markets: %s", "[ Chart: %s %s ] Global ▶ Market Cap: %s • 24H Volume: %s • BTC Dominance: %.2f%%",
color.Cyan(chartname), color.Cyan(chartname),
timeframe, timeframe,
humanize.Commaf(market.TotalMarketCapUSD), fmt.Sprintf("%s%s", ct.currencySymbol(), humanize.Commaf(market.TotalMarketCapUSD)),
humanize.Commaf(market.Total24HVolumeUSD), fmt.Sprintf("%s%s", ct.currencySymbol(), humanize.Commaf(market.Total24HVolumeUSD)),
market.BitcoinPercentageOfMarketCap, market.BitcoinPercentageOfMarketCap,
humanize.Commaf(float64(market.ActiveCurrencies)),
humanize.Commaf(float64(market.ActiveMarkets)),
) )
} }

@ -15,6 +15,12 @@ func (ct *Cointop) sort(sortby string, desc bool, list []*coin) {
} }
a := list[i] a := list[i]
b := list[j] b := list[j]
if a == nil {
return true
}
if b == nil {
return false
}
switch sortby { switch sortby {
case "rank": case "rank":
return a.Rank < b.Rank return a.Rank < b.Rank

@ -83,6 +83,9 @@ func (ct *Cointop) refreshTable() error {
ct.table.AddCol("") ct.table.AddCol("")
ct.table.AddCol("") ct.table.AddCol("")
for _, coin := range ct.coins { for _, coin := range ct.coins {
if coin == nil {
continue
}
unix, _ := strconv.ParseInt(coin.LastUpdated, 10, 64) unix, _ := strconv.ParseInt(coin.LastUpdated, 10, 64)
lastUpdated := time.Unix(unix, 0).Format("15:04:05 Jan 02") lastUpdated := time.Unix(unix, 0).Format("15:04:05 Jan 02")
namecolor := color.White namecolor := color.White

@ -2,7 +2,7 @@ module github.com/miguelmota/cointop
require ( require (
github.com/BurntSushi/toml v0.3.1 github.com/BurntSushi/toml v0.3.1
github.com/anaskhan96/soup v1.1.1 github.com/anaskhan96/soup v1.1.1 // indirect
github.com/fatih/color v1.7.0 github.com/fatih/color v1.7.0
github.com/gizak/termui v2.3.0+incompatible github.com/gizak/termui v2.3.0+incompatible
github.com/jroimartin/gocui v0.4.0 github.com/jroimartin/gocui v0.4.0
@ -11,9 +11,12 @@ require (
github.com/mattn/go-isatty v0.0.6 // indirect github.com/mattn/go-isatty v0.0.6 // indirect
github.com/mattn/go-runewidth v0.0.4 // indirect github.com/mattn/go-runewidth v0.0.4 // indirect
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/miguelmota/go-coinmarketcap v0.1.3
github.com/mitchellh/go-wordwrap v1.0.0 // indirect github.com/mitchellh/go-wordwrap v1.0.0 // indirect
github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d // indirect github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible github.com/patrickmn/go-cache v2.1.0+incompatible
golang.org/x/net v0.0.0-20181220203305-927f97764cc3 // indirect golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a // indirect
golang.org/x/net v0.0.0-20190415214537-1da14a5a36f2 // indirect
golang.org/x/sys v0.0.0-20190416152802-12500544f89f // indirect
golang.org/x/text v0.3.0 golang.org/x/text v0.3.0
) )

@ -1,7 +1,10 @@
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/anaskhan96/soup v1.0.1/go.mod h1:pT5vs4HXDwA5y4KQCsKvnkpQd3D+joP7IqpiGskfWW0=
github.com/anaskhan96/soup v1.1.1 h1:Duux/0htS2Va7XLJ9qIakCSey790hg9OFRm2FwlMTy0= github.com/anaskhan96/soup v1.1.1 h1:Duux/0htS2Va7XLJ9qIakCSey790hg9OFRm2FwlMTy0=
github.com/anaskhan96/soup v1.1.1/go.mod h1:pT5vs4HXDwA5y4KQCsKvnkpQd3D+joP7IqpiGskfWW0= github.com/anaskhan96/soup v1.1.1/go.mod h1:pT5vs4HXDwA5y4KQCsKvnkpQd3D+joP7IqpiGskfWW0=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/gizak/termui v2.3.0+incompatible h1:S8wJoNumYfc/rR5UezUM4HsPEo3RJh0LKdiuDWQpjqw= github.com/gizak/termui v2.3.0+incompatible h1:S8wJoNumYfc/rR5UezUM4HsPEo3RJh0LKdiuDWQpjqw=
@ -21,16 +24,31 @@ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/
github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/miguelmota/go-coinmarketcap v0.1.1 h1:4meaHf411shSIUZDqzaVNU+sgjTa7O9F8KjJqhsP1AI=
github.com/miguelmota/go-coinmarketcap v0.1.1/go.mod h1:Jdv/kqtKclIElmoNAZMMJn0DSQv+j7p/H1te/GGnxhA=
github.com/miguelmota/go-coinmarketcap v0.1.2 h1:XGhLhzruXD14sVS3kuXAtAinvwJK3m1apRase/vfr88=
github.com/miguelmota/go-coinmarketcap v0.1.2/go.mod h1:Jdv/kqtKclIElmoNAZMMJn0DSQv+j7p/H1te/GGnxhA=
github.com/miguelmota/go-coinmarketcap v0.1.3 h1:6/TvCnvq6tNVa8NG33X5uiIfIHI55mRmmArnUQ7Hdeg=
github.com/miguelmota/go-coinmarketcap v0.1.3/go.mod h1:Jdv/kqtKclIElmoNAZMMJn0DSQv+j7p/H1te/GGnxhA=
github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840= github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d h1:x3S6kxmy49zXVVyhcnrFqxvNVCBPb2KZ9hV2RBdS840=
github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ= github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d/go.mod h1:IuKpRQcYE1Tfu+oAQqaLisqDeXgjyyltCfsaoYN18NQ=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
golang.org/x/net v0.0.0-20180215212450-dc948dff8834/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis= golang.org/x/net v0.0.0-20181220203305-927f97764cc3 h1:eH6Eip3UpmR+yM/qI9Ijluzb1bNv/cAU/n+6l8tRSis=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190415214537-1da14a5a36f2 h1:iC0Y6EDq+rhnAePxGvJs2kzUAYcwESqdcGRPzEUfzTU=
golang.org/x/net v0.0.0-20190415214537-1da14a5a36f2/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181221143128-b4a75ba826a6/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190416152802-12500544f89f h1:1ZH9RnjNgLzh6YrsRp/c6ddZ8Lq0fq9xztNOoWJ2sz4=
golang.org/x/sys v0.0.0-20190416152802-12500544f89f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=

@ -0,0 +1,21 @@
MIT license
Copyright (C) 2015 Miguel Mota
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

@ -0,0 +1,753 @@
// Package coinmarketcap Coin Market Cap API client for Go
package coinmarketcap
import (
"encoding/json"
"errors"
"fmt"
"log"
"os"
"strings"
)
// Client the CoinMarketCap client
type Client struct {
proAPIKey string
Cryptocurrency *CryptocurrencyService
Exchange *ExchangeService
GlobalMetrics *GlobalMetricsService
Tools *ToolsService
common service
}
// Config the client config structure
type Config struct {
ProAPIKey string
}
// CryptocurrencyService ...
type CryptocurrencyService service
// ExchangeService ...
type ExchangeService service
// GlobalMetricsService ...
type GlobalMetricsService service
// ToolsService ...
type ToolsService service
// Status is the status structure
type Status struct {
Timestamp string `json:"timestamp"`
ErrorCode int `json:"error_code"`
ErrorMessage *string `json:"error_message"`
Elapsed int `json:"elapsed"`
CreditCount int `json:"credit_count"`
}
// Response is the response structure
type Response struct {
Status Status `json:"status"`
Data interface{} `json:"data"`
}
// Listing is the listing structure
type Listing struct {
ID float64 `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Slug string `json:"slug"`
CirculatingSupply float64 `json:"circulating_supply"`
TotalSupply float64 `json:"total_supply"`
MaxSupply float64 `json:"max_supply"`
DateAdded string `json:"date_added"`
NumMarketPairs float64 `json:"num_market_pairs"`
CMCRank float64 `json:"cmc_rank"`
LastUpdated string `json:"last_updated"`
Quote map[string]*Quote `json:"quote"`
}
// MapListing is the structure of a map listing
type MapListing struct {
ID float64 `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Slug string `json:"slug"`
IsActive int `json:"is_active"`
FirstHistoricalData string `json:"first_historical_data"`
LastHistoricalData string `json:"last_historical_data"`
Platform *string
}
// ConvertListing is the converted listing structure
type ConvertListing struct {
ID string `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Amount float64 `json:"amount"`
LastUpdated string `json:"last_updated"`
Quote map[string]*ConvertQuote `json:"quote"`
}
// ConvertQuote is the converted listing structure
type ConvertQuote struct {
Price float64 `json:"price"`
LastUpdated string `json:"last_updated"`
}
// QuoteLatest is the quotes structure
type QuoteLatest struct {
ID float64 `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Slug string `json:"slug"`
CirculatingSupply float64 `json:"circulating_supply"`
TotalSupply float64 `json:"total_supply"`
MaxSupply float64 `json:"max_supply"`
DateAdded string `json:"date_added"`
NumMarketPairs float64 `json:"num_market_pairs"`
CMCRank float64 `json:"cmc_rank"`
LastUpdated string `json:"last_updated"`
Quote map[string]*Quote `json:"quote"`
}
// Quote is the quote structure
type Quote struct {
Price float64 `json:"price"`
Volume24H float64 `json:"volume_24h"`
PercentChange1H float64 `json:"percent_change_1h"`
PercentChange24H float64 `json:"percent_change_24h"`
PercentChange7D float64 `json:"percent_change_7d"`
MarketCap float64 `json:"market_cap"`
LastUpdated string `json:"last_updated"`
}
// MarketMetrics is the market metrics structure
type MarketMetrics struct {
BTCDominance float64 `json:"btc_dominance"`
ETHDominance float64 `json:"eth_dominance"`
ActiveCryptocurrencies float64 `json:"active_cryptocurrencies"`
ActiveMarketPairs float64 `json:"active_market_pairs"`
ActiveExchanges float64 `json:"active_exchanges"`
LastUpdated string `json:"last_updated"`
Quote map[string]*MarketMetricsQuote `json:"quote"`
}
// MarketMetricsQuote is the quote structure
type MarketMetricsQuote struct {
TotalMarketCap float64 `json:"total_market_cap"`
TotalVolume24H float64 `json:"total_volume_24h"`
LastUpdated string `json:"last_updated"`
}
// CryptocurrencyInfo options
type CryptocurrencyInfo struct {
ID float64 `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Category string `json:"category"`
Slug string `json:"slug"`
Logo string `json:"logo"`
Tags []string `json:"tags"`
Urls map[string]interface{} `json:"urls"`
}
// InfoOptions options
type InfoOptions struct {
ID string
Symbol string
}
// ListingOptions options
type ListingOptions struct {
Start int
Limit int
Convert string
Sort string
}
// MapOptions options
type MapOptions struct {
ListingStatus string
Start int
Limit int
Symbol string
}
// QuoteOptions options
type QuoteOptions struct {
// Covert suppots multiple currencies command separated. eg. "BRL,USD"
Convert string
// Symbols suppots multiple tickers command separated. eg. "BTC,ETH,XRP"
Symbol string
}
// ConvertOptions options
type ConvertOptions struct {
Amount float64
ID string
Symbol string
Time int
Convert string
}
// MarketPairOptions options
type MarketPairOptions struct {
ID int
Symbol string
Start int
Limit int
Convert string
}
// service is abstraction for individual endpoint resources
type service struct {
client *Client
}
// SortOptions sort options
var SortOptions sortOptions
type sortOptions struct {
Name string
Symbol string
DateAdded string
MarketCap string
Price string
CirculatingSupply string
TotalSupply string
MaxSupply string
NumMarketPairs string
Volume24H string
PercentChange1H string
PercentChange24H string
PercentChange7D string
}
var (
// ErrTypeAssertion is type assertion error
ErrTypeAssertion = errors.New("type assertion error")
)
var (
siteURL = "https://coinmarketcap.com"
baseURL = "https://pro-api.coinmarketcap.com/v1"
coinGraphURL = "https://graphs2.coinmarketcap.com/currencies"
globalMarketGraphURL = "https://graphs2.coinmarketcap.com/global/marketcap-total"
altcoinMarketGraphURL = "https://graphs2.coinmarketcap.com/global/marketcap-altcoin"
)
// NewClient initializes a new client
func NewClient(cfg *Config) *Client {
if cfg == nil {
cfg = new(Config)
}
if cfg.ProAPIKey == "" {
cfg.ProAPIKey = os.Getenv("CMC_PRO_API_KEY")
}
if cfg.ProAPIKey == "" {
log.Fatal("Pro API Key is required")
}
c := &Client{
proAPIKey: cfg.ProAPIKey,
}
c.common.client = c
c.Cryptocurrency = (*CryptocurrencyService)(&c.common)
c.Exchange = (*ExchangeService)(&c.common)
c.GlobalMetrics = (*GlobalMetricsService)(&c.common)
c.Tools = (*ToolsService)(&c.common)
return c
}
// Info returns all static metadata for one or more cryptocurrencies including name, symbol, logo, and its various registered URLs.
func (s *CryptocurrencyService) Info(options *InfoOptions) (map[string]*CryptocurrencyInfo, error) {
var params []string
if options == nil {
options = new(InfoOptions)
}
if options.ID != "" {
params = append(params, fmt.Sprintf("id=%s", options.ID))
}
if options.Symbol != "" {
params = append(params, fmt.Sprintf("symbol=%s", options.Symbol))
}
url := fmt.Sprintf("%s/cryptocurrency/info?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, err
}
var result = make(map[string]*CryptocurrencyInfo)
ifcs, ok := resp.Data.(map[string]interface{})
if !ok {
return nil, ErrTypeAssertion
}
for k, v := range ifcs {
info := new(CryptocurrencyInfo)
b, err := json.Marshal(v)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, info)
if err != nil {
return nil, err
}
result[k] = info
}
return result, nil
}
// LatestListings gets a paginated list of all cryptocurrencies with latest market data. You can configure this call to sort by market cap or another market ranking field. Use the "convert" option to return market values in multiple fiat and cryptocurrency conversions in the same call.
func (s *CryptocurrencyService) LatestListings(options *ListingOptions) ([]*Listing, error) {
var params []string
if options == nil {
options = new(ListingOptions)
}
if options.Start != 0 {
params = append(params, fmt.Sprintf("start=%v", options.Start))
}
if options.Limit != 0 {
params = append(params, fmt.Sprintf("limit=%v", options.Limit))
}
if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%s", options.Convert))
}
if options.Sort != "" {
params = append(params, fmt.Sprintf("sort=%s", options.Sort))
}
url := fmt.Sprintf("%s/cryptocurrency/listings/latest?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
var listings []*Listing
ifcs, ok := resp.Data.([]interface{})
if !ok {
return nil, ErrTypeAssertion
}
for i := range ifcs {
ifc := ifcs[i]
listing := new(Listing)
b, err := json.Marshal(ifc)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, listing)
if err != nil {
return nil, err
}
listings = append(listings, listing)
}
return listings, nil
}
// Map returns a paginated list of all cryptocurrencies by CoinMarketCap ID.
func (s *CryptocurrencyService) Map(options *MapOptions) ([]*MapListing, error) {
var params []string
if options == nil {
options = new(MapOptions)
}
if options.ListingStatus != "" {
params = append(params, fmt.Sprintf("listing_status=%s", options.ListingStatus))
}
if options.Start != 0 {
params = append(params, fmt.Sprintf("start=%d", options.Start))
}
if options.Limit != 0 {
params = append(params, fmt.Sprintf("limit=%d", options.Limit))
}
if options.Symbol != "" {
params = append(params, fmt.Sprintf("symbol=%s", options.Symbol))
}
url := fmt.Sprintf("%s/cryptocurrency/map?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
var result []*MapListing
ifcs, ok := resp.Data.(interface{})
if !ok {
return nil, ErrTypeAssertion
}
for _, item := range ifcs.([]interface{}) {
value := new(MapListing)
b, err := json.Marshal(item)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, value)
if err != nil {
return nil, err
}
result = append(result, value)
}
return result, nil
}
// Exchange ...
type Exchange struct {
ID int `json:"id"`
Name string `json:"name"`
Slug string `json:"slug"`
}
// MarketPairBase ...
type MarketPairBase struct {
CurrencyID int `json:"currency_id"`
CurrencySymbol string `json:"currency_symbol"`
CurrencyType string `json:"currency_type"`
}
// MarketPairQuote ...
type MarketPairQuote struct {
CurrencyID int `json:"currency_id"`
CurrencySymbol string `json:"currency_symbol"`
CurrencyType string `json:"currency_type"`
}
// ExchangeQuote ...
type ExchangeQuote struct {
Price float64 `json:"price"`
Volume24 float64 `json:"volume_24h"`
Volume24HBase float64 `json:"volume_24h_base"` // for 'exchange_reported'
Volume24HQuote float64 `json:"volume_24h_quote"` // for 'exchange_reported'
LastUpdated string `json:"last_updated"`
}
// ExchangeQuotes ...
type ExchangeQuotes map[string]*ExchangeQuote
// ExchangeReported ...
type ExchangeReported struct {
Price float64 `json:"price"`
Volume24HBase float64 `json:"volume_24h_base"`
Volume24HQuote float64 `json:"volume_24h_quote"`
LastUpdated string `json:"last_updated"`
}
// MarketPairs ...
type MarketPairs struct {
ID int `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
NumMarketPairs int `json:"num_market_pairs"`
MarketPairs []*MarketPair `json:"market_pairs"`
}
// MarketPair ...
type MarketPair struct {
Exchange *Exchange
MarketPair string `json:"market_pair"`
MarketPairBase *MarketPairBase `json:"market_pair_base"`
MarketPairQuote *MarketPairQuote `json:"market_pair_quote"`
Quote ExchangeQuotes `json:"quote"`
ExchangeReported *ExchangeReported `json:"exchange_reported"`
}
// LatestMarketPairs Lists all market pairs across all exchanges for the specified cryptocurrency with associated stats. Use the "convert" option to return market values in multiple fiat and cryptocurrency conversions in the same call.
func (s *CryptocurrencyService) LatestMarketPairs(options *MarketPairOptions) (*MarketPairs, error) {
var params []string
if options == nil {
options = new(MarketPairOptions)
}
if options.ID != 0 {
params = append(params, fmt.Sprintf("id=%v", options.ID))
}
if options.Symbol != "" {
params = append(params, fmt.Sprintf("symbol=%s", options.Symbol))
}
if options.Start != 0 {
params = append(params, fmt.Sprintf("start=%v", options.Start))
}
if options.Limit != 0 {
params = append(params, fmt.Sprintf("limit=%v", options.Limit))
}
if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%s", options.Convert))
}
url := fmt.Sprintf("%s/cryptocurrency/market-pairs/latest?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
data, ok := resp.Data.(interface{})
if !ok {
return nil, ErrTypeAssertion
}
marketPairs := new(MarketPairs)
b, err := json.Marshal(data)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, marketPairs)
if err != nil {
return nil, err
}
for _, pair := range marketPairs.MarketPairs {
reported, ok := pair.Quote["exchange_reported"]
if ok {
pair.ExchangeReported = &ExchangeReported{
Price: reported.Price,
Volume24HBase: reported.Volume24HBase,
Volume24HQuote: reported.Volume24HQuote,
LastUpdated: reported.LastUpdated,
}
delete(pair.Quote, "exchange_reported")
}
}
return marketPairs, nil
}
// HistoricalOHLCV NOT IMPLEMENTED
func (s *CryptocurrencyService) HistoricalOHLCV() error {
return nil
}
// LatestQuotes gets latest quote for each specified symbol. Use the "convert" option to return market values in multiple fiat and cryptocurrency conversions in the same call.
func (s *CryptocurrencyService) LatestQuotes(options *QuoteOptions) ([]*QuoteLatest, error) {
var params []string
if options == nil {
options = new(QuoteOptions)
}
if options.Symbol != "" {
params = append(params, fmt.Sprintf("symbol=%s", options.Symbol))
}
if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%s", options.Convert))
}
url := fmt.Sprintf("%s/cryptocurrency/quotes/latest?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
var quotesLatest []*QuoteLatest
ifcs, ok := resp.Data.(interface{})
if !ok {
return nil, ErrTypeAssertion
}
for _, coinObj := range ifcs.(map[string]interface{}) {
quoteLatest := new(QuoteLatest)
b, err := json.Marshal(coinObj)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, quoteLatest)
if err != nil {
return nil, err
}
quotesLatest = append(quotesLatest, quoteLatest)
}
return quotesLatest, nil
}
// HistoricalQuotes NOT IMPLEMENTED
func (s *CryptocurrencyService) HistoricalQuotes() error {
return nil
}
// Info NOT IMPLEMENTED
func (s *ExchangeService) Info() error {
return nil
}
// Map NOT IMPLEMENTED
func (s *ExchangeService) Map() error {
return nil
}
// LatestListings NOT IMPLEMENTED
func (s *ExchangeService) LatestListings() error {
return nil
}
// LatestMarketPairs NOT IMPLEMENTED
func (s *ExchangeService) LatestMarketPairs() error {
return nil
}
// LatestQuotes NOT IMPLEMENTED
func (s *ExchangeService) LatestQuotes() error {
return nil
}
// HistoricalQuotes NOT IMPLEMENTED
func (s *ExchangeService) HistoricalQuotes() error {
return nil
}
// LatestQuotes Get the latest quote of aggregate market metrics. Use the "convert" option to return market values in multiple fiat and cryptocurrency conversions in the same call.
func (s *GlobalMetricsService) LatestQuotes(options *QuoteOptions) (*MarketMetrics, error) {
var params []string
if options == nil {
options = new(QuoteOptions)
}
if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%s", options.Convert))
}
url := fmt.Sprintf("%s/global-metrics/quotes/latest?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
data, ok := resp.Data.(interface{})
if !ok {
return nil, ErrTypeAssertion
}
marketMetrics := new(MarketMetrics)
b, err := json.Marshal(data)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, marketMetrics)
if err != nil {
return nil, err
}
return marketMetrics, nil
}
// HistoricalQuotes NOT IMPLEMENTED
func (s *GlobalMetricsService) HistoricalQuotes() error {
return nil
}
// PriceConversion Convert an amount of one currency into multiple cryptocurrencies or fiat currencies at the same time using the latest market averages. Optionally pass a historical timestamp to convert values based on historic averages.
func (s *ToolsService) PriceConversion(options *ConvertOptions) (*ConvertListing, error) {
var params []string
if options == nil {
options = new(ConvertOptions)
}
if options.Amount != 0 {
params = append(params, fmt.Sprintf("amount=%f", options.Amount))
}
if options.ID != "" {
params = append(params, fmt.Sprintf("id=%s", options.ID))
}
if options.Symbol != "" {
params = append(params, fmt.Sprintf("symbol=%s", options.Symbol))
}
if options.Time != 0 {
params = append(params, fmt.Sprintf("time=%d", options.Time))
}
if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%s", options.Convert))
}
url := fmt.Sprintf("%s/tools/price-conversion?%s", baseURL, strings.Join(params, "&"))
body, err := s.client.makeReq(url)
resp := new(Response)
err = json.Unmarshal(body, &resp)
if err != nil {
return nil, fmt.Errorf("JSON Error: [%s]. Response body: [%s]", err.Error(), string(body))
}
ifc, ok := resp.Data.(interface{})
if !ok {
return nil, ErrTypeAssertion
}
listing := new(ConvertListing)
b, err := json.Marshal(ifc)
if err != nil {
return nil, err
}
err = json.Unmarshal(b, listing)
if err != nil {
return nil, err
}
return listing, nil
}
func init() {
SortOptions = sortOptions{
Name: "name",
Symbol: "symbol",
DateAdded: "date_added",
MarketCap: "market_cap",
Price: "price",
CirculatingSupply: "circulating_supply",
TotalSupply: "total_supply",
MaxSupply: "max_supply",
NumMarketPairs: "num_market_pairs",
Volume24H: "volume_24h",
PercentChange1H: "percent_change_1h",
PercentChange24H: "percent_change_24h",
PercentChange7D: "percent_change_7d",
}
}

@ -0,0 +1,59 @@
package coinmarketcap
import (
"fmt"
"io/ioutil"
"net/http"
"strconv"
"strings"
"time"
)
// toInt helper for parsing strings to int
func toInt(rawInt string) int {
parsed, _ := strconv.Atoi(strings.Replace(strings.Replace(rawInt, "$", "", -1), ",", "", -1))
return parsed
}
// toFloat helper for parsing strings to float
func toFloat(rawFloat string) float64 {
parsed, _ := strconv.ParseFloat(strings.Replace(strings.Replace(strings.Replace(rawFloat, "$", "", -1), ",", "", -1), "%", "", -1), 64)
return parsed
}
// doReq HTTP client
func doReq(req *http.Request) ([]byte, error) {
requestTimeout := time.Duration(5 * time.Second)
client := &http.Client{
Timeout: requestTimeout,
}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
if 200 != resp.StatusCode {
return nil, fmt.Errorf("%s", body)
}
return body, nil
}
// makeReq HTTP request helper
func (s *Client) makeReq(url string) ([]byte, error) {
req, err := http.NewRequest("GET", url, nil)
if err != nil {
return nil, err
}
req.Header.Add("X-CMC_PRO_API_KEY", s.proAPIKey)
resp, err := doReq(req)
if err != nil {
return nil, err
}
return resp, err
}

@ -71,23 +71,3 @@ type MarketGraph struct {
MarketCapByAvailableSupply [][]float64 `json:"market_cap_by_available_supply"` MarketCapByAvailableSupply [][]float64 `json:"market_cap_by_available_supply"`
VolumeUSD [][]float64 `json:"volume_usd"` VolumeUSD [][]float64 `json:"volume_usd"`
} }
// V1Ticker struct
type V1Ticker struct {
ID string `json:"id"`
Name string `json:"name"`
Symbol string `json:"symbol"`
Rank int `json:"rank,string"`
PriceUSD float64 `json:"price_usd,string"`
PriceBTC float64 `json:"price_btc,string"`
USD24HVolume float64 `json:"24h_volume_usd,string"`
MarketCapUSD float64 `json:"market_cap_usd,string"`
AvailableSupply float64 `json:"available_supply,string"`
TotalSupply float64 `json:"total_supply,string"`
PercentChange1H float64 `json:"percent_change_1h,string"`
PercentChange24H float64 `json:"percent_change_24h,string"`
PercentChange7D float64 `json:"percent_change_7d,string"`
LastUpdated int `json:"last_updated,string"`
Quotes map[string]*TickerQuote `json:"quotes"`
}

@ -10,8 +10,10 @@ import (
"strconv" "strconv"
"strings" "strings"
"sort"
"github.com/anaskhan96/soup" "github.com/anaskhan96/soup"
"github.com/miguelmota/cointop/cointop/common/cmc/types" "github.com/miguelmota/go-coinmarketcap/v2/types"
) )
var ( var (
@ -25,7 +27,7 @@ var (
// Interface interface // Interface interface
type Interface interface { type Interface interface {
Listings() ([]*types.Listing, error) Listings() ([]*types.Listing, error)
Tickers(options *TickersOptions) (map[string]*types.Ticker, error) Tickers(options *TickersOptions) ([]*types.Ticker, error)
Ticker(options *TickerOptions) (*types.Ticker, error) Ticker(options *TickerOptions) (*types.Ticker, error)
TickerGraph(options *TickerGraphOptions) (*types.TickerGraph, error) TickerGraph(options *TickerGraphOptions) (*types.TickerGraph, error)
GlobalMarket(options *GlobalMarketOptions) (*types.GlobalMarket, error) GlobalMarket(options *GlobalMarketOptions) (*types.GlobalMarket, error)
@ -59,15 +61,21 @@ type TickersOptions struct {
Start int Start int
Limit int Limit int
Convert string Convert string
Sort string
} }
// tickerMedia tickers response media // tickerMedia tickers response media
type tickersMedia struct { type tickersMedia struct {
Data map[string]*types.Ticker `json:"data"` Data map[string]*types.Ticker `json:"data,omitempty"`
Metadata struct {
Timestamp int64
NumCryptoCurrencies int `json:"num_cryptocurrencies,omitempty"`
Error string `json:",omitempty"`
}
} }
// Tickers gets ticker information on coins // Tickers gets ticker information on coins
func Tickers(options *TickersOptions) (map[string]*types.Ticker, error) { func Tickers(options *TickersOptions) ([]*types.Ticker, error) {
var params []string var params []string
if options.Start >= 0 { if options.Start >= 0 {
params = append(params, fmt.Sprintf("start=%v", options.Start)) params = append(params, fmt.Sprintf("start=%v", options.Start))
@ -78,6 +86,9 @@ func Tickers(options *TickersOptions) (map[string]*types.Ticker, error) {
if options.Convert != "" { if options.Convert != "" {
params = append(params, fmt.Sprintf("convert=%v", options.Convert)) params = append(params, fmt.Sprintf("convert=%v", options.Convert))
} }
if options.Sort != "" {
params = append(params, fmt.Sprintf("sort=%v", options.Sort))
}
url := fmt.Sprintf("%s/ticker?%s", baseURL, strings.Join(params, "&")) url := fmt.Sprintf("%s/ticker?%s", baseURL, strings.Join(params, "&"))
resp, err := makeReq(url) resp, err := makeReq(url)
var body tickersMedia var body tickersMedia
@ -85,11 +96,20 @@ func Tickers(options *TickersOptions) (map[string]*types.Ticker, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
tickers := make(map[string]*types.Ticker)
data := body.Data data := body.Data
var tickers []*types.Ticker
for _, v := range data { for _, v := range data {
tickers[strings.ToUpper(string(v.Symbol))] = v tickers = append(tickers, v)
}
if body.Metadata.Error != "" {
return nil, errors.New(body.Metadata.Error)
} }
sort.Slice(tickers, func(i, j int) bool {
return tickers[i].Rank < tickers[j].Rank
})
return tickers, nil return tickers, nil
} }
@ -269,13 +289,14 @@ type PriceOptions struct {
// Price gets price of a cryptocurrency // Price gets price of a cryptocurrency
func Price(options *PriceOptions) (float64, error) { func Price(options *PriceOptions) (float64, error) {
coins, err := Tickers(&TickersOptions{ coin, err := Ticker(&TickerOptions{
Convert: options.Convert, Convert: options.Convert,
Symbol: options.Symbol,
}) })
if err != nil { if err != nil {
return 0, err return 0, err
} }
coin := coins[options.Symbol]
if coin == nil { if coin == nil {
return 0, errors.New("coin not found") return 0, errors.New("coin not found")
} }
@ -285,25 +306,30 @@ func Price(options *PriceOptions) (float64, error) {
// CoinID gets the ID for the cryptocurrency // CoinID gets the ID for the cryptocurrency
func CoinID(symbol string) (int, error) { func CoinID(symbol string) (int, error) {
symbol = strings.ToUpper(strings.TrimSpace(symbol)) symbol = strings.ToUpper(strings.TrimSpace(symbol))
coins, err := Tickers(&TickersOptions{}) listings, err := Listings()
if err != nil { if err != nil {
return 0, err return 0, err
} }
coin := coins[symbol]
if coin == nil { for _, l := range listings {
return 0, errors.New("coin not found") if l.Symbol == symbol {
return l.ID, nil
}
} }
return coin.ID, nil //returns error as default
return 0, errors.New("coin not found")
} }
// CoinSlug gets the slug for the cryptocurrency // CoinSlug gets the slug for the cryptocurrency
func CoinSlug(symbol string) (string, error) { func CoinSlug(symbol string) (string, error) {
symbol = strings.ToUpper(strings.TrimSpace(symbol)) symbol = strings.ToUpper(strings.TrimSpace(symbol))
coins, err := Tickers(&TickersOptions{}) coin, err := Ticker(&TickerOptions{
Symbol: symbol,
})
if err != nil { if err != nil {
return "", err return "", err
} }
coin := coins[symbol]
if coin == nil { if coin == nil {
return "", errors.New("coin not found") return "", errors.New("coin not found")
} }

@ -177,7 +177,7 @@ func (s *nodeStack) index(n *Node) int {
// contains returns whether a is within s. // contains returns whether a is within s.
func (s *nodeStack) contains(a atom.Atom) bool { func (s *nodeStack) contains(a atom.Atom) bool {
for _, n := range *s { for _, n := range *s {
if n.DataAtom == a { if n.DataAtom == a && n.Namespace == "" {
return true return true
} }
} }

@ -439,9 +439,6 @@ func (p *parser) resetInsertionMode() {
case a.Select: case a.Select:
if !last { if !last {
for ancestor, first := n, p.oe[0]; ancestor != first; { for ancestor, first := n, p.oe[0]; ancestor != first; {
if ancestor == first {
break
}
ancestor = p.oe[p.oe.index(ancestor)-1] ancestor = p.oe[p.oe.index(ancestor)-1]
switch ancestor.DataAtom { switch ancestor.DataAtom {
case a.Template: case a.Template:
@ -904,7 +901,7 @@ func inBodyIM(p *parser) bool {
case a.A: case a.A:
for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- { for i := len(p.afe) - 1; i >= 0 && p.afe[i].Type != scopeMarkerNode; i-- {
if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A { if n := p.afe[i]; n.Type == ElementNode && n.DataAtom == a.A {
p.inBodyEndTagFormatting(a.A) p.inBodyEndTagFormatting(a.A, "a")
p.oe.remove(n) p.oe.remove(n)
p.afe.remove(n) p.afe.remove(n)
break break
@ -918,7 +915,7 @@ func inBodyIM(p *parser) bool {
case a.Nobr: case a.Nobr:
p.reconstructActiveFormattingElements() p.reconstructActiveFormattingElements()
if p.elementInScope(defaultScope, a.Nobr) { if p.elementInScope(defaultScope, a.Nobr) {
p.inBodyEndTagFormatting(a.Nobr) p.inBodyEndTagFormatting(a.Nobr, "nobr")
p.reconstructActiveFormattingElements() p.reconstructActiveFormattingElements()
} }
p.addFormattingElement() p.addFormattingElement()
@ -1126,7 +1123,7 @@ func inBodyIM(p *parser) bool {
case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6: case a.H1, a.H2, a.H3, a.H4, a.H5, a.H6:
p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6) p.popUntil(defaultScope, a.H1, a.H2, a.H3, a.H4, a.H5, a.H6)
case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U: case a.A, a.B, a.Big, a.Code, a.Em, a.Font, a.I, a.Nobr, a.S, a.Small, a.Strike, a.Strong, a.Tt, a.U:
p.inBodyEndTagFormatting(p.tok.DataAtom) p.inBodyEndTagFormatting(p.tok.DataAtom, p.tok.Data)
case a.Applet, a.Marquee, a.Object: case a.Applet, a.Marquee, a.Object:
if p.popUntil(defaultScope, p.tok.DataAtom) { if p.popUntil(defaultScope, p.tok.DataAtom) {
p.clearActiveFormattingElements() p.clearActiveFormattingElements()
@ -1137,7 +1134,7 @@ func inBodyIM(p *parser) bool {
case a.Template: case a.Template:
return inHeadIM(p) return inHeadIM(p)
default: default:
p.inBodyEndTagOther(p.tok.DataAtom) p.inBodyEndTagOther(p.tok.DataAtom, p.tok.Data)
} }
case CommentToken: case CommentToken:
p.addChild(&Node{ p.addChild(&Node{
@ -1164,7 +1161,7 @@ func inBodyIM(p *parser) bool {
return true return true
} }
func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) { func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom, tagName string) {
// This is the "adoption agency" algorithm, described at // This is the "adoption agency" algorithm, described at
// https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency // https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency
@ -1186,7 +1183,7 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
} }
} }
if formattingElement == nil { if formattingElement == nil {
p.inBodyEndTagOther(tagAtom) p.inBodyEndTagOther(tagAtom, tagName)
return return
} }
feIndex := p.oe.index(formattingElement) feIndex := p.oe.index(formattingElement)
@ -1291,9 +1288,17 @@ func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
// inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM. // inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
// "Any other end tag" handling from 12.2.6.5 The rules for parsing tokens in foreign content // "Any other end tag" handling from 12.2.6.5 The rules for parsing tokens in foreign content
// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign
func (p *parser) inBodyEndTagOther(tagAtom a.Atom) { func (p *parser) inBodyEndTagOther(tagAtom a.Atom, tagName string) {
for i := len(p.oe) - 1; i >= 0; i-- { for i := len(p.oe) - 1; i >= 0; i-- {
if p.oe[i].DataAtom == tagAtom { // Two element nodes have the same tag if they have the same Data (a
// string-typed field). As an optimization, for common HTML tags, each
// Data string is assigned a unique, non-zero DataAtom (a uint32-typed
// field), since integer comparison is faster than string comparison.
// Uncommon (custom) tags get a zero DataAtom.
//
// The if condition here is equivalent to (p.oe[i].Data == tagName).
if (p.oe[i].DataAtom == tagAtom) &&
((tagAtom != 0) || (p.oe[i].Data == tagName)) {
p.oe = p.oe[:i] p.oe = p.oe[:i]
break break
} }
@ -1719,8 +1724,12 @@ func inSelectIM(p *parser) bool {
} }
p.addElement() p.addElement()
case a.Select: case a.Select:
p.tok.Type = EndTagToken if p.popUntil(selectScope, a.Select) {
return false p.resetInsertionMode()
} else {
// Ignore the token.
return true
}
case a.Input, a.Keygen, a.Textarea: case a.Input, a.Keygen, a.Textarea:
if p.elementInScope(selectScope, a.Select) { if p.elementInScope(selectScope, a.Select) {
p.parseImpliedToken(EndTagToken, a.Select, a.Select.String()) p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
@ -1750,6 +1759,9 @@ func inSelectIM(p *parser) bool {
case a.Select: case a.Select:
if p.popUntil(selectScope, a.Select) { if p.popUntil(selectScope, a.Select) {
p.resetInsertionMode() p.resetInsertionMode()
} else {
// Ignore the token.
return true
} }
case a.Template: case a.Template:
return inHeadIM(p) return inHeadIM(p)
@ -1775,13 +1787,22 @@ func inSelectInTableIM(p *parser) bool {
case StartTagToken, EndTagToken: case StartTagToken, EndTagToken:
switch p.tok.DataAtom { switch p.tok.DataAtom {
case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th: case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) { if p.tok.Type == EndTagToken && !p.elementInScope(tableScope, p.tok.DataAtom) {
p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
return false
} else {
// Ignore the token. // Ignore the token.
return true return true
} }
// This is like p.popUntil(selectScope, a.Select), but it also
// matches <math select>, not just <select>. Matching the MathML
// tag is arguably incorrect (conceptually), but it mimics what
// Chromium does.
for i := len(p.oe) - 1; i >= 0; i-- {
if n := p.oe[i]; n.DataAtom == a.Select {
p.oe = p.oe[:i]
break
}
}
p.resetInsertionMode()
return false
} }
} }
return inSelectIM(p) return inSelectIM(p)

@ -207,8 +207,6 @@ esac
esac esac
if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
if [ -n "$mktypes" ]; then if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi
echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go";
if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi
fi
) | $run ) | $run

@ -192,6 +192,7 @@ struct ltchars {
#include <linux/if_packet.h> #include <linux/if_packet.h>
#include <linux/if_addr.h> #include <linux/if_addr.h>
#include <linux/falloc.h> #include <linux/falloc.h>
#include <linux/fanotify.h>
#include <linux/filter.h> #include <linux/filter.h>
#include <linux/fs.h> #include <linux/fs.h>
#include <linux/kexec.h> #include <linux/kexec.h>
@ -501,6 +502,7 @@ ccflags="$@"
$2 !~ "WMESGLEN" && $2 !~ "WMESGLEN" &&
$2 ~ /^W[A-Z0-9]+$/ || $2 ~ /^W[A-Z0-9]+$/ ||
$2 ~/^PPPIOC/ || $2 ~/^PPPIOC/ ||
$2 ~ /^FAN_|FANOTIFY_/ ||
$2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)}
$2 ~ /^__WCOREFLAG$/ {next} $2 ~ /^__WCOREFLAG$/ {next}
$2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)}

@ -153,6 +153,11 @@ func main() {
} }
funct, inps, outps, sysname := f[2], f[3], f[4], f[5] funct, inps, outps, sysname := f[2], f[3], f[4], f[5]
// ClockGettime doesn't have a syscall number on Darwin, only generate libc wrappers.
if goos == "darwin" && !libc && funct == "ClockGettime" {
continue
}
// Split argument lists on comma. // Split argument lists on comma.
in := parseParamList(inps) in := parseParamList(inps)
out := parseParamList(outps) out := parseParamList(outps)
@ -228,7 +233,7 @@ func main() {
} else { } else {
args = append(args, fmt.Sprintf("uintptr(%s)", p.Name)) args = append(args, fmt.Sprintf("uintptr(%s)", p.Name))
} }
} else if p.Type == "int64" && endianness != "" { } else if (p.Type == "int64" || p.Type == "uint64") && endianness != "" {
if len(args)%2 == 1 && *arm { if len(args)%2 == 1 && *arm {
// arm abi specifies 64-bit argument uses // arm abi specifies 64-bit argument uses
// (even, odd) pair // (even, odd) pair

@ -18,6 +18,9 @@ func cmsgAlignOf(salen int) int {
salign := SizeofPtr salign := SizeofPtr
switch runtime.GOOS { switch runtime.GOOS {
case "aix":
// There is no alignment on AIX.
salign = 1
case "darwin", "dragonfly", "solaris": case "darwin", "dragonfly", "solaris":
// NOTE: It seems like 64-bit Darwin, DragonFly BSD and // NOTE: It seems like 64-bit Darwin, DragonFly BSD and
// Solaris kernels still require 32-bit aligned access to // Solaris kernels still require 32-bit aligned access to
@ -25,8 +28,8 @@ func cmsgAlignOf(salen int) int {
if SizeofPtr == 8 { if SizeofPtr == 8 {
salign = 4 salign = 4
} }
case "openbsd": case "netbsd", "openbsd":
// OpenBSD armv7 requires 64-bit alignment. // NetBSD and OpenBSD armv7 require 64-bit alignment.
if runtime.GOARCH == "arm" { if runtime.GOARCH == "arm" {
salign = 8 salign = 8
} }

@ -545,3 +545,5 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) //sys gettimeofday(tv *Timeval, tzp *Timezone) (err error)
//sysnb Time(t *Time_t) (tt Time_t, err error) //sysnb Time(t *Time_t) (tt Time_t, err error)
//sys Utime(path string, buf *Utimbuf) (err error) //sys Utime(path string, buf *Utimbuf) (err error)
//sys Getsystemcfg(label int) (n uint64)

@ -144,6 +144,23 @@ func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (
//sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error) //sys getattrlist(path *byte, list unsafe.Pointer, buf unsafe.Pointer, size uintptr, options int) (err error)
func SysctlClockinfo(name string) (*Clockinfo, error) {
mib, err := sysctlmib(name)
if err != nil {
return nil, err
}
n := uintptr(SizeofClockinfo)
var ci Clockinfo
if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
return nil, err
}
if n != SizeofClockinfo {
return nil, EIO
}
return &ci, nil
}
//sysnb pipe() (r int, w int, err error) //sysnb pipe() (r int, w int, err error)
func Pipe(p []int) (err error) { func Pipe(p []int) (err error) {

@ -39,6 +39,20 @@ func Creat(path string, mode uint32) (fd int, err error) {
return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode)
} }
//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error)
//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error)
func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) {
if pathname == "" {
return fanotifyMark(fd, flags, mask, dirFd, nil)
}
p, err := BytePtrFromString(pathname)
if err != nil {
return err
}
return fanotifyMark(fd, flags, mask, dirFd, p)
}
//sys fchmodat(dirfd int, path string, mode uint32) (err error) //sys fchmodat(dirfd int, path string, mode uint32) (err error)
func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) {
@ -990,10 +1004,28 @@ func GetsockoptString(fd, level, opt int) (string, error) {
return string(buf[:vallen-1]), nil return string(buf[:vallen-1]), nil
} }
func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) {
var value TpacketStats
vallen := _Socklen(SizeofTpacketStats)
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
return &value, err
}
func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) {
var value TpacketStatsV3
vallen := _Socklen(SizeofTpacketStatsV3)
err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen)
return &value, err
}
func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
} }
func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error {
return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq))
}
// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a // SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a
// socket to filter incoming packets. See 'man 7 socket' for usage information. // socket to filter incoming packets. See 'man 7 socket' for usage information.
func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error {
@ -1008,6 +1040,14 @@ func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error {
return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter))
} }
func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error {
return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
}
func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error {
return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp))
}
// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) // Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html)
// KeyctlInt calls keyctl commands in which each argument is an int. // KeyctlInt calls keyctl commands in which each argument is an int.

@ -19,12 +19,18 @@ func setTimeval(sec, usec int64) Timeval {
return Timeval{Sec: int32(sec), Usec: int32(usec)} return Timeval{Sec: int32(sec), Usec: int32(usec)}
} }
//sysnb pipe(p *[2]_C_int) (err error)
func Pipe(p []int) (err error) { func Pipe(p []int) (err error) {
if len(p) != 2 { if len(p) != 2 {
return EINVAL return EINVAL
} }
var pp [2]_C_int var pp [2]_C_int
// Try pipe2 first for Android O, then try pipe for kernel 2.6.23.
err = pipe2(&pp, 0) err = pipe2(&pp, 0)
if err == ENOSYS {
err = pipe(&pp)
}
p[0] = int(pp[0]) p[0] = int(pp[0])
p[1] = int(pp[1]) p[1] = int(pp[1])
return return

@ -208,3 +208,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
} }
return ppoll(&fds[0], len(fds), ts, nil) return ppoll(&fds[0], len(fds), ts, nil)
} }
//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)
}

@ -211,3 +211,16 @@ func Poll(fds []PollFd, timeout int) (n int, err error) {
func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) {
return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) 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)
}

@ -43,6 +43,23 @@ func nametomib(name string) (mib []_C_int, err error) {
return nil, EINVAL return nil, EINVAL
} }
func SysctlClockinfo(name string) (*Clockinfo, error) {
mib, err := sysctlmib(name)
if err != nil {
return nil, err
}
n := uintptr(SizeofClockinfo)
var ci Clockinfo
if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil {
return nil, err
}
if n != SizeofClockinfo {
return nil, EIO
}
return &ci, nil
}
func SysctlUvmexp(name string) (*Uvmexp, error) { func SysctlUvmexp(name string) (*Uvmexp, error) {
mib, err := sysctlmib(name) mib, err := sysctlmib(name)
if err != nil { if err != nil {

@ -28,6 +28,11 @@ var (
errENOENT error = syscall.ENOENT errENOENT error = syscall.ENOENT
) )
var (
signalNameMapOnce sync.Once
signalNameMap map[string]syscall.Signal
)
// errnoErr returns common boxed Errno values, to prevent // errnoErr returns common boxed Errno values, to prevent
// allocations at runtime. // allocations at runtime.
func errnoErr(e syscall.Errno) error { func errnoErr(e syscall.Errno) error {
@ -66,6 +71,19 @@ func SignalName(s syscall.Signal) string {
return "" return ""
} }
// SignalNum returns the syscall.Signal for signal named s,
// or 0 if a signal with such name is not found.
// The signal name should start with "SIG".
func SignalNum(s string) syscall.Signal {
signalNameMapOnce.Do(func() {
signalNameMap = make(map[string]syscall.Signal)
for _, signal := range signalList {
signalNameMap[signal.name] = signal.num
}
})
return signalNameMap[s]
}
// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. // clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte.
func clen(n []byte) int { func clen(n []byte) int {
i := bytes.IndexByte(n, 0) i := bytes.IndexByte(n, 0)
@ -276,6 +294,13 @@ func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) {
return &tv, err return &tv, err
} }
func GetsockoptUint64(fd, level, opt int) (value uint64, err error) {
var n uint64
vallen := _Socklen(8)
err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen)
return n, err
}
func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) {
var rsa RawSockaddrAny var rsa RawSockaddrAny
var len _Socklen = SizeofSockaddrAny var len _Socklen = SizeofSockaddrAny
@ -326,13 +351,21 @@ func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) {
} }
func SetsockoptString(fd, level, opt int, s string) (err error) { func SetsockoptString(fd, level, opt int, s string) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s))) var p unsafe.Pointer
if len(s) > 0 {
p = unsafe.Pointer(&[]byte(s)[0])
}
return setsockopt(fd, level, opt, p, uintptr(len(s)))
} }
func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv))
} }
func SetsockoptUint64(fd, level, opt int, value uint64) (err error) {
return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8)
}
func Socket(domain, typ, proto int) (fd int, err error) { func Socket(domain, typ, proto int) (fd int, err error) {
if domain == AF_INET6 && SocketDisableIPv6 { if domain == AF_INET6 && SocketDisableIPv6 {
return -1, EAFNOSUPPORT return -1, EAFNOSUPPORT
@ -377,3 +410,22 @@ func SetNonblock(fd int, nonblocking bool) (err error) {
func Exec(argv0 string, argv []string, envv []string) error { func Exec(argv0 string, argv []string, envv []string) error {
return syscall.Exec(argv0, argv, envv) return syscall.Exec(argv0, argv, envv)
} }
// Lutimes sets the access and modification times tv on path. If path refers to
// a symlink, it is not dereferenced and the timestamps are set on the symlink.
// If tv is nil, the access and modification times are set to the current time.
// Otherwise tv must contain exactly 2 elements, with access time as the first
// element and modification time as the second element.
func Lutimes(path string, tv []Timeval) error {
if tv == nil {
return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW)
}
if len(tv) != 2 {
return EINVAL
}
ts := []Timespec{
NsecToTimespec(TimevalToNsec(tv[0])),
NsecToTimespec(TimevalToNsec(tv[1])),
}
return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW)
}

@ -275,3 +275,9 @@ const (
// uname // uname
type Utsname C.struct_utsname type Utsname C.struct_utsname
// Clockinfo
const SizeofClockinfo = C.sizeof_struct_clockinfo
type Clockinfo C.struct_clockinfo

@ -274,3 +274,9 @@ type Utsname C.struct_utsname
const SizeofUvmexp = C.sizeof_struct_uvmexp const SizeofUvmexp = C.sizeof_struct_uvmexp
type Uvmexp C.struct_uvmexp type Uvmexp C.struct_uvmexp
// Clockinfo
const SizeofClockinfo = C.sizeof_struct_clockinfo
type Clockinfo C.struct_clockinfo

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80041270 BLKBSZGET = 0x80041270
BLKBSZSET = 0x40041271 BLKBSZSET = 0x40041271
@ -486,6 +487,50 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
@ -493,6 +538,7 @@ const (
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FP_XSTATE_MAGIC2 = 0x46505845 FP_XSTATE_MAGIC2 = 0x46505845
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -514,7 +560,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1134,7 +1180,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1398,6 +1444,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2232,6 +2284,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80081270 BLKBSZGET = 0x80081270
BLKBSZSET = 0x40081271 BLKBSZSET = 0x40081271
@ -486,6 +487,50 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
@ -493,6 +538,7 @@ const (
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FP_XSTATE_MAGIC2 = 0x46505845 FP_XSTATE_MAGIC2 = 0x46505845
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -514,7 +560,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1134,7 +1180,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1398,6 +1444,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2233,6 +2285,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80041270 BLKBSZGET = 0x80041270
BLKBSZSET = 0x40041271 BLKBSZSET = 0x40041271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2239,6 +2291,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80081270 BLKBSZGET = 0x80081270
BLKBSZSET = 0x40081271 BLKBSZSET = 0x40081271
@ -488,6 +489,50 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
@ -495,6 +540,7 @@ const (
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FPSIMD_MAGIC = 0x46508001 FPSIMD_MAGIC = 0x46508001
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -516,7 +562,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1135,7 +1181,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1399,6 +1445,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2224,6 +2276,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40041270 BLKBSZGET = 0x40041270
BLKBSZSET = 0x80041271 BLKBSZSET = 0x80041271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x2000 FLUSHO = 0x2000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2234,6 +2286,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40081270 BLKBSZGET = 0x40081270
BLKBSZSET = 0x80081271 BLKBSZSET = 0x80081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x2000 FLUSHO = 0x2000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2234,6 +2286,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40081270 BLKBSZGET = 0x40081270
BLKBSZSET = 0x80081271 BLKBSZSET = 0x80081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x2000 FLUSHO = 0x2000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2234,6 +2286,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40041270 BLKBSZGET = 0x40041270
BLKBSZSET = 0x80041271 BLKBSZSET = 0x80041271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x2000 FLUSHO = 0x2000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2234,6 +2286,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40081270 BLKBSZGET = 0x40081270
BLKBSZSET = 0x80081271 BLKBSZSET = 0x80081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x4000 FF1 = 0x4000
FFDLY = 0x4000 FFDLY = 0x4000
FLUSHO = 0x800000 FLUSHO = 0x800000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1131,7 +1177,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1398,6 +1444,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2294,6 +2346,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40081270 BLKBSZGET = 0x40081270
BLKBSZSET = 0x80081271 BLKBSZSET = 0x80081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x4000 FF1 = 0x4000
FFDLY = 0x4000 FFDLY = 0x4000
FLUSHO = 0x800000 FLUSHO = 0x800000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1131,7 +1177,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1398,6 +1444,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2294,6 +2346,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80081270 BLKBSZGET = 0x80081270
BLKBSZSET = 0x40081271 BLKBSZSET = 0x40081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2220,6 +2272,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -174,6 +174,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x80081270 BLKBSZGET = 0x80081270
BLKBSZSET = 0x40081271 BLKBSZSET = 0x40081271
@ -486,12 +487,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -513,7 +559,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1132,7 +1178,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1396,6 +1442,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2293,6 +2345,7 @@ const (
TUNGETVNETBE = 0x800454df TUNGETVNETBE = 0x800454df
TUNGETVNETHDRSZ = 0x800454d7 TUNGETVNETHDRSZ = 0x800454d7
TUNGETVNETLE = 0x800454dd TUNGETVNETLE = 0x800454dd
TUNSETCARRIER = 0x400454e2
TUNSETDEBUG = 0x400454c9 TUNSETDEBUG = 0x400454c9
TUNSETFILTEREBPF = 0x800454e1 TUNSETFILTEREBPF = 0x800454e1
TUNSETGROUP = 0x400454ce TUNSETGROUP = 0x400454ce

@ -177,6 +177,7 @@ const (
B9600 = 0xd B9600 = 0xd
BALLOON_KVM_MAGIC = 0x13661366 BALLOON_KVM_MAGIC = 0x13661366
BDEVFS_MAGIC = 0x62646576 BDEVFS_MAGIC = 0x62646576
BINDERFS_SUPER_MAGIC = 0x6c6f6f70
BINFMTFS_MAGIC = 0x42494e4d BINFMTFS_MAGIC = 0x42494e4d
BLKBSZGET = 0x40081270 BLKBSZGET = 0x40081270
BLKBSZSET = 0x80081271 BLKBSZSET = 0x80081271
@ -490,12 +491,57 @@ const (
FALLOC_FL_PUNCH_HOLE = 0x2 FALLOC_FL_PUNCH_HOLE = 0x2
FALLOC_FL_UNSHARE_RANGE = 0x40 FALLOC_FL_UNSHARE_RANGE = 0x40
FALLOC_FL_ZERO_RANGE = 0x10 FALLOC_FL_ZERO_RANGE = 0x10
FANOTIFY_METADATA_VERSION = 0x3
FAN_ACCESS = 0x1
FAN_ACCESS_PERM = 0x20000
FAN_ALLOW = 0x1
FAN_ALL_CLASS_BITS = 0xc
FAN_ALL_EVENTS = 0x3b
FAN_ALL_INIT_FLAGS = 0x3f
FAN_ALL_MARK_FLAGS = 0xff
FAN_ALL_OUTGOING_EVENTS = 0x3403b
FAN_ALL_PERM_EVENTS = 0x30000
FAN_AUDIT = 0x10
FAN_CLASS_CONTENT = 0x4
FAN_CLASS_NOTIF = 0x0
FAN_CLASS_PRE_CONTENT = 0x8
FAN_CLOEXEC = 0x1
FAN_CLOSE = 0x18
FAN_CLOSE_NOWRITE = 0x10
FAN_CLOSE_WRITE = 0x8
FAN_DENY = 0x2
FAN_ENABLE_AUDIT = 0x40
FAN_EVENT_METADATA_LEN = 0x18
FAN_EVENT_ON_CHILD = 0x8000000
FAN_MARK_ADD = 0x1
FAN_MARK_DONT_FOLLOW = 0x4
FAN_MARK_FILESYSTEM = 0x100
FAN_MARK_FLUSH = 0x80
FAN_MARK_IGNORED_MASK = 0x20
FAN_MARK_IGNORED_SURV_MODIFY = 0x40
FAN_MARK_INODE = 0x0
FAN_MARK_MOUNT = 0x10
FAN_MARK_ONLYDIR = 0x8
FAN_MARK_REMOVE = 0x2
FAN_MODIFY = 0x2
FAN_NOFD = -0x1
FAN_NONBLOCK = 0x2
FAN_ONDIR = 0x40000000
FAN_OPEN = 0x20
FAN_OPEN_EXEC = 0x1000
FAN_OPEN_EXEC_PERM = 0x40000
FAN_OPEN_PERM = 0x10000
FAN_Q_OVERFLOW = 0x4000
FAN_REPORT_TID = 0x100
FAN_UNLIMITED_MARKS = 0x20
FAN_UNLIMITED_QUEUE = 0x10
FD_CLOEXEC = 0x1 FD_CLOEXEC = 0x1
FD_SETSIZE = 0x400 FD_SETSIZE = 0x400
FF0 = 0x0 FF0 = 0x0
FF1 = 0x8000 FF1 = 0x8000
FFDLY = 0x8000 FFDLY = 0x8000
FLUSHO = 0x1000 FLUSHO = 0x1000
FS_ENCRYPTION_MODE_ADIANTUM = 0x9
FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 FS_ENCRYPTION_MODE_AES_128_CBC = 0x5
FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 FS_ENCRYPTION_MODE_AES_128_CTS = 0x6
FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 FS_ENCRYPTION_MODE_AES_256_CBC = 0x3
@ -517,7 +563,7 @@ const (
FS_POLICY_FLAGS_PAD_4 = 0x0 FS_POLICY_FLAGS_PAD_4 = 0x0
FS_POLICY_FLAGS_PAD_8 = 0x1 FS_POLICY_FLAGS_PAD_8 = 0x1
FS_POLICY_FLAGS_PAD_MASK = 0x3 FS_POLICY_FLAGS_PAD_MASK = 0x3
FS_POLICY_FLAGS_VALID = 0x3 FS_POLICY_FLAGS_VALID = 0x7
FUTEXFS_SUPER_MAGIC = 0xbad1dea FUTEXFS_SUPER_MAGIC = 0xbad1dea
F_ADD_SEALS = 0x409 F_ADD_SEALS = 0x409
F_DUPFD = 0x0 F_DUPFD = 0x0
@ -1136,7 +1182,7 @@ const (
NETLINK_UNUSED = 0x1 NETLINK_UNUSED = 0x1
NETLINK_USERSOCK = 0x2 NETLINK_USERSOCK = 0x2
NETLINK_XFRM = 0x6 NETLINK_XFRM = 0x6
NETNSA_MAX = 0x3 NETNSA_MAX = 0x5
NETNSA_NSID_NOT_ASSIGNED = -0x1 NETNSA_NSID_NOT_ASSIGNED = -0x1
NFNETLINK_V0 = 0x0 NFNETLINK_V0 = 0x0
NFNLGRP_ACCT_QUOTA = 0x8 NFNLGRP_ACCT_QUOTA = 0x8
@ -1400,6 +1446,12 @@ const (
PR_MCE_KILL_SET = 0x1 PR_MCE_KILL_SET = 0x1
PR_MPX_DISABLE_MANAGEMENT = 0x2c PR_MPX_DISABLE_MANAGEMENT = 0x2c
PR_MPX_ENABLE_MANAGEMENT = 0x2b PR_MPX_ENABLE_MANAGEMENT = 0x2b
PR_PAC_APDAKEY = 0x4
PR_PAC_APDBKEY = 0x8
PR_PAC_APGAKEY = 0x10
PR_PAC_APIAKEY = 0x1
PR_PAC_APIBKEY = 0x2
PR_PAC_RESET_KEYS = 0x36
PR_SET_CHILD_SUBREAPER = 0x24 PR_SET_CHILD_SUBREAPER = 0x24
PR_SET_DUMPABLE = 0x4 PR_SET_DUMPABLE = 0x4
PR_SET_ENDIAN = 0x14 PR_SET_ENDIAN = 0x14
@ -2282,6 +2334,7 @@ const (
TUNGETVNETBE = 0x400454df TUNGETVNETBE = 0x400454df
TUNGETVNETHDRSZ = 0x400454d7 TUNGETVNETHDRSZ = 0x400454d7
TUNGETVNETLE = 0x400454dd TUNGETVNETLE = 0x400454dd
TUNSETCARRIER = 0x800454e2
TUNSETDEBUG = 0x800454c9 TUNSETDEBUG = 0x800454c9
TUNSETFILTEREBPF = 0x400454e1 TUNSETFILTEREBPF = 0x400454e1
TUNSETGROUP = 0x800454ce TUNSETGROUP = 0x800454ce

@ -1367,6 +1367,14 @@ func Utime(path string, buf *Utimbuf) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getsystemcfg(label int) (n uint64) {
r0, _ := callgetsystemcfg(label)
n = uint64(r0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func Getrlimit(resource int, rlim *Rlimit) (err error) { func Getrlimit(resource int, rlim *Rlimit) (err error) {
_, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim)))
if e1 != 0 { if e1 != 0 {

@ -120,6 +120,7 @@ import (
//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" //go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" //go:cgo_import_dynamic libc_time time "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" //go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" //go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o"
//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" //go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o"
@ -235,6 +236,7 @@ import (
//go:linkname libc_gettimeofday libc_gettimeofday //go:linkname libc_gettimeofday libc_gettimeofday
//go:linkname libc_time libc_time //go:linkname libc_time libc_time
//go:linkname libc_utime libc_utime //go:linkname libc_utime libc_utime
//go:linkname libc_getsystemcfg libc_getsystemcfg
//go:linkname libc_getrlimit libc_getrlimit //go:linkname libc_getrlimit libc_getrlimit
//go:linkname libc_setrlimit libc_setrlimit //go:linkname libc_setrlimit libc_setrlimit
//go:linkname libc_lseek libc_lseek //go:linkname libc_lseek libc_lseek
@ -353,6 +355,7 @@ var (
libc_gettimeofday, libc_gettimeofday,
libc_time, libc_time,
libc_utime, libc_utime,
libc_getsystemcfg,
libc_getrlimit, libc_getrlimit,
libc_setrlimit, libc_setrlimit,
libc_lseek, libc_lseek,
@ -1135,6 +1138,13 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0)
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0)
return return

@ -118,6 +118,7 @@ int poll(uintptr_t, int, int);
int gettimeofday(uintptr_t, uintptr_t); int gettimeofday(uintptr_t, uintptr_t);
int time(uintptr_t); int time(uintptr_t);
int utime(uintptr_t, uintptr_t); int utime(uintptr_t, uintptr_t);
unsigned long long getsystemcfg(int);
int getrlimit(int, uintptr_t); int getrlimit(int, uintptr_t);
int setrlimit(int, uintptr_t); int setrlimit(int, uintptr_t);
long long lseek(int, long long, int); long long lseek(int, long long, int);
@ -1011,6 +1012,14 @@ func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.getsystemcfg(C.int(label)))
e1 = syscall.GetErrno()
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) {
r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim)))
e1 = syscall.GetErrno() e1 = syscall.GetErrno()

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
@ -1658,6 +1679,16 @@ func faccessat(dirfd int, path string, mode uint32) (err error) {
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func pipe(p *[2]_C_int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
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) { func pipe2(p *[2]_C_int, flags int) (err error) {
_, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
if e1 != 0 { if e1 != 0 {

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
@ -2206,3 +2227,18 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
} }
return return
} }
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(cmdline)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)))
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)
@ -2186,3 +2207,18 @@ func pipe2(p *[2]_C_int, flags int) (err error) {
} }
return return
} }
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) {
var _p0 *byte
_p0, err = BytePtrFromString(cmdline)
if err != nil {
return
}
_, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -14,6 +14,27 @@ var _ syscall.Errno
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT // THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) {
r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_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 fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) {
_, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0)
if e1 != 0 {
err = errnoErr(e1)
}
return
}
// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
func fchmodat(dirfd int, path string, mode uint32) (err error) { func fchmodat(dirfd int, path string, mode uint32) (err error) {
var _p0 *byte var _p0 *byte
_p0, err = BytePtrFromString(path) _p0, err = BytePtrFromString(path)

@ -285,4 +285,5 @@ const (
SYS_STATX = 291 SYS_STATX = 291
SYS_IO_PGETEVENTS = 292 SYS_IO_PGETEVENTS = 292
SYS_RSEQ = 293 SYS_RSEQ = 293
SYS_KEXEC_FILE_LOAD = 294
) )

@ -284,4 +284,5 @@ const (
SYS_STATX = 291 SYS_STATX = 291
SYS_IO_PGETEVENTS = 292 SYS_IO_PGETEVENTS = 292
SYS_RSEQ = 293 SYS_RSEQ = 293
SYS_KEXEC_FILE_LOAD = 294
) )

@ -253,6 +253,7 @@ const (
SYS_TIMER_GETOVERRUN = 264 SYS_TIMER_GETOVERRUN = 264
SYS_TIMER_DELETE = 265 SYS_TIMER_DELETE = 265
SYS_TIMER_CREATE = 266 SYS_TIMER_CREATE = 266
SYS_VSERVER = 267
SYS_IO_SETUP = 268 SYS_IO_SETUP = 268
SYS_IO_DESTROY = 269 SYS_IO_DESTROY = 269
SYS_IO_SUBMIT = 270 SYS_IO_SUBMIT = 270

@ -487,3 +487,13 @@ type Utsname struct {
Version [256]byte Version [256]byte
Machine [256]byte Machine [256]byte
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -497,3 +497,13 @@ type Utsname struct {
Version [256]byte Version [256]byte
Machine [256]byte Machine [256]byte
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -488,3 +488,13 @@ type Utsname struct {
Version [256]byte Version [256]byte
Machine [256]byte Machine [256]byte
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -497,3 +497,13 @@ type Utsname struct {
Version [256]byte Version [256]byte
Machine [256]byte Machine [256]byte
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -443,138 +443,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -640,6 +683,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8
@ -961,7 +1025,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1064,6 +1129,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1085,21 +1151,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1112,6 +1195,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1416,6 +1500,9 @@ const (
SizeofTpacketHdr = 0x18 SizeofTpacketHdr = 0x18
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2031,3 +2118,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -444,138 +444,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -641,6 +684,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -972,7 +1036,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1075,6 +1140,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1096,21 +1162,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1123,6 +1206,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1428,6 +1512,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2044,3 +2131,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -447,138 +447,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -644,6 +687,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8
@ -950,7 +1014,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1053,6 +1118,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1074,21 +1140,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1101,6 +1184,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1406,6 +1490,9 @@ const (
SizeofTpacketHdr = 0x18 SizeofTpacketHdr = 0x18
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2022,3 +2109,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -445,138 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -642,6 +685,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -951,7 +1015,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1054,6 +1119,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1075,21 +1141,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1102,6 +1185,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1407,6 +1491,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2023,3 +2110,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -446,138 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -643,6 +686,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8
@ -955,7 +1019,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1058,6 +1123,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1079,21 +1145,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1106,6 +1189,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1412,6 +1496,9 @@ const (
SizeofTpacketHdr = 0x18 SizeofTpacketHdr = 0x18
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2028,3 +2115,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -445,138 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -642,6 +685,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -953,7 +1017,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1056,6 +1121,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1077,21 +1143,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1104,6 +1187,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1409,6 +1493,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2025,3 +2112,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -445,138 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -642,6 +685,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -953,7 +1017,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1056,6 +1121,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1077,21 +1143,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1104,6 +1187,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1409,6 +1493,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2025,3 +2112,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -446,138 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -643,6 +686,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x8 SizeofSockFprog = 0x8
@ -955,7 +1019,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1058,6 +1123,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1079,21 +1145,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1106,6 +1189,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1412,6 +1496,9 @@ const (
SizeofTpacketHdr = 0x18 SizeofTpacketHdr = 0x18
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2028,3 +2115,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -446,138 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -643,6 +686,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -961,7 +1025,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1064,6 +1129,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1085,21 +1151,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1112,6 +1195,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1417,6 +1501,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2033,3 +2120,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -446,138 +446,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -643,6 +686,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -961,7 +1025,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1064,6 +1129,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1085,21 +1151,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1112,6 +1195,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1417,6 +1501,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2033,3 +2120,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -445,138 +445,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -642,6 +685,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -978,7 +1042,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1081,6 +1146,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1102,21 +1168,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1129,6 +1212,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1434,6 +1518,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2050,3 +2137,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -444,138 +444,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -641,6 +684,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -974,7 +1038,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1077,6 +1142,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1098,21 +1164,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1125,6 +1208,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1431,6 +1515,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2047,3 +2134,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -448,138 +448,181 @@ const (
) )
const ( const (
IFA_UNSPEC = 0x0 NDA_UNSPEC = 0x0
IFA_ADDRESS = 0x1 NDA_DST = 0x1
IFA_LOCAL = 0x2 NDA_LLADDR = 0x2
IFA_LABEL = 0x3 NDA_CACHEINFO = 0x3
IFA_BROADCAST = 0x4 NDA_PROBES = 0x4
IFA_ANYCAST = 0x5 NDA_VLAN = 0x5
IFA_CACHEINFO = 0x6 NDA_PORT = 0x6
IFA_MULTICAST = 0x7 NDA_VNI = 0x7
IFLA_UNSPEC = 0x0 NDA_IFINDEX = 0x8
IFLA_ADDRESS = 0x1 NDA_MASTER = 0x9
IFLA_BROADCAST = 0x2 NDA_LINK_NETNSID = 0xa
IFLA_IFNAME = 0x3 NDA_SRC_VNI = 0xb
IFLA_INFO_KIND = 0x1 NTF_USE = 0x1
IFLA_MTU = 0x4 NTF_SELF = 0x2
IFLA_LINK = 0x5 NTF_MASTER = 0x4
IFLA_QDISC = 0x6 NTF_PROXY = 0x8
IFLA_STATS = 0x7 NTF_EXT_LEARNED = 0x10
IFLA_COST = 0x8 NTF_OFFLOADED = 0x20
IFLA_PRIORITY = 0x9 NTF_ROUTER = 0x80
IFLA_MASTER = 0xa NUD_INCOMPLETE = 0x1
IFLA_WIRELESS = 0xb NUD_REACHABLE = 0x2
IFLA_PROTINFO = 0xc NUD_STALE = 0x4
IFLA_TXQLEN = 0xd NUD_DELAY = 0x8
IFLA_MAP = 0xe NUD_PROBE = 0x10
IFLA_WEIGHT = 0xf NUD_FAILED = 0x20
IFLA_OPERSTATE = 0x10 NUD_NOARP = 0x40
IFLA_LINKMODE = 0x11 NUD_PERMANENT = 0x80
IFLA_LINKINFO = 0x12 NUD_NONE = 0x0
IFLA_NET_NS_PID = 0x13 IFA_UNSPEC = 0x0
IFLA_IFALIAS = 0x14 IFA_ADDRESS = 0x1
IFLA_NUM_VF = 0x15 IFA_LOCAL = 0x2
IFLA_VFINFO_LIST = 0x16 IFA_LABEL = 0x3
IFLA_STATS64 = 0x17 IFA_BROADCAST = 0x4
IFLA_VF_PORTS = 0x18 IFA_ANYCAST = 0x5
IFLA_PORT_SELF = 0x19 IFA_CACHEINFO = 0x6
IFLA_AF_SPEC = 0x1a IFA_MULTICAST = 0x7
IFLA_GROUP = 0x1b IFA_FLAGS = 0x8
IFLA_NET_NS_FD = 0x1c IFA_RT_PRIORITY = 0x9
IFLA_EXT_MASK = 0x1d IFA_TARGET_NETNSID = 0xa
IFLA_PROMISCUITY = 0x1e IFLA_UNSPEC = 0x0
IFLA_NUM_TX_QUEUES = 0x1f IFLA_ADDRESS = 0x1
IFLA_NUM_RX_QUEUES = 0x20 IFLA_BROADCAST = 0x2
IFLA_CARRIER = 0x21 IFLA_IFNAME = 0x3
IFLA_PHYS_PORT_ID = 0x22 IFLA_MTU = 0x4
IFLA_CARRIER_CHANGES = 0x23 IFLA_LINK = 0x5
IFLA_PHYS_SWITCH_ID = 0x24 IFLA_QDISC = 0x6
IFLA_LINK_NETNSID = 0x25 IFLA_STATS = 0x7
IFLA_PHYS_PORT_NAME = 0x26 IFLA_COST = 0x8
IFLA_PROTO_DOWN = 0x27 IFLA_PRIORITY = 0x9
IFLA_GSO_MAX_SEGS = 0x28 IFLA_MASTER = 0xa
IFLA_GSO_MAX_SIZE = 0x29 IFLA_WIRELESS = 0xb
IFLA_PAD = 0x2a IFLA_PROTINFO = 0xc
IFLA_XDP = 0x2b IFLA_TXQLEN = 0xd
IFLA_EVENT = 0x2c IFLA_MAP = 0xe
IFLA_NEW_NETNSID = 0x2d IFLA_WEIGHT = 0xf
IFLA_IF_NETNSID = 0x2e IFLA_OPERSTATE = 0x10
IFLA_MAX = 0x33 IFLA_LINKMODE = 0x11
RT_SCOPE_UNIVERSE = 0x0 IFLA_LINKINFO = 0x12
RT_SCOPE_SITE = 0xc8 IFLA_NET_NS_PID = 0x13
RT_SCOPE_LINK = 0xfd IFLA_IFALIAS = 0x14
RT_SCOPE_HOST = 0xfe IFLA_NUM_VF = 0x15
RT_SCOPE_NOWHERE = 0xff IFLA_VFINFO_LIST = 0x16
RT_TABLE_UNSPEC = 0x0 IFLA_STATS64 = 0x17
RT_TABLE_COMPAT = 0xfc IFLA_VF_PORTS = 0x18
RT_TABLE_DEFAULT = 0xfd IFLA_PORT_SELF = 0x19
RT_TABLE_MAIN = 0xfe IFLA_AF_SPEC = 0x1a
RT_TABLE_LOCAL = 0xff IFLA_GROUP = 0x1b
RT_TABLE_MAX = 0xffffffff IFLA_NET_NS_FD = 0x1c
RTA_UNSPEC = 0x0 IFLA_EXT_MASK = 0x1d
RTA_DST = 0x1 IFLA_PROMISCUITY = 0x1e
RTA_SRC = 0x2 IFLA_NUM_TX_QUEUES = 0x1f
RTA_IIF = 0x3 IFLA_NUM_RX_QUEUES = 0x20
RTA_OIF = 0x4 IFLA_CARRIER = 0x21
RTA_GATEWAY = 0x5 IFLA_PHYS_PORT_ID = 0x22
RTA_PRIORITY = 0x6 IFLA_CARRIER_CHANGES = 0x23
RTA_PREFSRC = 0x7 IFLA_PHYS_SWITCH_ID = 0x24
RTA_METRICS = 0x8 IFLA_LINK_NETNSID = 0x25
RTA_MULTIPATH = 0x9 IFLA_PHYS_PORT_NAME = 0x26
RTA_FLOW = 0xb IFLA_PROTO_DOWN = 0x27
RTA_CACHEINFO = 0xc IFLA_GSO_MAX_SEGS = 0x28
RTA_TABLE = 0xf IFLA_GSO_MAX_SIZE = 0x29
RTA_MARK = 0x10 IFLA_PAD = 0x2a
RTA_MFC_STATS = 0x11 IFLA_XDP = 0x2b
RTA_VIA = 0x12 IFLA_EVENT = 0x2c
RTA_NEWDST = 0x13 IFLA_NEW_NETNSID = 0x2d
RTA_PREF = 0x14 IFLA_IF_NETNSID = 0x2e
RTA_ENCAP_TYPE = 0x15 IFLA_TARGET_NETNSID = 0x2e
RTA_ENCAP = 0x16 IFLA_CARRIER_UP_COUNT = 0x2f
RTA_EXPIRES = 0x17 IFLA_CARRIER_DOWN_COUNT = 0x30
RTA_PAD = 0x18 IFLA_NEW_IFINDEX = 0x31
RTA_UID = 0x19 IFLA_MIN_MTU = 0x32
RTA_TTL_PROPAGATE = 0x1a IFLA_MAX_MTU = 0x33
RTA_IP_PROTO = 0x1b IFLA_MAX = 0x33
RTA_SPORT = 0x1c IFLA_INFO_KIND = 0x1
RTA_DPORT = 0x1d IFLA_INFO_DATA = 0x2
RTN_UNSPEC = 0x0 IFLA_INFO_XSTATS = 0x3
RTN_UNICAST = 0x1 IFLA_INFO_SLAVE_KIND = 0x4
RTN_LOCAL = 0x2 IFLA_INFO_SLAVE_DATA = 0x5
RTN_BROADCAST = 0x3 RT_SCOPE_UNIVERSE = 0x0
RTN_ANYCAST = 0x4 RT_SCOPE_SITE = 0xc8
RTN_MULTICAST = 0x5 RT_SCOPE_LINK = 0xfd
RTN_BLACKHOLE = 0x6 RT_SCOPE_HOST = 0xfe
RTN_UNREACHABLE = 0x7 RT_SCOPE_NOWHERE = 0xff
RTN_PROHIBIT = 0x8 RT_TABLE_UNSPEC = 0x0
RTN_THROW = 0x9 RT_TABLE_COMPAT = 0xfc
RTN_NAT = 0xa RT_TABLE_DEFAULT = 0xfd
RTN_XRESOLVE = 0xb RT_TABLE_MAIN = 0xfe
RTNLGRP_NONE = 0x0 RT_TABLE_LOCAL = 0xff
RTNLGRP_LINK = 0x1 RT_TABLE_MAX = 0xffffffff
RTNLGRP_NOTIFY = 0x2 RTA_UNSPEC = 0x0
RTNLGRP_NEIGH = 0x3 RTA_DST = 0x1
RTNLGRP_TC = 0x4 RTA_SRC = 0x2
RTNLGRP_IPV4_IFADDR = 0x5 RTA_IIF = 0x3
RTNLGRP_IPV4_MROUTE = 0x6 RTA_OIF = 0x4
RTNLGRP_IPV4_ROUTE = 0x7 RTA_GATEWAY = 0x5
RTNLGRP_IPV4_RULE = 0x8 RTA_PRIORITY = 0x6
RTNLGRP_IPV6_IFADDR = 0x9 RTA_PREFSRC = 0x7
RTNLGRP_IPV6_MROUTE = 0xa RTA_METRICS = 0x8
RTNLGRP_IPV6_ROUTE = 0xb RTA_MULTIPATH = 0x9
RTNLGRP_IPV6_IFINFO = 0xc RTA_FLOW = 0xb
RTNLGRP_IPV6_PREFIX = 0x12 RTA_CACHEINFO = 0xc
RTNLGRP_IPV6_RULE = 0x13 RTA_TABLE = 0xf
RTNLGRP_ND_USEROPT = 0x14 RTA_MARK = 0x10
SizeofNlMsghdr = 0x10 RTA_MFC_STATS = 0x11
SizeofNlMsgerr = 0x14 RTA_VIA = 0x12
SizeofRtGenmsg = 0x1 RTA_NEWDST = 0x13
SizeofNlAttr = 0x4 RTA_PREF = 0x14
SizeofRtAttr = 0x4 RTA_ENCAP_TYPE = 0x15
SizeofIfInfomsg = 0x10 RTA_ENCAP = 0x16
SizeofIfAddrmsg = 0x8 RTA_EXPIRES = 0x17
SizeofRtMsg = 0xc RTA_PAD = 0x18
SizeofRtNexthop = 0x8 RTA_UID = 0x19
RTA_TTL_PROPAGATE = 0x1a
RTA_IP_PROTO = 0x1b
RTA_SPORT = 0x1c
RTA_DPORT = 0x1d
RTN_UNSPEC = 0x0
RTN_UNICAST = 0x1
RTN_LOCAL = 0x2
RTN_BROADCAST = 0x3
RTN_ANYCAST = 0x4
RTN_MULTICAST = 0x5
RTN_BLACKHOLE = 0x6
RTN_UNREACHABLE = 0x7
RTN_PROHIBIT = 0x8
RTN_THROW = 0x9
RTN_NAT = 0xa
RTN_XRESOLVE = 0xb
RTNLGRP_NONE = 0x0
RTNLGRP_LINK = 0x1
RTNLGRP_NOTIFY = 0x2
RTNLGRP_NEIGH = 0x3
RTNLGRP_TC = 0x4
RTNLGRP_IPV4_IFADDR = 0x5
RTNLGRP_IPV4_MROUTE = 0x6
RTNLGRP_IPV4_ROUTE = 0x7
RTNLGRP_IPV4_RULE = 0x8
RTNLGRP_IPV6_IFADDR = 0x9
RTNLGRP_IPV6_MROUTE = 0xa
RTNLGRP_IPV6_ROUTE = 0xb
RTNLGRP_IPV6_IFINFO = 0xc
RTNLGRP_IPV6_PREFIX = 0x12
RTNLGRP_IPV6_RULE = 0x13
RTNLGRP_ND_USEROPT = 0x14
SizeofNlMsghdr = 0x10
SizeofNlMsgerr = 0x14
SizeofRtGenmsg = 0x1
SizeofNlAttr = 0x4
SizeofRtAttr = 0x4
SizeofIfInfomsg = 0x10
SizeofIfAddrmsg = 0x8
SizeofRtMsg = 0xc
SizeofRtNexthop = 0x8
SizeofNdUseroptmsg = 0x10
SizeofNdMsg = 0xc
) )
type NlMsghdr struct { type NlMsghdr struct {
@ -645,6 +688,27 @@ type RtNexthop struct {
Ifindex int32 Ifindex int32
} }
type NdUseroptmsg struct {
Family uint8
Pad1 uint8
Opts_len uint16
Ifindex int32
Icmp_type uint8
Icmp_code uint8
Pad2 uint16
Pad3 uint32
}
type NdMsg struct {
Family uint8
Pad1 uint8
Pad2 uint16
Ifindex int32
State uint16
Flags uint8
Type uint8
}
const ( const (
SizeofSockFilter = 0x8 SizeofSockFilter = 0x8
SizeofSockFprog = 0x10 SizeofSockFprog = 0x10
@ -956,7 +1020,8 @@ type PerfEventAttr struct {
Clockid int32 Clockid int32
Sample_regs_intr uint64 Sample_regs_intr uint64
Aux_watermark uint32 Aux_watermark uint32
_ uint32 Sample_max_stack uint16
_ uint16
} }
type PerfEventMmapPage struct { type PerfEventMmapPage struct {
@ -1059,6 +1124,7 @@ const (
PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
PERF_COUNT_SW_EMULATION_FAULTS = 0x8 PERF_COUNT_SW_EMULATION_FAULTS = 0x8
PERF_COUNT_SW_DUMMY = 0x9 PERF_COUNT_SW_DUMMY = 0x9
PERF_COUNT_SW_BPF_OUTPUT = 0xa
PERF_SAMPLE_IP = 0x1 PERF_SAMPLE_IP = 0x1
PERF_SAMPLE_TID = 0x2 PERF_SAMPLE_TID = 0x2
@ -1080,21 +1146,38 @@ const (
PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 PERF_SAMPLE_BRANCH_ANY_CALL = 0x10
PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
PERF_SAMPLE_BRANCH_IND_CALL = 0x40 PERF_SAMPLE_BRANCH_IND_CALL = 0x40
PERF_SAMPLE_BRANCH_ABORT_TX = 0x80
PERF_SAMPLE_BRANCH_IN_TX = 0x100
PERF_SAMPLE_BRANCH_NO_TX = 0x200
PERF_SAMPLE_BRANCH_COND = 0x400
PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000
PERF_SAMPLE_BRANCH_CALL = 0x2000
PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000
PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000
PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000
PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
PERF_FORMAT_ID = 0x4 PERF_FORMAT_ID = 0x4
PERF_FORMAT_GROUP = 0x8 PERF_FORMAT_GROUP = 0x8
PERF_RECORD_MMAP = 0x1 PERF_RECORD_MMAP = 0x1
PERF_RECORD_LOST = 0x2 PERF_RECORD_LOST = 0x2
PERF_RECORD_COMM = 0x3 PERF_RECORD_COMM = 0x3
PERF_RECORD_EXIT = 0x4 PERF_RECORD_EXIT = 0x4
PERF_RECORD_THROTTLE = 0x5 PERF_RECORD_THROTTLE = 0x5
PERF_RECORD_UNTHROTTLE = 0x6 PERF_RECORD_UNTHROTTLE = 0x6
PERF_RECORD_FORK = 0x7 PERF_RECORD_FORK = 0x7
PERF_RECORD_READ = 0x8 PERF_RECORD_READ = 0x8
PERF_RECORD_SAMPLE = 0x9 PERF_RECORD_SAMPLE = 0x9
PERF_RECORD_MMAP2 = 0xa
PERF_RECORD_AUX = 0xb
PERF_RECORD_ITRACE_START = 0xc
PERF_RECORD_LOST_SAMPLES = 0xd
PERF_RECORD_SWITCH = 0xe
PERF_RECORD_SWITCH_CPU_WIDE = 0xf
PERF_RECORD_NAMESPACES = 0x10
PERF_CONTEXT_HV = -0x20 PERF_CONTEXT_HV = -0x20
PERF_CONTEXT_KERNEL = -0x80 PERF_CONTEXT_KERNEL = -0x80
@ -1107,6 +1190,7 @@ const (
PERF_FLAG_FD_NO_GROUP = 0x1 PERF_FLAG_FD_NO_GROUP = 0x1
PERF_FLAG_FD_OUTPUT = 0x2 PERF_FLAG_FD_OUTPUT = 0x2
PERF_FLAG_PID_CGROUP = 0x4 PERF_FLAG_PID_CGROUP = 0x4
PERF_FLAG_FD_CLOEXEC = 0x8
) )
const ( const (
@ -1412,6 +1496,9 @@ const (
SizeofTpacketHdr = 0x20 SizeofTpacketHdr = 0x20
SizeofTpacket2Hdr = 0x20 SizeofTpacket2Hdr = 0x20
SizeofTpacket3Hdr = 0x30 SizeofTpacket3Hdr = 0x30
SizeofTpacketStats = 0x8
SizeofTpacketStatsV3 = 0xc
) )
const ( const (
@ -2028,3 +2115,18 @@ type SockExtendedErr struct {
Info uint32 Info uint32
Data uint32 Data uint32
} }
type FanotifyEventMetadata struct {
Event_len uint32
Vers uint8
Reserved uint8
Metadata_len uint16
Mask uint64
Fd int32
Pid int32
}
type FanotifyResponse struct {
Fd int32
Response uint32
}

@ -558,3 +558,13 @@ type Uvmexp struct {
Fpswtch int32 Fpswtch int32
Kmapent int32 Kmapent int32
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -558,3 +558,13 @@ type Uvmexp struct {
Fpswtch int32 Fpswtch int32
Kmapent int32 Kmapent int32
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -559,3 +559,13 @@ type Uvmexp struct {
Fpswtch int32 Fpswtch int32
Kmapent int32 Kmapent int32
} }
const SizeofClockinfo = 0x14
type Clockinfo struct {
Hz int32
Tick int32
Tickadj int32
Stathz int32
Profhz int32
}

@ -16,16 +16,20 @@ github.com/mattn/go-colorable
github.com/mattn/go-isatty github.com/mattn/go-isatty
# github.com/mattn/go-runewidth v0.0.4 # github.com/mattn/go-runewidth v0.0.4
github.com/mattn/go-runewidth github.com/mattn/go-runewidth
# github.com/miguelmota/go-coinmarketcap v0.1.3
github.com/miguelmota/go-coinmarketcap/pro/v1
github.com/miguelmota/go-coinmarketcap/v2
github.com/miguelmota/go-coinmarketcap/v2/types
# github.com/mitchellh/go-wordwrap v1.0.0 # github.com/mitchellh/go-wordwrap v1.0.0
github.com/mitchellh/go-wordwrap github.com/mitchellh/go-wordwrap
# github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d # github.com/nsf/termbox-go v0.0.0-20190121233118-02980233997d
github.com/nsf/termbox-go github.com/nsf/termbox-go
# github.com/patrickmn/go-cache v2.1.0+incompatible # github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/patrickmn/go-cache github.com/patrickmn/go-cache
# golang.org/x/net v0.0.0-20181220203305-927f97764cc3 # golang.org/x/net v0.0.0-20190415214537-1da14a5a36f2
golang.org/x/net/html golang.org/x/net/html
golang.org/x/net/html/atom golang.org/x/net/html/atom
# golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 # golang.org/x/sys v0.0.0-20190416152802-12500544f89f
golang.org/x/sys/unix golang.org/x/sys/unix
# golang.org/x/text v0.3.0 # golang.org/x/text v0.3.0
golang.org/x/text/language golang.org/x/text/language

Loading…
Cancel
Save