sylveos

Toy Operating System
Log | Files | Refs

pi-sd.c (569B)


      1 #include <stdint.h>
      2 
      3 #include "pi-sd.h"
      4 #include "emmc.h"
      5 
      6 static int init_p = 0;
      7 
      8 int pi_sd_init(void) {
      9     if(sd_init() != SD_OK) return -1;
     10 
     11     init_p = 1;
     12 
     13     return 1;
     14 }
     15 
     16 int pi_sd_read(void *data, uint32_t lba, uint32_t nsec) {
     17   if (!init_p) return -1;
     18 
     19   int res;
     20 
     21   if((res = sd_readblock(lba, data, nsec)) != 512 * nsec) {
     22       return -1;
     23   }
     24 
     25   return 1;
     26 }
     27 
     28 int pi_sd_write(void *data, uint32_t lba, uint32_t nsec) {
     29     if (!init_p) return -1;
     30 
     31   int res;
     32   if((res = sd_writeblock(data, lba, nsec)) != 512 * nsec) {
     33       return -1;
     34   }
     35 
     36   return 1;
     37 }