]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Scsi/ScsiDisk/Dxe/ScsiDisk.h
removed unnecessary name space declarations in some top level elements
[mirror_edk2.git] / EdkModulePkg / Bus / Scsi / ScsiDisk / Dxe / ScsiDisk.h
CommitLineData
878ddf1f 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 ScsiDisk.h\r
15\r
16Abstract:\r
17 \r
18 Header file for SCSI Disk Driver.\r
19\r
20--*/\r
21\r
22#ifndef _SCSI_DISK_H\r
23#define _SCSI_DISK_H\r
24\r
25\r
26#include <IndustryStandard/scsi.h>\r
27\r
28#define IsDeviceFixed(a) (a)->FixedDevice ? 1 : 0\r
29\r
30#define SCSI_DISK_DEV_SIGNATURE EFI_SIGNATURE_32 ('s', 'c', 'd', 'k')\r
31\r
32typedef struct {\r
33 UINT32 Signature;\r
34\r
35 EFI_HANDLE Handle;\r
36\r
37 EFI_BLOCK_IO_PROTOCOL BlkIo;\r
38 EFI_BLOCK_IO_MEDIA BlkIoMedia;\r
39 EFI_SCSI_IO_PROTOCOL *ScsiIo;\r
40 UINT8 DeviceType;\r
41 BOOLEAN FixedDevice;\r
42 UINT16 Reserved;\r
43\r
44 EFI_SCSI_SENSE_DATA *SenseData;\r
45 UINTN SenseDataNumber;\r
46 EFI_SCSI_INQUIRY_DATA InquiryData;\r
47\r
48 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
49\r
50} SCSI_DISK_DEV;\r
51\r
52#define SCSI_DISK_DEV_FROM_THIS(a) CR (a, SCSI_DISK_DEV, BlkIo, SCSI_DISK_DEV_SIGNATURE)\r
53\r
54//\r
55// Global Variables\r
56//\r
57extern EFI_DRIVER_BINDING_PROTOCOL gScsiDiskDriverBinding;\r
58extern EFI_COMPONENT_NAME_PROTOCOL gScsiDiskComponentName;\r
59//\r
60// action code used in detect media process\r
61//\r
62#define ACTION_NO_ACTION 0x00\r
63#define ACTION_READ_CAPACITY 0x01\r
64#define ACTION_RETRY_COMMAND_LATER 0x02\r
65\r
66EFI_STATUS\r
67EFIAPI\r
68ScsiDiskReset (\r
69 IN EFI_BLOCK_IO_PROTOCOL *This,\r
70 IN BOOLEAN ExtendedVerification\r
71 )\r
72/*++\r
73\r
74Routine Description:\r
75\r
76 TODO: Add function description\r
77\r
78Arguments:\r
79\r
80 This - TODO: add argument description\r
81 ExtendedVerification - TODO: add argument description\r
82\r
83Returns:\r
84\r
85 TODO: add return values\r
86\r
87--*/\r
88;\r
89\r
90EFI_STATUS\r
91EFIAPI\r
92ScsiDiskReadBlocks (\r
93 IN EFI_BLOCK_IO_PROTOCOL *This,\r
94 IN UINT32 MediaId,\r
95 IN EFI_LBA LBA,\r
96 IN UINTN BufferSize,\r
97 OUT VOID *Buffer\r
98 )\r
99/*++\r
100\r
101Routine Description:\r
102\r
103 TODO: Add function description\r
104\r
105Arguments:\r
106\r
107 This - TODO: add argument description\r
108 MediaId - TODO: add argument description\r
109 LBA - TODO: add argument description\r
110 BufferSize - TODO: add argument description\r
111 Buffer - TODO: add argument description\r
112\r
113Returns:\r
114\r
115 TODO: add return values\r
116\r
117--*/\r
118;\r
119\r
120EFI_STATUS\r
121EFIAPI\r
122ScsiDiskWriteBlocks (\r
123 IN EFI_BLOCK_IO_PROTOCOL *This,\r
124 IN UINT32 MediaId,\r
125 IN EFI_LBA LBA,\r
126 IN UINTN BufferSize,\r
127 IN VOID *Buffer\r
128 )\r
129/*++\r
130\r
131Routine Description:\r
132\r
133 TODO: Add function description\r
134\r
135Arguments:\r
136\r
137 This - TODO: add argument description\r
138 MediaId - TODO: add argument description\r
139 LBA - TODO: add argument description\r
140 BufferSize - TODO: add argument description\r
141 Buffer - TODO: add argument description\r
142\r
143Returns:\r
144\r
145 TODO: add return values\r
146\r
147--*/\r
148;\r
149\r
150EFI_STATUS\r
151EFIAPI\r
152ScsiDiskFlushBlocks (\r
153 IN EFI_BLOCK_IO_PROTOCOL *This\r
154 )\r
155/*++\r
156\r
157Routine Description:\r
158\r
159 TODO: Add function description\r
160\r
161Arguments:\r
162\r
163 This - TODO: add argument description\r
164\r
165Returns:\r
166\r
167 TODO: add return values\r
168\r
169--*/\r
170;\r
171\r
172EFI_STATUS\r
173ScsiDiskDetectMedia (\r
174 SCSI_DISK_DEV *ScsiDiskDevice,\r
175 BOOLEAN MustReadCap,\r
176 BOOLEAN *MediaChange\r
177 )\r
178/*++\r
179\r
180Routine Description:\r
181\r
182 TODO: Add function description\r
183\r
184Arguments:\r
185\r
186 ScsiDiskDevice - TODO: add argument description\r
187 MustReadCap - TODO: add argument description\r
188 MediaChange - TODO: add argument description\r
189\r
190Returns:\r
191\r
192 TODO: add return values\r
193\r
194--*/\r
195;\r
196 \r
197EFI_STATUS\r
198ScsiDiskTestUnitReady (\r
199 SCSI_DISK_DEV *ScsiDiskDevice,\r
200 BOOLEAN *NeedRetry,\r
201 EFI_SCSI_SENSE_DATA **SenseDataArray,\r
202 UINTN *NumberOfSenseKeys\r
203 )\r
204/*++\r
205\r
206Routine Description:\r
207\r
208 TODO: Add function description\r
209\r
210Arguments:\r
211\r
212 ScsiDiskDevice - TODO: add argument description\r
213 NeedRetry - TODO: add argument description\r
214 SenseDataArray - TODO: add argument description\r
215 NumberOfSenseKeys - TODO: add argument description\r
216\r
217Returns:\r
218\r
219 TODO: add return values\r
220\r
221--*/\r
222;\r
223\r
224EFI_STATUS\r
225DetectMediaParsingSenseKeys (\r
226 SCSI_DISK_DEV *ScsiDiskDevice,\r
227 EFI_SCSI_SENSE_DATA *SenseData,\r
228 UINTN NumberOfSenseKeys,\r
229 UINTN *Action\r
230 )\r
231/*++\r
232\r
233Routine Description:\r
234\r
235 TODO: Add function description\r
236\r
237Arguments:\r
238\r
239 ScsiDiskDevice - TODO: add argument description\r
240 SenseData - TODO: add argument description\r
241 NumberOfSenseKeys - TODO: add argument description\r
242 Action - TODO: add argument description\r
243\r
244Returns:\r
245\r
246 TODO: add return values\r
247\r
248--*/\r
249;\r
250\r
251EFI_STATUS\r
252ScsiDiskReadCapacity (\r
253 SCSI_DISK_DEV *ScsiDiskDevice,\r
254 BOOLEAN *NeedRetry,\r
255 EFI_SCSI_SENSE_DATA **SenseDataArray,\r
256 UINTN *NumberOfSenseKeys\r
257 )\r
258/*++\r
259\r
260Routine Description:\r
261\r
262 TODO: Add function description\r
263\r
264Arguments:\r
265\r
266 ScsiDiskDevice - TODO: add argument description\r
267 NeedRetry - TODO: add argument description\r
268 SenseDataArray - TODO: add argument description\r
269 NumberOfSenseKeys - TODO: add argument description\r
270\r
271Returns:\r
272\r
273 TODO: add return values\r
274\r
275--*/\r
276;\r
277\r
278EFI_STATUS\r
279CheckHostAdapterStatus (\r
280 UINT8 HostAdapterStatus\r
281 )\r
282/*++\r
283\r
284Routine Description:\r
285\r
286 TODO: Add function description\r
287\r
288Arguments:\r
289\r
290 HostAdapterStatus - TODO: add argument description\r
291\r
292Returns:\r
293\r
294 TODO: add return values\r
295\r
296--*/\r
297;\r
298\r
299EFI_STATUS\r
300CheckTargetStatus (\r
301 UINT8 TargetStatus\r
302 )\r
303/*++\r
304\r
305Routine Description:\r
306\r
307 TODO: Add function description\r
308\r
309Arguments:\r
310\r
311 TargetStatus - TODO: add argument description\r
312\r
313Returns:\r
314\r
315 TODO: add return values\r
316\r
317--*/\r
318;\r
319\r
320EFI_STATUS\r
321ScsiDiskRequestSenseKeys (\r
322 SCSI_DISK_DEV *ScsiDiskDevice,\r
323 BOOLEAN *NeedRetry,\r
324 EFI_SCSI_SENSE_DATA **SenseDataArray,\r
325 UINTN *NumberOfSenseKeys,\r
326 BOOLEAN AskResetIfError\r
327 )\r
328/*++\r
329\r
330Routine Description:\r
331\r
332 TODO: Add function description\r
333\r
334Arguments:\r
335\r
336 ScsiDiskDevice - TODO: add argument description\r
337 NeedRetry - TODO: add argument description\r
338 SenseDataArray - TODO: add argument description\r
339 NumberOfSenseKeys - TODO: add argument description\r
340 AskResetIfError - TODO: add argument description\r
341\r
342Returns:\r
343\r
344 TODO: add return values\r
345\r
346--*/\r
347;\r
348\r
349EFI_STATUS\r
350ScsiDiskInquiryDevice (\r
351 SCSI_DISK_DEV *ScsiDiskDevice,\r
352 BOOLEAN *NeedRetry\r
353 )\r
354/*++\r
355\r
356Routine Description:\r
357\r
358 TODO: Add function description\r
359\r
360Arguments:\r
361\r
362 ScsiDiskDevice - TODO: add argument description\r
363 NeedRetry - TODO: add argument description\r
364\r
365Returns:\r
366\r
367 TODO: add return values\r
368\r
369--*/\r
370;\r
371\r
372VOID\r
373ParseInquiryData (\r
374 SCSI_DISK_DEV *ScsiDiskDevice\r
375 )\r
376/*++\r
377\r
378Routine Description:\r
379\r
380 TODO: Add function description\r
381\r
382Arguments:\r
383\r
384 ScsiDiskDevice - TODO: add argument description\r
385\r
386Returns:\r
387\r
388 TODO: add return values\r
389\r
390--*/\r
391;\r
392\r
393EFI_STATUS\r
394ScsiDiskReadSectors (\r
395 SCSI_DISK_DEV *ScsiDiskDevice,\r
396 VOID *Buffer,\r
397 EFI_LBA Lba,\r
398 UINTN NumberOfBlocks\r
399 )\r
400/*++\r
401\r
402Routine Description:\r
403\r
404 TODO: Add function description\r
405\r
406Arguments:\r
407\r
408 ScsiDiskDevice - TODO: add argument description\r
409 Buffer - TODO: add argument description\r
410 Lba - TODO: add argument description\r
411 NumberOfBlocks - TODO: add argument description\r
412\r
413Returns:\r
414\r
415 TODO: add return values\r
416\r
417--*/\r
418;\r
419\r
420EFI_STATUS\r
421ScsiDiskWriteSectors (\r
422 SCSI_DISK_DEV *ScsiDiskDevice,\r
423 VOID *Buffer,\r
424 EFI_LBA Lba,\r
425 UINTN NumberOfBlocks\r
426 )\r
427/*++\r
428\r
429Routine Description:\r
430\r
431 TODO: Add function description\r
432\r
433Arguments:\r
434\r
435 ScsiDiskDevice - TODO: add argument description\r
436 Buffer - TODO: add argument description\r
437 Lba - TODO: add argument description\r
438 NumberOfBlocks - TODO: add argument description\r
439\r
440Returns:\r
441\r
442 TODO: add return values\r
443\r
444--*/\r
445;\r
446\r
447EFI_STATUS\r
448ScsiDiskRead10 (\r
449 SCSI_DISK_DEV *ScsiDiskDevice,\r
450 BOOLEAN *NeedRetry,\r
451 EFI_SCSI_SENSE_DATA **SenseDataArray,\r
452 UINTN *NumberOfSenseKeys,\r
453 UINT64 Timeout,\r
454 UINT8 *DataBuffer,\r
455 UINT32 *DataLength,\r
456 UINT32 StartLba,\r
457 UINT32 SectorSize\r
458 )\r
459/*++\r
460\r
461Routine Description:\r
462\r
463 TODO: Add function description\r
464\r
465Arguments:\r
466\r
467 ScsiDiskDevice - TODO: add argument description\r
468 NeedRetry - TODO: add argument description\r
469 SenseDataArray - TODO: add argument description\r
470 NumberOfSenseKeys - TODO: add argument description\r
471 Timeout - TODO: add argument description\r
472 DataBuffer - TODO: add argument description\r
473 DataLength - TODO: add argument description\r
474 StartLba - TODO: add argument description\r
475 SectorSize - TODO: add argument description\r
476\r
477Returns:\r
478\r
479 TODO: add return values\r
480\r
481--*/\r
482;\r
483\r
484EFI_STATUS\r
485ScsiDiskWrite10 (\r
486 SCSI_DISK_DEV *ScsiDiskDevice,\r
487 BOOLEAN *NeedRetry,\r
488 EFI_SCSI_SENSE_DATA **SenseDataArray,\r
489 UINTN *NumberOfSenseKeys,\r
490 UINT64 Timeout,\r
491 UINT8 *DataBuffer,\r
492 UINT32 *DataLength,\r
493 UINT32 StartLba,\r
494 UINT32 SectorSize\r
495 )\r
496/*++\r
497\r
498Routine Description:\r
499\r
500 TODO: Add function description\r
501\r
502Arguments:\r
503\r
504 ScsiDiskDevice - TODO: add argument description\r
505 NeedRetry - TODO: add argument description\r
506 SenseDataArray - TODO: add argument description\r
507 NumberOfSenseKeys - TODO: add argument description\r
508 Timeout - TODO: add argument description\r
509 DataBuffer - TODO: add argument description\r
510 DataLength - TODO: add argument description\r
511 StartLba - TODO: add argument description\r
512 SectorSize - TODO: add argument description\r
513\r
514Returns:\r
515\r
516 TODO: add return values\r
517\r
518--*/\r
519;\r
520\r
521VOID\r
522GetMediaInfo (\r
523 SCSI_DISK_DEV *ScsiDiskDevice,\r
524 EFI_SCSI_DISK_CAPACITY_DATA *Capacity\r
525 )\r
526/*++\r
527\r
528Routine Description:\r
529\r
530 TODO: Add function description\r
531\r
532Arguments:\r
533\r
534 ScsiDiskDevice - TODO: add argument description\r
535 Capacity - TODO: add argument description\r
536\r
537Returns:\r
538\r
539 TODO: add return values\r
540\r
541--*/\r
542;\r
543\r
544BOOLEAN\r
545ScsiDiskIsNoMedia (\r
546 IN EFI_SCSI_SENSE_DATA *SenseData,\r
547 IN UINTN SenseCounts\r
548 )\r
549/*++\r
550\r
551Routine Description:\r
552\r
553 TODO: Add function description\r
554\r
555Arguments:\r
556\r
557 SenseData - TODO: add argument description\r
558 SenseCounts - TODO: add argument description\r
559\r
560Returns:\r
561\r
562 TODO: add return values\r
563\r
564--*/\r
565;\r
566\r
567BOOLEAN\r
568ScsiDiskIsMediaError (\r
569 IN EFI_SCSI_SENSE_DATA *SenseData,\r
570 IN UINTN SenseCounts\r
571 )\r
572/*++\r
573\r
574Routine Description:\r
575\r
576 TODO: Add function description\r
577\r
578Arguments:\r
579\r
580 SenseData - TODO: add argument description\r
581 SenseCounts - TODO: add argument description\r
582\r
583Returns:\r
584\r
585 TODO: add return values\r
586\r
587--*/\r
588;\r
589\r
590BOOLEAN\r
591ScsiDiskIsHardwareError (\r
592 IN EFI_SCSI_SENSE_DATA *SenseData,\r
593 IN UINTN SenseCounts\r
594 )\r
595/*++\r
596\r
597Routine Description:\r
598\r
599 TODO: Add function description\r
600\r
601Arguments:\r
602\r
603 SenseData - TODO: add argument description\r
604 SenseCounts - TODO: add argument description\r
605\r
606Returns:\r
607\r
608 TODO: add return values\r
609\r
610--*/\r
611;\r
612\r
613BOOLEAN\r
614ScsiDiskIsMediaChange (\r
615 IN EFI_SCSI_SENSE_DATA *SenseData,\r
616 IN UINTN SenseCounts\r
617 )\r
618/*++\r
619\r
620Routine Description:\r
621\r
622 TODO: Add function description\r
623\r
624Arguments:\r
625\r
626 SenseData - TODO: add argument description\r
627 SenseCounts - TODO: add argument description\r
628\r
629Returns:\r
630\r
631 TODO: add return values\r
632\r
633--*/\r
634;\r
635\r
636BOOLEAN\r
637ScsiDiskIsResetBefore (\r
638 IN EFI_SCSI_SENSE_DATA *SenseData,\r
639 IN UINTN SenseCounts\r
640 )\r
641/*++\r
642\r
643Routine Description:\r
644\r
645 TODO: Add function description\r
646\r
647Arguments:\r
648\r
649 SenseData - TODO: add argument description\r
650 SenseCounts - TODO: add argument description\r
651\r
652Returns:\r
653\r
654 TODO: add return values\r
655\r
656--*/\r
657;\r
658\r
659BOOLEAN\r
660ScsiDiskIsDriveReady (\r
661 IN EFI_SCSI_SENSE_DATA *SenseData,\r
662 IN UINTN SenseCounts,\r
663 OUT BOOLEAN *NeedRetry\r
664 )\r
665/*++\r
666\r
667Routine Description:\r
668\r
669 TODO: Add function description\r
670\r
671Arguments:\r
672\r
673 SenseData - TODO: add argument description\r
674 SenseCounts - TODO: add argument description\r
675 NeedRetry - TODO: add argument description\r
676\r
677Returns:\r
678\r
679 TODO: add return values\r
680\r
681--*/\r
682;\r
683\r
684BOOLEAN\r
685ScsiDiskHaveSenseKey (\r
686 IN EFI_SCSI_SENSE_DATA *SenseData,\r
687 IN UINTN SenseCounts\r
688 )\r
689/*++\r
690\r
691Routine Description:\r
692\r
693 TODO: Add function description\r
694\r
695Arguments:\r
696\r
697 SenseData - TODO: add argument description\r
698 SenseCounts - TODO: add argument description\r
699\r
700Returns:\r
701\r
702 TODO: add return values\r
703\r
704--*/\r
705;\r
706\r
707VOID\r
708ReleaseScsiDiskDeviceResources (\r
709 IN SCSI_DISK_DEV *ScsiDiskDevice\r
710 )\r
711/*++\r
712\r
713Routine Description:\r
714\r
715 TODO: Add function description\r
716\r
717Arguments:\r
718\r
719 ScsiDiskDevice - TODO: add argument description\r
720\r
721Returns:\r
722\r
723 TODO: add return values\r
724\r
725--*/\r
726;\r
727\r
728#endif\r