Microchip® Advanced Software Framework

ctrl_access.c File Reference
#include "compiler.h"
#include "preprocessor.h"
#include "ctrl_access.h"

Macros

#define Lun_0_unload   NULL
 
#define Lun_desc_entry(lun)
 Initializes an entry of the LUN descriptor table. More...
 
LUN Access Protection Macros
#define Ctrl_access_lock()   true
 Locks accesses to LUNs. More...
 
#define Ctrl_access_unlock()
 Unlocks accesses to LUNs. More...
 

Functions

Control Interface
U8 get_nb_lun (void)
 Returns the number of LUNs. More...
 
U8 get_cur_lun (void)
 Returns the current LUN. More...
 
Ctrl_status mem_test_unit_ready (U8 lun)
 Tests the memory state and initializes the memory if required. More...
 
Ctrl_status mem_read_capacity (U8 lun, U32 *u32_nb_sector)
 Returns the address of the last valid sector (512 bytes) in the memory. More...
 
U8 mem_sector_size (U8 lun)
 Returns the size of the physical sector. More...
 
bool mem_unload (U8 lun, bool unload)
 Unload/load the medium. More...
 
bool mem_wr_protect (U8 lun)
 Returns the write-protection state of the memory. More...
 
bool mem_removal (U8 lun)
 Tells whether the memory is removable. More...
 
const char * mem_name (U8 lun)
 Returns a pointer to the LUN name. More...
 
MEM <-> USB Interface
Ctrl_status memory_2_usb (U8 lun, U32 addr, U16 nb_sector)
 Transfers data from the memory to USB. More...
 
Ctrl_status usb_2_memory (U8 lun, U32 addr, U16 nb_sector)
 Transfers data from USB to the memory. More...
 

Variables

struct {
   const char *   name
 
   Ctrl_status(*   read_capacity )(U32 *)
 
   bool(*   removal )(void)
 
   Ctrl_status(*   test_unit_ready )(void)
 
   bool(*   unload )(bool)
 
   Ctrl_status(*   usb_read_10 )(U32, U16)
 
   Ctrl_status(*   usb_write_10 )(U32, U16)
 
   bool(*   wr_protect )(void)
 
lun_desc [MAX_LUN]
 LUN descriptor table. More...
 

#define Ctrl_access_lock ( )    true

Locks accesses to LUNs.

Returns
true if the access was successfully locked, else false.

Referenced by get_nb_lun(), mem_read_capacity(), mem_removal(), mem_sector_size(), mem_test_unit_ready(), mem_unload(), mem_wr_protect(), memory_2_usb(), and usb_2_memory().

#define Ctrl_access_unlock ( )
#define Lun_0_unload   NULL
#define Lun_desc_entry (   lun)
Value:
{\
TPASTE3(Lun_, lun, _test_unit_ready),\
TPASTE3(Lun_, lun, _read_capacity),\
TPASTE3(Lun_, lun, _unload),\
TPASTE3(Lun_, lun, _wr_protect),\
TPASTE3(Lun_, lun, _removal),\
TPASTE3(Lun_, lun, _usb_read_10),\
TPASTE3(Lun_, lun, _usb_write_10),\
TPASTE3(LUN_, lun, _NAME)\
}
#define TPASTE3(a, b, c)
Definition: tpaste.h:60

Initializes an entry of the LUN descriptor table.

Parameters
lunLogical Unit Number.
Returns
LUN descriptor table entry initializer.

const char* name

Referenced by mem_name().

Ctrl_status(* read_capacity)(U32 *)

Referenced by mem_read_capacity().

bool(* removal)(void)

Referenced by mem_removal().

Ctrl_status(* test_unit_ready)(void)

Referenced by mem_test_unit_ready().

bool(* unload)(bool)

Referenced by mem_unload(), and virtual_unload().

Ctrl_status(* usb_read_10)(U32, U16)

Referenced by memory_2_usb().

Ctrl_status(* usb_write_10)(U32, U16)

Referenced by usb_2_memory().

bool(* wr_protect)(void)

Referenced by mem_wr_protect().