незнаю как объяснить.
допустим есть в проге вот такой вызов:
- Code: Select all
if (disk_read(fs->drv, fs->win, sector,1) != RES_OK)
return FR_DISK_ERR;
- Code: Select all
SET_DIO_PAR(fs->drv, fs->win, sector,1);
if (disk_read() != RES_OK)
return FR_DISK_ERR;
- Code: Select all
//Parameters for disk_read and disk_write
typedef struct {
BYTE drv;
const BYTE* buf;
DWORD* sec;
BYTE num;
} DIO_PAR;
extern DIO_PAR dio_par;
#define SET_DIO_PAR(dr_drv,dr_buf,dr_sec,dr_num) {\
dio_par.drv=dr_drv; \
dio_par.buf=dr_buf; \
dio_par.sec=&dr_sec; \
dio_par.num=dr_num;}
И у меня не получается сделать макрос который бы заполнял структуру, вызавал дискодрайвер и возвращал от него результат.
В Сях я непонимаю, ткните носом в мануал по макросам плиз, а то фатфс периодически обновляется и руками неохота патчить.
Изначально была промежуточная функция, но в странице не хватало места под драйвер NeoGS-SD