summaryrefslogtreecommitdiff
path: root/include/efi_loader.h
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-04-23 23:17:36 +0300
committerTom Rini <trini@konsulko.com>2018-04-23 23:17:36 +0300
commit49f8849de9cf4855f48a85f015f9f80250a3b2aa (patch)
tree9f01297ac517494dc0a5fa83998b2494ee785d07 /include/efi_loader.h
parentec360e64862ae0ab271296e786917e5f9a04e9fb (diff)
parente83222bfc3ad2d7b2ecb1f1e559d78ec0d1f03cd (diff)
downloadu-boot-49f8849de9cf4855f48a85f015f9f80250a3b2aa.tar.xz
Merge tag 'signed-efi-2018.05' of git://github.com/agraf/u-boot
Patch queue for efi - 2018-04-23 Some last minute fixes for 2018.05. Most of them are minor fixes. On top we have some functional improvements for the device path logic which should also help us be more compatible.
Diffstat (limited to 'include/efi_loader.h')
-rw-r--r--include/efi_loader.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/include/efi_loader.h b/include/efi_loader.h
index 17f9d3d1ef..8d21ba74b1 100644
--- a/include/efi_loader.h
+++ b/include/efi_loader.h
@@ -324,13 +324,28 @@ int efi_dp_match(const struct efi_device_path *a,
const struct efi_device_path *b);
struct efi_object *efi_dp_find_obj(struct efi_device_path *dp,
struct efi_device_path **rem);
-unsigned efi_dp_size(const struct efi_device_path *dp);
+/* get size of the first device path instance excluding end node */
+efi_uintn_t efi_dp_instance_size(const struct efi_device_path *dp);
+/* size of multi-instance device path excluding end node */
+efi_uintn_t efi_dp_size(const struct efi_device_path *dp);
struct efi_device_path *efi_dp_dup(const struct efi_device_path *dp);
struct efi_device_path *efi_dp_append(const struct efi_device_path *dp1,
const struct efi_device_path *dp2);
struct efi_device_path *efi_dp_append_node(const struct efi_device_path *dp,
const struct efi_device_path *node);
-
+/* Create a device path node of given type, sub-type, length */
+struct efi_device_path *efi_dp_create_device_node(const u8 type,
+ const u8 sub_type,
+ const u16 length);
+/* Append device path instance */
+struct efi_device_path *efi_dp_append_instance(
+ const struct efi_device_path *dp,
+ const struct efi_device_path *dpi);
+/* Get next device path instance */
+struct efi_device_path *efi_dp_get_next_instance(struct efi_device_path **dp,
+ efi_uintn_t *size);
+/* Check if a device path contains muliple instances */
+bool efi_dp_is_multi_instance(const struct efi_device_path *dp);
struct efi_device_path *efi_dp_from_dev(struct udevice *dev);
struct efi_device_path *efi_dp_from_part(struct blk_desc *desc, int part);