Merge some fix from trunk.
[bertos.git] / bertos / drv / sd.h
index 9845fcb4fcb489bb6a90835ba7cb692b93a0f8ef..df12bb6e7a0639a2cdd05bdff6cf7513f862307c 100644 (file)
 #ifndef DRV_SD_H
 #define DRV_SD_H
 
+#include "cfg/cfg_sd.h"
+
 #include <io/kfile.h>
 #include <io/kblock.h>
 
 #include <fs/fatfs/diskio.h>
 
-#include "cfg/cfg_sd.h"
+
+#define SD_UNBUFFERED     BV(0) ///< Open SD memory disabling page caching, no modification and partial write are allowed.
 
 /**
  * SD Card context structure.
@@ -80,6 +83,8 @@ bool sd_initBuf(Sd *sd, KFile *ch);
         *
         * \note This API is deprecated, disable CONFIG_SD_OLD_INIT and
         *       use the new one instead.
+        *
+        * \see CONFIG_SD_OLD_INIT.
         */
        #define sd_init(ch) {static struct Sd sd; sd_initUnbuf(&sd, (ch));}
 
@@ -97,7 +102,7 @@ bool sd_initBuf(Sd *sd, KFile *ch);
         *
         * \return true if initialization succeds, false otherwise.
         */
-       #define sd_init(sd, ch, buffered) ((buffered) ? sd_initBuf((sd), (ch)) : sd_initUnbuf((sd), (ch)))
+       #define sd_init(sd, ch, buffered) ((buffered & SD_UNBUFFERED) ? sd_initUnbuf((sd), (ch)) : sd_initBuf((sd), (ch)))
 
 #endif