コード例 #1
0
ファイル: ctrl_access.c プロジェクト: AndreyMostovov/asf
Ctrl_status memory_2_ram(U8 lun, U32 addr, void *ram)
{
  Ctrl_status status;
#if MAX_LUN==0
  UNUSED(lun);
#endif

  if (!Ctrl_access_lock()) return CTRL_FAIL;

  memory_start_read_action(1);
  status =
#if MAX_LUN
           (lun < MAX_LUN) ? lun_desc[lun].mem_2_ram(addr, ram) :
#endif
#if LUN_USB == ENABLE
                             Lun_usb_mem_2_ram(addr, ram);
#else
                             CTRL_FAIL;
#endif
  memory_stop_read_action();

  Ctrl_access_unlock();

  return status;
}
コード例 #2
0
ファイル: ctrl_access.c プロジェクト: AndreyMostovov/asf
Ctrl_status memory_2_usb(U8 lun, U32 addr, U16 nb_sector)
{
  Ctrl_status status;

  if (!Ctrl_access_lock()) return CTRL_FAIL;

  memory_start_read_action(nb_sector);
  status =
#if MAX_LUN
           (lun < MAX_LUN) ? lun_desc[lun].usb_read_10(addr, nb_sector) :
#endif
                             CTRL_FAIL;
  memory_stop_read_action();

  Ctrl_access_unlock();

  return status;
}
コード例 #3
0
Ctrl_status memory_2_usb (U8 lun, U32 addr, U16 nb_sector)
{
Ctrl_status status;

    if (!Ctrl_access_lock ())
        return CTRL_FAIL;

    memory_start_read_action (nb_sector);
    status =
#if MAX_LUN
        (lun < MAX_LUN) ? lun_desc[lun].usb_read_10 (addr, nb_sector) :
#endif
        CTRL_FAIL;
    memory_stop_read_action ();

    Ctrl_access_unlock ();

    USB_Log_st.MSD_ReadCalls_u32++;
    USB_Log_st.MSD_BytesRead_u32 += nb_sector;
    time ((time_t *) & USB_Log_st.MSD_LastReadAccess_u32);

    return status;
}