svn commit: r336654 - in head/stand/efi: include libefi
Warner Losh
imp at FreeBSD.org
Mon Jul 23 20:36:51 UTC 2018
Author: imp
Date: Mon Jul 23 20:36:50 2018
New Revision: 336654
URL: https://svnweb.freebsd.org/changeset/base/336654
Log:
Implement efi_devpath_length
Return the total length, in bytes, of the device path (including the
terminating node at the end).
Sponsored by: Netflix
Modified:
head/stand/efi/include/efilib.h
head/stand/efi/libefi/devpath.c
Modified: head/stand/efi/include/efilib.h
==============================================================================
--- head/stand/efi/include/efilib.h Mon Jul 23 20:36:45 2018 (r336653)
+++ head/stand/efi/include/efilib.h Mon Jul 23 20:36:50 2018 (r336654)
@@ -90,6 +90,7 @@ bool efi_devpath_is_prefix(EFI_DEVICE_PATH *, EFI_DEVI
CHAR16 *efi_devpath_name(EFI_DEVICE_PATH *);
void efi_free_devpath_name(CHAR16 *);
EFI_DEVICE_PATH *efi_devpath_to_media_path(EFI_DEVICE_PATH *);
+UINTN efi_devpath_length(EFI_DEVICE_PATH *);
int efi_status_to_errno(EFI_STATUS);
EFI_STATUS errno_to_efi_status(int errno);
Modified: head/stand/efi/libefi/devpath.c
==============================================================================
--- head/stand/efi/libefi/devpath.c Mon Jul 23 20:36:45 2018 (r336653)
+++ head/stand/efi/libefi/devpath.c Mon Jul 23 20:36:50 2018 (r336654)
@@ -219,3 +219,13 @@ efi_devpath_to_media_path(EFI_DEVICE_PATH *path)
}
return (NULL);
}
+
+UINTN
+efi_devpath_length(EFI_DEVICE_PATH *path)
+{
+ EFI_DEVICE_PATH *start = path;
+
+ while (!IsDevicePathEnd(path))
+ path = NextDevicePathNode(path);
+ return ((UINTN)path - (UINTN)start) + DevicePathNodeLength(path);
+}
More information about the svn-src-all
mailing list