Sistema l'errore da me commesso in fase di conversione...
[bertos.git] / drv / eeprom.h
old mode 100755 (executable)
new mode 100644 (file)
index 6d2caf0..7a80f17
@@ -1,8 +1,8 @@
-/*!
+/**
  * \file
  * <!--
  * Copyright 2003, 2004 Develer S.r.l. (http://www.develer.com/)
- * All Rights Reserved.
+ * This file is part of DevLib - See README.devlib for information.
  * -->
  *
  * \version $Id$
 
 /*#*
  *#* $Log$
+ *#* Revision 1.10  2006/09/13 18:29:54  bernie
+ *#* e2addr(): New macro.
+ *#*
+ *#* Revision 1.9  2006/07/19 12:56:25  bernie
+ *#* Convert to new Doxygen style.
+ *#*
+ *#* Revision 1.8  2005/11/27 23:33:40  bernie
+ *#* Use appconfig.h instead of cfg/config.h.
+ *#*
+ *#* Revision 1.7  2005/11/04 16:20:02  bernie
+ *#* Fix reference to README.devlib in header.
+ *#*
+ *#* Revision 1.6  2005/04/11 19:10:27  bernie
+ *#* Include top-level headers from cfg/ subdir.
+ *#*
+ *#* Revision 1.5  2004/11/02 17:50:02  bernie
+ *#* CONFIG_EEPROM_VERIFY: New config option.
+ *#*
  *#* Revision 1.4  2004/08/25 14:12:08  rasky
  *#* Aggiornato il comment block dei log RCS
  *#*
 #ifndef DRV_EEPROM_H
 #define DRV_EEPROM_H
 
-#include <compiler.h>
-#include <config.h>
+#include <cfg/compiler.h>
+#include <appconfig.h>
 
-/*!
+/**
  * \name Values for CONFIG_EEPROM_TYPE
  * \{
  */
 /*\}*/
 
 #if CONFIG_EEPROM_TYPE == EEPROM_24XX16
-       #define EEPROM_BLKSIZE   0x10 //!< Eeprom block size (16byte)
-       #define EEPROM_SIZE     0x800 //!< Eeprom total size (2kB)
+       #define EEPROM_BLKSIZE   0x10 ///< Eeprom block size (16byte)
+       #define EEPROM_SIZE     0x800 ///< Eeprom total size (2kB)
 #elif CONFIG_EEPROM_TYPE == EEPROM_24XX256
-       #define EEPROM_BLKSIZE   0x40 //!< Eeprom block size (64byte)
-       #define EEPROM_SIZE    0x8000 //!< Eeprom total size (32kB)
+       #define EEPROM_BLKSIZE   0x40 ///< Eeprom block size (64byte)
+       #define EEPROM_SIZE    0x8000 ///< Eeprom total size (32kB)
 #else
        #error Unsupported EEPROM type.
 #endif
 
-//! Type for EEPROM addresses
+/// Type for EEPROM addresses
 typedef uint16_t e2addr_t;
 
+/**
+ * Macro for E2Layout offset calculation
+ *
+ * \note We can't just use offsetof() here because we could use
+ *       non-constant expressions to access array elements.
+ *
+ * \note E2Layout is a structure that must be defined in user files.
+ */
+#define e2addr(x) ((e2addr_t)&(((struct E2Layout *)0)->x))
+
+
 bool eeprom_write(e2addr_t addr, const void *buf, size_t count);
 bool eeprom_read(e2addr_t addr, void *buf, size_t count);
 bool eeprom_write_char(e2addr_t addr, char c);