mirror of
				https://github.com/linuxkit/linuxkit.git
				synced 2025-10-31 21:45:11 +00:00 
			
		
		
		
	Moves vendoring over to Go modules. Fixes issues found by Go Vet in Go 1.16 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
| package hcsshim
 | |
| 
 | |
| import (
 | |
| 	"io"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/Microsoft/hcsshim/internal/schema1"
 | |
| )
 | |
| 
 | |
| // ProcessConfig is used as both the input of Container.CreateProcess
 | |
| // and to convert the parameters to JSON for passing onto the HCS
 | |
| type ProcessConfig = schema1.ProcessConfig
 | |
| 
 | |
| type Layer = schema1.Layer
 | |
| type MappedDir = schema1.MappedDir
 | |
| type MappedPipe = schema1.MappedPipe
 | |
| type HvRuntime = schema1.HvRuntime
 | |
| type MappedVirtualDisk = schema1.MappedVirtualDisk
 | |
| 
 | |
| // AssignedDevice represents a device that has been directly assigned to a container
 | |
| //
 | |
| // NOTE: Support added in RS5
 | |
| type AssignedDevice = schema1.AssignedDevice
 | |
| 
 | |
| // ContainerConfig is used as both the input of CreateContainer
 | |
| // and to convert the parameters to JSON for passing onto the HCS
 | |
| type ContainerConfig = schema1.ContainerConfig
 | |
| 
 | |
| type ComputeSystemQuery = schema1.ComputeSystemQuery
 | |
| 
 | |
| // Container represents a created (but not necessarily running) container.
 | |
| type Container interface {
 | |
| 	// Start synchronously starts the container.
 | |
| 	Start() error
 | |
| 
 | |
| 	// Shutdown requests a container shutdown, but it may not actually be shutdown until Wait() succeeds.
 | |
| 	Shutdown() error
 | |
| 
 | |
| 	// Terminate requests a container terminate, but it may not actually be terminated until Wait() succeeds.
 | |
| 	Terminate() error
 | |
| 
 | |
| 	// Waits synchronously waits for the container to shutdown or terminate.
 | |
| 	Wait() error
 | |
| 
 | |
| 	// WaitTimeout synchronously waits for the container to terminate or the duration to elapse. It
 | |
| 	// returns false if timeout occurs.
 | |
| 	WaitTimeout(time.Duration) error
 | |
| 
 | |
| 	// Pause pauses the execution of a container.
 | |
| 	Pause() error
 | |
| 
 | |
| 	// Resume resumes the execution of a container.
 | |
| 	Resume() error
 | |
| 
 | |
| 	// HasPendingUpdates returns true if the container has updates pending to install.
 | |
| 	HasPendingUpdates() (bool, error)
 | |
| 
 | |
| 	// Statistics returns statistics for a container.
 | |
| 	Statistics() (Statistics, error)
 | |
| 
 | |
| 	// ProcessList returns details for the processes in a container.
 | |
| 	ProcessList() ([]ProcessListItem, error)
 | |
| 
 | |
| 	// MappedVirtualDisks returns virtual disks mapped to a utility VM, indexed by controller
 | |
| 	MappedVirtualDisks() (map[int]MappedVirtualDiskController, error)
 | |
| 
 | |
| 	// CreateProcess launches a new process within the container.
 | |
| 	CreateProcess(c *ProcessConfig) (Process, error)
 | |
| 
 | |
| 	// OpenProcess gets an interface to an existing process within the container.
 | |
| 	OpenProcess(pid int) (Process, error)
 | |
| 
 | |
| 	// Close cleans up any state associated with the container but does not terminate or wait for it.
 | |
| 	Close() error
 | |
| 
 | |
| 	// Modify the System
 | |
| 	Modify(config *ResourceModificationRequestResponse) error
 | |
| }
 | |
| 
 | |
| // Process represents a running or exited process.
 | |
| type Process interface {
 | |
| 	// Pid returns the process ID of the process within the container.
 | |
| 	Pid() int
 | |
| 
 | |
| 	// Kill signals the process to terminate but does not wait for it to finish terminating.
 | |
| 	Kill() error
 | |
| 
 | |
| 	// Wait waits for the process to exit.
 | |
| 	Wait() error
 | |
| 
 | |
| 	// WaitTimeout waits for the process to exit or the duration to elapse. It returns
 | |
| 	// false if timeout occurs.
 | |
| 	WaitTimeout(time.Duration) error
 | |
| 
 | |
| 	// ExitCode returns the exit code of the process. The process must have
 | |
| 	// already terminated.
 | |
| 	ExitCode() (int, error)
 | |
| 
 | |
| 	// ResizeConsole resizes the console of the process.
 | |
| 	ResizeConsole(width, height uint16) error
 | |
| 
 | |
| 	// Stdio returns the stdin, stdout, and stderr pipes, respectively. Closing
 | |
| 	// these pipes does not close the underlying pipes; it should be possible to
 | |
| 	// call this multiple times to get multiple interfaces.
 | |
| 	Stdio() (io.WriteCloser, io.ReadCloser, io.ReadCloser, error)
 | |
| 
 | |
| 	// CloseStdin closes the write side of the stdin pipe so that the process is
 | |
| 	// notified on the read side that there is no more data in stdin.
 | |
| 	CloseStdin() error
 | |
| 
 | |
| 	// Close cleans up any state associated with the process but does not kill
 | |
| 	// or wait on it.
 | |
| 	Close() error
 | |
| }
 |