Changeset 8ff0bd2 in mainline for uspace/drv/bus/usb/usbmast


Ignore:
Timestamp:
2011-09-04T11:30:58Z (14 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
03bc76a
Parents:
d2c67e7 (diff), deac215e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline changes

Location:
uspace/drv/bus/usb/usbmast
Files:
6 added
5 moved

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/usbmast/Makefile

    rd2c67e7 r8ff0bd2  
    2727#
    2828
    29 USPACE_PREFIX = ../..
     29USPACE_PREFIX = ../../../..
    3030
    3131LIBS = \
    3232        $(LIBUSBDEV_PREFIX)/libusbdev.a \
    3333        $(LIBUSB_PREFIX)/libusb.a \
    34         $(LIBDRV_PREFIX)/libdrv.a
     34        $(LIBDRV_PREFIX)/libdrv.a \
     35        $(LIBSCSI_PREFIX)/libscsi.a
     36
    3537EXTRA_CFLAGS += \
    3638        -I$(LIBUSB_PREFIX)/include \
    3739        -I$(LIBUSBDEV_PREFIX)/include \
    38         -I$(LIBDRV_PREFIX)/include
     40        -I$(LIBDRV_PREFIX)/include \
     41        -I$(LIBSCSI_PREFIX)/include
    3942
    4043BINARY = usbmast
    4144
    4245SOURCES = \
    43         inquiry.c \
     46        bo_trans.c \
     47        cmdw.c \
    4448        main.c \
    45         mast.c
     49        scsi_ms.c
    4650
    4751include $(USPACE_PREFIX)/Makefile.common
  • uspace/drv/bus/usb/usbmast/cmdw.c

    rd2c67e7 r8ff0bd2  
    3434 */
    3535
    36 #ifndef USB_USBMAST_CMDS_H_
    37 #define USB_USBMAST_CMDS_H_
    38 
     36#include <byteorder.h>
     37#include <mem.h>
    3938#include <sys/types.h>
    4039#include <usb/usb.h>
     40#include "cmdw.h"
    4141
    42 typedef struct {
    43         uint32_t dCBWSignature;
    44         uint32_t dCBWTag;
    45         uint32_t dCBWDataTransferLength;
    46         uint8_t bmCBWFlags;
    47         uint8_t bCBWLUN;
    48         uint8_t bCBWBLength;
    49         uint8_t CBWCB[16];
    50 } __attribute__((packed)) usb_massstor_cbw_t;
    51 
    52 typedef struct {
    53         uint32_t dCSWSignature;
    54         uint32_t dCSWTag;
    55         uint32_t dCSWDataResidue;
    56         uint8_t dCSWStatus;
    57 } __attribute__((packed)) usb_massstor_csw_t;
    58 
    59 static inline void usb_massstor_cbw_prepare(usb_massstor_cbw_t *cbw,
     42void usb_massstor_cbw_prepare(usb_massstor_cbw_t *cbw,
    6043    uint32_t tag, uint32_t transfer_length, usb_direction_t dir,
    61     uint8_t lun, uint8_t cmd_len, uint8_t *cmd)
     44    uint8_t lun, uint8_t cmd_len, const uint8_t *cmd)
    6245{
    6346        cbw->dCBWSignature = uint32_host2usb(0x43425355);
     
    7962}
    8063
    81 #endif
    82 
    8364/**
    8465 * @}
  • uspace/drv/bus/usb/usbmast/scsi_ms.h

    rd2c67e7 r8ff0bd2  
    3131 */
    3232/** @file
    33  * Generic functions for USB mass storage.
     33 * SCSI functions for USB mass storage.
    3434 */
    3535
    36 #ifndef USB_USBMAST_MAST_H_
    37 #define USB_USBMAST_MAST_H_
     36#ifndef USB_USBMAST_SCSI_MS_H_
     37#define USB_USBMAST_SCSI_MS_H_
    3838
     39#include <scsi/spc.h>
    3940#include <sys/types.h>
    4041#include <usb/usb.h>
    41 #include <usb/dev/pipes.h>
    4242#include <usb/dev/driver.h>
    4343
    44 /** Result of SCSI INQUIRY command.
     44/** Result of SCSI Inquiry command.
    4545 * This is already parsed structure, not the original buffer returned by
    4646 * the device.
    4747 */
    4848typedef struct {
    49         /** SCSI peripheral device type. */
    50         int peripheral_device_type;
    51         /** Whether the device is removable. */
     49        /** SCSI peripheral device type */
     50        unsigned device_type;
     51        /** Whether the device is removable */
    5252        bool removable;
    53         /** Vendor ID string. */
    54         char vendor_id[9];
    55         /** Product ID and product revision string. */
    56         char product_and_revision[12];
    57 } usb_massstor_inquiry_result_t;
     53        /** Vendor ID string */
     54        char vendor[SCSI_INQ_VENDOR_STR_BUFSIZE];
     55        /** Product ID string */
     56        char product[SCSI_INQ_PRODUCT_STR_BUFSIZE];
     57        /** Revision string */
     58        char revision[SCSI_INQ_REVISION_STR_BUFSIZE];
     59} usbmast_inquiry_data_t;
    5860
    59 int usb_massstor_data_in(usb_device_t *dev, size_t, size_t,
    60     uint32_t, uint8_t, void *, size_t, void *, size_t, size_t *);
    61 int usb_massstor_reset(usb_device_t *);
    62 void usb_massstor_reset_recovery(usb_device_t *, size_t, size_t);
    63 int usb_massstor_get_max_lun(usb_device_t *);
    64 size_t usb_masstor_get_lun_count(usb_device_t *);
    65 int usb_massstor_inquiry(usb_device_t *, size_t, size_t,
    66     usb_massstor_inquiry_result_t *);
    67 const char *usb_str_masstor_scsi_peripheral_device_type(int);
     61extern int usbmast_inquiry(usbmast_fun_t *, usbmast_inquiry_data_t *);
     62extern int usbmast_request_sense(usbmast_fun_t *, void *, size_t);
     63extern int usbmast_read_capacity(usbmast_fun_t *, uint32_t *, uint32_t *);
     64extern int usbmast_read(usbmast_fun_t *, uint64_t, size_t, void *);
     65extern int usbmast_write(usbmast_fun_t *, uint64_t, size_t, const void *);
     66extern const char *usbmast_scsi_dev_type_str(unsigned);
    6867
    6968#endif
Note: See TracChangeset for help on using the changeset viewer.