123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /** @file
- Head file for BDS Platform specific code
- Copyright (c) 2022 Loongson Technology Corporation Limited. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef PLATFORM_BM_H_
- #define PLATFORM_BM_H_
- #include <Library/DevicePathLib.h>
- #define DP_NODE_LEN(Type) { (UINT8)sizeof (Type), (UINT8)(sizeof (Type) >> 8) }
- #define SERIAL_DXE_FILE_GUID { \
- 0xD3987D4B, 0x971A, 0x435F, \
- { 0x8C, 0xAF, 0x49, 0x67, 0xEB, 0x62, 0x72, 0x41 } \
- }
- #define ALIGN_UP(addr, align) \
- ((addr + (typeof (addr)) align - 1) & ~((typeof (addr)) align - 1))
- #pragma pack (1)
- typedef struct {
- VENDOR_DEVICE_PATH SerialDxe;
- UART_DEVICE_PATH Uart;
- VENDOR_DEFINED_DEVICE_PATH TermType;
- EFI_DEVICE_PATH_PROTOCOL End;
- } PLATFORM_SERIAL_CONSOLE;
- #pragma pack ()
- #pragma pack (1)
- typedef struct {
- USB_CLASS_DEVICE_PATH Keyboard;
- EFI_DEVICE_PATH_PROTOCOL End;
- } PLATFORM_USB_KEYBOARD;
- #pragma pack ()
- /**
- Check if the handle satisfies a particular condition.
- @param[in] Handle The handle to check.
- @param[in] ReportText A caller-allocated string passed in for reporting
- purposes. It must never be NULL.
- @retval TRUE The condition is satisfied.
- @retval FALSE Otherwise. This includes the case when the condition could not
- be fully evaluated due to an error.
- **/
- typedef
- BOOLEAN
- (EFIAPI *FILTER_FUNCTION) (
- IN EFI_HANDLE Handle,
- IN CONST CHAR16 *ReportText
- );
- /**
- Process a handle.
- @param[in] Handle The handle to process.
- @param[in] ReportText A caller-allocated string passed in for reporting
- purposes. It must never be NULL.
- **/
- typedef
- VOID
- (EFIAPI *CALLBACK_FUNCTION) (
- IN EFI_HANDLE Handle,
- IN CONST CHAR16 *ReportText
- );
- /**
- * execute from kernel entry point.
- *
- * @param[in] Argc The count of args.
- * @param[in] Argv The pointer to args array.
- * @param[in] Bpi The pointer to bootparaminterface struct.
- * @param[in] Vec The fourth args for kernel.
- ***/
- typedef
- VOID
- (EFIAPI *EFI_KERNEL_ENTRY_POINT) (
- IN UINTN Argc,
- IN VOID *Argv,
- IN VOID *Bpi,
- IN VOID *Vec
- );
- /**
- Download the kernel, the initial ramdisk, and the kernel command line from
- QEMU's fw_cfg. Construct a minimal SimpleFileSystem that contains the two
- image files, and load and start the kernel from it.
- The kernel will be instructed via its command line to load the initrd from
- the same Simple FileSystem.
- @retval EFI_NOT_FOUND Kernel image was not found.
- @retval EFI_OUT_OF_RESOURCES Memory allocation failed.
- @retval EFI_PROTOCOL_ERROR Unterminated kernel command line.
- @return Error codes from any of the underlying
- functions. On success, the function doesn't
- return.
- **/
- EFI_STATUS
- EFIAPI
- TryRunningQemuKernel (
- VOID
- );
- #endif // PLATFORM_BM_H_
|