fs.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // Copyright (c) 2025 Victor Suarez Rovere <suarezvictor@gmail.com>
  2. // SPDX-License-Identifier: AGPL-3.0-only
  3. #include <generated/csr.h>
  4. #include <liblitesdcard/sdcard.h>
  5. #ifndef CSR_SDCARD_CORE_BASE
  6. #warning CSR_SDCARD_CORE_BASE not defined
  7. #else
  8. #include <libfatfs/diskio.h>
  9. DISKOPS *FfDiskOps; //this is needed only for fatfs, but required to compile
  10. #include "fat_io_lib/src/fat_access.c"
  11. #include "fat_io_lib/src/fat_cache.c"
  12. #include "fat_io_lib/src/fat_filelib.c"
  13. #include "fat_io_lib/src/fat_format.c"
  14. #include "fat_io_lib/src/fat_misc.c"
  15. #include "fat_io_lib/src/fat_string.c"
  16. #include "fat_io_lib/src/fat_table.c"
  17. #include "fat_io_lib/src/fat_write.c"
  18. static int sd_readsector(uint32_t start_block, uint8_t *buffer, uint32_t sector_count)
  19. {
  20. sdcard_read(start_block, sector_count, buffer);
  21. return sector_count;
  22. }
  23. static int sd_writesector(uint32_t start_block, uint8_t *buffer, uint32_t sector_count)
  24. {
  25. sdcard_write(start_block, sector_count, buffer);
  26. return sector_count;
  27. }
  28. DISKOPS *FfDiskOps; //this is needed to allow litex's library to compile
  29. int fat_io_init(void)
  30. {
  31. sdcard_init();
  32. fl_init();
  33. return fl_attach_media(sd_readsector, sd_writesector);
  34. }
  35. #endif
  36. //FILE IO
  37. //FIXME: this is just to avoid linker errors
  38. #include <unistd.h>
  39. #include <fcntl.h> //for open
  40. #include <assert.h>
  41. int open(const char *pathname, int flags, ...)
  42. {
  43. assert(0);
  44. return -1;
  45. }
  46. ssize_t read(int fd, void *buf, size_t __nbyte)
  47. {
  48. assert(0);
  49. return -1;
  50. }
  51. ssize_t write (int __fd, const void *__buf, size_t __nbyte)
  52. {
  53. assert(0);
  54. return -1;
  55. }
  56. off_t lseek (int fd, off_t offset, int whence)
  57. {
  58. assert(0);
  59. return -1;
  60. }
  61. int close(int fd)
  62. {
  63. assert(0);
  64. return -1;
  65. }