source: mainline/boot/arch/ia64/loader/gefi/inc/efilib.h@ 86018c1

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 86018c1 was 7208b6c, checked in by Jakub Vana <jakub.vana@…>, 17 years ago

Basic IA64 boot and kernel suport for real machines

  • Property mode set to 100644
File size: 16.6 KB
RevLine 
[7208b6c]1#ifndef _EFILIB_INCLUDE_
2#define _EFILIB_INCLUDE_
3
4/*++
5
6Copyright (c) 2000 Intel Corporation
7
8Module Name:
9
10 efilib.h
11
12Abstract:
13
14 EFI library functions
15
16
17
18Revision History
19
20--*/
21
22#include "efidebug.h"
23#include "efipart.h"
24#include "efilibplat.h"
25#include "efilink.h"
26#include "efirtlib.h"
27#include "pci22.h"
28#include "libsmbios.h"
29
30//
31// Public read-only data in the EFI library
32//
33
34extern EFI_SYSTEM_TABLE *ST;
35extern EFI_BOOT_SERVICES *BS;
36extern EFI_RUNTIME_SERVICES *RT;
37
38extern EFI_GUID DevicePathProtocol;
39extern EFI_GUID LoadedImageProtocol;
40extern EFI_GUID TextInProtocol;
41extern EFI_GUID TextOutProtocol;
42extern EFI_GUID BlockIoProtocol;
43extern EFI_GUID DiskIoProtocol;
44extern EFI_GUID FileSystemProtocol;
45extern EFI_GUID LoadFileProtocol;
46extern EFI_GUID DeviceIoProtocol;
47extern EFI_GUID VariableStoreProtocol;
48extern EFI_GUID LegacyBootProtocol;
49extern EFI_GUID UnicodeCollationProtocol;
50extern EFI_GUID SerialIoProtocol;
51extern EFI_GUID VgaClassProtocol;
52extern EFI_GUID TextOutSpliterProtocol;
53extern EFI_GUID ErrorOutSpliterProtocol;
54extern EFI_GUID TextInSpliterProtocol;
55extern EFI_GUID SimpleNetworkProtocol;
56extern EFI_GUID PxeBaseCodeProtocol;
57extern EFI_GUID PxeCallbackProtocol;
58extern EFI_GUID NetworkInterfaceIdentifierProtocol;
59extern EFI_GUID UiProtocol;
60extern EFI_GUID InternalShellProtocol;
61
62extern EFI_GUID EfiGlobalVariable;
63extern EFI_GUID GenericFileInfo;
64extern EFI_GUID FileSystemInfo;
65extern EFI_GUID FileSystemVolumeLabelInfo;
66extern EFI_GUID PcAnsiProtocol;
67extern EFI_GUID Vt100Protocol;
68extern EFI_GUID NullGuid;
69extern EFI_GUID UnknownDevice;
70
71extern EFI_GUID EfiPartTypeSystemPartitionGuid;
72extern EFI_GUID EfiPartTypeLegacyMbrGuid;
73
74extern EFI_GUID MpsTableGuid;
75extern EFI_GUID AcpiTableGuid;
76extern EFI_GUID SMBIOSTableGuid;
77extern EFI_GUID SalSystemTableGuid;
78
79//
80// EFI Variable strings
81//
82#define LOAD_OPTION_ACTIVE 0x00000001
83
84#define VarLanguageCodes L"LangCodes"
85#define VarLanguage L"Lang"
86#define VarTimeout L"Timeout"
87#define VarConsoleInp L"ConIn"
88#define VarConsoleOut L"ConOut"
89#define VarErrorOut L"ErrOut"
90#define VarBootOption L"Boot%04x"
91#define VarBootOrder L"BootOrder"
92#define VarBootNext L"BootNext"
93#define VarBootCurrent L"BootCurrent"
94#define VarDriverOption L"Driver%04x"
95#define VarDriverOrder L"DriverOrder"
96#define VarConsoleInpDev L"ConInDev"
97#define VarConsoleOutDev L"ConOutDev"
98#define VarErrorOutDev L"ErrOutDev"
99
100#define LanguageCodeEnglish "eng"
101
102extern EFI_DEVICE_PATH RootDevicePath[];
103extern EFI_DEVICE_PATH EndDevicePath[];
104extern EFI_DEVICE_PATH EndInstanceDevicePath[];
105
106//
107// Other public data in the EFI library
108//
109
110extern EFI_MEMORY_TYPE PoolAllocationType;
111
112//
113// STATIC - Name is internal to the module
114// INTERNAL - Name is internal to the component (i.e., directory)
115// BOOTSERVCE - Name of a boot service function
116//
117
118#define STATIC
119#define INTERNAL
120#define BOOTSERVICE
121
122//
123// Prototypes
124//
125
126VOID
127InitializeLib (
128 IN EFI_HANDLE ImageHandle,
129 IN EFI_SYSTEM_TABLE *SystemTable
130 );
131
132VOID
133InitializeUnicodeSupport (
134 CHAR8 *LangCode
135 );
136
137VOID
138EFIDebugVariable (
139 VOID
140 );
141
142VOID
143SetCrc (
144 IN OUT EFI_TABLE_HEADER *Hdr
145 );
146
147VOID
148SetCrcAltSize (
149 IN UINTN Size,
150 IN OUT EFI_TABLE_HEADER *Hdr
151 );
152
153BOOLEAN
154CheckCrc (
155 IN UINTN MaxSize,
156 IN OUT EFI_TABLE_HEADER *Hdr
157 );
158
159BOOLEAN
160CheckCrcAltSize (
161 IN UINTN MaxSize,
162 IN UINTN Size,
163 IN OUT EFI_TABLE_HEADER *Hdr
164 );
165
166UINT32
167CalculateCrc (
168 UINT8 *pt,
169 UINTN Size
170 );
171
172VOID
173ZeroMem (
174 IN VOID *Buffer,
175 IN UINTN Size
176 );
177
178VOID
179SetMem (
180 IN VOID *Buffer,
181 IN UINTN Size,
182 IN UINT8 Value
183 );
184
185VOID
186CopyMem (
187 IN VOID *Dest,
188 IN VOID *Src,
189 IN UINTN len
190 );
191
192INTN
193CompareMem (
194 IN VOID *Dest,
195 IN VOID *Src,
196 IN UINTN len
197 );
198
199INTN
200StrCmp (
201 IN CHAR16 *s1,
202 IN CHAR16 *s2
203 );
204
205INTN
206StrnCmp (
207 IN CHAR16 *s1,
208 IN CHAR16 *s2,
209 IN UINTN len
210 );
211
212INTN
213StriCmp (
214 IN CHAR16 *s1,
215 IN CHAR16 *s2
216 );
217
218VOID
219StrLwr (
220 IN CHAR16 *Str
221 );
222
223VOID
224StrUpr (
225 IN CHAR16 *Str
226 );
227
228VOID
229StrCpy (
230 IN CHAR16 *Dest,
231 IN CHAR16 *Src
232 );
233
234VOID
235StrCat (
236 IN CHAR16 *Dest,
237 IN CHAR16 *Src
238 );
239
240UINTN
241StrLen (
242 IN CHAR16 *s1
243 );
244
245UINTN
246StrSize (
247 IN CHAR16 *s1
248 );
249
250CHAR16 *
251StrDuplicate (
252 IN CHAR16 *Src
253 );
254
255UINTN
256strlena (
257 IN CHAR8 *s1
258 );
259
260UINTN
261strcmpa (
262 IN CHAR8 *s1,
263 IN CHAR8 *s2
264 );
265
266UINTN
267strncmpa (
268 IN CHAR8 *s1,
269 IN CHAR8 *s2,
270 IN UINTN len
271 );
272
273UINTN
274xtoi (
275 CHAR16 *str
276 );
277
278UINTN
279Atoi (
280 CHAR16 *str
281 );
282
283BOOLEAN
284MetaMatch (
285 IN CHAR16 *String,
286 IN CHAR16 *Pattern
287 );
288
289BOOLEAN
290MetaiMatch (
291 IN CHAR16 *String,
292 IN CHAR16 *Pattern
293 );
294
295UINT64
296LShiftU64 (
297 IN UINT64 Operand,
298 IN UINTN Count
299 );
300
301UINT64
302RShiftU64 (
303 IN UINT64 Operand,
304 IN UINTN Count
305 );
306
307UINT64
308MultU64x32 (
309 IN UINT64 Multiplicand,
310 IN UINTN Multiplier
311 );
312
313UINT64
314DivU64x32 (
315 IN UINT64 Dividend,
316 IN UINTN Divisor,
317 OUT UINTN *Remainder OPTIONAL
318 );
319
320VOID
321InitializeLock (
322 IN OUT FLOCK *Lock,
323 IN EFI_TPL Priority
324 );
325
326VOID
327AcquireLock (
328 IN FLOCK *Lock
329 );
330
331VOID
332ReleaseLock (
333 IN FLOCK *Lock
334 );
335
336
337INTN
338CompareGuid(
339 IN EFI_GUID *Guid1,
340 IN EFI_GUID *Guid2
341 );
342
343VOID *
344AllocatePool (
345 IN UINTN Size
346 );
347
348VOID *
349AllocateZeroPool (
350 IN UINTN Size
351 );
352
353VOID *
354ReallocatePool (
355 IN VOID *OldPool,
356 IN UINTN OldSize,
357 IN UINTN NewSize
358 );
359
360VOID
361FreePool (
362 IN VOID *p
363 );
364
365
366VOID
367Output (
368 IN CHAR16 *Str
369 );
370
371VOID
372Input (
373 IN CHAR16 *Prompt OPTIONAL,
374 OUT CHAR16 *InStr,
375 IN UINTN StrLen
376 );
377
378VOID
379IInput (
380 IN SIMPLE_TEXT_OUTPUT_INTERFACE *ConOut,
381 IN SIMPLE_INPUT_INTERFACE *ConIn,
382 IN CHAR16 *Prompt OPTIONAL,
383 OUT CHAR16 *InStr,
384 IN UINTN StrLen
385 );
386
387UINTN
388Print (
389 IN CHAR16 *fmt,
390 ...
391 );
392
393UINTN
394SPrint (
395 OUT CHAR16 *Str,
396 IN UINTN StrSize,
397 IN CHAR16 *fmt,
398 ...
399 );
400
401CHAR16 *
402PoolPrint (
403 IN CHAR16 *fmt,
404 ...
405 );
406
407typedef struct {
408 CHAR16 *str;
409 UINTN len;
410 UINTN maxlen;
411} POOL_PRINT;
412
413CHAR16 *
414CatPrint (
415 IN OUT POOL_PRINT *Str,
416 IN CHAR16 *fmt,
417 ...
418 );
419
420UINTN
421PrintAt (
422 IN UINTN Column,
423 IN UINTN Row,
424 IN CHAR16 *fmt,
425 ...
426 );
427
428UINTN
429IPrint (
430 IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out,
431 IN CHAR16 *fmt,
432 ...
433 );
434
435UINTN
436IPrintAt (
437 IN SIMPLE_TEXT_OUTPUT_INTERFACE *Out,
438 IN UINTN Column,
439 IN UINTN Row,
440 IN CHAR16 *fmt,
441 ...
442 );
443
444UINTN
445APrint (
446 IN CHAR8 *fmt,
447 ...
448 );
449
450VOID
451ValueToHex (
452 IN CHAR16 *Buffer,
453 IN UINT64 v
454 );
455
456VOID
457ValueToString (
458 IN CHAR16 *Buffer,
459 IN BOOLEAN Comma,
460 IN INT64 v
461 );
462
463VOID
464TimeToString (
465 OUT CHAR16 *Buffer,
466 IN EFI_TIME *Time
467 );
468
469VOID
470GuidToString (
471 OUT CHAR16 *Buffer,
472 IN EFI_GUID *Guid
473 );
474
475VOID
476StatusToString (
477 OUT CHAR16 *Buffer,
478 EFI_STATUS Status
479 );
480
481VOID
482DumpHex (
483 IN UINTN Indent,
484 IN UINTN Offset,
485 IN UINTN DataSize,
486 IN VOID *UserData
487 );
488
489BOOLEAN
490GrowBuffer(
491 IN OUT EFI_STATUS *Status,
492 IN OUT VOID **Buffer,
493 IN UINTN BufferSize
494 );
495
496EFI_MEMORY_DESCRIPTOR *
497LibMemoryMap (
498 OUT UINTN *NoEntries,
499 OUT UINTN *MapKey,
500 OUT UINTN *DescriptorSize,
501 OUT UINT32 *DescriptorVersion
502 );
503
504VOID *
505LibGetVariable (
506 IN CHAR16 *Name,
507 IN EFI_GUID *VendorGuid
508 );
509
510VOID *
511LibGetVariableAndSize (
512 IN CHAR16 *Name,
513 IN EFI_GUID *VendorGuid,
514 OUT UINTN *VarSize
515 );
516
517EFI_STATUS
518LibDeleteVariable (
519 IN CHAR16 *VarName,
520 IN EFI_GUID *VarGuid
521 );
522
523EFI_STATUS
524LibInsertToTailOfBootOrder (
525 IN UINT16 BootOption,
526 IN BOOLEAN OnlyInsertIfEmpty
527 );
528
529EFI_STATUS
530LibLocateProtocol (
531 IN EFI_GUID *ProtocolGuid,
532 OUT VOID **Interface
533 );
534
535EFI_STATUS
536LibLocateHandle (
537 IN EFI_LOCATE_SEARCH_TYPE SearchType,
538 IN EFI_GUID *Protocol OPTIONAL,
539 IN VOID *SearchKey OPTIONAL,
540 IN OUT UINTN *NoHandles,
541 OUT EFI_HANDLE **Buffer
542 );
543
544EFI_STATUS
545LibLocateHandleByDiskSignature (
546 IN UINT8 MBRType,
547 IN UINT8 SignatureType,
548 IN VOID *Signature,
549 IN OUT UINTN *NoHandles,
550 OUT EFI_HANDLE **Buffer
551 );
552
553EFI_STATUS
554LibInstallProtocolInterfaces (
555 IN OUT EFI_HANDLE *Handle,
556 ...
557 );
558
559VOID
560LibUninstallProtocolInterfaces (
561 IN EFI_HANDLE Handle,
562 ...
563 );
564
565EFI_STATUS
566LibReinstallProtocolInterfaces (
567 IN OUT EFI_HANDLE *Handle,
568 ...
569 );
570
571EFI_EVENT
572LibCreateProtocolNotifyEvent (
573 IN EFI_GUID *ProtocolGuid,
574 IN EFI_TPL NotifyTpl,
575 IN EFI_EVENT_NOTIFY NotifyFunction,
576 IN VOID *NotifyContext,
577 OUT VOID *Registration
578 );
579
580EFI_STATUS
581WaitForSingleEvent (
582 IN EFI_EVENT Event,
583 IN UINT64 Timeout OPTIONAL
584 );
585
586VOID
587WaitForEventWithTimeout (
588 IN EFI_EVENT Event,
589 IN UINTN Timeout,
590 IN UINTN Row,
591 IN UINTN Column,
592 IN CHAR16 *String,
593 IN EFI_INPUT_KEY TimeoutKey,
594 OUT EFI_INPUT_KEY *Key
595 );
596
597EFI_FILE_HANDLE
598LibOpenRoot (
599 IN EFI_HANDLE DeviceHandle
600 );
601
602EFI_FILE_INFO *
603LibFileInfo (
604 IN EFI_FILE_HANDLE FHand
605 );
606
607EFI_FILE_SYSTEM_INFO *
608LibFileSystemInfo (
609 IN EFI_FILE_HANDLE FHand
610 );
611
612EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *
613LibFileSystemVolumeLabelInfo (
614 IN EFI_FILE_HANDLE FHand
615 );
616
617BOOLEAN
618ValidMBR(
619 IN MASTER_BOOT_RECORD *Mbr,
620 IN EFI_BLOCK_IO *BlkIo
621 );
622
623BOOLEAN
624LibMatchDevicePaths (
625 IN EFI_DEVICE_PATH *Multi,
626 IN EFI_DEVICE_PATH *Single
627 );
628
629EFI_DEVICE_PATH *
630LibDuplicateDevicePathInstance (
631 IN EFI_DEVICE_PATH *DevPath
632 );
633
634EFI_DEVICE_PATH *
635DevicePathFromHandle (
636 IN EFI_HANDLE Handle
637 );
638
639EFI_DEVICE_PATH *
640DevicePathInstance (
641 IN OUT EFI_DEVICE_PATH **DevicePath,
642 OUT UINTN *Size
643 );
644
645UINTN
646DevicePathInstanceCount (
647 IN EFI_DEVICE_PATH *DevicePath
648 );
649
650EFI_DEVICE_PATH *
651AppendDevicePath (
652 IN EFI_DEVICE_PATH *Src1,
653 IN EFI_DEVICE_PATH *Src2
654 );
655
656EFI_DEVICE_PATH *
657AppendDevicePathNode (
658 IN EFI_DEVICE_PATH *Src1,
659 IN EFI_DEVICE_PATH *Src2
660 );
661
662EFI_DEVICE_PATH*
663AppendDevicePathInstance (
664 IN EFI_DEVICE_PATH *Src,
665 IN EFI_DEVICE_PATH *Instance
666 );
667
668EFI_DEVICE_PATH *
669FileDevicePath (
670 IN EFI_HANDLE Device OPTIONAL,
671 IN CHAR16 *FileName
672 );
673
674UINTN
675DevicePathSize (
676 IN EFI_DEVICE_PATH *DevPath
677 );
678
679EFI_DEVICE_PATH *
680DuplicateDevicePath (
681 IN EFI_DEVICE_PATH *DevPath
682 );
683
684EFI_DEVICE_PATH *
685UnpackDevicePath (
686 IN EFI_DEVICE_PATH *DevPath
687 );
688
689EFI_STATUS
690LibDevicePathToInterface (
691 IN EFI_GUID *Protocol,
692 IN EFI_DEVICE_PATH *FilePath,
693 OUT VOID **Interface
694 );
695
696CHAR16 *
697DevicePathToStr (
698 EFI_DEVICE_PATH *DevPath
699 );
700
701//
702// BugBug: I need my own include files
703//
704typedef struct {
705 UINT8 Register;
706 UINT8 Function;
707 UINT8 Device;
708 UINT8 Bus;
709 UINT32 Reserved;
710} EFI_ADDRESS;
711
712typedef union {
713 UINT64 Address;
714 EFI_ADDRESS EfiAddress;
715} EFI_PCI_ADDRESS_UNION;
716
717
718EFI_STATUS
719PciFindDeviceClass (
720 IN OUT EFI_PCI_ADDRESS_UNION *Address,
721 IN UINT8 BaseClass,
722 IN UINT8 SubClass
723 );
724
725EFI_STATUS
726PciFindDevice (
727 IN OUT EFI_PCI_ADDRESS_UNION *DeviceAddress,
728 IN UINT16 VendorId,
729 IN UINT16 DeviceId,
730 IN OUT PCI_TYPE00 *Pci
731 );
732
733//
734// SIMPLE_READ_FILE object used to access files
735//
736
737typedef VOID *SIMPLE_READ_FILE;
738
739EFI_STATUS
740OpenSimpleReadFile (
741 IN BOOLEAN BootPolicy,
742 IN VOID *SourceBuffer OPTIONAL,
743 IN UINTN SourceSize,
744 IN OUT EFI_DEVICE_PATH **FilePath,
745 OUT EFI_HANDLE *DeviceHandle,
746 OUT SIMPLE_READ_FILE *SimpleReadHandle
747 );
748
749EFI_STATUS
750ReadSimpleReadFile (
751 IN SIMPLE_READ_FILE SimpleReadHandle,
752 IN UINTN Offset,
753 IN OUT UINTN *ReadSize,
754 OUT VOID *Buffer
755 );
756
757
758VOID
759CloseSimpleReadFile (
760 IN SIMPLE_READ_FILE SimpleReadHandle
761 );
762
763VOID
764InitializeGuid (
765 VOID
766 );
767
768UINT8
769DecimaltoBCD(
770 IN UINT8 DecValue
771 );
772
773UINT8
774BCDtoDecimal(
775 IN UINT8 BcdValue
776 );
777
778EFI_STATUS
779LibGetSystemConfigurationTable(
780 IN EFI_GUID *TableGuid,
781 IN OUT VOID **Table
782 );
783
784BOOLEAN
785LibIsValidTextGraphics (
786 IN CHAR16 Graphic,
787 OUT CHAR8 *PcAnsi, OPTIONAL
788 OUT CHAR8 *Ascii OPTIONAL
789 );
790
791BOOLEAN
792IsValidAscii (
793 IN CHAR16 Ascii
794 );
795
796BOOLEAN
797IsValidEfiCntlChar (
798 IN CHAR16 c
799 );
800
801CHAR16 *
802LibGetUiString (
803 IN EFI_HANDLE Handle,
804 IN UI_STRING_TYPE StringType,
805 IN ISO_639_2 *LangCode,
806 IN BOOLEAN ReturnDevicePathStrOnMismatch
807 );
808
809CHAR8*
810LibGetSmbiosString (
811 IN SMBIOS_STRUCTURE_POINTER *Smbios,
812 IN UINT16 StringNumber
813 );
814
815EFI_STATUS
816LibGetSmbiosSystemGuidAndSerialNumber (
817 IN EFI_GUID *SystemGuid,
818 OUT CHAR8 **SystemSerialNumber
819 );
820
821
822EFI_STATUS
823InitializeGlobalIoDevice (
824 IN EFI_DEVICE_PATH *DevicePath,
825 IN EFI_GUID *Protocol,
826 IN CHAR8 *ErrorStr,
827 OUT EFI_DEVICE_IO_INTERFACE **GlobalIoFncs
828 );
829
830UINT32
831ReadPort (
832 IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs,
833 IN EFI_IO_WIDTH Width,
834 IN UINTN Port
835 );
836
837UINT32
838WritePort (
839 IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs,
840 IN EFI_IO_WIDTH Width,
841 IN UINTN Port,
842 IN UINTN Data
843 );
844
845UINT32
846ReadPciConfig (
847 IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs,
848 IN EFI_IO_WIDTH Width,
849 IN UINTN Port
850 );
851
852UINT32
853WritePciConfig (
854 IN EFI_DEVICE_IO_INTERFACE *GlobalIoFncs,
855 IN EFI_IO_WIDTH Width,
856 IN UINTN Port,
857 IN UINTN Data
858 );
859
860extern EFI_DEVICE_IO_INTERFACE *GlobalIoFncs;
861
862#define outp(_Port, _DataByte) (UINT8)WritePort(GlobalIoFncs, IO_UINT8, (UINTN)_Port, (UINTN)_DataByte)
863#define inp(_Port) (UINT8)ReadPort(GlobalIoFncs, IO_UINT8, (UINTN)_Port)
864#define outpw(_Port, _DataByte) (UINT16)WritePort(GlobalIoFncs, IO_UINT16, (UINTN)_Port, (UINTN)_DataByte)
865#define inpw(_Port) (UINT16)ReadPort(GlobalIoFncs, IO_UINT16, (UINTN)_Port)
866#define outpd(_Port, _DataByte) (UINT32)WritePort(GlobalIoFncs, IO_UINT32, (UINTN)_Port, (UINTN)_DataByte)
867#define inpd(_Port) (UINT32)ReadPort(GlobalIoFncs, IO_UINT32, (UINTN)_Port)
868
869#define writepci8(_Addr, _DataByte) (UINT8)WritePciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr, (UINTN)_DataByte)
870#define readpci8(_Addr) (UINT8)ReadPciConfig(GlobalIoFncs, IO_UINT8, (UINTN)_Addr)
871#define writepci16(_Addr, _DataByte) (UINT16)WritePciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr, (UINTN)_DataByte)
872#define readpci16(_Addr) (UINT16)ReadPciConfig(GlobalIoFncs, IO_UINT16, (UINTN)_Addr)
873#define writepci32(_Addr, _DataByte) (UINT32)WritePciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr, (UINTN)_DataByte)
874#define readpci32(_Addr) (UINT32)ReadPciConfig(GlobalIoFncs, IO_UINT32, (UINTN)_Addr)
875
876#define Pause() WaitForSingleEvent (ST->ConIn->WaitForKey, 0)
877#define Port80(_PostCode) GlobalIoFncs->Io.Write (GlobalIoFncs, IO_UINT16, (UINT64)0x80, 1, &(_PostCode))
878
879#endif
Note: See TracBrowser for help on using the repository browser.