diff options
Diffstat (limited to 'qemu/roms/ipxe/src/arch/i386/include/ipxe')
14 files changed, 0 insertions, 776 deletions
diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_nap.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_nap.h deleted file mode 100644 index c9b82c1e5..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_nap.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _IPXE_BIOS_NAP_H -#define _IPXE_BIOS_NAP_H - -/** @file - * - * BIOS CPU sleeping - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef NAP_PCBIOS -#define NAP_PREFIX_pcbios -#else -#define NAP_PREFIX_pcbios __pcbios_ -#endif - -#endif /* _IPXE_BIOS_NAP_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_reboot.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_reboot.h deleted file mode 100644 index 3f6df9073..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_reboot.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _IPXE_BIOS_REBOOT_H -#define _IPXE_BIOS_REBOOT_H - -/** @file - * - * Standard PC-BIOS reboot mechanism - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef REBOOT_PCBIOS -#define REBOOT_PREFIX_pcbios -#else -#define REBOOT_PREFIX_pcbios __pcbios_ -#endif - -#endif /* _IPXE_BIOS_REBOOT_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_sanboot.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_sanboot.h deleted file mode 100644 index 1a86b7d57..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_sanboot.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _IPXE_BIOS_SANBOOT_H -#define _IPXE_BIOS_SANBOOT_H - -/** @file - * - * Standard PC-BIOS sanboot interface - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef SANBOOT_PCBIOS -#define SANBOOT_PREFIX_pcbios -#else -#define SANBOOT_PREFIX_pcbios __pcbios_ -#endif - -/** - * Get default SAN drive number - * - * @ret drive Default drive number - */ -static inline __always_inline unsigned int -SANBOOT_INLINE ( pcbios, san_default_drive ) ( void ) { - /* Default to booting from first hard disk */ - return 0x80; -} - -#endif /* _IPXE_BIOS_SANBOOT_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_smbios.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_smbios.h deleted file mode 100644 index 9f7f9c8ff..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_smbios.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _IPXE_BIOS_SMBIOS_H -#define _IPXE_BIOS_SMBIOS_H - -/** @file - * - * Standard PC-BIOS SMBIOS interface - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef SMBIOS_PCBIOS -#define SMBIOS_PREFIX_pcbios -#else -#define SMBIOS_PREFIX_pcbios __pcbios_ -#endif - -#endif /* _IPXE_BIOS_SMBIOS_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_timer.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_timer.h deleted file mode 100644 index 6b88a623c..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/bios_timer.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef _IPXE_BIOS_TIMER_H -#define _IPXE_BIOS_TIMER_H - -/** @file - * - * BIOS timer - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef TIMER_PCBIOS -#define TIMER_PREFIX_pcbios -#else -#define TIMER_PREFIX_pcbios __pcbios_ -#endif - -#include <ipxe/pit8254.h> - -/** - * Delay for a fixed number of microseconds - * - * @v usecs Number of microseconds for which to delay - */ -static inline __always_inline void -TIMER_INLINE ( pcbios, udelay ) ( unsigned long usecs ) { - /* BIOS timer is not high-resolution enough for udelay(), so - * we use the 8254 Programmable Interval Timer. - */ - pit8254_udelay ( usecs ); -} - -/** - * Get number of ticks per second - * - * @ret ticks_per_sec Number of ticks per second - */ -static inline __always_inline unsigned long -TIMER_INLINE ( pcbios, ticks_per_sec ) ( void ) { - /* BIOS timer ticks over at 18.2 ticks per second */ - return 18; -} - -#endif /* _IPXE_BIOS_TIMER_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/errno/pcbios.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/errno/pcbios.h deleted file mode 100644 index 6312adaa4..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/errno/pcbios.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef _IPXE_ERRNO_PCBIOS_H -#define _IPXE_ERRNO_PCBIOS_H - -/** - * @file - * - * PC-BIOS platform error codes - * - * We use the PXE-specified error codes as the platform error codes - * for the PC-BIOS platform. - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include <pxe_error.h> - -/** - * Convert platform error code to platform component of iPXE error code - * - * @v platform Platform error code - * @ret errno Platform component of iPXE error code - */ -#define PLATFORM_TO_ERRNO( platform ) ( (platform) & 0xff ) - -/** - * Convert iPXE error code to platform error code - * - * @v errno iPXE error code - * @ret platform Platform error code - */ -#define ERRNO_TO_PLATFORM( errno ) ( (errno) & 0xff ) - -/* Platform-specific error codes */ -#define PLATFORM_ENOERR PXENV_STATUS_SUCCESS -#define PLATFORM_E2BIG PXENV_STATUS_BAD_FUNC -#define PLATFORM_EACCES PXENV_STATUS_TFTP_ACCESS_VIOLATION -#define PLATFORM_EADDRINUSE PXENV_STATUS_UDP_OPEN -#define PLATFORM_EADDRNOTAVAIL PXENV_STATUS_UDP_OPEN -#define PLATFORM_EAFNOSUPPORT PXENV_STATUS_UNSUPPORTED -#define PLATFORM_EAGAIN PXENV_STATUS_FAILURE -#define PLATFORM_EALREADY PXENV_STATUS_UDP_OPEN -#define PLATFORM_EBADF PXENV_STATUS_TFTP_CLOSED -#define PLATFORM_EBADMSG PXENV_STATUS_FAILURE -#define PLATFORM_EBUSY PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ECANCELED PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE -#define PLATFORM_ECHILD PXENV_STATUS_TFTP_FILE_NOT_FOUND -#define PLATFORM_ECONNABORTED PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION -#define PLATFORM_ECONNREFUSED PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION -#define PLATFORM_ECONNRESET PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION -#define PLATFORM_EDEADLK PXENV_STATUS_FAILURE -#define PLATFORM_EDESTADDRREQ PXENV_STATUS_BAD_FUNC -#define PLATFORM_EDOM PXENV_STATUS_FAILURE -#define PLATFORM_EDQUOT PXENV_STATUS_FAILURE -#define PLATFORM_EEXIST PXENV_STATUS_FAILURE -#define PLATFORM_EFAULT PXENV_STATUS_MCOPY_PROBLEM -#define PLATFORM_EFBIG PXENV_STATUS_MCOPY_PROBLEM -#define PLATFORM_EHOSTUNREACH PXENV_STATUS_ARP_TIMEOUT -#define PLATFORM_EIDRM PXENV_STATUS_FAILURE -#define PLATFORM_EILSEQ PXENV_STATUS_FAILURE -#define PLATFORM_EINPROGRESS PXENV_STATUS_FAILURE -#define PLATFORM_EINTR PXENV_STATUS_FAILURE -#define PLATFORM_EINVAL PXENV_STATUS_BAD_FUNC -#define PLATFORM_EIO PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION -#define PLATFORM_EISCONN PXENV_STATUS_UDP_OPEN -#define PLATFORM_EISDIR PXENV_STATUS_FAILURE -#define PLATFORM_ELOOP PXENV_STATUS_FAILURE -#define PLATFORM_EMFILE PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_EMLINK PXENV_STATUS_FAILURE -#define PLATFORM_EMSGSIZE PXENV_STATUS_BAD_FUNC -#define PLATFORM_EMULTIHOP PXENV_STATUS_FAILURE -#define PLATFORM_ENAMETOOLONG PXENV_STATUS_FAILURE -#define PLATFORM_ENETDOWN PXENV_STATUS_ARP_TIMEOUT -#define PLATFORM_ENETRESET PXENV_STATUS_FAILURE -#define PLATFORM_ENETUNREACH PXENV_STATUS_ARP_TIMEOUT -#define PLATFORM_ENFILE PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ENOBUFS PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ENODATA PXENV_STATUS_FAILURE -#define PLATFORM_ENODEV PXENV_STATUS_TFTP_FILE_NOT_FOUND -#define PLATFORM_ENOENT PXENV_STATUS_TFTP_FILE_NOT_FOUND -#define PLATFORM_ENOEXEC PXENV_STATUS_FAILURE -#define PLATFORM_ENOLCK PXENV_STATUS_FAILURE -#define PLATFORM_ENOLINK PXENV_STATUS_FAILURE -#define PLATFORM_ENOMEM PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ENOMSG PXENV_STATUS_FAILURE -#define PLATFORM_ENOPROTOOPT PXENV_STATUS_UNSUPPORTED -#define PLATFORM_ENOSPC PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ENOSR PXENV_STATUS_OUT_OF_RESOURCES -#define PLATFORM_ENOSTR PXENV_STATUS_FAILURE -#define PLATFORM_ENOSYS PXENV_STATUS_UNSUPPORTED -#define PLATFORM_ENOTCONN PXENV_STATUS_FAILURE -#define PLATFORM_ENOTDIR PXENV_STATUS_FAILURE -#define PLATFORM_ENOTEMPTY PXENV_STATUS_FAILURE -#define PLATFORM_ENOTSOCK PXENV_STATUS_FAILURE -#define PLATFORM_ENOTSUP PXENV_STATUS_UNSUPPORTED -#define PLATFORM_ENOTTY PXENV_STATUS_FAILURE -#define PLATFORM_ENXIO PXENV_STATUS_TFTP_FILE_NOT_FOUND -#define PLATFORM_EOPNOTSUPP PXENV_STATUS_UNSUPPORTED -#define PLATFORM_EOVERFLOW PXENV_STATUS_FAILURE -#define PLATFORM_EPERM PXENV_STATUS_TFTP_ACCESS_VIOLATION -#define PLATFORM_EPIPE PXENV_STATUS_FAILURE -#define PLATFORM_EPROTO PXENV_STATUS_FAILURE -#define PLATFORM_EPROTONOSUPPORT PXENV_STATUS_UNSUPPORTED -#define PLATFORM_EPROTOTYPE PXENV_STATUS_FAILURE -#define PLATFORM_ERANGE PXENV_STATUS_FAILURE -#define PLATFORM_EROFS PXENV_STATUS_FAILURE -#define PLATFORM_ESPIPE PXENV_STATUS_FAILURE -#define PLATFORM_ESRCH PXENV_STATUS_TFTP_FILE_NOT_FOUND -#define PLATFORM_ESTALE PXENV_STATUS_FAILURE -#define PLATFORM_ETIME PXENV_STATUS_FAILURE -#define PLATFORM_ETIMEDOUT PXENV_STATUS_TFTP_READ_TIMEOUT -#define PLATFORM_ETXTBSY PXENV_STATUS_FAILURE -#define PLATFORM_EWOULDBLOCK PXENV_STATUS_TFTP_OPEN -#define PLATFORM_EXDEV PXENV_STATUS_FAILURE - -#endif /* _IPXE_ERRNO_PCBIOS_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/guestrpc.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/guestrpc.h deleted file mode 100644 index bc3d85506..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/guestrpc.h +++ /dev/null @@ -1,68 +0,0 @@ -#ifndef _IPXE_GUESTRPC_H -#define _IPXE_GUESTRPC_H - -/** @file - * - * VMware GuestRPC mechanism - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include <stdint.h> -#include <ipxe/vmware.h> - -/** GuestRPC magic number */ -#define GUESTRPC_MAGIC 0x49435052 /* "RPCI" */ - -/** Open RPC channel */ -#define GUESTRPC_OPEN 0x00 - -/** Open RPC channel success status */ -#define GUESTRPC_OPEN_SUCCESS 0x00010000 - -/** Send RPC command length */ -#define GUESTRPC_COMMAND_LEN 0x01 - -/** Send RPC command length success status */ -#define GUESTRPC_COMMAND_LEN_SUCCESS 0x00810000 - -/** Send RPC command data */ -#define GUESTRPC_COMMAND_DATA 0x02 - -/** Send RPC command data success status */ -#define GUESTRPC_COMMAND_DATA_SUCCESS 0x00010000 - -/** Receive RPC reply length */ -#define GUESTRPC_REPLY_LEN 0x03 - -/** Receive RPC reply length success status */ -#define GUESTRPC_REPLY_LEN_SUCCESS 0x00830000 - -/** Receive RPC reply data */ -#define GUESTRPC_REPLY_DATA 0x04 - -/** Receive RPC reply data success status */ -#define GUESTRPC_REPLY_DATA_SUCCESS 0x00010000 - -/** Finish receiving RPC reply */ -#define GUESTRPC_REPLY_FINISH 0x05 - -/** Finish receiving RPC reply success status */ -#define GUESTRPC_REPLY_FINISH_SUCCESS 0x00010000 - -/** Close RPC channel */ -#define GUESTRPC_CLOSE 0x06 - -/** Close RPC channel success status */ -#define GUESTRPC_CLOSE_SUCCESS 0x00010000 - -/** RPC command success status */ -#define GUESTRPC_SUCCESS 0x2031 /* "1 " */ - -extern int guestrpc_open ( void ); -extern void guestrpc_close ( int channel ); -extern int guestrpc_command ( int channel, const char *command, char *reply, - size_t reply_len ); - -#endif /* _IPXE_GUESTRPC_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/memtop_umalloc.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/memtop_umalloc.h deleted file mode 100644 index dee055d16..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/memtop_umalloc.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _IPXE_MEMTOP_UMALLOC_H -#define _IPXE_MEMTOP_UMALLOC_H - -/** @file - * - * External memory allocation - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef UMALLOC_MEMTOP -#define UMALLOC_PREFIX_memtop -#else -#define UMALLOC_PREFIX_memtop __memtop_ -#endif - -#endif /* _IPXE_MEMTOP_UMALLOC_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/msr.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/msr.h deleted file mode 100644 index 5705318fd..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/msr.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef _IPXE_MSR_H -#define _IPXE_MSR_H - -/** @file - * - * Model-specific registers - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -/** - * Read model-specific register - * - * @v msr Model-specific register - * @ret value Value - */ -static inline __attribute__ (( always_inline )) uint64_t -rdmsr ( unsigned int msr ) { - uint64_t value; - - __asm__ __volatile__ ( "rdmsr" : "=A" ( value ) : "c" ( msr ) ); - return value; -} - -/** - * Write model-specific register - * - * @v msr Model-specific register - * @v value Value - */ -static inline __attribute__ (( always_inline )) void -wrmsr ( unsigned int msr, uint64_t value ) { - - __asm__ __volatile__ ( "wrmsr" : : "c" ( msr ), "A" ( value ) ); -} - -#endif /* _IPXE_MSR_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rdtsc_timer.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/rdtsc_timer.h deleted file mode 100644 index 598f4bb08..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rdtsc_timer.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _IPXE_RDTSC_TIMER_H -#define _IPXE_RDTSC_TIMER_H - -/** @file - * - * RDTSC timer - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef TIMER_RDTSC -#define TIMER_PREFIX_rdtsc -#else -#define TIMER_PREFIX_rdtsc __rdtsc_ -#endif - -/** - * RDTSC values can easily overflow an unsigned long. We discard the - * low-order bits in order to obtain sensibly-scaled values. - */ -#define TSC_SHIFT 8 - -/** - * Get current system time in ticks - * - * @ret ticks Current time, in ticks - */ -static inline __always_inline unsigned long -TIMER_INLINE ( rdtsc, currticks ) ( void ) { - unsigned long ticks; - - __asm__ __volatile__ ( "rdtsc\n\t" - "shrdl %1, %%edx, %%eax\n\t" - : "=a" ( ticks ) : "i" ( TSC_SHIFT ) : "edx" ); - return ticks; -} - -#endif /* _IPXE_RDTSC_TIMER_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_entropy.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_entropy.h deleted file mode 100644 index e214745d0..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_entropy.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef _IPXE_RTC_ENTROPY_H -#define _IPXE_RTC_ENTROPY_H - -/** @file - * - * RTC-based entropy source - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include <stdint.h> - -#ifdef ENTROPY_RTC -#define ENTROPY_PREFIX_rtc -#else -#define ENTROPY_PREFIX_rtc __rtc_ -#endif - -/** - * min-entropy per sample - * - * @ret min_entropy min-entropy of each sample - */ -static inline __always_inline double -ENTROPY_INLINE ( rtc, min_entropy_per_sample ) ( void ) { - - /* The min-entropy has been measured on several platforms - * using the entropy_sample test code. Modelling the samples - * as independent, and using a confidence level of 99.99%, the - * measurements were as follows: - * - * qemu-kvm : 7.38 bits - * VMware : 7.46 bits - * Physical hardware : 2.67 bits - * - * We choose the lowest of these (2.67 bits) and apply a 50% - * safety margin to allow for some potential non-independence - * of samples. - */ - return 1.3; -} - -extern uint8_t rtc_sample ( void ); - -/** - * Get noise sample - * - * @ret noise Noise sample - * @ret rc Return status code - */ -static inline __always_inline int -ENTROPY_INLINE ( rtc, get_noise ) ( noise_sample_t *noise ) { - - /* Get sample */ - *noise = rtc_sample(); - - /* Always successful */ - return 0; -} - -#endif /* _IPXE_RTC_ENTROPY_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_time.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_time.h deleted file mode 100644 index cb8c7f49e..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/rtc_time.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _IPXE_RTC_TIME_H -#define _IPXE_RTC_TIME_H - -/** @file - * - * RTC-based time source - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#ifdef TIME_RTC -#define TIME_PREFIX_rtc -#else -#define TIME_PREFIX_rtc __rtc_ -#endif - -#endif /* _IPXE_RTC_TIME_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/vesafb.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/vesafb.h deleted file mode 100644 index efc8f2cb8..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/vesafb.h +++ /dev/null @@ -1,210 +0,0 @@ -#ifndef _IPXE_VESAFB_H -#define _IPXE_VESAFB_H - -/** @file - * - * VESA frame buffer console - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include <stdint.h> -#include <realmode.h> - -/** INT 10,4f00: return controller information */ -#define VBE_CONTROLLER_INFO 0x4f00 - -/** VBE controller information */ -struct vbe_controller_info { - /** VBE signature */ - uint32_t vbe_signature; - /** VBE minor version */ - uint8_t vbe_minor_version; - /** VBE major version */ - uint8_t vbe_major_version; - /** Pointer to OEM string */ - struct segoff oem_string_ptr; - /** Capabilities of graphics controller */ - uint32_t capabilities; - /** Pointer to video mode list */ - struct segoff video_mode_ptr; - /** Number of 64kB memory blocks */ - uint16_t total_memory; - /** VBE implementation software revision */ - uint16_t oem_software_rev; - /** Pointer to vendor name string */ - struct segoff oem_vendor_name_ptr; - /** Pointer to product name string */ - struct segoff oem_product_name_ptr; - /** Pointer to product revision string */ - struct segoff oem_product_rev_ptr; - /** Reserved for VBE implementation scratch area */ - uint8_t reserved[222]; - /* VBE2.0 defines an additional 256-byte data area for - * including the OEM strings inline within the VBE information - * block; we omit this to reduce the amount of base memory - * required for VBE calls. - */ -} __attribute__ (( packed )); - -/** VBE controller information signature */ -#define VBE_CONTROLLER_SIGNATURE \ - ( ( 'V' << 0 ) | ( 'E' << 8 ) | ( 'S' << 16 ) | ( 'A' << 24 ) ) - -/** VBE mode list end marker */ -#define VBE_MODE_END 0xffff - -/** INT 10,4f01: return VBE mode information */ -#define VBE_MODE_INFO 0x4f01 - -/** VBE mode information */ -struct vbe_mode_info { - /** Mode attributes */ - uint16_t mode_attributes; - /** Window A attributes */ - uint8_t win_a_attributes; - /** Window B attributes */ - uint8_t win_b_attributes; - /** Window granularity */ - uint16_t win_granularity; - /** Window size */ - uint16_t win_size; - /** Window A start segment */ - uint16_t win_a_segment; - /** Window B start segment */ - uint16_t win_b_segment; - /** Pointer to window function */ - struct segoff win_func_ptr; - /** Bytes per scan line */ - uint16_t bytes_per_scan_line; - /** Horizontal resolution in pixels or characters */ - uint16_t x_resolution; - /** Vertical resolution in pixels or characters */ - uint16_t y_resolution; - /** Character cell width in pixels */ - uint8_t x_char_size; - /** Character cell height in pixels */ - uint8_t y_char_size; - /** Number of memory planes */ - uint8_t number_of_planes; - /** Bits per pixel */ - uint8_t bits_per_pixel; - /** Number of banks */ - uint8_t number_of_banks; - /** Memory model type */ - uint8_t memory_model; - /** Bank size in kB */ - uint8_t bank_size; - /** Number of images */ - uint8_t number_of_image_pages; - /** Reserved for page function */ - uint8_t reserved_1; - /** Size of direct colour red mask in bits */ - uint8_t red_mask_size; - /** Bit position of LSB of red mask */ - uint8_t red_field_position; - /** Size of direct colour green mask in bits */ - uint8_t green_mask_size; - /** Bit position of LSB of green mask */ - uint8_t green_field_position; - /** Size of direct colour blue mask in bits */ - uint8_t blue_mask_size; - /** Bit position of LSB of blue mask */ - uint8_t blue_field_position; - /** Size of direct colour reserved mask in bits */ - uint8_t rsvd_mask_size; - /** Bit position of LSB of reserved mask */ - uint8_t rsvd_field_position; - /** Direct colour mode attributes */ - uint8_t direct_colour_mode_info; - /** Physical address for flat memory frame buffer */ - uint32_t phys_base_ptr; - /** Pointer to start of off-screen memory */ - uint32_t off_screen_mem_offset; - /** Amount of off-screen memory in 1kB units */ - uint16_t off_screen_mem_size; - /** Reserved */ - uint8_t reserved_2[206]; -} __attribute__ (( packed )); - -/** VBE mode attributes */ -enum vbe_mode_attributes { - /** Mode supported in hardware */ - VBE_MODE_ATTR_SUPPORTED = 0x0001, - /** TTY output functions supported by BIOS */ - VBE_MODE_ATTR_TTY = 0x0004, - /** Colour mode */ - VBE_MODE_ATTR_COLOUR = 0x0008, - /** Graphics mode */ - VBE_MODE_ATTR_GRAPHICS = 0x0010, - /** Not a VGA compatible mode */ - VBE_MODE_ATTR_NOT_VGA = 0x0020, - /** VGA compatible windowed memory mode is not available */ - VBE_MODE_ATTR_NOT_WINDOWED = 0x0040, - /** Linear frame buffer mode is available */ - VBE_MODE_ATTR_LINEAR = 0x0080, - /** Double scan mode is available */ - VBE_MODE_ATTR_DOUBLE = 0x0100, - /** Interlaced mode is available */ - VBE_MODE_ATTR_INTERLACED = 0x0200, - /** Hardware triple buffering support */ - VBE_MODE_ATTR_TRIPLE_BUF = 0x0400, - /** Hardware stereoscopic display support */ - VBE_MODE_ATTR_STEREO = 0x0800, - /** Dual display start address support */ - VBE_MODE_ATTR_DUAL = 0x1000, -}; - -/** VBE mode memory models */ -enum vbe_mode_memory_model { - /** Text mode */ - VBE_MODE_MODEL_TEXT = 0x00, - /** CGA graphics mode */ - VBE_MODE_MODEL_CGA = 0x01, - /** Hercules graphics mode */ - VBE_MODE_MODEL_HERCULES = 0x02, - /** Planar mode */ - VBE_MODE_MODEL_PLANAR = 0x03, - /** Packed pixel mode */ - VBE_MODE_MODEL_PACKED_PIXEL = 0x04, - /** Non-chain 4, 256 colour mode */ - VBE_MODE_MODEL_NON_CHAIN_4 = 0x05, - /** Direct colour mode */ - VBE_MODE_MODEL_DIRECT_COLOUR = 0x06, - /** YUV mode */ - VBE_MODE_MODEL_YUV = 0x07, -}; - -/** INT 10,4f02: set VBE mode */ -#define VBE_SET_MODE 0x4f02 - -/** VBE linear frame buffer mode bit */ -#define VBE_MODE_LINEAR 0x4000 - -/** INT 10,1130: get font information */ -#define VBE_GET_FONT 0x1130 - -/** Font sets */ -enum vbe_font_set { - /** 8x14 character font */ - VBE_FONT_8x14 = 0x0200, - /** 8x8 double dot font */ - VBE_FONT_8x8_DOUBLE = 0x0300, - /** 8x8 double dot font (high 128 characters) */ - VBE_FONT_8x8_DOUBLE_HIGH = 0x0400, - /** 9x14 alpha alternate font */ - VBE_FONT_9x14_ALPHA_ALT = 0x0500, - /** 8x16 font */ - VBE_FONT_8x16 = 0x0600, - /** 9x16 alternate font */ - VBE_FONT_9x16_ALT = 0x0700, -}; - -/** INT 10,00: set VGA mode */ -#define VBE_SET_VGA_MODE 0x0000 - -/** INT 10,0f: get VGA mode */ -#define VBE_GET_VGA_MODE 0x0f00 - -#endif /* _IPXE_VESAFB_H */ diff --git a/qemu/roms/ipxe/src/arch/i386/include/ipxe/vmware.h b/qemu/roms/ipxe/src/arch/i386/include/ipxe/vmware.h deleted file mode 100644 index 24f60a03a..000000000 --- a/qemu/roms/ipxe/src/arch/i386/include/ipxe/vmware.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef _IPXE_VMWARE_H -#define _IPXE_VMWARE_H - -/** @file - * - * VMware backdoor mechanism - * - */ - -FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); - -#include <stdint.h> - -/** VMware backdoor I/O port */ -#define VMW_PORT 0x5658 - -/** VMware backdoor magic value */ -#define VMW_MAGIC 0x564d5868 /* "VMXh" */ - -/** VMware backdoor magic instruction */ -#define VMW_BACKDOOR "inl %%dx, %%eax" - -/** Get VMware version */ -#define VMW_CMD_GET_VERSION 0x0a - -/** Issue GuestRPC command */ -#define VMW_CMD_GUESTRPC 0x1e - -/** - * Get VMware version - * - * @ret version VMware version(?) - * @ret magic VMware magic number, if present - * @ret product_type VMware product type - */ -static inline __attribute__ (( always_inline )) void -vmware_cmd_get_version ( uint32_t *version, uint32_t *magic, - uint32_t *product_type ) { - uint32_t discard_d; - - /* Perform backdoor call */ - __asm__ __volatile__ ( VMW_BACKDOOR - : "=a" ( *version ), "=b" ( *magic ), - "=c" ( *product_type ), "=d" ( discard_d ) - : "0" ( VMW_MAGIC ), "1" ( 0 ), - "2" ( VMW_CMD_GET_VERSION ), - "3" ( VMW_PORT ) ); -} - -/** - * Issue GuestRPC command - * - * @v channel Channel number - * @v subcommand GuestRPC subcommand - * @v parameter Subcommand-specific parameter - * @ret edxhi Subcommand-specific result - * @ret ebx Subcommand-specific result - * @ret status Command status - */ -static inline __attribute__ (( always_inline )) uint32_t -vmware_cmd_guestrpc ( int channel, uint16_t subcommand, uint32_t parameter, - uint16_t *edxhi, uint32_t *ebx ) { - uint32_t discard_a; - uint32_t status; - uint32_t edx; - - /* Perform backdoor call */ - __asm__ __volatile__ ( VMW_BACKDOOR - : "=a" ( discard_a ), "=b" ( *ebx ), - "=c" ( status ), "=d" ( edx ) - : "0" ( VMW_MAGIC ), "1" ( parameter ), - "2" ( VMW_CMD_GUESTRPC | ( subcommand << 16 )), - "3" ( VMW_PORT | ( channel << 16 ) ) ); - *edxhi = ( edx >> 16 ); - - return status; -} - -extern int vmware_present ( void ); - -#endif /* _IPXE_VMWARE_H */ |