mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-11 06:23:39 +00:00
targets: minimal uefi target support (#5452)
* runtime: split baremetal memory setup * runtime: extract Windows PE globals scan helper * compileopts,builder: add target linker flavor override * machine,runtime,targets: add minimal uefi-amd64 target * runtime,examples: add clean UEFI exit path test * machine,x86: fix amd64 ABI stack handling * machine/uefi: add CHAR16 conversion helpers * machine/uefi: add loaded image protocol support * runtime: add UEFI PE globals support * machine,runtime,x86: add UEFI time and text output support * machine,runtime,x86: add UEFI text and time support * machine,runtime,examples: add UEFI text input support * machine,examples: add UEFI graphics output support * add rest of STOP methods (direct UEFI ABI only) * runtime: fix UEFI sleep tick conversion * machine/uefi: make text input waits cooperative * address TestClangAttributes/uefi-amd64 failure * address TestConfigLinkerFlavor bug * uefi: move raw bindings to device package * strip down implementation to bare minimum * amd64: rename x86 package * do git restore upstream/dev for src/net * add smoketest for uefi-amd64; add required zeroSizeAllocPtr constant * address PR issues: remove unused files; make putchar() insert '\r' before '\n' * swap lines around
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
//go:build uefi
|
||||
|
||||
package machine
|
||||
|
||||
import (
|
||||
deviceuefi "device/uefi"
|
||||
)
|
||||
|
||||
const deviceName = "UEFI"
|
||||
|
||||
type (
|
||||
EFI_STATUS = deviceuefi.EFI_STATUS
|
||||
TextOutput = deviceuefi.TextOutput
|
||||
|
||||
Error = deviceuefi.Error
|
||||
)
|
||||
|
||||
const (
|
||||
EFI_SUCCESS = deviceuefi.EFI_SUCCESS
|
||||
EFI_LOAD_ERROR = deviceuefi.EFI_LOAD_ERROR
|
||||
EFI_INVALID_PARAMETER = deviceuefi.EFI_INVALID_PARAMETER
|
||||
EFI_UNSUPPORTED = deviceuefi.EFI_UNSUPPORTED
|
||||
EFI_BAD_BUFFER_SIZE = deviceuefi.EFI_BAD_BUFFER_SIZE
|
||||
EFI_BUFFER_TOO_SMALL = deviceuefi.EFI_BUFFER_TOO_SMALL
|
||||
EFI_NOT_READY = deviceuefi.EFI_NOT_READY
|
||||
EFI_DEVICE_ERROR = deviceuefi.EFI_DEVICE_ERROR
|
||||
EFI_WRITE_PROTECTED = deviceuefi.EFI_WRITE_PROTECTED
|
||||
EFI_OUT_OF_RESOURCES = deviceuefi.EFI_OUT_OF_RESOURCES
|
||||
EFI_VOLUME_CORRUPTED = deviceuefi.EFI_VOLUME_CORRUPTED
|
||||
EFI_VOLUME_FULL = deviceuefi.EFI_VOLUME_FULL
|
||||
EFI_NO_MEDIA = deviceuefi.EFI_NO_MEDIA
|
||||
EFI_MEDIA_CHANGED = deviceuefi.EFI_MEDIA_CHANGED
|
||||
EFI_NOT_FOUND = deviceuefi.EFI_NOT_FOUND
|
||||
EFI_ACCESS_DENIED = deviceuefi.EFI_ACCESS_DENIED
|
||||
EFI_NO_RESPONSE = deviceuefi.EFI_NO_RESPONSE
|
||||
EFI_NO_MAPPING = deviceuefi.EFI_NO_MAPPING
|
||||
EFI_TIMEOUT = deviceuefi.EFI_TIMEOUT
|
||||
EFI_NOT_STARTED = deviceuefi.EFI_NOT_STARTED
|
||||
EFI_ALREADY_STARTED = deviceuefi.EFI_ALREADY_STARTED
|
||||
EFI_ABORTED = deviceuefi.EFI_ABORTED
|
||||
EFI_ICMP_ERROR = deviceuefi.EFI_ICMP_ERROR
|
||||
EFI_TFTP_ERROR = deviceuefi.EFI_TFTP_ERROR
|
||||
EFI_PROTOCOL_ERROR = deviceuefi.EFI_PROTOCOL_ERROR
|
||||
EFI_INCOMPATIBLE_VERSION = deviceuefi.EFI_INCOMPATIBLE_VERSION
|
||||
EFI_SECURITY_VIOLATION = deviceuefi.EFI_SECURITY_VIOLATION
|
||||
EFI_CRC_ERROR = deviceuefi.EFI_CRC_ERROR
|
||||
EFI_END_OF_MEDIA = deviceuefi.EFI_END_OF_MEDIA
|
||||
EFI_END_OF_FILE = deviceuefi.EFI_END_OF_FILE
|
||||
EFI_INVALID_LANGUAGE = deviceuefi.EFI_INVALID_LANGUAGE
|
||||
EFI_COMPROMISED_DATA = deviceuefi.EFI_COMPROMISED_DATA
|
||||
EFI_IP_ADDRESS_CONFLICT = deviceuefi.EFI_IP_ADDRESS_CONFLICT
|
||||
EFI_HTTP_ERROR = deviceuefi.EFI_HTTP_ERROR
|
||||
)
|
||||
|
||||
var (
|
||||
ErrLoadError = deviceuefi.ErrLoadError
|
||||
ErrInvalidParameter = deviceuefi.ErrInvalidParameter
|
||||
ErrUnsupported = deviceuefi.ErrUnsupported
|
||||
ErrBadBufferSize = deviceuefi.ErrBadBufferSize
|
||||
ErrBufferTooSmall = deviceuefi.ErrBufferTooSmall
|
||||
ErrNotReady = deviceuefi.ErrNotReady
|
||||
ErrDeviceError = deviceuefi.ErrDeviceError
|
||||
ErrWriteProtected = deviceuefi.ErrWriteProtected
|
||||
ErrOutOfResources = deviceuefi.ErrOutOfResources
|
||||
ErrVolumeCorrupted = deviceuefi.ErrVolumeCorrupted
|
||||
ErrVolumeFull = deviceuefi.ErrVolumeFull
|
||||
ErrNoMedia = deviceuefi.ErrNoMedia
|
||||
ErrMediaChanged = deviceuefi.ErrMediaChanged
|
||||
ErrNotFound = deviceuefi.ErrNotFound
|
||||
ErrAccessDenied = deviceuefi.ErrAccessDenied
|
||||
ErrNoResponse = deviceuefi.ErrNoResponse
|
||||
ErrNoMapping = deviceuefi.ErrNoMapping
|
||||
ErrTimeout = deviceuefi.ErrTimeout
|
||||
ErrNotStarted = deviceuefi.ErrNotStarted
|
||||
ErrAlreadyStarted = deviceuefi.ErrAlreadyStarted
|
||||
ErrAborted = deviceuefi.ErrAborted
|
||||
ErrICMPError = deviceuefi.ErrICMPError
|
||||
ErrTFTPError = deviceuefi.ErrTFTPError
|
||||
ErrProtocolError = deviceuefi.ErrProtocolError
|
||||
ErrIncompatibleVersion = deviceuefi.ErrIncompatibleVersion
|
||||
ErrSecurityViolation = deviceuefi.ErrSecurityViolation
|
||||
ErrCRCError = deviceuefi.ErrCRCError
|
||||
ErrEndOfMedia = deviceuefi.ErrEndOfMedia
|
||||
ErrEndOfFile = deviceuefi.ErrEndOfFile
|
||||
ErrInvalidLanguage = deviceuefi.ErrInvalidLanguage
|
||||
ErrCompromisedData = deviceuefi.ErrCompromisedData
|
||||
ErrIPAddressConflict = deviceuefi.ErrIPAddressConflict
|
||||
ErrHTTPError = deviceuefi.ErrHTTPError
|
||||
)
|
||||
|
||||
func ConsoleOut() *TextOutput {
|
||||
return deviceuefi.ConsoleOut()
|
||||
}
|
||||
|
||||
func StandardError() *TextOutput {
|
||||
return deviceuefi.StandardError()
|
||||
}
|
||||
|
||||
func StatusError(status EFI_STATUS) *Error {
|
||||
return deviceuefi.StatusError(status)
|
||||
}
|
||||
|
||||
func (Pin) Configure(PinConfig) {
|
||||
}
|
||||
|
||||
func (Pin) Set(bool) {
|
||||
}
|
||||
|
||||
func (Pin) Get() bool {
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user