15#ifndef OC_DEVICE_PATH_LIB_H
16#define OC_DEVICE_PATH_LIB_H
24#define MSG_APPLE_NVME_NAMESPACE_DP 0x22
36EFI_DEVICE_PATH_PROTOCOL *
38 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
49EFI_DEVICE_PATH_PROTOCOL *
51 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
63EFI_DEVICE_PATH_PROTOCOL *
65 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
67 IN UINT8 SubType OPTIONAL
82 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath1,
83 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath2
97 IN FILEPATH_DEVICE_PATH *FilePath1,
98 IN FILEPATH_DEVICE_PATH *FilePath2
113 IN EFI_DEVICE_PATH_PROTOCOL *ParentPath,
114 IN EFI_DEVICE_PATH_PROTOCOL *ChildPath
125EFI_DEVICE_PATH_PROTOCOL *
128 IN EFI_DEVICE_PATH_PROTOCOL *RelativePath OPTIONAL
139EFI_DEVICE_PATH_PROTOCOL *
141 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
153 IN CONST FILEPATH_DEVICE_PATH *
FilePath
165 IN CONST FILEPATH_DEVICE_PATH *
FilePath
180 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
195 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
212 IN CONST FILEPATH_DEVICE_PATH *
FilePath,
213 IN UINTN PathNameSize
227 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
228 OUT EFI_DEVICE_PATH_PROTOCOL **FileDevicePath OPTIONAL
239EFI_DEVICE_PATH_PROTOCOL *
241 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
242 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance
254 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath
316 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
317 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode,
319 IN EFI_HANDLE ValidDevice OPTIONAL
342 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
343 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePathNode,
358 IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode,
387 IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
388 OUT EFI_DEVICE_PATH_PROTOCOL **RemainingDevicePath
404EFI_DEVICE_PATH_PROTOCOL *
406 IN EFI_DEVICE_PATH_PROTOCOL *
FilePath,
407 IN EFI_DEVICE_PATH_PROTOCOL *FullPath
421 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
422 IN CONST CHAR16 *Suffix,
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
UINT16 PortMultiplierPortNumber
EFI_DEVICE_PATH_PROTOCOL * OldPath