+++ /dev/null
-/**@file\r
-\r
-Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-Module Name:\r
-\r
- WinNtBusDriver.h\r
-\r
-Abstract:\r
-\r
-This following section documents the envirnoment variables for the Win NT\r
-build. These variables are used to define the (virtual) hardware\r
-configuration of the NT environment\r
-\r
-A ! can be used to seperate multiple instances in a variable. Each\r
-instance represents a seperate hardware device.\r
-\r
-EFI_WIN_NT_PHYSICAL_DISKS - maps to drives on your system\r
-EFI_WIN_NT_VIRTUAL_DISKS - maps to a device emulated by a file\r
-EFI_WIN_NT_FILE_SYSTEM - mouts a directory as a file system\r
-EFI_WIN_NT_CONSOLE - make a logical comand line window (only one!)\r
-EFI_WIN_NT_GOP - Builds GOP Windows of Width and Height\r
-EFI_WIN_NT_SERIAL_PORT - maps physical serial ports\r
-EFI_WIN_NT_PASS_THRU - associates a device with our PCI support\r
-\r
- <F>ixed - Fixed disk like a hard drive.\r
- <R>emovable - Removable media like a floppy or CD-ROM.\r
- Read <O>nly - Write protected device.\r
- Read <W>rite - Read write device.\r
- <block count> - Decimal number of blocks a device supports.\r
- <block size> - Decimal number of bytes per block.\r
-\r
- NT envirnonment variable contents. '<' and '>' are not part of the variable,\r
- they are just used to make this help more readable. There should be no\r
- spaces between the ';'. Extra spaces will break the variable. A '!' is\r
- used to seperate multiple devices in a variable.\r
-\r
- EFI_WIN_NT_VIRTUAL_DISKS =\r
- <F | R><O | W>;<block count>;<block size>[!...]\r
-\r
- EFI_WIN_NT_PHYSICAL_DISKS =\r
- <drive letter>:<F | R><O | W>;<block count>;<block size>[!...]\r
-\r
- Virtual Disks: These devices use a file to emulate a hard disk or removable\r
- media device.\r
-\r
- Thus a 20 MB emulated hard drive would look like:\r
- EFI_WIN_NT_VIRTUAL_DISKS=FW;40960;512\r
-\r
- A 1.44MB emulated floppy with a block size of 1024 would look like:\r
- EFI_WIN_NT_VIRTUAL_DISKS=RW;1440;1024\r
-\r
- Physical Disks: These devices use NT to open a real device in your system\r
-\r
- Thus a 120 MB floppy would look like:\r
- EFI_WIN_NT_PHYSICAL_DISKS=B:RW;245760;512\r
-\r
- Thus a standard CD-ROM floppy would look like:\r
- EFI_WIN_NT_PHYSICAL_DISKS=Z:RO;307200;2048\r
-\r
- EFI_WIN_NT_FILE_SYSTEM =\r
- <directory path>[!...]\r
-\r
- Mounting the two directories C:\FOO and C:\BAR would look like:\r
- EFI_WIN_NT_FILE_SYSTEM=c:\foo!c:\bar\r
-\r
- EFI_WIN_NT_CONSOLE =\r
- <window title>\r
-\r
- Declaring a text console window with the title "My EFI Console" woild look like:\r
- EFI_WIN_NT_CONSOLE=My EFI Console\r
-\r
- EFI_WIN_NT_GOP =\r
- <width> <height>[!...]\r
-\r
- Declaring a two GOP windows with resolutions of 800x600 and 1024x768 would look like:\r
- Example : EFI_WIN_NT_GOP=800 600!1024 768\r
-\r
- EFI_WIN_NT_SERIAL_PORT =\r
- <port name>[!...]\r
-\r
- Declaring two serial ports on COM1 and COM2 would look like:\r
- Example : EFI_WIN_NT_SERIAL_PORT=COM1!COM2\r
-\r
- EFI_WIN_NT_PASS_THROUGH =\r
- <BaseAddress>;<Bus#>;<Device#>;<Function#>\r
-\r
- Declaring a base address of 0xE0000000 (used for PCI Express devices)\r
- and having NT32 talk to a device located at bus 0, device 1, function 0:\r
- Example : EFI_WIN_NT_PASS_THROUGH=E000000;0;1;0\r
-\r
----*/\r
-\r
-#ifndef __NT_BUS_DRIVER_H__\r
-#define __NT_BUS_DRIVER_H__\r
-\r
-\r
-//\r
-// The package level header files this module uses\r
-//\r
-#include <Uefi.h>\r
-#include <WinNtDxe.h>\r
-//\r
-// The protocols, PPI and GUID defintions for this module\r
-//\r
-#include <Protocol/WinNtIo.h>\r
-#include <Protocol/ComponentName.h>\r
-#include <Protocol/WinNtThunk.h>\r
-#include <Protocol/DriverBinding.h>\r
-#include <Protocol/DevicePath.h>\r
-//\r
-// The Library classes this module consumes\r
-//\r
-#include <Library/DebugLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/DevicePathLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-\r
-//\r
-// WinNt Bus Driver Global Variables\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gWinNtBusDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gWinNtBusDriverComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gWinNtBusDriverComponentName2;\r
-\r
-//\r
-// WinNt Bus Controller Structure\r
-//\r
-#define WIN_NT_BUS_DEVICE_SIGNATURE SIGNATURE_32 ('N', 'T', 'B', 'D')\r
-\r
-typedef struct {\r
- UINT64 Signature;\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
-} WIN_NT_BUS_DEVICE;\r
-\r
-//\r
-// WinNt Child Device Controller Structure\r
-//\r
-#define WIN_NT_IO_DEVICE_SIGNATURE SIGNATURE_32 ('N', 'T', 'V', 'D')\r
-\r
-typedef struct {\r
- UINT64 Signature;\r
- EFI_HANDLE Handle;\r
- EFI_WIN_NT_IO_PROTOCOL WinNtIo;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
-\r
- //\r
- // Private data about the parent\r
- //\r
- EFI_HANDLE ControllerHandle;\r
- EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
-\r
- EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
-\r
-} WIN_NT_IO_DEVICE;\r
-\r
-#define WIN_NT_IO_DEVICE_FROM_THIS(a) \\r
- CR(a, WIN_NT_IO_DEVICE, WinNtIo, WIN_NT_IO_DEVICE_SIGNATURE)\r
-\r
-//\r
-// This is the largest env variable we can parse\r
-//\r
-#define MAX_NT_ENVIRNMENT_VARIABLE_LENGTH 512\r
-\r
-typedef struct {\r
- UINTN Token;\r
- EFI_GUID *DevicePathGuid;\r
-} NT_PCD_ENTRY;\r
-\r
-typedef struct {\r
- VENDOR_DEVICE_PATH VendorDevicePath;\r
- UINT32 Instance;\r
-} WIN_NT_VENDOR_DEVICE_PATH_NODE;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-CpuIoInitialize (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- ImageHandle - TODO: add argument description\r
- SystemTable - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
-**/\r
-;\r
-\r
-//\r
-// Driver Binding Protocol function prototypes\r
-//\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtBusDriverBindingSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Handle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- This - TODO: add argument description\r
- Handle - TODO: add argument description\r
- RemainingDevicePath - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtBusDriverBindingStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE ParentHandle,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- This - TODO: add argument description\r
- ParentHandle - TODO: add argument description\r
- RemainingDevicePath - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-WinNtBusDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Handle,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- This - TODO: add argument description\r
- Handle - TODO: add argument description\r
- NumberOfChildren - TODO: add argument description\r
- ChildHandleBuffer - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-//\r
-// WinNt Bus Driver private worker functions\r
-//\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-WinNtBusCreateDevicePath (\r
- IN EFI_DEVICE_PATH_PROTOCOL *RootDevicePath,\r
- IN EFI_GUID *Guid,\r
- IN UINT16 InstanceNumber\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- RootDevicePath - TODO: add argument description\r
- Guid - TODO: add argument description\r
- InstanceNumber - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-\r
-#endif\r