1 .TH EFIDP_MAKE_GENERIC 3 "Mon 11 May 2015"
3 efidp_make_generic, efidp_make_end_instance, efidp_make_end_entire,
4 efidp_make_vendor, efidp_make_file, efidp_make_hd, efidp_make_nvme,
5 efidp_make_sas, efidp_make_ipv4, efidp_make_mac_addr, efidp_make_sata,
6 efidp_make_scsi, efidp_make_acpi_hid, efidp_make_acpi_hid_ex, efidp_make_edd10,
7 efidp_make_pci, efidp_make_hw_vendor, efidp_make_msg_vendor, efidp_make_media_vendor \-
8 Create EFI Device Path node data structures for specific device types
10 efidp_set_node_data, efidp_duplicate_path, efidp_append_path, efidp_append_node,
11 efidp_append_instance \-
12 Manipulate EFI Device Path and node relationships.
14 efidp_is_valid, efidp_instance_size, efidp_size, efidp_get_next_end,
15 efidp_is_multiinstance, efidp_next_instance, efidp_next_node, efidp_node_size,
16 efidp_type, efidp_subtype \-
17 Inspect EFI Device Path data structures
19 efidp_parse_device_node, efidp_parse_device_path \-
20 Create EFI Device Path structures from printable strings.
22 efidp_format_device_path \-
23 Format EFI Device Path structures as printable strings.
27 .B #include <efivar.h>
29 \fBssize_t \fRefidp_make_generic\fB(\kZuint8_t *\fIbuf\fP, ssize_t \fIsize\fB,
31 uint8_t \fItype\fB, uint8_t \fIsubtype\fB,
32 ssize_t \fItotal_size\fB);\fR
34 \fBssize_t \fRefidp_make_end_instance\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB);\fR
36 \fBssize_t \fRefidp_make_end_entire\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fR\fB);\fR
38 \fBssize_t \fRefidp_make_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fItype\fB,
40 uint8_t \fIsubtype\fB, efi_guid_t \fIvendor_guid\fB,
41 void *\fIdata\fB, size_t \fIdata_size\fB);\fR
43 \fBssize_t \fRefidp_make_file\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, char *\fIfilename\fB);\fR
46 \fBssize_t \fRefidp_make_hd\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fInum\fB,
48 uint64_t \fIpart_start\fB, uint64_t \fIpart_size\fB,
49 uint8_t *\fIsignature\fB, uint8_t \fIformat\fB,
50 uint8_t \fIsignature_type\fB);\fR
52 \fBssize_t \fRefidp_make_nvme\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
54 uint32_t \fInamespace_id\fB, uint8_t *\fIieee_eui_64\fB);\fR
56 \fBssize_t \fRefidp_make_sas\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint64_t \fIsas_address\fB);\fR
58 \fBssize_t \fRefidp_make_ipv4\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
60 uint32_t \fIlocal\fB, uint32_t \fIremote\fB,
61 uint32_t \fIgateway\fB, uint32_t \fInetmask\fB,
62 uint16_t \fIlocal_port\fB, uint16_t \fIremote_port\fB,
63 uint16_t \fIprotocol\fB, int \fIis_static\fB);\fR
65 \fBssize_t \fRefidp_make_mac_addr\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
67 uint8_t \fIif_type\fB,
68 const uint8_t const *\fImac_addr\fB,
69 ssize_t \fImac_addr_size\fB);\fR
71 \fBssize_t \fRefidp_make_sata\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fIhba_port\fB,
73 uint16_t \fIport_multiplier_port\fB, uint16_t \fIlun\fB);\fR
75 \fBssize_t \fRefidp_make_scsi\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fItarget\fB,
77 uint16_t \fIlun\fB);\fR
79 \fBssize_t \fRefidp_make_acpi_hid\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB,
81 uint32_t \fIuid\fB);\fR
83 \fBssize_t \fRefidp_make_acpi_hid_ex\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB,
85 uint32_t \fIuid\fB, uint32_t \fIcid\fB, char *\fIhidstr\fB,
86 char *\fIuidstr\fB, char *\fIcidstr\fB);\fR
88 \fBssize_t \fRefidp_make_edd10\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
90 uint32_t \fIhardware_device\fB);\fR
92 \fBssize_t \fRefidp_make_pci\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fIdevice\fB,
94 uint8_t \fIfunction\fR);
96 \fBssize_t \fRefidp_make_hw_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
98 efi_guid_t \fIguid\fB, void *\fIdata\fB,
99 size_t \fIdata_size\fB);\fR
101 \fBssize_t \fRefidp_make_msg_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
103 efi_guid_t \fIguid\fB, void *\fIdata\fB,
104 size_t \fIdata_size\fB);\fR
106 \fBssize_t \fRefidp_make_media_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB,
108 efi_guid_t \fIguid\fB, void *\fIdata\fB,
109 size_t \fIdata_size\fB);\fR
111 \fBint \fRefidp_set_node_data\fB(\kZconst_efidp \fIdn\fB, void *\fIbuf\fB, size_t \fIbufsize\fB);
113 \fBint \fRefidp_duplicate_path\fB(\kZconst_efidp \fIdp\fB, efidp *\fIout\fB);\fR
115 \fBint \fRefidp_append_path\fB(\kZconst_efidp \fIdp0\fB, const_efidp \fIdp1\fB, efidp *\fIout\fB);
117 \fBint \fRefidp_append_node\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdn\fB, efidp *\fIout\fB);\fR
119 \fBint \fRefidp_append_instance\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdpi\fB, efidp *\fIout\fB);
121 \fBint16_t \fRefidp_type\fB(const_efidp \fIdp\fB);\fR
123 \fBint16_t \fRefidp_subtype\fB(const_efidp \fIdp\fB);\fR
125 \fBssize_t \fRefidp_node_size\fB(const_efidp \fIdn\fB);\fR
127 \fBint \fRefidp_next_node\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR
129 \fBint \fRefidp_next_instance\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR
131 \fBint \fRefidp_is_multiinstance\fB(const_efidp \fIdn\fB);\fR
133 \fBint \fRefidp_get_next_end\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR
135 \fBssize_t \fRefidp_size\fB(const_efidp \fIdp\fB);\fR
137 \fBssize_t \fRefidp_instance_size\fB(const_efidp \fIdpi\fB);\fR
139 \fBint \fRefidp_is_valid\fB(const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR
141 \fBssize_t \fRefidp_parse_device_node\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR
143 \fBssize_t \fRefidp_parse_device_path\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR
145 \fBssize_t \fRefidp_format_device_path\fB(\kZchar *\fIbuf\fB, size_t \fIsize\fB,
147 const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR
151 Peter Jones <pjones@redhat.com>