mirror of https://github.com/ipxe/ipxe.git
[usbblk] Allow USB block device to be described using an EFI device path
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/171/head
parent
87e39a9c93
commit
1e8648f611
|
@ -31,6 +31,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
|||
#include <ipxe/xfer.h>
|
||||
#include <ipxe/uri.h>
|
||||
#include <ipxe/open.h>
|
||||
#include <ipxe/efi/efi_path.h>
|
||||
#include "usbblk.h"
|
||||
|
||||
/** @file
|
||||
|
@ -702,11 +703,25 @@ static void usbblk_scsi_close ( struct usbblk_device *usbblk, int rc ) {
|
|||
usbblk->opened = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Describe as an EFI device path
|
||||
*
|
||||
* @v usbblk USB block device
|
||||
* @ret path EFI device path, or NULL on error
|
||||
*/
|
||||
static EFI_DEVICE_PATH_PROTOCOL *
|
||||
usbblk_efi_describe ( struct usbblk_device *usbblk ) {
|
||||
|
||||
return efi_usb_path ( usbblk->func );
|
||||
}
|
||||
|
||||
/** SCSI command interface operations */
|
||||
static struct interface_operation usbblk_scsi_operations[] = {
|
||||
INTF_OP ( scsi_command, struct usbblk_device *, usbblk_scsi_command ),
|
||||
INTF_OP ( xfer_window, struct usbblk_device *, usbblk_scsi_window ),
|
||||
INTF_OP ( intf_close, struct usbblk_device *, usbblk_scsi_close ),
|
||||
EFI_INTF_OP ( efi_describe, struct usbblk_device *,
|
||||
usbblk_efi_describe ),
|
||||
};
|
||||
|
||||
/** SCSI command interface descriptor */
|
||||
|
|
Loading…
Reference in New Issue