]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppy.h
remove some comments introduced by tools.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / IsaFloppyDxe / IsaFloppy.h
CommitLineData
11f43dfd 1/*++\r
2\r
6db49ee6 3 Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
4 All rights reserved. This program and the accompanying materials\r
5 are licensed and made available under the terms and conditions of the BSD License\r
6 which accompanies this distribution. The full text of the license may be found at\r
7 http://opensource.org/licenses/bsd-license.php\r
8\r
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11f43dfd 11\r
12Module Name:\r
13\r
14 IsaFloppy.h\r
15\r
16Abstract:\r
17\r
18 Include for ISA Floppy Driver\r
19 Define the data structure and so on\r
20\r
21Revision History:\r
22\r
23--*/\r
24\r
25#ifndef _ISA_FLOPPY_H\r
26#define _ISA_FLOPPY_H\r
27\r
28#include <PiDxe.h>\r
29#include <FrameworkPei.h>\r
ed7748fe 30\r
11f43dfd 31#include <Protocol/BlockIo.h>\r
32#include <Protocol/IsaIo.h>\r
33#include <Protocol/DevicePath.h>\r
ed7748fe 34\r
11f43dfd 35#include <Library/TimerLib.h>\r
36#include <Library/DebugLib.h>\r
37#include <Library/UefiDriverEntryPoint.h>\r
38#include <Library/BaseLib.h>\r
39#include <Library/UefiLib.h>\r
40#include <Library/BaseMemoryLib.h>\r
41#include <Library/MemoryAllocationLib.h>\r
42#include <Library/UefiBootServicesTableLib.h>\r
43#include <Library/ReportStatusCodeLib.h>\r
44//\r
45// Driver Binding Externs\r
46//\r
47extern EFI_DRIVER_BINDING_PROTOCOL gFdcControllerDriver;\r
48extern EFI_COMPONENT_NAME_PROTOCOL gIsaFloppyComponentName;\r
49\r
50//\r
51// define some value\r
52//\r
53#define STALL_1_SECOND 1000000\r
54#define STALL_1_MSECOND 1000\r
55\r
56#define DATA_IN 1\r
57#define DATA_OUT 0\r
58#define READ 0\r
59#define WRITE 1\r
60\r
61//\r
62// Internal Data Structures\r
63//\r
64#define FDC_BLK_IO_DEV_SIGNATURE EFI_SIGNATURE_32 ('F', 'B', 'I', 'O')\r
65#define FLOPPY_CONTROLLER_CONTEXT_SIGNATURE EFI_SIGNATURE_32 ('F', 'D', 'C', 'C')\r
66\r
67typedef enum {\r
68 FDC_DISK0 = 0,\r
69 FDC_DISK1 = 1,\r
70 FDC_MAX_DISK= 2\r
71} EFI_FDC_DISK;\r
72\r
73typedef struct {\r
74 UINT32 Signature;\r
75 LIST_ENTRY Link;\r
76 BOOLEAN FddResetPerformed;\r
77 EFI_STATUS FddResetStatus;\r
78 BOOLEAN NeedRecalibrate;\r
79 UINT8 NumberOfDrive;\r
80 UINT16 BaseAddress;\r
81} FLOPPY_CONTROLLER_CONTEXT;\r
82\r
83typedef struct {\r
84 UINTN Signature;\r
85 EFI_HANDLE Handle;\r
86 EFI_BLOCK_IO_PROTOCOL BlkIo;\r
87 EFI_BLOCK_IO_MEDIA BlkMedia;\r
88\r
89 EFI_ISA_IO_PROTOCOL *IsaIo;\r
90\r
91 UINT16 BaseAddress;\r
92\r
93 EFI_FDC_DISK Disk;\r
94 UINT8 PresentCylinderNumber;\r
95 UINT8 *Cache;\r
96\r
97 EFI_EVENT Event;\r
98 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
99 FLOPPY_CONTROLLER_CONTEXT *ControllerState;\r
100\r
101 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
102} FDC_BLK_IO_DEV;\r
103\r
104#include "ComponentName.h"\r
105\r
106#define FDD_BLK_IO_FROM_THIS(a) CR (a, FDC_BLK_IO_DEV, BlkIo, FDC_BLK_IO_DEV_SIGNATURE)\r
107#define FLOPPY_CONTROLLER_FROM_LIST_ENTRY(a) \\r
108 CR (a, \\r
109 FLOPPY_CONTROLLER_CONTEXT, \\r
110 Link, \\r
111 FLOPPY_CONTROLLER_CONTEXT_SIGNATURE \\r
112 )\r
113\r
114#define DISK_1440K_EOT 0x12\r
115#define DISK_1440K_GPL 0x1b\r
116#define DISK_1440K_DTL 0xff\r
117#define DISK_1440K_NUMBER 0x02\r
118#define DISK_1440K_MAXTRACKNUM 0x4f\r
119#define DISK_1440K_BYTEPERSECTOR 512\r
120\r
121typedef struct {\r
122 UINT8 CommandCode;\r
123 UINT8 DiskHeadSel;\r
124 UINT8 Cylinder;\r
125 UINT8 Head;\r
126 UINT8 Sector;\r
127 UINT8 Number;\r
128 UINT8 EndOfTrack;\r
129 UINT8 GapLength;\r
130 UINT8 DataLength;\r
131} FDD_COMMAND_PACKET1;\r
132\r
133typedef struct {\r
134 UINT8 CommandCode;\r
135 UINT8 DiskHeadSel;\r
136} FDD_COMMAND_PACKET2;\r
137\r
138typedef struct {\r
139 UINT8 CommandCode;\r
140 UINT8 SrtHut;\r
141 UINT8 HltNd;\r
142} FDD_SPECIFY_CMD;\r
143\r
144typedef struct {\r
145 UINT8 CommandCode;\r
146 UINT8 DiskHeadSel;\r
147 UINT8 NewCylinder;\r
148} FDD_SEEK_CMD;\r
149\r
150typedef struct {\r
151 UINT8 CommandCode;\r
152 UINT8 DiskHeadSel;\r
153 UINT8 Cylinder;\r
154 UINT8 Head;\r
155 UINT8 Sector;\r
156 UINT8 EndOfTrack;\r
157 UINT8 GapLength;\r
158 UINT8 ScanTestPause;\r
159} FDD_SCAN_CMD;\r
160\r
161typedef struct {\r
162 UINT8 Status0;\r
163 UINT8 Status1;\r
164 UINT8 Status2;\r
165 UINT8 C;\r
166 UINT8 H;\r
167 UINT8 S;\r
168 UINT8 Number;\r
169} FDD_RESULT_PACKET;\r
170\r
171//\r
172// FDC Registers\r
173//\r
174//\r
175// 0x3F2 Digital Output Register\r
176//\r
177#define FDC_REGISTER_DOR 2\r
178\r
179//\r
180// 0x3F4 Main Status Register\r
181//\r
182#define FDC_REGISTER_MSR 4\r
183\r
184//\r
185// 0x3F5 Data Register\r
186//\r
187#define FDC_REGISTER_DTR 5\r
188\r
189//\r
190// 0x3F7 Configuration Control Register(data rate select)\r
191//\r
192#define FDC_REGISTER_CCR 7\r
193\r
194//\r
195// 0x3F7 Digital Input Register(diskchange)\r
196//\r
197#define FDC_REGISTER_DIR 7\r
198\r
199\r
200\r
201//\r
202// FDC Register Bit Definitions\r
203//\r
204//\r
205// Digital Out Register(WO)\r
206//\r
207//\r
208// Select Drive: 0=A 1=B\r
209//\r
210#define SELECT_DRV BIT0\r
211\r
212//\r
213// Reset FDC\r
214//\r
215#define RESET_FDC BIT2\r
216\r
217//\r
218// Enable Int & DMA\r
219//\r
220#define INT_DMA_ENABLE BIT3\r
221\r
222//\r
223// Turn On Drive A Motor\r
224//\r
225#define DRVA_MOTOR_ON BIT4\r
226\r
227//\r
228// Turn On Drive B Motor\r
229//\r
230#define DRVB_MOTOR_ON BIT5\r
231\r
232//\r
233// Main Status Register(RO)\r
234//\r
235//\r
236// Drive A Busy\r
237//\r
238#define MSR_DAB BIT0\r
239\r
240//\r
241// Drive B Busy\r
242//\r
243#define MSR_DBB BIT1\r
244\r
245//\r
246// FDC Busy\r
247//\r
248#define MSR_CB BIT4\r
249\r
250//\r
251// Non-DMA Mode\r
252//\r
253#define MSR_NDM BIT5\r
254\r
255//\r
256// Data Input/Output\r
257//\r
258#define MSR_DIO BIT6\r
259\r
260//\r
261// Request For Master\r
262//\r
263#define MSR_RQM BIT7\r
264\r
265//\r
266// Configuration Control Register(WO)\r
267//\r
268//\r
269// Data Rate select\r
270//\r
271#define CCR_DRC (BIT0 | BIT1)\r
272\r
273//\r
274// Digital Input Register(RO)\r
275//\r
276//\r
277// Disk change line\r
278//\r
279#define DIR_DCL BIT7\r
280//\r
281// #define CCR_DCL BIT7 // Diskette change\r
282//\r
283// 500K\r
284//\r
285#define DRC_500KBS 0x0\r
286\r
287//\r
288// 300K\r
289//\r
290#define DRC_300KBS 0x01\r
291\r
292//\r
293// 250K\r
294//\r
295#define DRC_250KBS 0x02\r
296\r
297//\r
298// FDC Command Code\r
299//\r
300#define READ_DATA_CMD 0x06\r
301#define WRITE_DATA_CMD 0x05\r
302#define WRITE_DEL_DATA_CMD 0x09\r
303#define READ_DEL_DATA_CMD 0x0C\r
304#define READ_TRACK_CMD 0x02\r
305#define READ_ID_CMD 0x0A\r
306#define FORMAT_TRACK_CMD 0x0D\r
307#define SCAN_EQU_CMD 0x11\r
308#define SCAN_LOW_EQU_CMD 0x19\r
309#define SCAN_HIGH_EQU_CMD 0x1D\r
310#define SEEK_CMD 0x0F\r
311#define RECALIBRATE_CMD 0x07\r
312#define SENSE_INT_STATUS_CMD 0x08\r
313#define SPECIFY_CMD 0x03\r
314#define SENSE_DRV_STATUS_CMD 0x04\r
315\r
316//\r
317// CMD_MT: Multi_Track Selector\r
318// when set , this flag selects the multi-track operating mode.\r
319// In this mode, the FDC treats a complete cylinder under head0 and 1\r
320// as a single track\r
321//\r
322#define CMD_MT BIT7\r
323\r
324//\r
325// CMD_MFM: MFM/FM Mode Selector\r
326// A one selects the double density(MFM) mode\r
327// A zero selects single density (FM) mode\r
328//\r
329#define CMD_MFM BIT6\r
330\r
331//\r
332// CMD_SK: Skip Flag\r
333// When set to 1, sectors containing a deleted data address mark will\r
334// automatically be skipped during the execution of Read Data.\r
335// When set to 0, the sector is read or written the same as the read and\r
336// write commands.\r
337//\r
338#define CMD_SK BIT5\r
339\r
340//\r
341// FDC Status Register Bit Definitions\r
342//\r
343//\r
344// Status Register 0\r
345//\r
346//\r
347// Interrupt Code\r
348//\r
349#define STS0_IC (BIT7 | BIT6)\r
350\r
351//\r
352// Seek End: the FDC completed a seek or recalibrate command\r
353//\r
354#define STS0_SE BIT5\r
355\r
356//\r
357// Equipment Check\r
358//\r
359#define STS0_EC BIT4\r
360\r
361//\r
362// Not Ready(unused), this bit is always 0\r
363//\r
364#define STS0_NR BIT3\r
365\r
366//\r
367// Head Address: the current head address\r
368//\r
369#define STS0_HA BIT2\r
370\r
371//\r
372// STS0_US1 & STS0_US0: Drive Select(the current selected drive)\r
373//\r
374//\r
375// Unit Select1\r
376//\r
377#define STS0_US1 BIT1\r
378\r
379//\r
380// Unit Select0\r
381//\r
382#define STS0_US0 BIT0\r
383\r
384//\r
385// Status Register 1\r
386//\r
387//\r
388// End of Cylinder\r
389//\r
390#define STS1_EN BIT7\r
391\r
392//\r
393// BIT6 is unused\r
394//\r
395//\r
396// Data Error: The FDC detected a CRC error in either the ID field or\r
397// data field of a sector\r
398//\r
399#define STS1_DE BIT5\r
400\r
401//\r
402// Overrun/Underrun: Becomes set if FDC does not receive CPU or DMA service\r
403// within the required time interval\r
404//\r
405#define STS1_OR BIT4\r
406\r
407//\r
408// BIT3 is unused\r
409//\r
410//\r
411// No data\r
412//\r
413#define STS1_ND BIT2\r
414\r
415//\r
416// Not Writable\r
417//\r
418#define STS1_NW BIT1\r
419\r
420//\r
421// Missing Address Mark\r
422//\r
423#define STS1_MA BIT0\r
424\r
425//\r
426// Control Mark\r
427//\r
428#define STS2_CM BIT6\r
429\r
430//\r
431// Data Error in Data Field: The FDC detected a CRC error in the data field\r
432//\r
433#define STS2_DD BIT5\r
434\r
435//\r
436// Wrong Cylinder: The track address from sector ID field is different from\r
437// the track address maintained inside FDC\r
438//\r
439#define STS2_WC BIT4\r
440\r
441//\r
442// Bad Cylinder\r
443//\r
444#define STS2_BC BIT1\r
445\r
446//\r
447// Missing Address Mark in Data Field\r
448//\r
449#define STS2_MD BIT0\r
450\r
451//\r
452// Write Protected\r
453//\r
454#define STS3_WP BIT6\r
455\r
456//\r
457// Track 0\r
458//\r
459#define STS3_T0 BIT4\r
460\r
461//\r
462// Head Address\r
463//\r
464#define STS3_HD BIT2\r
465\r
466//\r
467// STS3_US1 & STS3_US0 : Drive Select\r
468//\r
469#define STS3_US1 BIT1\r
470#define STS3_US0 BIT0\r
471\r
472//\r
473// Status Register 0 Interrupt Code Description\r
474//\r
475//\r
476// Normal Termination of Command\r
477//\r
478#define IC_NT 0x0\r
479\r
480//\r
481// Abnormal Termination of Command\r
482//\r
483#define IC_AT 0x40\r
484\r
485//\r
486// Invalid Command\r
487//\r
488#define IC_IC 0x80\r
489\r
490//\r
491// Abnormal Termination caused by Polling\r
492//\r
493#define IC_ATRC 0xC0\r
494\r
495//\r
496// Global Variables\r
497//\r
498extern EFI_DRIVER_BINDING_PROTOCOL gFdcControllerDriver;\r
499\r
500//\r
501// EFI Driver Binding Protocol Functions\r
502//\r
503EFI_STATUS\r
504EFIAPI\r
505FdcControllerDriverSupported (\r
506 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
507 IN EFI_HANDLE Controller,\r
508 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
509 )\r
510/*++\r
511\r
512Routine Description:\r
513\r
514 GC_TODO: Add function description\r
515\r
516Arguments:\r
517\r
518 This - GC_TODO: add argument description\r
519 Controller - GC_TODO: add argument description\r
520 RemainingDevicePath - GC_TODO: add argument description\r
521\r
522Returns:\r
523\r
524 GC_TODO: add return values\r
525\r
526--*/\r
527;\r
528\r
529EFI_STATUS\r
530EFIAPI\r
531FdcControllerDriverStart (\r
532 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
533 IN EFI_HANDLE Controller,\r
534 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
535 )\r
536/*++\r
537\r
538Routine Description:\r
539\r
540 GC_TODO: Add function description\r
541\r
542Arguments:\r
543\r
544 This - GC_TODO: add argument description\r
545 Controller - GC_TODO: add argument description\r
546 RemainingDevicePath - GC_TODO: add argument description\r
547\r
548Returns:\r
549\r
550 GC_TODO: add return values\r
551\r
552--*/\r
553;\r
554\r
555EFI_STATUS\r
556EFIAPI\r
557FdcControllerDriverStop (\r
558 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
559 IN EFI_HANDLE Controller,\r
560 IN UINTN NumberOfChildren,\r
561 IN EFI_HANDLE *ChildHandleBuffer\r
562 )\r
563/*++\r
564\r
565Routine Description:\r
566\r
567 GC_TODO: Add function description\r
568\r
569Arguments:\r
570\r
571 This - GC_TODO: add argument description\r
572 Controller - GC_TODO: add argument description\r
573 NumberOfChildren - GC_TODO: add argument description\r
574 ChildHandleBuffer - GC_TODO: add argument description\r
575\r
576Returns:\r
577\r
578 GC_TODO: add return values\r
579\r
580--*/\r
581;\r
582\r
583//\r
584// EFI Block I/O Protocol Functions\r
585//\r
586EFI_STATUS\r
587EFIAPI\r
588FdcReset (\r
589 IN EFI_BLOCK_IO_PROTOCOL *This,\r
590 IN BOOLEAN ExtendedVerification\r
591 )\r
592/*++\r
593\r
594Routine Description:\r
595\r
596 GC_TODO: Add function description\r
597\r
598Arguments:\r
599\r
600 This - GC_TODO: add argument description\r
601 ExtendedVerification - GC_TODO: add argument description\r
602\r
603Returns:\r
604\r
605 GC_TODO: add return values\r
606\r
607--*/\r
608;\r
609\r
610EFI_STATUS\r
611EFIAPI\r
612FddFlushBlocks (\r
613 IN EFI_BLOCK_IO_PROTOCOL *This\r
614 )\r
615/*++\r
616\r
617Routine Description:\r
618\r
619 GC_TODO: Add function description\r
620\r
621Arguments:\r
622\r
623 This - GC_TODO: add argument description\r
624\r
625Returns:\r
626\r
627 GC_TODO: add return values\r
628\r
629--*/\r
630;\r
631\r
632EFI_STATUS\r
633EFIAPI\r
634FddReadBlocks (\r
635 IN EFI_BLOCK_IO_PROTOCOL *This,\r
636 IN UINT32 MediaId,\r
637 IN EFI_LBA LBA,\r
638 IN UINTN BufferSize,\r
639 OUT VOID *Buffer\r
640 )\r
641/*++\r
642\r
643Routine Description:\r
644\r
645 GC_TODO: Add function description\r
646\r
647Arguments:\r
648\r
649 This - GC_TODO: add argument description\r
650 MediaId - GC_TODO: add argument description\r
651 LBA - GC_TODO: add argument description\r
652 BufferSize - GC_TODO: add argument description\r
653 Buffer - GC_TODO: add argument description\r
654\r
655Returns:\r
656\r
657 GC_TODO: add return values\r
658\r
659--*/\r
660;\r
661\r
662EFI_STATUS\r
663EFIAPI\r
664FddWriteBlocks (\r
665 IN EFI_BLOCK_IO_PROTOCOL *This,\r
666 IN UINT32 MediaId,\r
667 IN EFI_LBA LBA,\r
668 IN UINTN BufferSize,\r
669 IN VOID *Buffer\r
670 )\r
671/*++\r
672\r
673Routine Description:\r
674\r
675 GC_TODO: Add function description\r
676\r
677Arguments:\r
678\r
679 This - GC_TODO: add argument description\r
680 MediaId - GC_TODO: add argument description\r
681 LBA - GC_TODO: add argument description\r
682 BufferSize - GC_TODO: add argument description\r
683 Buffer - GC_TODO: add argument description\r
684\r
685Returns:\r
686\r
687 GC_TODO: add return values\r
688\r
689--*/\r
690;\r
691\r
692//\r
693// Prototypes of internal functions\r
694//\r
695EFI_STATUS\r
696DiscoverFddDevice (\r
697 IN FDC_BLK_IO_DEV *FdcDev\r
698 )\r
699/*++\r
700\r
701Routine Description:\r
702\r
703 GC_TODO: Add function description\r
704\r
705Arguments:\r
706\r
707 FdcDev - GC_TODO: add argument description\r
708\r
709Returns:\r
710\r
711 GC_TODO: add return values\r
712\r
713--*/\r
714;\r
715\r
716EFI_STATUS\r
717FddIdentify (\r
718 IN FDC_BLK_IO_DEV *FdcDev\r
719 )\r
720/*++\r
721\r
722Routine Description:\r
723\r
724 GC_TODO: Add function description\r
725\r
726Arguments:\r
727\r
728 FdcDev - GC_TODO: add argument description\r
729\r
730Returns:\r
731\r
732 GC_TODO: add return values\r
733\r
734--*/\r
735;\r
736\r
737EFI_STATUS\r
738FddReset (\r
739 IN FDC_BLK_IO_DEV *FdcDev\r
740 )\r
741/*++\r
742\r
743Routine Description:\r
744\r
745 GC_TODO: Add function description\r
746\r
747Arguments:\r
748\r
749 FdcDev - GC_TODO: add argument description\r
750\r
751Returns:\r
752\r
753 GC_TODO: add return values\r
754\r
755--*/\r
756;\r
757\r
758EFI_STATUS\r
759MotorOn (\r
760 IN FDC_BLK_IO_DEV *FdcDev\r
761 )\r
762/*++\r
763\r
764Routine Description:\r
765\r
766 GC_TODO: Add function description\r
767\r
768Arguments:\r
769\r
770 FdcDev - GC_TODO: add argument description\r
771\r
772Returns:\r
773\r
774 GC_TODO: add return values\r
775\r
776--*/\r
777;\r
778\r
779EFI_STATUS\r
780MotorOff (\r
781 IN FDC_BLK_IO_DEV *FdcDev\r
782 )\r
783/*++\r
784\r
785Routine Description:\r
786\r
787 GC_TODO: Add function description\r
788\r
789Arguments:\r
790\r
791 FdcDev - GC_TODO: add argument description\r
792\r
793Returns:\r
794\r
795 GC_TODO: add return values\r
796\r
797--*/\r
798;\r
799\r
800EFI_STATUS\r
801DisketChanged (\r
802 IN FDC_BLK_IO_DEV *FdcDev\r
803 )\r
804/*++\r
805\r
806Routine Description:\r
807\r
808 GC_TODO: Add function description\r
809\r
810Arguments:\r
811\r
812 FdcDev - GC_TODO: add argument description\r
813\r
814Returns:\r
815\r
816 GC_TODO: add return values\r
817\r
818--*/\r
819;\r
820\r
821EFI_STATUS\r
822Specify (\r
823 IN FDC_BLK_IO_DEV *FdcDev\r
824 )\r
825/*++\r
826\r
827Routine Description:\r
828\r
829 GC_TODO: Add function description\r
830\r
831Arguments:\r
832\r
833 FdcDev - GC_TODO: add argument description\r
834\r
835Returns:\r
836\r
837 GC_TODO: add return values\r
838\r
839--*/\r
840;\r
841\r
842EFI_STATUS\r
843Recalibrate (\r
844 IN FDC_BLK_IO_DEV *FdcDev\r
845 )\r
846/*++\r
847\r
848Routine Description:\r
849\r
850 GC_TODO: Add function description\r
851\r
852Arguments:\r
853\r
854 FdcDev - GC_TODO: add argument description\r
855\r
856Returns:\r
857\r
858 GC_TODO: add return values\r
859\r
860--*/\r
861;\r
862\r
863EFI_STATUS\r
864Seek (\r
865 IN FDC_BLK_IO_DEV *FdcDev,\r
866 IN EFI_LBA Lba\r
867 )\r
868/*++\r
869\r
870Routine Description:\r
871\r
872 GC_TODO: Add function description\r
873\r
874Arguments:\r
875\r
876 FdcDev - GC_TODO: add argument description\r
877 Lba - GC_TODO: add argument description\r
878\r
879Returns:\r
880\r
881 GC_TODO: add return values\r
882\r
883--*/\r
884;\r
885\r
886EFI_STATUS\r
887SenseIntStatus (\r
888 IN FDC_BLK_IO_DEV *FdcDev,\r
889 IN OUT UINT8 *StatusRegister0,\r
890 IN OUT UINT8 *PresentCylinderNumber\r
891 )\r
892/*++\r
893\r
894Routine Description:\r
895\r
896 GC_TODO: Add function description\r
897\r
898Arguments:\r
899\r
900 FdcDev - GC_TODO: add argument description\r
901 StatusRegister0 - GC_TODO: add argument description\r
902 PresentCylinderNumber - GC_TODO: add argument description\r
903\r
904Returns:\r
905\r
906 GC_TODO: add return values\r
907\r
908--*/\r
909;\r
910\r
911EFI_STATUS\r
912SenseDrvStatus (\r
913 IN FDC_BLK_IO_DEV *FdcDev,\r
914 IN EFI_LBA Lba\r
915 )\r
916/*++\r
917\r
918Routine Description:\r
919\r
920 GC_TODO: Add function description\r
921\r
922Arguments:\r
923\r
924 FdcDev - GC_TODO: add argument description\r
925 Lba - GC_TODO: add argument description\r
926\r
927Returns:\r
928\r
929 GC_TODO: add return values\r
930\r
931--*/\r
932;\r
933\r
934EFI_STATUS\r
935DetectMedia (\r
936 IN FDC_BLK_IO_DEV *FdcDev\r
937 )\r
938/*++\r
939\r
940Routine Description:\r
941\r
942 GC_TODO: Add function description\r
943\r
944Arguments:\r
945\r
946 FdcDev - GC_TODO: add argument description\r
947\r
948Returns:\r
949\r
950 GC_TODO: add return values\r
951\r
952--*/\r
953;\r
954\r
955EFI_STATUS\r
956Setup (\r
957 IN FDC_BLK_IO_DEV *FdcDev\r
958 )\r
959/*++\r
960\r
961Routine Description:\r
962\r
963 GC_TODO: Add function description\r
964\r
965Arguments:\r
966\r
967 FdcDev - GC_TODO: add argument description\r
968\r
969Returns:\r
970\r
971 GC_TODO: add return values\r
972\r
973--*/\r
974;\r
975\r
976EFI_STATUS\r
977ReadWriteDataSector (\r
978 IN FDC_BLK_IO_DEV *FdcDev,\r
979 IN VOID *HostAddress,\r
980 IN EFI_LBA Lba,\r
981 IN UINTN NumberOfBlocks,\r
982 IN BOOLEAN Read\r
983 )\r
984/*++\r
985\r
986Routine Description:\r
987\r
988 GC_TODO: Add function description\r
989\r
990Arguments:\r
991\r
992 FdcDev - GC_TODO: add argument description\r
993 HostAddress - GC_TODO: add argument description\r
994 Lba - GC_TODO: add argument description\r
995 NumberOfBlocks - GC_TODO: add argument description\r
996 Read - GC_TODO: add argument description\r
997\r
998Returns:\r
999\r
1000 GC_TODO: add return values\r
1001\r
1002--*/\r
1003;\r
1004\r
1005VOID\r
1006FillPara (\r
1007 IN FDC_BLK_IO_DEV *FdcDev,\r
1008 IN EFI_LBA Lba,\r
1009 IN FDD_COMMAND_PACKET1 *Command\r
1010 )\r
1011/*++\r
1012\r
1013Routine Description:\r
1014\r
1015 GC_TODO: Add function description\r
1016\r
1017Arguments:\r
1018\r
1019 FdcDev - GC_TODO: add argument description\r
1020 Lba - GC_TODO: add argument description\r
1021 Command - GC_TODO: add argument description\r
1022\r
1023Returns:\r
1024\r
1025 GC_TODO: add return values\r
1026\r
1027--*/\r
1028;\r
1029\r
1030EFI_STATUS\r
1031DataInByte (\r
1032 IN FDC_BLK_IO_DEV *FdcDev,\r
1033 IN UINT8 *Pointer\r
1034 )\r
1035/*++\r
1036\r
1037Routine Description:\r
1038\r
1039 GC_TODO: Add function description\r
1040\r
1041Arguments:\r
1042\r
1043 FdcDev - GC_TODO: add argument description\r
1044 Pointer - GC_TODO: add argument description\r
1045\r
1046Returns:\r
1047\r
1048 GC_TODO: add return values\r
1049\r
1050--*/\r
1051;\r
1052\r
1053EFI_STATUS\r
1054DataOutByte (\r
1055 IN FDC_BLK_IO_DEV *FdcDev,\r
1056 IN UINT8 *Pointer\r
1057 )\r
1058/*++\r
1059\r
1060Routine Description:\r
1061\r
1062 GC_TODO: Add function description\r
1063\r
1064Arguments:\r
1065\r
1066 FdcDev - GC_TODO: add argument description\r
1067 Pointer - GC_TODO: add argument description\r
1068\r
1069Returns:\r
1070\r
1071 GC_TODO: add return values\r
1072\r
1073--*/\r
1074;\r
1075\r
1076EFI_STATUS\r
1077FddWaitForBSYClear (\r
1078 IN FDC_BLK_IO_DEV *FdcDev,\r
1079 IN UINTN TimeoutInSeconds\r
1080 )\r
1081/*++\r
1082\r
1083Routine Description:\r
1084\r
1085 GC_TODO: Add function description\r
1086\r
1087Arguments:\r
1088\r
1089 FdcDev - GC_TODO: add argument description\r
1090 TimeoutInSeconds - GC_TODO: add argument description\r
1091\r
1092Returns:\r
1093\r
1094 GC_TODO: add return values\r
1095\r
1096--*/\r
1097;\r
1098\r
1099EFI_STATUS\r
1100FddDRQReady (\r
1101 IN FDC_BLK_IO_DEV *FdcDev,\r
1102 IN BOOLEAN Dio,\r
1103 IN UINTN TimeoutInSeconds\r
1104 )\r
1105/*++\r
1106\r
1107Routine Description:\r
1108\r
1109 GC_TODO: Add function description\r
1110\r
1111Arguments:\r
1112\r
1113 FdcDev - GC_TODO: add argument description\r
1114 Dio - GC_TODO: add argument description\r
1115 TimeoutInSeconds - GC_TODO: add argument description\r
1116\r
1117Returns:\r
1118\r
1119 GC_TODO: add return values\r
1120\r
1121--*/\r
1122;\r
1123\r
1124EFI_STATUS\r
1125CheckResult (\r
1126 IN FDD_RESULT_PACKET *Result,\r
1127 IN OUT FDC_BLK_IO_DEV *FdcDev\r
1128 )\r
1129/*++\r
1130\r
1131Routine Description:\r
1132\r
1133 GC_TODO: Add function description\r
1134\r
1135Arguments:\r
1136\r
1137 Result - GC_TODO: add argument description\r
1138 FdcDev - GC_TODO: add argument description\r
1139\r
1140Returns:\r
1141\r
1142 GC_TODO: add return values\r
1143\r
1144--*/\r
1145;\r
1146\r
1147EFI_STATUS\r
1148CheckStatus3 (\r
1149 IN UINT8 StatusRegister3\r
1150 )\r
1151/*++\r
1152\r
1153Routine Description:\r
1154\r
1155 GC_TODO: Add function description\r
1156\r
1157Arguments:\r
1158\r
1159 StatusRegister3 - GC_TODO: add argument description\r
1160\r
1161Returns:\r
1162\r
1163 GC_TODO: add return values\r
1164\r
1165--*/\r
1166;\r
1167\r
1168UINTN\r
1169GetTransferBlockCount (\r
1170 IN FDC_BLK_IO_DEV *FdcDev,\r
1171 IN EFI_LBA LBA,\r
1172 IN UINTN NumberOfBlocks\r
1173 )\r
1174/*++\r
1175\r
1176Routine Description:\r
1177\r
1178 GC_TODO: Add function description\r
1179\r
1180Arguments:\r
1181\r
1182 FdcDev - GC_TODO: add argument description\r
1183 LBA - GC_TODO: add argument description\r
1184 NumberOfBlocks - GC_TODO: add argument description\r
1185\r
1186Returns:\r
1187\r
1188 GC_TODO: add return values\r
1189\r
1190--*/\r
1191;\r
1192\r
1193VOID\r
1194EFIAPI\r
1195FddTimerProc (\r
1196 IN EFI_EVENT Event,\r
1197 IN VOID *Context\r
1198 )\r
1199/*++\r
1200\r
1201Routine Description:\r
1202\r
1203 GC_TODO: Add function description\r
1204\r
1205Arguments:\r
1206\r
1207 Event - GC_TODO: add argument description\r
1208 Context - GC_TODO: add argument description\r
1209\r
1210Returns:\r
1211\r
1212 GC_TODO: add return values\r
1213\r
1214--*/\r
1215;\r
1216\r
1217UINT8\r
1218FdcReadPort (\r
1219 IN FDC_BLK_IO_DEV *FdcDev,\r
1220 IN UINT32 Offset\r
1221 )\r
1222/*++\r
1223\r
1224Routine Description:\r
1225\r
1226 GC_TODO: Add function description\r
1227\r
1228Arguments:\r
1229\r
1230 FdcDev - GC_TODO: add argument description\r
1231 Offset - GC_TODO: add argument description\r
1232\r
1233Returns:\r
1234\r
1235 GC_TODO: add return values\r
1236\r
1237--*/\r
1238;\r
1239\r
1240VOID\r
1241FdcWritePort (\r
1242 IN FDC_BLK_IO_DEV *FdcDev,\r
1243 IN UINT32 Offset,\r
1244 IN UINT8 Data\r
1245 )\r
1246/*++\r
1247\r
1248Routine Description:\r
1249\r
1250 GC_TODO: Add function description\r
1251\r
1252Arguments:\r
1253\r
1254 FdcDev - GC_TODO: add argument description\r
1255 Offset - GC_TODO: add argument description\r
1256 Data - GC_TODO: add argument description\r
1257\r
1258Returns:\r
1259\r
1260 GC_TODO: add return values\r
1261\r
1262--*/\r
1263;\r
1264\r
1265EFI_STATUS\r
1266FddReadWriteBlocks (\r
1267 IN EFI_BLOCK_IO_PROTOCOL *This,\r
1268 IN UINT32 MediaId,\r
1269 IN EFI_LBA LBA,\r
1270 IN UINTN BufferSize,\r
1271 IN BOOLEAN Operation,\r
1272 OUT VOID *Buffer\r
1273 )\r
1274/*++\r
1275\r
1276Routine Description:\r
1277\r
1278 GC_TODO: Add function description\r
1279\r
1280Arguments:\r
1281\r
1282 This - GC_TODO: add argument description\r
1283 MediaId - GC_TODO: add argument description\r
1284 LBA - GC_TODO: add argument description\r
1285 BufferSize - GC_TODO: add argument description\r
1286 Operation - GC_TODO: add argument description\r
1287 Buffer - GC_TODO: add argument description\r
1288\r
1289Returns:\r
1290\r
1291 GC_TODO: add return values\r
1292\r
1293--*/\r
1294;\r
1295\r
1296VOID\r
1297FdcFreeCache (\r
1298 IN FDC_BLK_IO_DEV *FdcDev\r
1299 )\r
1300/*++\r
1301\r
1302Routine Description:\r
1303\r
1304 GC_TODO: Add function description\r
1305\r
1306Arguments:\r
1307\r
1308 FdcDev - GC_TODO: add argument description\r
1309\r
1310Returns:\r
1311\r
1312 GC_TODO: add return values\r
1313\r
1314--*/\r
1315;\r
1316\r
1317#endif\r