Subversion Repositories Kolibri OS

Rev

Rev 8150 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8150 dunkaist 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                              ;;
9227 dunkaist 3
;; Copyright (C) KolibriOS team 2020-2021. All rights reserved. ;;
8150 dunkaist 4
;; Distributed under terms of the GNU General Public License    ;;
5
;; Version 2, or (at your option) any later version.            ;;
6
;;                                                              ;;
9227 dunkaist 7
;; Written by Ivan Baravy                                       ;;
8
;;                                                              ;;
8150 dunkaist 9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
10
;;                                                              ;;
11
;; Based on UEFI library for fasm by bzt, Public Domain.        ;;
12
;;                                                              ;;
13
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8092 dunkaist 14
 
8150 dunkaist 15
EFI_LOCATE_SEARCH_TYPE:
16
.AllHandles       = 0
17
.ByRegisterNotify = 1
18
.ByProtocol       = 2
19
 
7130 dunkaist 20
; EFI_MEMORY_TYPE
21
EFI_RESERVED_MEMORY_TYPE        = 0
22
EFI_LOADER_CODE                 = 1
23
EFI_LOADER_DATA                 = 2
24
EFI_BOOT_SERVICES_CODE          = 3
25
EFI_BOOT_SERVICES_DATA          = 4
26
EFI_RUNTIME_SERVICES_CODE       = 5
27
EFI_RUNTIME_SERVICES_DATA       = 6
28
EFI_CONVENTIONAL_MEMORY         = 7
29
EFI_UNUSABLE_MEMORY             = 8
30
EFI_ACPI_RECLAIM_MEMORY         = 9
31
EFI_ACPI_MEMORY_NVS             = 10
32
EFI_MEMORY_MAPPED_IO            = 11
33
EFI_MEMORY_MAPPED_IO_PORT_SPACE = 12
34
EFI_PAL_CODE                    = 13
35
EFI_PERSISTENT_MEMORY           = 14
36
EFI_MAX_MEMORY_TYPE             = 15
37
 
8092 dunkaist 38
; EFI_ALLOCATE_TYPE
39
EFI_ALLOCATE_ANY_PAGES   = 0
40
EFI_ALLOCATE_MAX_ADDRESS = 1
41
EFI_ALLOCATE_ADDRESS     = 2
42
 
8150 dunkaist 43
EFI_MEMORY_UC                   = 0x00000001
44
EFI_MEMORY_WC                   = 0x00000002
45
EFI_MEMORY_WT                   = 0x00000004
46
EFI_MEMORY_WB                   = 0x00000008
47
EFI_MEMORY_UCE                  = 0x00000010
48
EFI_MEMORY_WP                   = 0x00001000
49
EFI_MEMORY_RP                   = 0x00002000
50
EFI_MEMORY_XP                   = 0x00004000
51
EFI_MEMORY_NV                   = 0x00008000
52
EFI_MEMORY_MORE_RELIABLE        = 0x00010000
53
EFI_MEMORY_RO                   = 0x00020000
7130 dunkaist 54
 
55
EFI_SUCCESS                     = 0
56
EFI_LOAD_ERROR                  = EFIERR or 1
57
EFI_INVALID_PARAMETER           = EFIERR or 2
58
EFI_UNSUPPORTED                 = EFIERR or 3
59
EFI_BAD_BUFFER_SIZE             = EFIERR or 4
60
EFI_BUFFER_TOO_SMALL            = EFIERR or 5
61
EFI_NOT_READY                   = EFIERR or 6
62
EFI_DEVICE_ERROR                = EFIERR or 7
63
EFI_WRITE_PROTECTED             = EFIERR or 8
64
EFI_OUT_OF_RESOURCES            = EFIERR or 9
65
EFI_VOLUME_CORRUPTED            = EFIERR or 10
66
EFI_VOLUME_FULL                 = EFIERR or 11
67
EFI_NO_MEDIA                    = EFIERR or 12
68
EFI_MEDIA_CHANGED               = EFIERR or 13
69
EFI_NOT_FOUND                   = EFIERR or 14
70
EFI_ACCESS_DENIED               = EFIERR or 15
71
EFI_NO_RESPONSE                 = EFIERR or 16
72
EFI_NO_MAPPING                  = EFIERR or 17
73
EFI_TIMEOUT                     = EFIERR or 18
74
EFI_NOT_STARTED                 = EFIERR or 19
75
EFI_ALREADY_STARTED             = EFIERR or 20
76
EFI_ABORTED                     = EFIERR or 21
77
EFI_ICMP_ERROR                  = EFIERR or 22
78
EFI_TFTP_ERROR                  = EFIERR or 23
79
EFI_PROTOCOL_ERROR              = EFIERR or 24
8092 dunkaist 80
 
8150 dunkaist 81
 
82
EFI_FILE_SYSTEM_INFO_ID equ 0x93,0x6e,0x57,0x09,0x3f,0x6d,0xd2,0x11, \
83
                            0x39,0x8e,0x00,0xa0,0xc9,0x69,0x72,0x3b
84
 
85
EFI_SYSTEM_TABLE_SIGNATURE equ 0x49,0x42,0x49,0x20,0x53,0x59,0x53,0x54
86
 
87
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID equ 0x22,0x5b,0x4e,0x96, \
88
                                         0x59,0x64,0xd2,0x11, \
89
                                         0x8e,0x39,0x00,0xa0, \
90
                                         0xc9,0x69,0x72,0x3b
91
 
92
EFI_LOADED_IMAGE_PROTOCOL_GUID equ 0xA1,0x31,0x1b,0x5b,0x62,0x95,0xd2,0x11, \
93
                                    0x8E,0x3F,0x00,0xA0,0xC9,0x69,0x72,0x3B
94
 
95
EFI_BLOCK_IO_PROTOCOL_GUID equ 0x21,0x5b,0x4e,0x96,0x59,0x64,0xd2,0x11, \
96
                               0x8e,0x39,0x00,0xa0,0xc9,0x69,0x72,0x3b
97
 
98
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID equ 0xde,0xa9,0x42,0x90,0xdc,0x23,0x38,0x4a, \
99
                                      0x96,0xfb,0x7a,0xde,0xd0,0x80,0x51,0x6a
100
 
9227 dunkaist 101
EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID equ 0xBB, 0x7E, 0x70, 0x2F, \
102
                                         0x1A, 0x4A, 0xd4, 0x11, \
103
                                         0x9A, 0x38, 0x00, 0x90, \
104
                                         0x27, 0x3F, 0xC1, 0x4D
105
 
8150 dunkaist 106
EFI_FILE_MODE_READ   = 1
107
EFI_FILE_MODE_WRITE  = 2
108
EFI_FILE_MODE_CREATE = 0x8000000000000000
109
 
110
struct EFI_MEMORY_DESCRIPTOR
111
  Type          dd ?
112
                dd ?    ; align
113
  PhysicalStart DQ ?
114
  VirtualStart  DQ ?
115
  NumberOfPages DQ ?
116
  Attribute     DQ ?
117
ends
118
 
8092 dunkaist 119
struct EFI_FILE_SYSTEM_INFO
8150 dunkaist 120
  Size          DQ ?
8092 dunkaist 121
  ReadOnly      db ?
122
                rb 7
8150 dunkaist 123
  VolumeSize    DQ ?
124
  FreeSpace     DQ ?
8092 dunkaist 125
  BlockSize     dd ?
126
  VolumeLabel   rw 32
127
ends
128
 
7130 dunkaist 129
struct EFI_TABLE_HEADER
8150 dunkaist 130
  Signature             DQ ?
7130 dunkaist 131
  Revision              dd ?
132
  HeaderSize            dd ?
133
  CRC32                 dd ?
134
  Reserved              dd ?
135
ends
8092 dunkaist 136
 
8150 dunkaist 137
struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
138
  Reset                 DN ?
139
  OutputString          DN ?
140
  TestString            DN ?
141
  QueryMode             DN ?
142
  SetMode               DN ?
143
  SetAttribute          DN ?
144
  ClearScreen           DN ?
145
  SetCursorPosition     DN ?
146
  EnableCursor          DN ?
147
  Mode                  DN ?
7130 dunkaist 148
ends
8092 dunkaist 149
 
150
 
7130 dunkaist 151
struct SIMPLE_INPUT_INTERFACE
8150 dunkaist 152
  Reset                 DN ?
153
  ReadKeyStroke         DN ?
154
  WaitForKey            DN ?
7130 dunkaist 155
ends
8092 dunkaist 156
 
8150 dunkaist 157
struct EFI_BOOT_SERVICES
158
  Hdr                        EFI_TABLE_HEADER
159
  RaisePriority              DN ?
160
  RestorePriority            DN ?
161
  AllocatePages              DN ?
162
  FreePages                  DN ?
163
  GetMemoryMap               DN ?
164
  AllocatePool               DN ?
165
  FreePool                   DN ?
166
  CreateEvent                DN ?
167
  SetTimer                   DN ?
168
  WaitForEvent               DN ?
169
  SignalEvent                DN ?
170
  CloseEvent                 DN ?
171
  CheckEvent                 DN ?
172
  InstallProtocolInterface   DN ?
173
  ReInstallProtocolInterface DN ?
174
  UnInstallProtocolInterface DN ?
175
  HandleProtocol             DN ?
176
  Reserved                   DN ?
177
  RegisterProtocolNotify     DN ?
178
  LocateHandle               DN ?
179
  LocateDevicePath           DN ?
180
  InstallConfigurationTable  DN ?
181
  ImageLoad                  DN ?
182
  ImageStart                 DN ?
183
  Exit                       DN ?
184
  ImageUnLoad                DN ?
185
  ExitBootServices           DN ?
186
  GetNextMonotonicCount      DN ?
187
  Stall                      DN ?
188
  SetWatchdogTimer           DN ?
189
  ConnectController          DN ?
190
  DisConnectController       DN ?
191
  OpenProtocol               DN ?
192
  CloseProtocol              DN ?
193
  OpenProtocolInformation    DN ?
194
  ProtocolsPerHandle         DN ?
195
  LocateHandleBuffer         DN ?
196
  LocateProtocol             DN ?
197
  InstallMultipleProtocolInterfaces DN ?
198
  UnInstallMultipleProtocolInterfaces DN ?
199
  CalculateCrc32             DN ?
200
  CopyMem                    DN ?
201
  SetMem                     DN ?
7130 dunkaist 202
ends
8092 dunkaist 203
 
8150 dunkaist 204
struct EFI_RUNTIME_SERVICES
7130 dunkaist 205
  Hdr                   EFI_TABLE_HEADER
8150 dunkaist 206
  GetTime               DN ?
207
  SetTime               DN ?
208
  GetWakeUpTime         DN ?
209
  SetWakeUpTime         DN ?
210
  SetVirtualAddressMap  DN ?
211
  ConvertPointer        DN ?
212
  GetVariable           DN ?
213
  GetNextVariableName   DN ?
214
  SetVariable           DN ?
215
  GetNextHighMonoCount  DN ?
216
  ResetSystem           DN ?
7130 dunkaist 217
ends
8092 dunkaist 218
 
219
struct EFI_SIMPLE_FILE_SYSTEM_PROTOCOL
8150 dunkaist 220
  Revision              DQ ?
221
  OpenVolume            DN ?
8092 dunkaist 222
ends
223
 
224
struct EFI_FILE_PROTOCOL
8150 dunkaist 225
  Revision              DQ ?
226
  Open                  DN ?
227
  Close                 DN ?
228
  Delete                DN ?
229
  Read                  DN ?
230
  Write                 DN ?
231
  GetPosition           DN ?
232
  SetPosition           DN ?
233
  GetInfo               DN ?
234
  SetInfo               DN ?
235
  Flush                 DN ?
236
  OpenEx                DN ?
237
  ReadEx                DN ?
238
  WriteEx               DN ?
239
  FlushEx               DN ?
8092 dunkaist 240
ends
241
 
7130 dunkaist 242
struct EFI_GRAPHICS_OUTPUT_PROTOCOL
8150 dunkaist 243
  QueryMode             DN ?
244
  SetMode               DN ?
245
  Blt                   DN ?
246
  Mode                  DN ?
7130 dunkaist 247
ends
8092 dunkaist 248
 
7130 dunkaist 249
struct EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE
250
  MaxMode               dd ?
251
  Mode                  dd ?
8150 dunkaist 252
  Info                  DN ?
253
  SizeOfInfo            DN ?
254
  FrameBufferBase       DQ ?
255
  FrameBufferSize       DN ?
7130 dunkaist 256
ends
8092 dunkaist 257
 
8150 dunkaist 258
EFI_GRAPHICS_PIXEL_FORMAT:
259
.PixelRedGreenBlueReserved8BitPerColor = 0
260
.PixelBlueGreenRedReserved8BitPerColor = 1
261
.PixelBitMask = 2
262
.PixelBltOnly = 3
263
.PixelFormatMax = 4
264
 
265
struct EFI_PIXEL_BITMASK
266
  RedMask               dd ?
267
  GreenMask             dd ?
268
  BlueMask              dd ?
269
  ReservedMask          dd ?
270
ends
271
 
7130 dunkaist 272
struct EFI_GRAPHICS_OUTPUT_MODE_INFORMATION
273
  Version               dd ?
274
  HorizontalResolution  dd ?
275
  VerticalResolution    dd ?
276
  PixelFormat           dd ?
8150 dunkaist 277
  PixelInformation      EFI_PIXEL_BITMASK
7130 dunkaist 278
  PixelsPerScanLine     dd ?
279
ends
9227 dunkaist 280
 
281
struct PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS
282
  Read  DN ?
283
  Write DN ?
284
ends
285
 
286
struct EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL
287
  ParentHandle          DN ? ; EFI_HANDLE
288
  PollMem               DN ?
289
  PollIo                DN ?
290
  Mem                   PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS
291
  Io                    PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS
292
  Pci                   PCI_ROOT_BRIDGE_IO_PROTOCOL_ACCESS
293
  CopyMem               DN ?
294
  Map                   DN ?
295
  Unmap                 DN ?
296
  AllocateBuffer        DN ?
297
  FreeBuffer            DN ?
298
  Flush                 DN ?
299
  GetAttributes         DN ?
300
  SetAttributes         DN ?
301
  Configuration         DN ?
302
  SegmentNumber         dd ?
303
ends
304
 
305
struct EFI_QWORD_ADDRESS_SPACE_DESCRIPTOR       ; described in acpi spec
306
  Type              db ?
307
  Length            dw ?
308
  ResourceType      db ?
309
  GeneralFlags      db ?
310
  SpecificFlags     db ?
311
  Granularity       dq ?
312
  RangeMinimum      dq ?
313
  RangeMaximum      dq ?
314
  TranslationOffset dq ?
315
  AddressLength dq ?
316
ends
317
 
318
EFI_RESOURCE_DESCRIPTOR_TYPE.QWORD_ADDRESS_SPACE = 0x8a
319
EFI_RESOURCE_DESCRIPTOR_TYPE.END_TAG = 0x79
320
 
321
EFI_RESOURCE_TYPE.MEMORY = 0
322
EFI_RESOURCE_TYPE.IO = 1
323
EFI_RESOURCE_TYPE.BUS = 2