]> git.proxmox.com Git - mirror_edk2.git/blame - EdkUnixPkg/Dxe/UnixThunk/Bus/UnixBusDriver/UnixBusDriver.h
Change many windows references to unix.
[mirror_edk2.git] / EdkUnixPkg / Dxe / UnixThunk / Bus / UnixBusDriver / UnixBusDriver.h
CommitLineData
c9093a06 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 UnixBusDriver.h\r
15\r
16Abstract:\r
17\r
18This following section documents the PCD for the Unix \r
19build. These variables are used to define the (virtual) hardware \r
20configuration of the Unix environment\r
21\r
22A ! can be used to seperate multiple instances in a variable. Each \r
23instance represents a seperate hardware device. \r
24\r
25EFI_UNIX_PHYSICAL_DISKS - maps to drives on your system\r
26EFI_UNIX_VIRTUAL_DISKS - maps to a device emulated by a file\r
27EFI_UNIX_FILE_SYSTEM - mouts a directory as a file system\r
28EFI_UNIX_CONSOLE - make a logical comand line window (only one!)\r
29EFI_UNIX_UGA - Builds UGA Windows of Width and Height\r
30EFI_UNIX_SERIAL_PORT - maps physical serial ports\r
31EFI_UNIX_PASS_THRU - associates a device with our PCI support\r
32\r
33 <F>ixed - Fixed disk like a hard drive.\r
34 <R>emovable - Removable media like a floppy or CD-ROM.\r
35 Read <O>nly - Write protected device.\r
36 Read <W>rite - Read write device.\r
37 <block count> - Decimal number of blocks a device supports.\r
38 <block size> - Decimal number of bytes per block.\r
39\r
377fc2ae 40 UNIX envirnonment variable contents. '<' and '>' are not part of the variable, \r
c9093a06 41 they are just used to make this help more readable. There should be no \r
42 spaces between the ';'. Extra spaces will break the variable. A '!' is \r
43 used to seperate multiple devices in a variable.\r
44\r
45 EFI_UNIX_VIRTUAL_DISKS = \r
46 <F | R><O | W>;<block count>;<block size>[!...]\r
47\r
48 EFI_UNIX_PHYSICAL_DISKS =\r
49 <drive letter>:<F | R><O | W>;<block count>;<block size>[!...]\r
50\r
51 Virtual Disks: These devices use a file to emulate a hard disk or removable\r
52 media device. \r
53 \r
54 Thus a 20 MB emulated hard drive would look like:\r
55 EFI_UNIX_VIRTUAL_DISKS=FW;40960;512\r
56\r
57 A 1.44MB emulated floppy with a block size of 1024 would look like:\r
58 EFI_UNIX_VIRTUAL_DISKS=RW;1440;1024\r
59\r
377fc2ae 60 Physical Disks: These devices use UNIX to open a real device in your system\r
c9093a06 61\r
62 Thus a 120 MB floppy would look like:\r
63 EFI_UNIX_PHYSICAL_DISKS=B:RW;245760;512\r
64\r
65 Thus a standard CD-ROM floppy would look like:\r
66 EFI_UNIX_PHYSICAL_DISKS=Z:RO;307200;2048\r
67\r
68 EFI_UNIX_FILE_SYSTEM = \r
69 <directory path>[!...]\r
70\r
71 Mounting the two directories C:\FOO and C:\BAR would look like:\r
72 EFI_UNIX_FILE_SYSTEM=c:\foo!c:\bar\r
73\r
74 EFI_UNIX_CONSOLE = \r
75 <window title>\r
76\r
77 Declaring a text console window with the title "My EFI Console" woild look like:\r
78 EFI_UNIX_CONSOLE=My EFI Console\r
79\r
80 EFI_UNIX_UGA = \r
81 <width> <height>[!...]\r
82\r
83 Declaring a two UGA windows with resolutions of 800x600 and 1024x768 would look like:\r
84 Example : EFI_UNIX_UGA=800 600!1024 768\r
85\r
86 EFI_UNIX_SERIAL_PORT = \r
87 <port name>[!...]\r
88\r
89 Declaring two serial ports on COM1 and COM2 would look like:\r
90 Example : EFI_UNIX_SERIAL_PORT=COM1!COM2\r
91\r
92 EFI_UNIX_PASS_THROUGH =\r
93 <BaseAddress>;<Bus#>;<Device#>;<Function#>\r
94\r
95 Declaring a base address of 0xE0000000 (used for PCI Express devices)\r
96 and having NT32 talk to a device located at bus 0, device 1, function 0:\r
97 Example : EFI_UNIX_PASS_THROUGH=E000000;0;1;0\r
98\r
99---*/\r
100\r
101#ifndef __UNIX_BUS_DRIVER_H__\r
102#define __UNIX_BUS_DRIVER_H__\r
103\r
104\r
105\r
106//\r
107// Unix Bus Driver Global Variables\r
108//\r
109extern EFI_DRIVER_BINDING_PROTOCOL gUnixBusDriverBinding;\r
110extern EFI_COMPONENT_NAME_PROTOCOL gUnixBusDriverComponentName;\r
111\r
112//\r
113// Unix Bus Controller Structure\r
114//\r
115#define UNIX_BUS_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('L', 'X', 'B', 'D')\r
116\r
117typedef struct {\r
118 UINT64 Signature;\r
119 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
120} UNIX_BUS_DEVICE;\r
121\r
122//\r
123// Unix Child Device Controller Structure\r
124//\r
125#define UNIX_IO_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('L', 'X', 'V', 'D')\r
126\r
127typedef struct {\r
128 UINT64 Signature;\r
129 EFI_HANDLE Handle;\r
130 EFI_UNIX_IO_PROTOCOL UnixIo;\r
131 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
132\r
133 //\r
134 // Private data about the parent\r
135 //\r
136 EFI_HANDLE ControllerHandle;\r
137 EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
138\r
139 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
140\r
141} UNIX_IO_DEVICE;\r
142\r
143#define UNIX_IO_DEVICE_FROM_THIS(a) \\r
144 CR(a, UNIX_IO_DEVICE, UnixIo, UNIX_IO_DEVICE_SIGNATURE)\r
145\r
146//\r
147// This is the largest env variable we can parse\r
148//\r
149#define MAX_UNIX_ENVIRNMENT_VARIABLE_LENGTH 512\r
150\r
151typedef struct {\r
152 UINTN Token;\r
153 EFI_GUID *DevicePathGuid;\r
154} UNIX_PCD_ENTRY;\r
155\r
156typedef struct {\r
157 VENDOR_DEVICE_PATH VendorDevicePath;\r
158 UINT32 Instance;\r
159} UNIX_VENDOR_DEVICE_PATH_NODE;\r
160\r
161EFI_STATUS\r
162EFIAPI\r
163CpuIoInitialize (\r
164 IN EFI_HANDLE ImageHandle,\r
165 IN EFI_SYSTEM_TABLE *SystemTable\r
166 )\r
167/*++\r
168\r
169Routine Description:\r
170\r
171 TODO: Add function description\r
172\r
173Arguments:\r
174\r
175 ImageHandle - TODO: add argument description\r
176 SystemTable - TODO: add argument description\r
177\r
178Returns:\r
179\r
180 TODO: add return values\r
181\r
182--*/\r
183;\r
184\r
185//\r
186// Driver Binding Protocol function prototypes\r
187//\r
188EFI_STATUS\r
189EFIAPI\r
190UnixBusDriverBindingSupported (\r
191 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
192 IN EFI_HANDLE Handle,\r
193 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
194 )\r
195/*++\r
196\r
197Routine Description:\r
198\r
199 TODO: Add function description\r
200\r
201Arguments:\r
202\r
203 This - TODO: add argument description\r
204 Handle - TODO: add argument description\r
205 RemainingDevicePath - TODO: add argument description\r
206\r
207Returns:\r
208\r
209 TODO: add return values\r
210\r
211--*/\r
212;\r
213\r
214EFI_STATUS\r
215EFIAPI\r
216UnixBusDriverBindingStart (\r
217 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
218 IN EFI_HANDLE ParentHandle,\r
219 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
220 )\r
221/*++\r
222\r
223Routine Description:\r
224\r
225 TODO: Add function description\r
226\r
227Arguments:\r
228\r
229 This - TODO: add argument description\r
230 ParentHandle - TODO: add argument description\r
231 RemainingDevicePath - TODO: add argument description\r
232\r
233Returns:\r
234\r
235 TODO: add return values\r
236\r
237--*/\r
238;\r
239\r
240EFI_STATUS\r
241EFIAPI\r
242UnixBusDriverBindingStop (\r
243 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
244 IN EFI_HANDLE Handle,\r
245 IN UINTN NumberOfChildren,\r
246 IN EFI_HANDLE *ChildHandleBuffer\r
247 )\r
248/*++\r
249\r
250Routine Description:\r
251\r
252 TODO: Add function description\r
253\r
254Arguments:\r
255\r
256 This - TODO: add argument description\r
257 Handle - TODO: add argument description\r
258 NumberOfChildren - TODO: add argument description\r
259 ChildHandleBuffer - TODO: add argument description\r
260\r
261Returns:\r
262\r
263 TODO: add return values\r
264\r
265--*/\r
266;\r
267\r
268//\r
269// Unix Bus Driver private worker functions\r
270//\r
271EFI_DEVICE_PATH_PROTOCOL *\r
272UnixBusCreateDevicePath (\r
273 IN EFI_DEVICE_PATH_PROTOCOL *RootDevicePath,\r
274 IN EFI_GUID *Guid,\r
275 IN UINT16 InstanceNumber\r
276 )\r
277/*++\r
278\r
279Routine Description:\r
280\r
281 TODO: Add function description\r
282\r
283Arguments:\r
284\r
285 RootDevicePath - TODO: add argument description\r
286 Guid - TODO: add argument description\r
287 InstanceNumber - TODO: add argument description\r
288\r
289Returns:\r
290\r
291 TODO: add return values\r
292\r
293--*/\r
294;\r
295\r
296\r
297#endif\r