/* @buffer output buffer @dp device path or node  */
static char* efi_convert_single_device_node_to_text(char *buffer, struct efi_device_path *dp)
/* @buffer output buffer @dp device path or node  */
static char* efi_convert_single_device_node_to_text(char *buffer, struct efi_device_path *dp)
{
	char *str = buffer;
	switch (dp->type) {
	case DEVICE_PATH_TYPE_HARDWARE_DEVICE:
		str = dp_hardware(str, dp);
		break;
	case DEVICE_PATH_TYPE_ACPI_DEVICE:
		str = dp_acpi(str, dp);
		break;
	case DEVICE_PATH_TYPE_MESSAGING_DEVICE:
		str = dp_msging(str, dp);
		break;
	case DEVICE_PATH_TYPE_MEDIA_DEVICE:
		str = dp_media(str, dp);
		break;
	case DEVICE_PATH_TYPE_END:
		break;
	default:
		str = dp_unknown(str, dp);
	}
	*str = '\0';
	return str;
}