.TH EFIDP_MAKE_GENERIC 3 "Mon 11 May 2015" .SH NAME efidp_make_generic, efidp_make_end_instance, efidp_make_end_entire, efidp_make_vendor, efidp_make_file, efidp_make_hd, efidp_make_nvme, efidp_make_sas, efidp_make_ipv4, efidp_make_mac_addr, efidp_make_sata, efidp_make_scsi, efidp_make_acpi_hid, efidp_make_acpi_hid_ex, efidp_make_edd10, efidp_make_pci, efidp_make_hw_vendor, efidp_make_msg_vendor, efidp_make_media_vendor \- Create EFI Device Path node data structures for specific device types efidp_set_node_data, efidp_duplicate_path, efidp_append_path, efidp_append_node, efidp_append_instance \- Manipulate EFI Device Path and node relationships. efidp_is_valid, efidp_instance_size, efidp_size, efidp_get_next_end, efidp_is_multiinstance, efidp_next_instance, efidp_next_node, efidp_node_size, efidp_type, efidp_subtype \- Inspect EFI Device Path data structures efidp_parse_device_node, efidp_parse_device_path \- Create EFI Device Path structures from printable strings. efidp_format_device_path \- Format EFI Device Path structures as printable strings. .SH SYNOPSIS .nf .B #include .sp \fBssize_t \fRefidp_make_generic\fB(\kZuint8_t *\fIbuf\fP, ssize_t \fIsize\fB, .ta \nZu uint8_t \fItype\fB, uint8_t \fIsubtype\fB, ssize_t \fItotal_size\fB);\fR \fBssize_t \fRefidp_make_end_instance\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB);\fR \fBssize_t \fRefidp_make_end_entire\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fR\fB);\fR \fBssize_t \fRefidp_make_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fItype\fB, .ta \nZu uint8_t \fIsubtype\fB, efi_guid_t \fIvendor_guid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_file\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, char *\fIfilename\fB);\fR .ta \fBssize_t \fRefidp_make_hd\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fInum\fB, .ta \nZu uint64_t \fIpart_start\fB, uint64_t \fIpart_size\fB, uint8_t *\fIsignature\fB, uint8_t \fIformat\fB, uint8_t \fIsignature_type\fB);\fR \fBssize_t \fRefidp_make_nvme\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fInamespace_id\fB, uint8_t *\fIieee_eui_64\fB);\fR \fBssize_t \fRefidp_make_sas\fB(uint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint64_t \fIsas_address\fB);\fR \fBssize_t \fRefidp_make_ipv4\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fIlocal\fB, uint32_t \fIremote\fB, uint32_t \fIgateway\fB, uint32_t \fInetmask\fB, uint16_t \fIlocal_port\fB, uint16_t \fIremote_port\fB, uint16_t \fIprotocol\fB, int \fIis_static\fB);\fR \fBssize_t \fRefidp_make_mac_addr\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint8_t \fIif_type\fB, const uint8_t const *\fImac_addr\fB, ssize_t \fImac_addr_size\fB);\fR \fBssize_t \fRefidp_make_sata\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fIhba_port\fB, .ta \nZu uint16_t \fIport_multiplier_port\fB, uint16_t \fIlun\fB);\fR \fBssize_t \fRefidp_make_scsi\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint16_t \fItarget\fB, .ta \nZu uint16_t \fIlun\fB);\fR \fBssize_t \fRefidp_make_acpi_hid\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB, .ta \nZu uint32_t \fIuid\fB);\fR \fBssize_t \fRefidp_make_acpi_hid_ex\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint32_t \fIhid\fB, .ta \nZu uint32_t \fIuid\fB, uint32_t \fIcid\fB, char *\fIhidstr\fB, char *\fIuidstr\fB, char *\fIcidstr\fB);\fR \fBssize_t \fRefidp_make_edd10\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu uint32_t \fIhardware_device\fB);\fR \fBssize_t \fRefidp_make_pci\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, uint8_t \fIdevice\fB, .ta \nZu uint8_t \fIfunction\fR); \fBssize_t \fRefidp_make_hw_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_msg_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBssize_t \fRefidp_make_media_vendor\fB(\kZuint8_t *\fIbuf\fB, ssize_t \fIsize\fB, .ta \nZu efi_guid_t \fIguid\fB, void *\fIdata\fB, size_t \fIdata_size\fB);\fR \fBint \fRefidp_set_node_data\fB(\kZconst_efidp \fIdn\fB, void *\fIbuf\fB, size_t \fIbufsize\fB); \fBint \fRefidp_duplicate_path\fB(\kZconst_efidp \fIdp\fB, efidp *\fIout\fB);\fR \fBint \fRefidp_append_path\fB(\kZconst_efidp \fIdp0\fB, const_efidp \fIdp1\fB, efidp *\fIout\fB); \fBint \fRefidp_append_node\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdn\fB, efidp *\fIout\fB);\fR \fBint \fRefidp_append_instance\fB(\kZconst_efidp \fIdp\fB, const_efidp \fIdpi\fB, efidp *\fIout\fB); \fBint16_t \fRefidp_type\fB(const_efidp \fIdp\fB);\fR \fBint16_t \fRefidp_subtype\fB(const_efidp \fIdp\fB);\fR \fBssize_t \fRefidp_node_size\fB(const_efidp \fIdn\fB);\fR \fBint \fRefidp_next_node\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBint \fRefidp_next_instance\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBint \fRefidp_is_multiinstance\fB(const_efidp \fIdn\fB);\fR \fBint \fRefidp_get_next_end\fB(const_efidp \fIin\fB, const_efidp *\fIout\fB);\fR \fBssize_t \fRefidp_size\fB(const_efidp \fIdp\fB);\fR \fBssize_t \fRefidp_instance_size\fB(const_efidp \fIdpi\fB);\fR \fBint \fRefidp_is_valid\fB(const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR \fBssize_t \fRefidp_parse_device_node\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR \fBssize_t \fRefidp_parse_device_path\fB(char *\fIpath\fB, efidp \fIout\fB, size_t \fIsize\fB);\fR \fBssize_t \fRefidp_format_device_path\fB(\kZchar *\fIbuf\fB, size_t \fIsize\fB, .ta \nZu const_efidp \fIdp\fB, ssize_t \fIlimit\fB);\fR .fi .SH AUTHORS .nf Peter Jones .fi