mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
Code Scrub for MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5567 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0f82bd5514
commit
42eedea958
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI 1.0b definitions from the ACPI Specification, revision 1.0b
|
ACPI 1.0b definitions from the ACPI Specification, revision 1.0b
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI 2.0 definitions from the ACPI Specification, revision 2.0
|
ACPI 2.0 definitions from the ACPI Specification, revision 2.0
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004
|
ACPI 3.0 definitions from the ACPI Specification Revision 3.0 September 2, 2004
|
||||||
|
|
||||||
Copyright (c) 2006 - 2008, Intel Corporation
|
Copyright (c) 2006 - 2008, Intel Corporation
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI Alert Standard Format Description Table ASF! as described in the ASF2.0 Specification
|
ACPI Alert Standard Format Description Table ASF! as described in the ASF2.0 Specification
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation
|
Copyright (c) 2006 - 2007, Intel Corporation
|
||||||
|
@ -15,8 +15,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _ATAPI_H
|
#ifndef _ATAPI_H_
|
||||||
#define _ATAPI_H
|
#define _ATAPI_H_
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/**@file
|
/** @file
|
||||||
ACPI high precision event timer table definition, defined at
|
ACPI high precision event timer table definition, defined at
|
||||||
ftp://download.intel.com/labs/platcomp/hpet/download/hpetspec098a.pdf.
|
ftp://download.intel.com/labs/platcomp/hpet/download/hpetspec098a.pdf.
|
||||||
Specification name is IA-PC HPET (High Precision Event Timers) Specification.
|
Specification name is IA-PC HPET (High Precision Event Timers) Specification.
|
||||||
|
@ -22,23 +22,23 @@
|
|||||||
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01
|
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01
|
||||||
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8
|
#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8
|
||||||
|
|
||||||
enum {
|
typedef enum {
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID = 0,
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID = 0,
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID,
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID,
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID,
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID,
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID,
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID,
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID,
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID,
|
||||||
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID
|
EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID
|
||||||
};
|
} EFI_ACPI_ISCSI_ID_DEFINITIONS;
|
||||||
|
|
||||||
enum {
|
typedef enum {
|
||||||
IpPrefixOriginOther = 0,
|
IpPrefixOriginOther = 0,
|
||||||
IpPrefixOriginManual,
|
IpPrefixOriginManual,
|
||||||
IpPrefixOriginWellKnown,
|
IpPrefixOriginWellKnown,
|
||||||
IpPrefixOriginDhcp,
|
IpPrefixOriginDhcp,
|
||||||
IpPrefixOriginRouterAdvertisement,
|
IpPrefixOriginRouterAdvertisement,
|
||||||
IpPrefixOriginUnchanged = 16
|
IpPrefixOriginUnchanged = 16
|
||||||
};
|
} IP_PREFIX_VALUE;
|
||||||
|
|
||||||
#pragma pack(1)
|
#pragma pack(1)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/**@file
|
/** @file
|
||||||
ACPI memory mapped configuration space access table definition, defined at
|
ACPI memory mapped configuration space access table definition, defined at
|
||||||
in the PCI Firmware Specification, version 3.0 draft version 0.5.
|
in the PCI Firmware Specification, version 3.0 draft version 0.5.
|
||||||
Specification is available at http://www.pcisig.com.
|
Specification is available at http://www.pcisig.com.
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _PCI_H
|
#ifndef _PCI_H_
|
||||||
#define _PCI_H
|
#define _PCI_H_
|
||||||
|
|
||||||
#include <IndustryStandard/Pci30.h>
|
#include <IndustryStandard/Pci30.h>
|
||||||
|
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _PCI22_H
|
#ifndef _PCI22_H_
|
||||||
#define _PCI22_H
|
#define _PCI22_H_
|
||||||
|
|
||||||
#define PCI_MAX_SEGMENT 0
|
#define PCI_MAX_SEGMENT 0
|
||||||
|
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _PCI23_H
|
#ifndef _PCI23_H_
|
||||||
#define _PCI23_H
|
#define _PCI23_H_
|
||||||
|
|
||||||
|
|
||||||
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
|
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/**@file
|
/** @file
|
||||||
This file contains definitions for the SPD fields on an SDRAM.
|
This file contains definitions for the SPD fields on an SDRAM.
|
||||||
|
|
||||||
Copyright (c) 2007, Intel Corporation
|
Copyright (c) 2007, Intel Corporation
|
||||||
@ -11,8 +11,8 @@
|
|||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _SDRAM_SPD_H
|
#ifndef _SDRAM_SPD_H_
|
||||||
#define _SDRAM_SPD_H
|
#define _SDRAM_SPD_H_
|
||||||
|
|
||||||
//
|
//
|
||||||
// SDRAM SPD field definitions
|
// SDRAM SPD field definitions
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/**@file
|
/** @file
|
||||||
ACPI Serial Port Console Redirection Table as defined by Microsoft in
|
ACPI Serial Port Console Redirection Table as defined by Microsoft in
|
||||||
http://www.microsoft.com/whdc/system/platform/server/spcr.mspx
|
http://www.microsoft.com/whdc/system/platform/server/spcr.mspx
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
TPM Specification data structures (TCG TPM Specification Version 1.2 Revision 94)
|
TPM Specification data structures (TCG TPM Specification Version 1.2 Revision 94)
|
||||||
See http://trustedcomputinggroup.org for latest specification updates
|
See http://trustedcomputinggroup.org for latest specification updates
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ typedef struct {
|
|||||||
#pragma pack()
|
#pragma pack()
|
||||||
|
|
||||||
|
|
||||||
enum {
|
typedef enum {
|
||||||
//
|
//
|
||||||
// USB request type
|
// USB request type
|
||||||
//
|
//
|
||||||
@ -191,7 +191,7 @@ enum {
|
|||||||
//Use 200 ms to increase the error handling response time
|
//Use 200 ms to increase the error handling response time
|
||||||
//
|
//
|
||||||
EFI_USB_INTERRUPT_DELAY = 2000000
|
EFI_USB_INTERRUPT_DELAY = 2000000
|
||||||
};
|
} USB_TYPES_DEFINITION;
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI Watchdog Action Table as defined at
|
ACPI Watchdog Action Table as defined at
|
||||||
Microsoft Hardware Watchdog Timer Specification.
|
Microsoft Hardware Watchdog Timer Specification.
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
/**
|
/** @file
|
||||||
@file
|
|
||||||
ACPI Watchdog Resource Table as defined at
|
ACPI Watchdog Resource Table as defined at
|
||||||
Microsoft Hardware Watchdog Timer Specification.
|
Microsoft Hardware Watchdog Timer Specification.
|
||||||
|
|
||||||
|
@ -3675,6 +3675,8 @@ CpuPause (
|
|||||||
function.
|
function.
|
||||||
@param NewStack A pointer to the new stack to use for the EntryPoint
|
@param NewStack A pointer to the new stack to use for the EntryPoint
|
||||||
function.
|
function.
|
||||||
|
@param ... Extended parameters.
|
||||||
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
VOID
|
VOID
|
||||||
@ -4930,9 +4932,9 @@ AsmSwitchStackAndBackingStore (
|
|||||||
@param PalEntryPoint The entry point address of PAL. The address in ar.kr5
|
@param PalEntryPoint The entry point address of PAL. The address in ar.kr5
|
||||||
would be used if this parameter were NULL on input.
|
would be used if this parameter were NULL on input.
|
||||||
@param Arg1 The first argument of a PAL call.
|
@param Arg1 The first argument of a PAL call.
|
||||||
@param Arg1 The second argument of a PAL call.
|
@param Arg2 The second argument of a PAL call.
|
||||||
@param Arg1 The third argument of a PAL call.
|
@param Arg3 The third argument of a PAL call.
|
||||||
@param Arg1 The fourth argument of a PAL call.
|
@param Arg4 The fourth argument of a PAL call.
|
||||||
|
|
||||||
@return The values returned in r8, r9, r10 and r11.
|
@return The values returned in r8, r9, r10 and r11.
|
||||||
|
|
||||||
@ -7061,7 +7063,7 @@ AsmDisablePaging32 (
|
|||||||
If EntryPoint is 0, then ASSERT().
|
If EntryPoint is 0, then ASSERT().
|
||||||
If NewStack is 0, then ASSERT().
|
If NewStack is 0, then ASSERT().
|
||||||
|
|
||||||
@param Cs The 16-bit selector to load in the CS before EntryPoint
|
@param CodeSelector The 16-bit selector to load in the CS before EntryPoint
|
||||||
is called. The descriptor in the GDT that this selector
|
is called. The descriptor in the GDT that this selector
|
||||||
references must be setup for long mode.
|
references must be setup for long mode.
|
||||||
@param EntryPoint The 64-bit virtual address of the function to call with
|
@param EntryPoint The 64-bit virtual address of the function to call with
|
||||||
@ -7102,7 +7104,7 @@ AsmEnablePaging64 (
|
|||||||
If EntryPoint is 0, then ASSERT().
|
If EntryPoint is 0, then ASSERT().
|
||||||
If NewStack is 0, then ASSERT().
|
If NewStack is 0, then ASSERT().
|
||||||
|
|
||||||
@param Cs The 16-bit selector to load in the CS before EntryPoint
|
@param CodeSelector The 16-bit selector to load in the CS before EntryPoint
|
||||||
is called. The descriptor in the GDT that this selector
|
is called. The descriptor in the GDT that this selector
|
||||||
references must be setup for 32-bit protected mode.
|
references must be setup for 32-bit protected mode.
|
||||||
@param EntryPoint The 64-bit virtual address of the function to call with
|
@param EntryPoint The 64-bit virtual address of the function to call with
|
||||||
|
@ -139,13 +139,11 @@ PiLibGetSectionFromCurrentFv (
|
|||||||
The data and size is returned by Buffer and Size. The caller is responsible to free the Buffer allocated
|
The data and size is returned by Buffer and Size. The caller is responsible to free the Buffer allocated
|
||||||
by this function. This function can only be called at TPL_NOTIFY and below.
|
by this function. This function can only be called at TPL_NOTIFY and below.
|
||||||
|
|
||||||
If FvHandle is NULL and WithinImage is TRUE, then ASSERT ();
|
|
||||||
If NameGuid is NULL, then ASSERT();
|
|
||||||
If Buffer is NULL, then ASSERT();
|
If Buffer is NULL, then ASSERT();
|
||||||
If Size is NULL, then ASSERT().
|
If Size is NULL, then ASSERT().
|
||||||
|
|
||||||
@param NameGuid The GUID name of a Firmware File.
|
|
||||||
@param SectionType The Firmware Section type.
|
@param SectionType The Firmware Section type.
|
||||||
|
@param Instance Instance number of a section.
|
||||||
@param Buffer On output, Buffer contains the the data read from the section in the Firmware File found.
|
@param Buffer On output, Buffer contains the the data read from the section in the Firmware File found.
|
||||||
@param Size On output, the size of Buffer.
|
@param Size On output, the size of Buffer.
|
||||||
|
|
||||||
|
@ -79,8 +79,8 @@ GetGraphicsBitMapFromFVEx (
|
|||||||
|
|
||||||
@param[in] BmpImage Pointer to BMP file
|
@param[in] BmpImage Pointer to BMP file
|
||||||
@param[in] BmpImageSize Number of bytes in BmpImage
|
@param[in] BmpImageSize Number of bytes in BmpImage
|
||||||
@param[in,out] UgaBlt Buffer containing UGA version of BmpImage.
|
@param[in out] UgaBlt Buffer containing UGA version of BmpImage.
|
||||||
@param[in,out] UgaBltSize Size of UgaBlt in bytes.
|
@param[in out] UgaBltSize Size of UgaBlt in bytes.
|
||||||
@param[out] PixelHeight Height of UgaBlt/BmpImage in pixels
|
@param[out] PixelHeight Height of UgaBlt/BmpImage in pixels
|
||||||
@param[out] PixelWidth Width of UgaBlt/BmpImage in pixels
|
@param[out] PixelWidth Width of UgaBlt/BmpImage in pixels
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ PciSegmentAnd8 (
|
|||||||
If any reserved bits in Address are set, then ASSERT().
|
If any reserved bits in Address are set, then ASSERT().
|
||||||
|
|
||||||
@param Address Address that encodes the PCI Segment, Bus, Device, Function, and Register.
|
@param Address Address that encodes the PCI Segment, Bus, Device, Function, and Register.
|
||||||
@param Andata The value to AND with the PCI configuration register.
|
@param AndData The value to AND with the PCI configuration register.
|
||||||
@param OrData The value to OR with the PCI configuration register.
|
@param OrData The value to OR with the PCI configuration register.
|
||||||
|
|
||||||
@return The value written to the PCI configuration register.
|
@return The value written to the PCI configuration register.
|
||||||
@ -416,7 +416,7 @@ PciSegmentAnd16 (
|
|||||||
If any reserved bits in Address are set, then ASSERT().
|
If any reserved bits in Address are set, then ASSERT().
|
||||||
|
|
||||||
@param Address Address that encodes the PCI Segment, Bus, Device, Function, and Register.
|
@param Address Address that encodes the PCI Segment, Bus, Device, Function, and Register.
|
||||||
@param Andata The value to AND with the PCI configuration register.
|
@param AndData The value to AND with the PCI configuration register.
|
||||||
@param OrData The value to OR with the PCI configuration register.
|
@param OrData The value to OR with the PCI configuration register.
|
||||||
|
|
||||||
@return The value written to the PCI configuration register.
|
@return The value written to the PCI configuration register.
|
||||||
|
@ -36,8 +36,7 @@
|
|||||||
from a firmware file, these should be NULL
|
from a firmware file, these should be NULL
|
||||||
|
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
PiLibInstallFvInfoPpi (
|
PiLibInstallFvInfoPpi (
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef _SCSI_LIB_H
|
#ifndef _SCSI_LIB_H_
|
||||||
#define _SCSI_LIB_H
|
#define _SCSI_LIB_H_
|
||||||
|
|
||||||
#include <Protocol/ScsiIo.h>
|
#include <Protocol/ScsiIo.h>
|
||||||
|
|
||||||
@ -29,7 +29,7 @@
|
|||||||
// since the value output by this macro is in 100ns unit,
|
// since the value output by this macro is in 100ns unit,
|
||||||
// not 1us unit (1us = 1000ns)
|
// not 1us unit (1us = 1000ns)
|
||||||
//
|
//
|
||||||
#define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND
|
#define EfiScsiStallSeconds(a) ((a) * EFI_SCSI_STALL_1_SECOND)
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -77,12 +77,12 @@ ScsiTestUnitReadyCommand (
|
|||||||
|
|
||||||
@param[in] ScsiIo SCSI IO Protocol to use
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
@param[in] Timeout The length of timeout period.
|
@param[in] Timeout The length of timeout period.
|
||||||
@param[out] SenseData A pointer to output sense data.
|
@param[in] SenseData A pointer to output sense data.
|
||||||
@param[in,out] SenseDataLength The length of output sense data.
|
@param[in out] SenseDataLength The length of output sense data.
|
||||||
@param[out] HostAdapterStatus The status of Host Adapter.
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
@param[out] TargetStatus The status of the target.
|
@param[out] TargetStatus The status of the target.
|
||||||
@param[in,out] InquirydataBuffer A pointer to inquiry data buffer.
|
@param[in out] InquirydataBuffer A pointer to inquiry data buffer.
|
||||||
@param[in,out] InquiryDataLength The length of inquiry data buffer.
|
@param[in out] InquiryDataLength The length of inquiry data buffer.
|
||||||
@param[in] EnableVitalProductData Boolean to enable Vital Product Data.
|
@param[in] EnableVitalProductData Boolean to enable Vital Product Data.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
@ -123,12 +123,12 @@ ScsiInquiryCommand (
|
|||||||
|
|
||||||
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
@param[in] Timeout The length of timeout period.
|
@param[in] Timeout The length of timeout period.
|
||||||
@param[out] SenseData A pointer to output sense data.
|
@param[in] SenseData A pointer to output sense data.
|
||||||
@param[in,out] SenseDataLength The length of output sense data.
|
@param[in out] SenseDataLength The length of output sense data.
|
||||||
@param[out] HostAdapterStatus The status of Host Adapter.
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
@param[out] TargetStatus The status of the target.
|
@param[out] TargetStatus The status of the target.
|
||||||
@param[in] DataBuffer A pointer to input data buffer.
|
@param[in] DataBuffer A pointer to input data buffer.
|
||||||
@param[in,out] DataLength The length of input data buffer.
|
@param[in out] DataLength The length of input data buffer.
|
||||||
@param[in] DBDField The DBD Field (Optional).
|
@param[in] DBDField The DBD Field (Optional).
|
||||||
@param[in] PageControl Page Control.
|
@param[in] PageControl Page Control.
|
||||||
@param[in] PageCode Page code.
|
@param[in] PageCode Page code.
|
||||||
@ -180,8 +180,8 @@ ScsiModeSense10Command (
|
|||||||
|
|
||||||
@param[in] ScsiIo SCSI IO Protocol to use
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
@param[in] Timeout TODO:
|
@param[in] Timeout TODO:
|
||||||
@param[out] SenseData TODO:
|
@param[in] SenseData TODO:
|
||||||
@param[in,out] SenseDataLength TODO:
|
@param[in out] SenseDataLength TODO:
|
||||||
@param[out] HostAdapterStatus TODO:
|
@param[out] HostAdapterStatus TODO:
|
||||||
@param[out] TargetStatus TODO:
|
@param[out] TargetStatus TODO:
|
||||||
|
|
||||||
@ -221,12 +221,12 @@ ScsiRequestSenseCommand (
|
|||||||
|
|
||||||
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
@param[in] Timeout The length of timeout period.
|
@param[in] Timeout The length of timeout period.
|
||||||
@param[out] SenseData A pointer to output sense data.
|
@param[in] SenseData A pointer to output sense data.
|
||||||
@param[in,out] SenseDataLength The length of output sense data.
|
@param[in out] SenseDataLength The length of output sense data.
|
||||||
@param[out] HostAdapterStatus The status of Host Adapter.
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
@param[out] TargetStatus The status of the target.
|
@param[out] TargetStatus The status of the target.
|
||||||
@param[out] DataBuffer A pointer to a data buffer.
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
@param[in,out] DataLength The length of data buffer.
|
@param[in out] DataLength The length of data buffer.
|
||||||
@param[in] PMI Partial medium indicator.
|
@param[in] PMI Partial medium indicator.
|
||||||
|
|
||||||
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
@retval EFI_SUCCESS The status of the unit is tested successfully.
|
||||||
@ -267,12 +267,12 @@ ScsiReadCapacityCommand (
|
|||||||
|
|
||||||
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
@param[in] ScsiIo A pointer to SCSI IO protocol.
|
||||||
@param[in] Timeout The length of timeout period.
|
@param[in] Timeout The length of timeout period.
|
||||||
@param[out] SenseData A pointer to output sense data.
|
@param[in] SenseData A pointer to output sense data.
|
||||||
@param[in,out] SenseDataLength The length of output sense data.
|
@param[in out] SenseDataLength The length of output sense data.
|
||||||
@param[out] HostAdapterStatus The status of Host Adapter.
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
@param[out] TargetStatus The status of the target.
|
@param[out] TargetStatus The status of the target.
|
||||||
@param[out] DataBuffer Read 10 command data.
|
@param[out] DataBuffer Read 10 command data.
|
||||||
@param[in,out] DataLength The length of data buffer.
|
@param[in out] DataLength The length of data buffer.
|
||||||
@param[in] StartLba The start address of LBA.
|
@param[in] StartLba The start address of LBA.
|
||||||
@param[in] SectorSize The sector size.
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
@ -315,12 +315,12 @@ ScsiRead10Command (
|
|||||||
|
|
||||||
@param[in] ScsiIo SCSI IO Protocol to use
|
@param[in] ScsiIo SCSI IO Protocol to use
|
||||||
@param[in] Timeout The length of timeout period.
|
@param[in] Timeout The length of timeout period.
|
||||||
@param[out] SenseData A pointer to output sense data.
|
@param[in] SenseData A pointer to output sense data.
|
||||||
@param[in,out] SenseDataLength The length of output sense data.
|
@param[in out] SenseDataLength The length of output sense data.
|
||||||
@param[out] HostAdapterStatus The status of Host Adapter.
|
@param[out] HostAdapterStatus The status of Host Adapter.
|
||||||
@param[out] TargetStatus The status of the target.
|
@param[out] TargetStatus The status of the target.
|
||||||
@param[out] DataBuffer A pointer to a data buffer.
|
@param[out] DataBuffer A pointer to a data buffer.
|
||||||
@param[in,out] DataLength The length of data buffer.
|
@param[in out] DataLength The length of data buffer.
|
||||||
@param[in] StartLba The start address of LBA.
|
@param[in] StartLba The start address of LBA.
|
||||||
@param[in] SectorSize The sector size.
|
@param[in] SectorSize The sector size.
|
||||||
|
|
||||||
|
@ -113,7 +113,6 @@ ProcessLibraryDestructorList (
|
|||||||
the user.
|
the user.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ProcessModuleEntryPointList (
|
ProcessModuleEntryPointList (
|
||||||
|
@ -129,6 +129,15 @@ ProcessLibraryDestructorList (
|
|||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
/**
|
||||||
|
Call the list of driver entry points. Automatics Generated by tool.
|
||||||
|
|
||||||
|
@param ImageHandle ImageHandle of the loaded driver.
|
||||||
|
@param SystemTable Pointer to the EFI System Table.
|
||||||
|
|
||||||
|
@return Status returned by entry points of drivers.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ProcessModuleEntryPointList (
|
ProcessModuleEntryPointList (
|
||||||
|
@ -355,7 +355,7 @@ EfiUpdateCapsule (
|
|||||||
stored in contiguous virtual memory.
|
stored in contiguous virtual memory.
|
||||||
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
@param CapsuleCount Number of pointers to EFI_CAPSULE_HEADER in
|
||||||
CaspuleHeaderArray.
|
CaspuleHeaderArray.
|
||||||
@param MaxiumCapsuleSize On output the maximum size that UpdateCapsule() can
|
@param MaximumCapsuleSize On output the maximum size that UpdateCapsule() can
|
||||||
support as an argument to UpdateCapsule() via
|
support as an argument to UpdateCapsule() via
|
||||||
CapsuleHeaderArray and ScatterGatherList.
|
CapsuleHeaderArray and ScatterGatherList.
|
||||||
Undefined on input.
|
Undefined on input.
|
||||||
@ -411,7 +411,7 @@ EfiQueryCapsuleCapabilities (
|
|||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EfiQueryVariableInfo (
|
EfiQueryVariableInfo (
|
||||||
IN UINT32 Attrubutes,
|
IN UINT32 Attributes,
|
||||||
OUT UINT64 *MaximumVariableStorageSize,
|
OUT UINT64 *MaximumVariableStorageSize,
|
||||||
OUT UINT64 *RemainingVariableStorageSize,
|
OUT UINT64 *RemainingVariableStorageSize,
|
||||||
OUT UINT64 *MaximumVariableSize
|
OUT UINT64 *MaximumVariableSize
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/**@file
|
/** @file
|
||||||
Common header file shared by all source files.
|
Common header file shared by all source files.
|
||||||
|
|
||||||
This file includes package header files, dependent library classes.
|
This file includes package header files, dependent library classes.
|
||||||
|
@ -147,7 +147,7 @@ IoRead64 (
|
|||||||
operations are serialized.
|
operations are serialized.
|
||||||
|
|
||||||
@param Port The I/O port to write.
|
@param Port The I/O port to write.
|
||||||
@param Value The value to write to the I/O port.
|
@param Data The value to write to the I/O port.
|
||||||
|
|
||||||
@return The value written to the I/O port. It equals to the
|
@return The value written to the I/O port. It equals to the
|
||||||
input Value instead of the actual value read back from
|
input Value instead of the actual value read back from
|
||||||
@ -172,7 +172,7 @@ IoWrite8 (
|
|||||||
operations are serialized.
|
operations are serialized.
|
||||||
|
|
||||||
@param Port The I/O port to write.
|
@param Port The I/O port to write.
|
||||||
@param Value The value to write to the I/O port.
|
@param Data The value to write to the I/O port.
|
||||||
|
|
||||||
@return The value written to the I/O port. It equals to the
|
@return The value written to the I/O port. It equals to the
|
||||||
input Value instead of the actual value read back from
|
input Value instead of the actual value read back from
|
||||||
@ -197,7 +197,7 @@ IoWrite16 (
|
|||||||
operations are serialized.
|
operations are serialized.
|
||||||
|
|
||||||
@param Port The I/O port to write.
|
@param Port The I/O port to write.
|
||||||
@param Value The value to write to the I/O port.
|
@param Data The value to write to the I/O port.
|
||||||
|
|
||||||
@return The value written to the I/O port. It equals to the
|
@return The value written to the I/O port. It equals to the
|
||||||
input Value instead of the actual value read back from
|
input Value instead of the actual value read back from
|
||||||
|
@ -47,7 +47,7 @@ MmioReadBuffer8 (
|
|||||||
|
|
||||||
ReturnBuffer = Buffer;
|
ReturnBuffer = Buffer;
|
||||||
|
|
||||||
while (Length--) {
|
while (Length-- != 0) {
|
||||||
*(Buffer++) = MmioRead8 (StartAddress++);
|
*(Buffer++) = MmioRead8 (StartAddress++);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ MmioReadBuffer16 (
|
|||||||
|
|
||||||
ReturnBuffer = Buffer;
|
ReturnBuffer = Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
*(Buffer++) = MmioRead16 (StartAddress);
|
*(Buffer++) = MmioRead16 (StartAddress);
|
||||||
StartAddress += sizeof (UINT16);
|
StartAddress += sizeof (UINT16);
|
||||||
Length -= sizeof (UINT16);
|
Length -= sizeof (UINT16);
|
||||||
@ -147,7 +147,7 @@ MmioReadBuffer32 (
|
|||||||
|
|
||||||
ReturnBuffer = Buffer;
|
ReturnBuffer = Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
*(Buffer++) = MmioRead32 (StartAddress);
|
*(Buffer++) = MmioRead32 (StartAddress);
|
||||||
StartAddress += sizeof (UINT32);
|
StartAddress += sizeof (UINT32);
|
||||||
Length -= sizeof (UINT32);
|
Length -= sizeof (UINT32);
|
||||||
@ -198,7 +198,7 @@ MmioReadBuffer64 (
|
|||||||
|
|
||||||
ReturnBuffer = Buffer;
|
ReturnBuffer = Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
*(Buffer++) = MmioRead64 (StartAddress);
|
*(Buffer++) = MmioRead64 (StartAddress);
|
||||||
StartAddress += sizeof (UINT64);
|
StartAddress += sizeof (UINT64);
|
||||||
Length -= sizeof (UINT64);
|
Length -= sizeof (UINT64);
|
||||||
@ -241,7 +241,7 @@ MmioWriteBuffer8 (
|
|||||||
|
|
||||||
ReturnBuffer = (UINT8 *) Buffer;
|
ReturnBuffer = (UINT8 *) Buffer;
|
||||||
|
|
||||||
while (Length--) {
|
while (Length-- != 0) {
|
||||||
MmioWrite8 (StartAddress++, *(Buffer++));
|
MmioWrite8 (StartAddress++, *(Buffer++));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ MmioWriteBuffer16 (
|
|||||||
|
|
||||||
ReturnBuffer = (UINT16 *) Buffer;
|
ReturnBuffer = (UINT16 *) Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
MmioWrite16 (StartAddress, *(Buffer++));
|
MmioWrite16 (StartAddress, *(Buffer++));
|
||||||
|
|
||||||
StartAddress += sizeof (UINT16);
|
StartAddress += sizeof (UINT16);
|
||||||
@ -346,7 +346,7 @@ MmioWriteBuffer32 (
|
|||||||
|
|
||||||
ReturnBuffer = (UINT32 *) Buffer;
|
ReturnBuffer = (UINT32 *) Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
MmioWrite32 (StartAddress, *(Buffer++));
|
MmioWrite32 (StartAddress, *(Buffer++));
|
||||||
|
|
||||||
StartAddress += sizeof (UINT32);
|
StartAddress += sizeof (UINT32);
|
||||||
@ -399,7 +399,7 @@ MmioWriteBuffer64 (
|
|||||||
|
|
||||||
ReturnBuffer = (UINT64 *) Buffer;
|
ReturnBuffer = (UINT64 *) Buffer;
|
||||||
|
|
||||||
while (Length) {
|
while (Length != 0) {
|
||||||
MmioWrite64 (StartAddress, *(Buffer++));
|
MmioWrite64 (StartAddress, *(Buffer++));
|
||||||
|
|
||||||
StartAddress += sizeof (UINT64);
|
StartAddress += sizeof (UINT64);
|
||||||
|
@ -26,8 +26,9 @@
|
|||||||
#include "BaseIoLibIntrinsicInternal.h"
|
#include "BaseIoLibIntrinsicInternal.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics
|
// Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.
|
||||||
//
|
//
|
||||||
|
|
||||||
int _inp (unsigned short port);
|
int _inp (unsigned short port);
|
||||||
unsigned short _inpw (unsigned short port);
|
unsigned short _inpw (unsigned short port);
|
||||||
unsigned long _inpd (unsigned short port);
|
unsigned long _inpd (unsigned short port);
|
||||||
|
@ -265,7 +265,7 @@ EFIAPI
|
|||||||
InternalMathDivRemU64x32 (
|
InternalMathDivRemU64x32 (
|
||||||
IN UINT64 Dividend,
|
IN UINT64 Dividend,
|
||||||
IN UINT32 Divisor,
|
IN UINT32 Divisor,
|
||||||
OUT UINT32 *Remainder
|
OUT UINT32 *Remainder OPTIONAL
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -290,7 +290,7 @@ EFIAPI
|
|||||||
InternalMathDivRemU64x64 (
|
InternalMathDivRemU64x64 (
|
||||||
IN UINT64 Dividend,
|
IN UINT64 Dividend,
|
||||||
IN UINT64 Divisor,
|
IN UINT64 Divisor,
|
||||||
OUT UINT64 *Remainder
|
OUT UINT64 *Remainder OPTIONAL
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,7 +18,11 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "BaseLibInternals.h"
|
#include "BaseLibInternals.h"
|
||||||
|
/**
|
||||||
VOID __chkstk() {
|
Hack function for passing GCC build.
|
||||||
|
**/
|
||||||
|
VOID
|
||||||
|
__chkstk()
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,19 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Shifts a 64-bit integer right between 0 and 63 bits. The high bits
|
||||||
|
are filled with original integer's bit 63. The shifted value is returned.
|
||||||
|
|
||||||
|
This function shifts the 64-bit value Operand to the right by Count bits. The
|
||||||
|
high Count bits are set to bit 63 of Operand. The shifted value is returned.
|
||||||
|
|
||||||
|
@param Operand The 64-bit operand to shift right.
|
||||||
|
@param Count The number of bits to shift right.
|
||||||
|
|
||||||
|
@return Operand arithmetically shifted right by Count
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathARShiftU64 (
|
InternalMathARShiftU64 (
|
||||||
|
@ -17,13 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
//
|
/**
|
||||||
// Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics
|
Microsoft Visual Studio 7.1 Function Prototypes for I/O Intrinsics.
|
||||||
//
|
**/
|
||||||
void __debugbreak ();
|
void __debugbreak ();
|
||||||
|
|
||||||
#pragma intrinsic(__debugbreak)
|
#pragma intrinsic(__debugbreak)
|
||||||
|
|
||||||
|
/**
|
||||||
|
Generates a breakpoint on the CPU.
|
||||||
|
|
||||||
|
Generates a breakpoint on the CPU. The breakpoint must be implemented such
|
||||||
|
that code can resume normal execution after the breakpoint.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CpuBreakpoint (
|
CpuBreakpoint (
|
||||||
|
@ -17,6 +17,31 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves CPUID information.
|
||||||
|
|
||||||
|
Executes the CPUID instruction with EAX set to the value specified by Index.
|
||||||
|
This function always returns Index.
|
||||||
|
If Eax is not NULL, then the value of EAX after CPUID is returned in Eax.
|
||||||
|
If Ebx is not NULL, then the value of EBX after CPUID is returned in Ebx.
|
||||||
|
If Ecx is not NULL, then the value of ECX after CPUID is returned in Ecx.
|
||||||
|
If Edx is not NULL, then the value of EDX after CPUID is returned in Edx.
|
||||||
|
This function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Index The 32-bit value to load into EAX prior to invoking the CPUID
|
||||||
|
instruction.
|
||||||
|
@param Eax Pointer to the 32-bit EAX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be NULL.
|
||||||
|
@param Ebx Pointer to the 32-bit EBX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be NULL.
|
||||||
|
@param Ecx Pointer to the 32-bit ECX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be NULL.
|
||||||
|
@param Edx Pointer to the 32-bit EDX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be NULL.
|
||||||
|
|
||||||
|
@return Index
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmCpuid (
|
AsmCpuid (
|
||||||
|
@ -17,6 +17,38 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Retrieves CPUID information using an extended leaf identifier.
|
||||||
|
|
||||||
|
Executes the CPUID instruction with EAX set to the value specified by Index
|
||||||
|
and ECX set to the value specified by SubIndex. This function always returns
|
||||||
|
Index. This function is only available on IA-32 and x64.
|
||||||
|
|
||||||
|
If Eax is not NULL, then the value of EAX after CPUID is returned in Eax.
|
||||||
|
If Ebx is not NULL, then the value of EBX after CPUID is returned in Ebx.
|
||||||
|
If Ecx is not NULL, then the value of ECX after CPUID is returned in Ecx.
|
||||||
|
If Edx is not NULL, then the value of EDX after CPUID is returned in Edx.
|
||||||
|
|
||||||
|
@param Index The 32-bit value to load into EAX prior to invoking the
|
||||||
|
CPUID instruction.
|
||||||
|
@param SubIndex The 32-bit value to load into ECX prior to invoking the
|
||||||
|
CPUID instruction.
|
||||||
|
@param Eax Pointer to the 32-bit EAX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be
|
||||||
|
NULL.
|
||||||
|
@param Ebx Pointer to the 32-bit EBX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be
|
||||||
|
NULL.
|
||||||
|
@param Ecx Pointer to the 32-bit ECX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be
|
||||||
|
NULL.
|
||||||
|
@param Edx Pointer to the 32-bit EDX value returned by the CPUID
|
||||||
|
instruction. This is an optional parameter that may be
|
||||||
|
NULL.
|
||||||
|
|
||||||
|
@return Index
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmCpuidEx (
|
AsmCpuidEx (
|
||||||
|
@ -17,6 +17,13 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Requests CPU to pause for a short period of time.
|
||||||
|
|
||||||
|
Requests CPU to pause for a short period of time. Typically used in MP
|
||||||
|
systems to prevent memory starvation while waiting for a spin lock.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CpuPause (
|
CpuPause (
|
||||||
|
@ -17,6 +17,14 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Places the CPU in a sleep state until an interrupt is received.
|
||||||
|
|
||||||
|
Places the CPU in a sleep state until an interrupt is received. If interrupts
|
||||||
|
are disabled prior to calling this function, then the CPU will be placed in a
|
||||||
|
sleep state indefinitely.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
CpuSleep (
|
CpuSleep (
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Disables CPU interrupts.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
DisableInterrupts (
|
DisableInterrupts (
|
||||||
|
@ -19,6 +19,36 @@
|
|||||||
|
|
||||||
#if _MSC_EXTENSIONS
|
#if _MSC_EXTENSIONS
|
||||||
|
|
||||||
|
/**
|
||||||
|
Disables the 32-bit paging mode on the CPU.
|
||||||
|
|
||||||
|
Disables the 32-bit paging mode on the CPU and returns to 32-bit protected
|
||||||
|
mode. This function assumes the current execution mode is 32-paged protected
|
||||||
|
mode. This function is only available on IA-32. After the 32-bit paging mode
|
||||||
|
is disabled, control is transferred to the function specified by EntryPoint
|
||||||
|
using the new stack specified by NewStack and passing in the parameters
|
||||||
|
specified by Context1 and Context2. Context1 and Context2 are optional and
|
||||||
|
may be NULL. The function EntryPoint must never return.
|
||||||
|
|
||||||
|
There are a number of constraints that must be followed before calling this
|
||||||
|
function:
|
||||||
|
1) Interrupts must be disabled.
|
||||||
|
2) The caller must be in 32-bit paged mode.
|
||||||
|
3) CR0, CR3, and CR4 must be compatible with 32-bit paged mode.
|
||||||
|
4) CR3 must point to valid page tables that guarantee that the pages for
|
||||||
|
this function and the stack are identity mapped.
|
||||||
|
|
||||||
|
@param EntryPoint A pointer to function to call with the new stack after
|
||||||
|
paging is disabled.
|
||||||
|
@param Context1 A pointer to the context to pass into the EntryPoint
|
||||||
|
function as the first parameter after paging is disabled.
|
||||||
|
@param Context2 A pointer to the context to pass into the EntryPoint
|
||||||
|
function as the second parameter after paging is
|
||||||
|
disabled.
|
||||||
|
@param NewStack A pointer to the new stack to use for the EntryPoint
|
||||||
|
function after paging is disabled.
|
||||||
|
|
||||||
|
**/
|
||||||
__declspec (naked)
|
__declspec (naked)
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Divides a 64-bit unsigned integer by a 32-bit unsigned integer and
|
||||||
|
generates a 64-bit unsigned result.
|
||||||
|
|
||||||
|
This function divides the 64-bit unsigned value Dividend by the 32-bit
|
||||||
|
unsigned value Divisor and generates a 64-bit unsigned quotient. This
|
||||||
|
function returns the 64-bit unsigned quotient.
|
||||||
|
|
||||||
|
@param Dividend A 64-bit unsigned value.
|
||||||
|
@param Divisor A 32-bit unsigned value.
|
||||||
|
|
||||||
|
@return Dividend / Divisor
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathDivU64x32 (
|
InternalMathDivU64x32 (
|
||||||
|
@ -17,6 +17,23 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Divides a 64-bit unsigned integer by a 32-bit unsigned integer and
|
||||||
|
generates a 64-bit unsigned result and an optional 32-bit unsigned remainder.
|
||||||
|
|
||||||
|
This function divides the 64-bit unsigned value Dividend by the 32-bit
|
||||||
|
unsigned value Divisor and generates a 64-bit unsigned quotient. If Remainder
|
||||||
|
is not NULL, then the 32-bit unsigned remainder is returned in Remainder.
|
||||||
|
This function returns the 64-bit unsigned quotient.
|
||||||
|
|
||||||
|
@param Dividend A 64-bit unsigned value.
|
||||||
|
@param Divisor A 32-bit unsigned value.
|
||||||
|
@param Remainder A pointer to a 32-bit unsigned value. This parameter is
|
||||||
|
optional and may be NULL.
|
||||||
|
|
||||||
|
@return Dividend / Divisor
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathDivRemU64x32 (
|
InternalMathDivRemU64x32 (
|
||||||
|
@ -17,6 +17,11 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enables CPU interrupts for the smallest window required to capture any
|
||||||
|
pending interrupts.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EnableDisableInterrupts (
|
EnableDisableInterrupts (
|
||||||
|
@ -17,6 +17,10 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enables CPU interrupts.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
EnableInterrupts (
|
EnableInterrupts (
|
||||||
|
@ -19,6 +19,39 @@
|
|||||||
|
|
||||||
#if _MSC_EXTENSIONS
|
#if _MSC_EXTENSIONS
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enables the 32-bit paging mode on the CPU.
|
||||||
|
|
||||||
|
Enables the 32-bit paging mode on the CPU. CR0, CR3, CR4, and the page tables
|
||||||
|
must be properly initialized prior to calling this service. This function
|
||||||
|
assumes the current execution mode is 32-bit protected mode. This function is
|
||||||
|
only available on IA-32. After the 32-bit paging mode is enabled, control is
|
||||||
|
transferred to the function specified by EntryPoint using the new stack
|
||||||
|
specified by NewStack and passing in the parameters specified by Context1 and
|
||||||
|
Context2. Context1 and Context2 are optional and may be NULL. The function
|
||||||
|
EntryPoint must never return.
|
||||||
|
|
||||||
|
There are a number of constraints that must be followed before calling this
|
||||||
|
function:
|
||||||
|
1) Interrupts must be disabled.
|
||||||
|
2) The caller must be in 32-bit protected mode with flat descriptors. This
|
||||||
|
means all descriptors must have a base of 0 and a limit of 4GB.
|
||||||
|
3) CR0 and CR4 must be compatible with 32-bit protected mode with flat
|
||||||
|
descriptors.
|
||||||
|
4) CR3 must point to valid page tables that will be used once the transition
|
||||||
|
is complete, and those page tables must guarantee that the pages for this
|
||||||
|
function and the stack are identity mapped.
|
||||||
|
|
||||||
|
@param EntryPoint A pointer to function to call with the new stack after
|
||||||
|
paging is enabled.
|
||||||
|
@param Context1 A pointer to the context to pass into the EntryPoint
|
||||||
|
function as the first parameter after paging is enabled.
|
||||||
|
@param Context2 A pointer to the context to pass into the EntryPoint
|
||||||
|
function as the second parameter after paging is enabled.
|
||||||
|
@param NewStack A pointer to the new stack to use for the EntryPoint
|
||||||
|
function after paging is enabled.
|
||||||
|
|
||||||
|
**/
|
||||||
__declspec (naked)
|
__declspec (naked)
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -17,6 +17,21 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Flushes a cache line from all the instruction and data caches within the
|
||||||
|
coherency domain of the CPU.
|
||||||
|
|
||||||
|
Flushed the cache line specified by LinearAddress, and returns LinearAddress.
|
||||||
|
This function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param LinearAddress The address of the cache line to flush. If the CPU is
|
||||||
|
in a physical addressing mode, then LinearAddress is a
|
||||||
|
physical address. If the CPU is in a virtual
|
||||||
|
addressing mode, then LinearAddress is a virtual
|
||||||
|
address.
|
||||||
|
|
||||||
|
@return LinearAddress
|
||||||
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmFlushCacheLine (
|
AsmFlushCacheLine (
|
||||||
|
@ -18,6 +18,16 @@
|
|||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Restores the current floating point/SSE/SSE2 context from a buffer.
|
||||||
|
|
||||||
|
Restores the current floating point/SSE/SSE2 state from the buffer specified
|
||||||
|
by Buffer. Buffer must be aligned on a 16-byte boundary. This function is
|
||||||
|
only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Buffer Pointer to a buffer to save the floating point/SSE/SSE2 context.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalX86FxRestore (
|
InternalX86FxRestore (
|
||||||
|
@ -18,6 +18,16 @@
|
|||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Save the current floating point/SSE/SSE2 context to a buffer.
|
||||||
|
|
||||||
|
Saves the current floating point/SSE/SSE2 state to the buffer specified by
|
||||||
|
Buffer. Buffer must be aligned on a 16-byte boundary. This function is only
|
||||||
|
available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Buffer Pointer to a buffer to save the floating point/SSE/SSE2 context.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalX86FxSave (
|
InternalX86FxSave (
|
||||||
|
@ -17,6 +17,23 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs an atomic compare exchange operation on a 32-bit unsigned integer.
|
||||||
|
|
||||||
|
Performs an atomic compare exchange operation on the 32-bit unsigned integer
|
||||||
|
specified by Value. If Value is equal to CompareValue, then Value is set to
|
||||||
|
ExchangeValue and CompareValue is returned. If Value is not equal to CompareValue,
|
||||||
|
then Value is returned. The compare exchange operation must be performed using
|
||||||
|
MP safe mechanisms.
|
||||||
|
|
||||||
|
@param Value A pointer to the 32-bit value for the compare exchange
|
||||||
|
operation.
|
||||||
|
@param CompareValue 32-bit value used in compare operation.
|
||||||
|
@param ExchangeValue 32-bit value used in exchange operation.
|
||||||
|
|
||||||
|
@return The original *Value before exchange.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalSyncCompareExchange32 (
|
InternalSyncCompareExchange32 (
|
||||||
|
@ -17,6 +17,22 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs an atomic compare exchange operation on a 64-bit unsigned integer.
|
||||||
|
|
||||||
|
Performs an atomic compare exchange operation on the 64-bit unsigned integer specified
|
||||||
|
by Value. If Value is equal to CompareValue, then Value is set to ExchangeValue and
|
||||||
|
CompareValue is returned. If Value is not equal to CompareValue, then Value is returned.
|
||||||
|
The compare exchange operation must be performed using MP safe mechanisms.
|
||||||
|
|
||||||
|
@param Value A pointer to the 64-bit value for the compare exchange
|
||||||
|
operation.
|
||||||
|
@param CompareValue 64-bit value used in compare operation.
|
||||||
|
@param ExchangeValue 64-bit value used in exchange operation.
|
||||||
|
|
||||||
|
@return The original *Value before exchange.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalSyncCompareExchange64 (
|
InternalSyncCompareExchange64 (
|
||||||
|
@ -17,6 +17,19 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs an atomic decrement of an 32-bit unsigned integer.
|
||||||
|
|
||||||
|
Performs an atomic decrement of the 32-bit unsigned integer specified by
|
||||||
|
Value and returns the decrement value. The decrement operation must be
|
||||||
|
performed using MP safe mechanisms. The state of the return value is not
|
||||||
|
guaranteed to be MP safe.
|
||||||
|
|
||||||
|
@param Value A pointer to the 32-bit value to decrement.
|
||||||
|
|
||||||
|
@return The decrement value.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalSyncDecrement (
|
InternalSyncDecrement (
|
||||||
|
@ -17,6 +17,19 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Performs an atomic increment of an 32-bit unsigned integer.
|
||||||
|
|
||||||
|
Performs an atomic increment of the 32-bit unsigned integer specified by
|
||||||
|
Value and returns the incremented value. The increment operation must be
|
||||||
|
performed using MP safe mechanisms. The state of the return value is not
|
||||||
|
guaranteed to be MP safe.
|
||||||
|
|
||||||
|
@param Value A pointer to the 32-bit value to increment.
|
||||||
|
|
||||||
|
@return The incremented value.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalSyncIncrement (
|
InternalSyncIncrement (
|
||||||
|
@ -17,6 +17,13 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Executes a INVD instruction.
|
||||||
|
|
||||||
|
Executes a INVD instruction. This function is only available on IA-32 and
|
||||||
|
X64.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmInvd (
|
AsmInvd (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Rotates a 64-bit integer left between 0 and 63 bits, filling
|
||||||
|
the low bits with the high bits that were rotated.
|
||||||
|
|
||||||
|
This function rotates the 64-bit value Operand to the left by Count bits. The
|
||||||
|
low Count bits are fill with the high Count bits of Operand. The rotated
|
||||||
|
value is returned.
|
||||||
|
|
||||||
|
@param Operand The 64-bit operand to rotate left.
|
||||||
|
@param Count The number of bits to rotate left.
|
||||||
|
|
||||||
|
@return Operand <<< Count
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathLRotU64 (
|
InternalMathLRotU64 (
|
||||||
|
@ -17,6 +17,19 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Shifts a 64-bit integer left between 0 and 63 bits. The low bits
|
||||||
|
are filled with zeros. The shifted value is returned.
|
||||||
|
|
||||||
|
This function shifts the 64-bit value Operand to the left by Count bits. The
|
||||||
|
low Count bits are set to zero. The shifted value is returned.
|
||||||
|
|
||||||
|
@param Operand The 64-bit operand to shift left.
|
||||||
|
@param Count The number of bits to shift left.
|
||||||
|
|
||||||
|
@return Operand << Count
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathLShiftU64 (
|
InternalMathLShiftU64 (
|
||||||
|
@ -18,6 +18,17 @@
|
|||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Restores the CPU context that was saved with SetJump().
|
||||||
|
|
||||||
|
Restores the CPU context from the buffer specified by JumpBuffer.
|
||||||
|
This function never returns to the caller.
|
||||||
|
Instead is resumes execution based on the state of JumpBuffer.
|
||||||
|
|
||||||
|
@param JumpBuffer A pointer to CPU context buffer.
|
||||||
|
@param Value The value to return when the SetJump() context is restored.
|
||||||
|
|
||||||
|
**/
|
||||||
__declspec (naked)
|
__declspec (naked)
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Divides a 64-bit unsigned integer by a 32-bit unsigned integer and
|
||||||
|
generates a 32-bit unsigned remainder.
|
||||||
|
|
||||||
|
This function divides the 64-bit unsigned value Dividend by the 32-bit
|
||||||
|
unsigned value Divisor and generates a 32-bit remainder. This function
|
||||||
|
returns the 32-bit unsigned remainder.
|
||||||
|
|
||||||
|
@param Dividend A 64-bit unsigned value.
|
||||||
|
@param Divisor A 32-bit unsigned value.
|
||||||
|
|
||||||
|
@return Dividend % Divisor
|
||||||
|
|
||||||
|
**/
|
||||||
UINT32
|
UINT32
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathModU64x32 (
|
InternalMathModU64x32 (
|
||||||
|
@ -17,6 +17,22 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Sets up a monitor buffer that is used by AsmMwait().
|
||||||
|
|
||||||
|
Executes a MONITOR instruction with the register state specified by Eax, Ecx
|
||||||
|
and Edx. Returns Eax. This function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Eax The value to load into EAX or RAX before executing the MONITOR
|
||||||
|
instruction.
|
||||||
|
@param Ecx The value to load into ECX or RCX before executing the MONITOR
|
||||||
|
instruction.
|
||||||
|
@param Edx The value to load into EDX or RDX before executing the MONITOR
|
||||||
|
instruction.
|
||||||
|
|
||||||
|
@return Eax
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmMonitor (
|
AsmMonitor (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Multiples a 64-bit unsigned integer by a 32-bit unsigned integer
|
||||||
|
and generates a 64-bit unsigned result.
|
||||||
|
|
||||||
|
This function multiples the 64-bit unsigned value Multiplicand by the 32-bit
|
||||||
|
unsigned value Multiplier and generates a 64-bit unsigned result. This 64-
|
||||||
|
bit unsigned result is returned.
|
||||||
|
|
||||||
|
@param Multiplicand A 64-bit unsigned value.
|
||||||
|
@param Multiplier A 32-bit unsigned value.
|
||||||
|
|
||||||
|
@return Multiplicand * Multiplier
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathMultU64x32 (
|
InternalMathMultU64x32 (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Multiples a 64-bit unsigned integer by a 64-bit unsigned integer
|
||||||
|
and generates a 64-bit unsigned result.
|
||||||
|
|
||||||
|
This function multiples the 64-bit unsigned value Multiplicand by the 64-bit
|
||||||
|
unsigned value Multiplier and generates a 64-bit unsigned result. This 64-
|
||||||
|
bit unsigned result is returned.
|
||||||
|
|
||||||
|
@param Multiplicand A 64-bit unsigned value.
|
||||||
|
@param Multiplier A 64-bit unsigned value.
|
||||||
|
|
||||||
|
@return Multiplicand * Multiplier
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathMultU64x64 (
|
InternalMathMultU64x64 (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Executes an MWAIT instruction.
|
||||||
|
|
||||||
|
Executes an MWAIT instruction with the register state specified by Eax and
|
||||||
|
Ecx. Returns Eax. This function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Eax The value to load into EAX or RAX before executing the MONITOR
|
||||||
|
instruction.
|
||||||
|
@param Ecx The value to load into ECX or RCX before executing the MONITOR
|
||||||
|
instruction.
|
||||||
|
|
||||||
|
@return Eax
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmMwait (
|
AsmMwait (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Rotates a 64-bit integer right between 0 and 63 bits, filling
|
||||||
|
the high bits with the high low bits that were rotated.
|
||||||
|
|
||||||
|
This function rotates the 64-bit value Operand to the right by Count bits.
|
||||||
|
The high Count bits are fill with the low Count bits of Operand. The rotated
|
||||||
|
value is returned.
|
||||||
|
|
||||||
|
@param Operand The 64-bit operand to rotate right.
|
||||||
|
@param Count The number of bits to rotate right.
|
||||||
|
|
||||||
|
@return Operand >>> Count
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathRRotU64 (
|
InternalMathRRotU64 (
|
||||||
|
@ -17,6 +17,19 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Shifts a 64-bit integer right between 0 and 63 bits. This high bits
|
||||||
|
are filled with zeros. The shifted value is returned.
|
||||||
|
|
||||||
|
This function shifts the 64-bit value Operand to the right by Count bits. The
|
||||||
|
high Count bits are set to zero. The shifted value is returned.
|
||||||
|
|
||||||
|
@param Operand The 64-bit operand to shift right.
|
||||||
|
@param Count The number of bits to shift right.
|
||||||
|
|
||||||
|
@return Operand >> Count
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathRShiftU64 (
|
InternalMathRShiftU64 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of the Control Register 0 (CR0).
|
||||||
|
|
||||||
|
Reads and returns the current value of CR4. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of the Control Register 0 (CR0).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadCr0 (
|
AsmReadCr0 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of the Control Register 2 (CR2).
|
||||||
|
|
||||||
|
Reads and returns the current value of CR2. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of the Control Register 2 (CR2).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadCr2 (
|
AsmReadCr2 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of the Control Register 3 (CR3).
|
||||||
|
|
||||||
|
Reads and returns the current value of CR3. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of the Control Register 3 (CR3).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadCr3 (
|
AsmReadCr3 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of the Control Register 4 (CR4).
|
||||||
|
|
||||||
|
Reads and returns the current value of CR4. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of the Control Register 4 (CR4).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadCr4 (
|
AsmReadCr4 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Code Segment Register (CS).
|
||||||
|
|
||||||
|
Reads and returns the current value of CS. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of CS.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadCs (
|
AsmReadCs (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 0 (DR0).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR0. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 0 (DR0).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr0 (
|
AsmReadDr0 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 1 (DR1).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR1. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 1 (DR1).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr1 (
|
AsmReadDr1 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 2 (DR2).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR2. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 2 (DR2).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr2 (
|
AsmReadDr2 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 3 (DR3).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR3. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 3 (DR3).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr3 (
|
AsmReadDr3 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 4 (DR4).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR4. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 4 (DR4).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr4 (
|
AsmReadDr4 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 5 (DR5).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR5. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 5 (DR5).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr5 (
|
AsmReadDr5 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 6 (DR6).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR6. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 6 (DR6).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr6 (
|
AsmReadDr6 (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Debug Register 7 (DR7).
|
||||||
|
|
||||||
|
Reads and returns the current value of DR7. This function is only available
|
||||||
|
on IA-32 and X64. This returns a 32-bit value on IA-32 and a 64-bit value on
|
||||||
|
X64.
|
||||||
|
|
||||||
|
@return The value of Debug Register 7 (DR7).
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDr7 (
|
AsmReadDr7 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Data Segment Register (DS).
|
||||||
|
|
||||||
|
Reads and returns the current value of DS. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of DS.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadDs (
|
AsmReadDs (
|
||||||
|
@ -17,6 +17,16 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of the EFLAGS register.
|
||||||
|
|
||||||
|
Reads and returns the current value of the EFLAGS register. This function is
|
||||||
|
only available on IA-32 and X64. This returns a 32-bit value on IA-32 and a
|
||||||
|
64-bit value on X64.
|
||||||
|
|
||||||
|
@return EFLAGS on IA-32 or RFLAGS on X64.
|
||||||
|
|
||||||
|
**/
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadEflags (
|
AsmReadEflags (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of ES Data Segment Register (ES).
|
||||||
|
|
||||||
|
Reads and returns the current value of ES. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of ES.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadEs (
|
AsmReadEs (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of FS Data Segment Register (FS).
|
||||||
|
|
||||||
|
Reads and returns the current value of FS. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of FS.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadFs (
|
AsmReadFs (
|
||||||
|
@ -18,6 +18,15 @@
|
|||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current Global Descriptor Table Register(GDTR) descriptor.
|
||||||
|
|
||||||
|
Reads and returns the current GDTR descriptor and returns it in Gdtr. This
|
||||||
|
function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Gdtr Pointer to a GDTR descriptor.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalX86ReadGdtr (
|
InternalX86ReadGdtr (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of GS Data Segment Register (GS).
|
||||||
|
|
||||||
|
Reads and returns the current value of GS. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of GS.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadGs (
|
AsmReadGs (
|
||||||
|
@ -18,6 +18,15 @@
|
|||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current Interrupt Descriptor Table Register(GDTR) descriptor.
|
||||||
|
|
||||||
|
Reads and returns the current IDTR descriptor and returns it in Idtr. This
|
||||||
|
function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Idtr Pointer to a IDTR descriptor.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalX86ReadIdtr (
|
InternalX86ReadIdtr (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current Local Descriptor Table Register(LDTR) selector.
|
||||||
|
|
||||||
|
Reads and returns the current 16-bit LDTR descriptor value. This function is
|
||||||
|
only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current selector of LDT.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadLdtr (
|
AsmReadLdtr (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #0 (MM0).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM0. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM0.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm0 (
|
AsmReadMm0 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #1 (MM1).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM1. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM1.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm1 (
|
AsmReadMm1 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #2 (MM2).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM2. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM2.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm2 (
|
AsmReadMm2 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #3 (MM3).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM3. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM3.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm3 (
|
AsmReadMm3 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #4 (MM4).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM4. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM4.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm4 (
|
AsmReadMm4 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #5 (MM5).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM5. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM5.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm5 (
|
AsmReadMm5 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #6 (MM6).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM6. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM6.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm6 (
|
AsmReadMm6 (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of 64-bit MMX Register #7 (MM7).
|
||||||
|
|
||||||
|
Reads and returns the current value of MM7. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of MM7.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMm7 (
|
AsmReadMm7 (
|
||||||
|
@ -17,6 +17,20 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Returns a 64-bit Machine Specific Register(MSR).
|
||||||
|
|
||||||
|
Reads and returns the 64-bit MSR specified by Index. No parameter checking is
|
||||||
|
performed on Index, and some Index values may cause CPU exceptions. The
|
||||||
|
caller must either guarantee that Index is valid, or the caller must set up
|
||||||
|
exception handlers to catch the exceptions. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Index The 32-bit MSR index to read.
|
||||||
|
|
||||||
|
@return The value of the MSR identified by Index.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadMsr64 (
|
AsmReadMsr64 (
|
||||||
|
@ -17,6 +17,17 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of a Performance Counter (PMC).
|
||||||
|
|
||||||
|
Reads and returns the current value of performance counter specified by
|
||||||
|
Index. This function is only available on IA-32 and X64.
|
||||||
|
|
||||||
|
@param Index The 32-bit Performance Counter index to read.
|
||||||
|
|
||||||
|
@return The value of the PMC specified by Index.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadPmc (
|
AsmReadPmc (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Stack Segment Register (SS).
|
||||||
|
|
||||||
|
Reads and returns the current value of SS. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of SS.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadSs (
|
AsmReadSs (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Task Register (TR).
|
||||||
|
|
||||||
|
Reads and returns the current value of TR. This function is only available on
|
||||||
|
IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of TR.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT16
|
UINT16
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadTr (
|
AsmReadTr (
|
||||||
|
@ -17,6 +17,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Reads the current value of Time Stamp Counter (TSC).
|
||||||
|
|
||||||
|
Reads and returns the current value of TSC. This function is only available
|
||||||
|
on IA-32 and X64.
|
||||||
|
|
||||||
|
@return The current value of TSC
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmReadTsc (
|
AsmReadTsc (
|
||||||
|
@ -17,13 +17,39 @@
|
|||||||
//
|
//
|
||||||
#include <BaseLibInternals.h>
|
#include <BaseLibInternals.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
Worker function that checks ASSERT condition for JumpBuffer
|
||||||
|
|
||||||
|
Checks ASSERT condition for JumpBuffer.
|
||||||
|
|
||||||
|
If JumpBuffer is NULL, then ASSERT().
|
||||||
|
For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT().
|
||||||
|
|
||||||
|
@param JumpBuffer A pointer to CPU context buffer.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalAssertJumpBuffer (
|
InternalAssertJumpBuffer (
|
||||||
IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
|
IN BASE_LIBRARY_JUMP_BUFFER *JumpBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Saves the current CPU context that can be restored with a call to LongJump()
|
||||||
|
and returns 0.
|
||||||
|
|
||||||
|
Saves the current CPU context in the buffer specified by JumpBuffer and
|
||||||
|
returns 0. The initial call to SetJump() must always return 0. Subsequent
|
||||||
|
calls to LongJump() cause a non-zero value to be returned by SetJump().
|
||||||
|
|
||||||
|
If JumpBuffer is NULL, then ASSERT().
|
||||||
|
For IPF CPUs, if JumpBuffer is not aligned on a 16-byte boundary, then ASSERT().
|
||||||
|
|
||||||
|
@param JumpBuffer A pointer to CPU context buffer.
|
||||||
|
|
||||||
|
@retval 0 Indicates a return from SetJump().
|
||||||
|
|
||||||
|
**/
|
||||||
_declspec (naked)
|
_declspec (naked)
|
||||||
UINTN
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@ -17,6 +17,18 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Switches the endianess of a 64-bit integer.
|
||||||
|
|
||||||
|
This function swaps the bytes in a 64-bit unsigned value to switch the value
|
||||||
|
from little endian to big endian or vice versa. The byte swapped value is
|
||||||
|
returned.
|
||||||
|
|
||||||
|
@param Operand A 64-bit unsigned value.
|
||||||
|
|
||||||
|
@return The byte swaped Operand.
|
||||||
|
|
||||||
|
**/
|
||||||
UINT64
|
UINT64
|
||||||
EFIAPI
|
EFIAPI
|
||||||
InternalMathSwapBytes64 (
|
InternalMathSwapBytes64 (
|
||||||
|
@ -17,6 +17,13 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Executes a WBINVD instruction.
|
||||||
|
|
||||||
|
Executes a WBINVD instruction. This function is only available on IA-32 and
|
||||||
|
X64.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
EFIAPI
|
EFIAPI
|
||||||
AsmWbinvd (
|
AsmWbinvd (
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user