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; }
//! This fonction tranfer one sector data from memory to ram //! //! @param lun Logical unit number //! @param addr Sector address to start read (sector = 512B) //! @param ram Adresse of ram buffer (only xdata) //! //! @return TRUE -> The memory is removal //! Ctrl_status memory_2_ram( U8 lun , const U32 _MEM_TYPE_SLOW_ *addr , U8 _MEM_TYPE_SLOW_ *ram ) { Ctrl_status status; switch( lun ) { # if (LUN_0 == ENABLE) case LUN_ID_0: status = Lun_0_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_0_mem_2_ram_read(); } break; # endif # if (LUN_1 == ENABLE) case LUN_ID_1: status = Lun_1_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_1_mem_2_ram_read(); } break; # endif # if (LUN_2 == ENABLE) case LUN_ID_2: status = Lun_2_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_2_mem_2_ram_read(); } break; # endif # if (LUN_3 == ENABLE) case LUN_ID_3: status = Lun_3_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_3_mem_2_ram_read(); } break; # endif # if (LUN_4 == ENABLE) case LUN_ID_4: status = Lun_4_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_4_mem_2_ram_read(); } break; # endif # if (LUN_5 == ENABLE) case LUN_ID_5: status = Lun_5_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_5_mem_2_ram_read(); } break; # endif # if (LUN_6 == ENABLE) case LUN_ID_6: status = Lun_6_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_6_mem_2_ram_read(); } break; # endif # if (LUN_7 == ENABLE) case LUN_ID_7: status = Lun_7_mem_2_ram(*addr , ram); if (CTRL_GOOD == status) { status = Lun_7_mem_2_ram_read(); } break; # endif # if (LUN_USB == ENABLE) default: return Lun_usb_mem_2_ram(*addr , ram); # endif } return status; }