github.com/SagerNet/gvisor@v0.0.0-20210707092255-7731c139d75c/pkg/abi/linux/rusage.go (about)

     1  // Copyright 2018 The gVisor Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  package linux
    16  
    17  // Flags that may be used with wait4(2) and getrusage(2).
    18  const (
    19  	// wait4(2) uses this to aggregate RUSAGE_SELF and RUSAGE_CHILDREN.
    20  	RUSAGE_BOTH = -0x2
    21  
    22  	// getrusage(2) flags.
    23  	RUSAGE_CHILDREN = -0x1
    24  	RUSAGE_SELF     = 0x0
    25  	RUSAGE_THREAD   = 0x1
    26  )
    27  
    28  // Rusage represents the Linux struct rusage.
    29  //
    30  // +marshal
    31  type Rusage struct {
    32  	UTime    Timeval
    33  	STime    Timeval
    34  	MaxRSS   int64
    35  	IXRSS    int64
    36  	IDRSS    int64
    37  	ISRSS    int64
    38  	MinFlt   int64
    39  	MajFlt   int64
    40  	NSwap    int64
    41  	InBlock  int64
    42  	OuBlock  int64
    43  	MsgSnd   int64
    44  	MsgRcv   int64
    45  	NSignals int64
    46  	NVCSw    int64
    47  	NIvCSw   int64
    48  }