STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
ff_gen_drv.c
Go to the documentation of this file.
1 
28 /* Includes ------------------------------------------------------------------*/
29 #include "ff_gen_drv.h"
30 
31 /* Private typedef -----------------------------------------------------------*/
32 /* Private define ------------------------------------------------------------*/
33 /* Private variables ---------------------------------------------------------*/
34 Disk_drvTypeDef disk = {{0},{0},{0},0};
35 
36 /* Private function prototypes -----------------------------------------------*/
37 /* Private functions ---------------------------------------------------------*/
38 
49 uint8_t FATFS_LinkDriverEx(Diskio_drvTypeDef *drv, char *path, uint8_t lun)
50 {
51  uint8_t ret = 1;
52  uint8_t DiskNum = 0;
53 
54  if(disk.nbr <= _VOLUMES)
55  {
56  disk.is_initialized[disk.nbr] = 0;
57  disk.drv[disk.nbr] = drv;
58  disk.lun[disk.nbr] = lun;
59  DiskNum = disk.nbr++;
60  path[0] = DiskNum + '0';
61  path[1] = ':';
62  path[2] = '/';
63  path[3] = 0;
64  ret = 0;
65  }
66 
67  return ret;
68 }
69 
78 uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path)
79 {
80  return FATFS_LinkDriverEx(drv, path, 0);
81 }
82 
90 uint8_t FATFS_UnLinkDriverEx(char *path, uint8_t lun)
91 {
92  uint8_t DiskNum = 0;
93  uint8_t ret = 1;
94 
95  if(disk.nbr >= 1)
96  {
97  DiskNum = path[0] - '0';
98  if(disk.drv[DiskNum] != 0)
99  {
100  disk.drv[DiskNum] = 0;
101  disk.lun[DiskNum] = 0;
102  disk.nbr--;
103  ret = 0;
104  }
105  }
106 
107  return ret;
108 }
109 
116 uint8_t FATFS_UnLinkDriver(char *path)
117 {
118  return FATFS_UnLinkDriverEx(path, 0);
119 }
120 
127 {
128  return disk.nbr;
129 }
130 
131 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
132 
uint8_t FATFS_GetAttachedDriversNbr(void)
Gets number of linked drivers to the FatFs module.
Definition: ff_gen_drv.c:126
Diskio_drvTypeDef * drv[_VOLUMES]
Definition: ff_gen_drv.h:65
uint8_t FATFS_LinkDriver(Diskio_drvTypeDef *drv, char *path)
Links a compatible diskio driver and increments the number of active linked drivers.
Definition: ff_gen_drv.c:78
Disk IO Driver structure definition.
Definition: ff_gen_drv.h:45
uint8_t FATFS_LinkDriverEx(Diskio_drvTypeDef *drv, char *path, uint8_t lun)
Links a compatible diskio driver/lun id and increments the number of active linked drivers...
Definition: ff_gen_drv.c:49
uint8_t is_initialized[_VOLUMES]
Definition: ff_gen_drv.h:64
#define _VOLUMES
Definition: ffconf.h:204
uint8_t lun[_VOLUMES]
Definition: ff_gen_drv.h:66
Disk_drvTypeDef disk
Definition: ff_gen_drv.c:34
uint8_t FATFS_UnLinkDriver(char *path)
Unlinks a diskio driver and decrements the number of active linked drivers.
Definition: ff_gen_drv.c:116
Global Disk IO Drivers structure definition.
Definition: ff_gen_drv.h:62
__IO uint8_t nbr
Definition: ff_gen_drv.h:67
uint8_t FATFS_UnLinkDriverEx(char *path, uint8_t lun)
Unlinks a diskio driver and decrements the number of active linked drivers.
Definition: ff_gen_drv.c:90
Header for ff_gen_drv.c module.