OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcDevicePathLib.h
Go to the documentation of this file.
1
15#ifndef OC_DEVICE_PATH_LIB_H
16#define OC_DEVICE_PATH_LIB_H
17
24#define MSG_APPLE_NVME_NAMESPACE_DP 0x22
25
36EFI_DEVICE_PATH_PROTOCOL *
38 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
39 IN CHAR16 *FileName
40 );
41
49EFI_DEVICE_PATH_PROTOCOL *
51 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
52 );
53
63EFI_DEVICE_PATH_PROTOCOL *
65 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
66 IN UINT8 Type,
67 IN UINT8 SubType OPTIONAL
68 );
69
79BOOLEAN
80EFIAPI
82 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1,
83 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2
84 );
85
95BOOLEAN
97 IN FILEPATH_DEVICE_PATH *FilePath1,
98 IN FILEPATH_DEVICE_PATH *FilePath2
99 );
100
110BOOLEAN
111EFIAPI
113 IN EFI_DEVICE_PATH_PROTOCOL *ParentPath,
114 IN EFI_DEVICE_PATH_PROTOCOL *ChildPath
115 );
116
125EFI_DEVICE_PATH_PROTOCOL *
127 IN EFI_HANDLE Handle,
128 IN EFI_DEVICE_PATH_PROTOCOL *RelativePath OPTIONAL
129 );
130
139EFI_DEVICE_PATH_PROTOCOL *
141 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
142 );
143
151UINTN
153 IN CONST FILEPATH_DEVICE_PATH *FilePath
154 );
155
163UINTN
165 IN CONST FILEPATH_DEVICE_PATH *FilePath
166 );
167
178UINTN
180 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
181 );
182
193UINTN
195 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
196 );
197
209VOID
211 OUT CHAR16 *PathName,
212 IN CONST FILEPATH_DEVICE_PATH *FilePath,
213 IN UINTN PathNameSize
214 );
215
225CHAR16 *
227 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
228 OUT EFI_DEVICE_PATH_PROTOCOL **FileDevicePath OPTIONAL
229 );
230
239EFI_DEVICE_PATH_PROTOCOL *
241 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
242 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance
243 );
244
252UINTN
254 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
255 );
256
261typedef struct {
262 //
263 // Stores the old device path prior to expansion.
264 //
265 EFI_DEVICE_PATH_PROTOCOL *OldPath;
266 //
267 // Valid iff OldPath == NULL.
268 //
269 union {
270 struct {
272 } Sata;
273
274 struct {
275 UINT8 SubType;
276 } SasExNvme;
277
278 struct {
279 UINT32 HID;
280 UINT32 UID;
281 } Acpi;
282
283 struct {
284 UINT32 HID;
285 UINT32 CID;
286 } ExtendedAcpi;
287 } Types;
289
314INTN
316 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
317 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode,
318 OUT APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext OPTIONAL,
319 IN EFI_HANDLE ValidDevice OPTIONAL
320 );
321
340VOID
342 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
343 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode,
344 IN CONST APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext
345 );
346
347/*
348 Frees any resources allocated by OcFixAppleBootDevicePathNode().
349
350 @param[in] DevicePath A pointer to the device path associated with
351 RestoreContext.
352 @param[in,out] RestoreContext A pointer to a context that was used to call
353 OcFixAppleBootDevicePathNode(). All resources
354 are freed.
355*/
356VOID
358 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode,
359 IN OUT APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext
360 );
361
385INTN
387 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
388 OUT EFI_DEVICE_PATH_PROTOCOL **RemainingDevicePath
389 );
390
404EFI_DEVICE_PATH_PROTOCOL *
406 IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
407 IN EFI_DEVICE_PATH_PROTOCOL *FullPath
408 );
409
410/*
411 Checks DevicePath for whether it ends with file path Suffix.
412
413 @param[in] DevicePath The Device Path to check.
414 @param[in] Suffix The suffix to check for.
415 @param[in] SuffixLen Must be equal to StrLen(Suffix).
416
417 @returns Whether DevicePath ends with Suffix.
418*/
419BOOLEAN
421 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
422 IN CONST CHAR16 *Suffix,
423 IN UINTN SuffixLen
424 );
425
426#endif // OC_DEVICE_PATH_LIB_H
CHAR16 PathName[DMG_FILE_PATH_LEN]
DMG_FILEPATH_DEVICE_PATH FilePath
EFI_DEVICE_PATH_PROTOCOL * OcGetNextLoadOptionDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *FilePath, IN EFI_DEVICE_PATH_PROTOCOL *FullPath)
UINTN OcFileDevicePathFullNameLen(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
UINTN OcFileDevicePathNameLen(IN CONST FILEPATH_DEVICE_PATH *FilePath)
INTN OcFixAppleBootDevicePath(IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_DEVICE_PATH_PROTOCOL **RemainingDevicePath)
EFI_DEVICE_PATH_PROTOCOL * FindDevicePathEndNode(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
VOID OcFixAppleBootDevicePathNodeRestoreFree(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN OUT APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext)
UINTN OcFileDevicePathNameSize(IN CONST FILEPATH_DEVICE_PATH *FilePath)
BOOLEAN EFIAPI IsDevicePathChild(IN EFI_DEVICE_PATH_PROTOCOL *ParentPath, IN EFI_DEVICE_PATH_PROTOCOL *ChildPath)
CHAR16 * OcCopyDevicePathFullName(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT EFI_DEVICE_PATH_PROTOCOL **FileDevicePath OPTIONAL)
VOID OcFixAppleBootDevicePathNodeRestore(IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode, IN CONST APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext)
BOOLEAN OcDevicePathHasFilePathSuffix(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CONST CHAR16 *Suffix, IN UINTN SuffixLen)
EFI_DEVICE_PATH_PROTOCOL * AbsoluteDevicePath(IN EFI_HANDLE Handle, IN EFI_DEVICE_PATH_PROTOCOL *RelativePath OPTIONAL)
EFI_DEVICE_PATH_PROTOCOL * OcAppendDevicePathInstanceDedupe(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL, IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance)
VOID OcFileDevicePathFullName(OUT CHAR16 *PathName, IN CONST FILEPATH_DEVICE_PATH *FilePath, IN UINTN PathNameSize)
INTN OcFixAppleBootDevicePathNode(IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode, OUT APPLE_BOOT_DP_PATCH_CONTEXT *RestoreContext OPTIONAL, IN EFI_HANDLE ValidDevice OPTIONAL)
EFI_DEVICE_PATH_PROTOCOL * TrailedBooterDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
UINTN OcGetNumDevicePathInstances(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
EFI_DEVICE_PATH_PROTOCOL * FindDevicePathNodeWithType(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN UINT8 Type, IN UINT8 SubType OPTIONAL)
BOOLEAN FileDevicePathsEqual(IN FILEPATH_DEVICE_PATH *FilePath1, IN FILEPATH_DEVICE_PATH *FilePath2)
EFI_DEVICE_PATH_PROTOCOL * AppendFileNameDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CHAR16 *FileName)
UINTN OcFileDevicePathFullNameSize(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
BOOLEAN EFIAPI IsDevicePathEqual(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2)
APPLE_EVENT_HANDLE Handle
Definition OcTypingLib.h:45
EFI_DEVICE_PATH_PROTOCOL * OldPath