Update hcsshim and go-winio vendoring
* Update hcsshim to v0.8.14 * Update go-winio to v0.4.16 This brings in some vhd package changes from winio, and the compute storage api bindings for the shim. This is to facilitate some coming functionality for the windows snapshotter as well as possibly for future work down the line for the windows differ. Signed-off-by: Daniel Canter <dcanter@microsoft.com>
This commit is contained in:
		
							
								
								
									
										91
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										91
									
								
								vendor/github.com/Microsoft/hcsshim/internal/winapi/jobobject.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,22 +1,24 @@
 | 
			
		||||
package winapi
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"unsafe"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/sys/windows"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Messages that can be received from an assigned io completion port.
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_associate_completion_port
 | 
			
		||||
const (
 | 
			
		||||
	JOB_OBJECT_MSG_END_OF_JOB_TIME       = 1
 | 
			
		||||
	JOB_OBJECT_MSG_END_OF_PROCESS_TIME   = 2
 | 
			
		||||
	JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT  = 3
 | 
			
		||||
	JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO   = 4
 | 
			
		||||
	JOB_OBJECT_MSG_NEW_PROCESS           = 6
 | 
			
		||||
	JOB_OBJECT_MSG_EXIT_PROCESS          = 7
 | 
			
		||||
	JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8
 | 
			
		||||
	JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT  = 9
 | 
			
		||||
	JOB_OBJECT_MSG_JOB_MEMORY_LIMIT      = 10
 | 
			
		||||
	JOB_OBJECT_MSG_NOTIFICATION_LIMIT    = 11
 | 
			
		||||
	JOB_OBJECT_MSG_END_OF_JOB_TIME       uint32 = 1
 | 
			
		||||
	JOB_OBJECT_MSG_END_OF_PROCESS_TIME   uint32 = 2
 | 
			
		||||
	JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT  uint32 = 3
 | 
			
		||||
	JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO   uint32 = 4
 | 
			
		||||
	JOB_OBJECT_MSG_NEW_PROCESS           uint32 = 6
 | 
			
		||||
	JOB_OBJECT_MSG_EXIT_PROCESS          uint32 = 7
 | 
			
		||||
	JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS uint32 = 8
 | 
			
		||||
	JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT  uint32 = 9
 | 
			
		||||
	JOB_OBJECT_MSG_JOB_MEMORY_LIMIT      uint32 = 10
 | 
			
		||||
	JOB_OBJECT_MSG_NOTIFICATION_LIMIT    uint32 = 11
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// IO limit flags
 | 
			
		||||
@@ -24,9 +26,11 @@ const (
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/jobapi2/ns-jobapi2-jobobject_io_rate_control_information
 | 
			
		||||
const JOB_OBJECT_IO_RATE_CONTROL_ENABLE = 0x1
 | 
			
		||||
 | 
			
		||||
const JOBOBJECT_IO_ATTRIBUTION_CONTROL_ENABLE uint32 = 0x1
 | 
			
		||||
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_cpu_rate_control_information
 | 
			
		||||
const (
 | 
			
		||||
	JOB_OBJECT_CPU_RATE_CONTROL_ENABLE = 1 << iota
 | 
			
		||||
	JOB_OBJECT_CPU_RATE_CONTROL_ENABLE uint32 = 1 << iota
 | 
			
		||||
	JOB_OBJECT_CPU_RATE_CONTROL_WEIGHT_BASED
 | 
			
		||||
	JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP
 | 
			
		||||
	JOB_OBJECT_CPU_RATE_CONTROL_NOTIFY
 | 
			
		||||
@@ -41,7 +45,9 @@ const (
 | 
			
		||||
	JobObjectBasicProcessIdList              uint32 = 3
 | 
			
		||||
	JobObjectBasicAndIoAccountingInformation uint32 = 8
 | 
			
		||||
	JobObjectLimitViolationInformation       uint32 = 13
 | 
			
		||||
	JobObjectMemoryUsageInformation          uint32 = 28
 | 
			
		||||
	JobObjectNotificationLimitInformation2   uint32 = 33
 | 
			
		||||
	JobObjectIoAttribution                   uint32 = 42
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_limit_information
 | 
			
		||||
@@ -60,7 +66,7 @@ type JOBOBJECT_BASIC_LIMIT_INFORMATION struct {
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_cpu_rate_control_information
 | 
			
		||||
type JOBOBJECT_CPU_RATE_CONTROL_INFORMATION struct {
 | 
			
		||||
	ControlFlags uint32
 | 
			
		||||
	Rate         uint32
 | 
			
		||||
	Value        uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/jobapi2/ns-jobapi2-jobobject_io_rate_control_information
 | 
			
		||||
@@ -80,9 +86,68 @@ type JOBOBJECT_BASIC_PROCESS_ID_LIST struct {
 | 
			
		||||
	ProcessIdList             [1]uintptr
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// AllPids returns all the process Ids in the job object.
 | 
			
		||||
func (p *JOBOBJECT_BASIC_PROCESS_ID_LIST) AllPids() []uintptr {
 | 
			
		||||
	return (*[(1 << 27) - 1]uintptr)(unsafe.Pointer(&p.ProcessIdList[0]))[:p.NumberOfProcessIdsInList]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_accounting_information
 | 
			
		||||
type JOBOBJECT_BASIC_ACCOUNTING_INFORMATION struct {
 | 
			
		||||
	TotalUserTime             int64
 | 
			
		||||
	TotalKernelTime           int64
 | 
			
		||||
	ThisPeriodTotalUserTime   int64
 | 
			
		||||
	ThisPeriodTotalKernelTime int64
 | 
			
		||||
	TotalPageFaultCount       uint32
 | 
			
		||||
	TotalProcesses            uint32
 | 
			
		||||
	ActiveProcesses           uint32
 | 
			
		||||
	TotalTerminateProcesses   uint32
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_basic_and_io_accounting_information
 | 
			
		||||
type JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION struct {
 | 
			
		||||
	BasicInfo JOBOBJECT_BASIC_ACCOUNTING_INFORMATION
 | 
			
		||||
	IoInfo    windows.IO_COUNTERS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _JOBOBJECT_MEMORY_USAGE_INFORMATION {
 | 
			
		||||
//     ULONG64 JobMemory;
 | 
			
		||||
//     ULONG64 PeakJobMemoryUsed;
 | 
			
		||||
// } JOBOBJECT_MEMORY_USAGE_INFORMATION, *PJOBOBJECT_MEMORY_USAGE_INFORMATION;
 | 
			
		||||
//
 | 
			
		||||
type JOBOBJECT_MEMORY_USAGE_INFORMATION struct {
 | 
			
		||||
	JobMemory         uint64
 | 
			
		||||
	PeakJobMemoryUsed uint64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _JOBOBJECT_IO_ATTRIBUTION_STATS {
 | 
			
		||||
//     ULONG_PTR IoCount;
 | 
			
		||||
//     ULONGLONG TotalNonOverlappedQueueTime;
 | 
			
		||||
//     ULONGLONG TotalNonOverlappedServiceTime;
 | 
			
		||||
//     ULONGLONG TotalSize;
 | 
			
		||||
// } JOBOBJECT_IO_ATTRIBUTION_STATS, *PJOBOBJECT_IO_ATTRIBUTION_STATS;
 | 
			
		||||
//
 | 
			
		||||
type JOBOBJECT_IO_ATTRIBUTION_STATS struct {
 | 
			
		||||
	IoCount                       uintptr
 | 
			
		||||
	TotalNonOverlappedQueueTime   uint64
 | 
			
		||||
	TotalNonOverlappedServiceTime uint64
 | 
			
		||||
	TotalSize                     uint64
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// typedef struct _JOBOBJECT_IO_ATTRIBUTION_INFORMATION {
 | 
			
		||||
//     ULONG ControlFlags;
 | 
			
		||||
//     JOBOBJECT_IO_ATTRIBUTION_STATS ReadStats;
 | 
			
		||||
//     JOBOBJECT_IO_ATTRIBUTION_STATS WriteStats;
 | 
			
		||||
// } JOBOBJECT_IO_ATTRIBUTION_INFORMATION, *PJOBOBJECT_IO_ATTRIBUTION_INFORMATION;
 | 
			
		||||
//
 | 
			
		||||
type JOBOBJECT_IO_ATTRIBUTION_INFORMATION struct {
 | 
			
		||||
	ControlFlags uint32
 | 
			
		||||
	ReadStats    JOBOBJECT_IO_ATTRIBUTION_STATS
 | 
			
		||||
	WriteStats   JOBOBJECT_IO_ATTRIBUTION_STATS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// https://docs.microsoft.com/en-us/windows/win32/api/winnt/ns-winnt-jobobject_associate_completion_port
 | 
			
		||||
type JOBOBJECT_ASSOCIATE_COMPLETION_PORT struct {
 | 
			
		||||
	CompletionKey  uintptr
 | 
			
		||||
	CompletionKey  windows.Handle
 | 
			
		||||
	CompletionPort windows.Handle
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user