Ignore:
Timestamp:
2011-07-15T21:24:35Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4118f5f, 8ad496d
Parents:
e6b32a8
Message:

Support multiple LUNs in mass storage driver.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/usbmast/bo_trans.c

    re6b32a8 r2aceec5  
    7373        int rc;
    7474        size_t act_size;
    75         usb_pipe_t *bulk_in_pipe = mfun->usb_dev->pipes[BULK_IN_EP].pipe;
    76         usb_pipe_t *bulk_out_pipe = mfun->usb_dev->pipes[BULK_OUT_EP].pipe;
     75        usb_pipe_t *bulk_in_pipe = mfun->mdev->usb_dev->pipes[BULK_IN_EP].pipe;
     76        usb_pipe_t *bulk_out_pipe = mfun->mdev->usb_dev->pipes[BULK_OUT_EP].pipe;
    7777
    7878        /* Prepare CBW - command block wrapper */
     
    209209 * @return              Error code
    210210 */
    211 int usb_massstor_reset(usbmast_fun_t *mfun)
    212 {
    213         return usb_control_request_set(&mfun->usb_dev->ctrl_pipe,
     211int usb_massstor_reset(usbmast_dev_t *mdev)
     212{
     213        return usb_control_request_set(&mdev->usb_dev->ctrl_pipe,
    214214            USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE,
    215             0xFF, 0, mfun->usb_dev->interface_no, NULL, 0);
     215            0xFF, 0, mdev->usb_dev->interface_no, NULL, 0);
    216216}
    217217
     
    223223 * @param mfun          Mass storage function
    224224 */
    225 void usb_massstor_reset_recovery(usbmast_fun_t *mfun)
     225void usb_massstor_reset_recovery(usbmast_dev_t *mdev)
    226226{
    227227        /* We would ignore errors here because if this fails
    228228         * we are doomed anyway and any following transaction would fail.
    229229         */
    230         usb_massstor_reset(mfun);
    231         usb_pipe_clear_halt(&mfun->usb_dev->ctrl_pipe,
    232             mfun->usb_dev->pipes[BULK_IN_EP].pipe);
    233         usb_pipe_clear_halt(&mfun->usb_dev->ctrl_pipe,
    234             mfun->usb_dev->pipes[BULK_OUT_EP].pipe);
     230        usb_massstor_reset(mdev);
     231        usb_pipe_clear_halt(&mdev->usb_dev->ctrl_pipe,
     232            mdev->usb_dev->pipes[BULK_IN_EP].pipe);
     233        usb_pipe_clear_halt(&mdev->usb_dev->ctrl_pipe,
     234            mdev->usb_dev->pipes[BULK_OUT_EP].pipe);
    235235}
    236236
     
    246246 * @return              Error code of maximum LUN (index, not count)
    247247 */
    248 int usb_massstor_get_max_lun(usbmast_fun_t *mfun)
     248int usb_massstor_get_max_lun(usbmast_dev_t *mdev)
    249249{
    250250        uint8_t max_lun;
    251251        size_t data_recv_len;
    252         int rc = usb_control_request_get(&mfun->usb_dev->ctrl_pipe,
     252        int rc = usb_control_request_get(&mdev->usb_dev->ctrl_pipe,
    253253            USB_REQUEST_TYPE_CLASS, USB_REQUEST_RECIPIENT_INTERFACE,
    254             0xFE, 0, mfun->usb_dev->interface_no, &max_lun, 1, &data_recv_len);
     254            0xFE, 0, mdev->usb_dev->interface_no, &max_lun, 1, &data_recv_len);
    255255        if (rc != EOK) {
    256256                return rc;
     
    270270 * @return              Number of LUNs
    271271 */
    272 size_t usb_masstor_get_lun_count(usbmast_fun_t *mfun)
    273 {
    274         int max_lun = usb_massstor_get_max_lun(mfun);
     272size_t usb_masstor_get_lun_count(usbmast_dev_t *mdev)
     273{
     274        int max_lun = usb_massstor_get_max_lun(mdev);
    275275        if (max_lun < 0) {
    276276                max_lun = 1;
Note: See TracChangeset for help on using the changeset viewer.