/*#*
*#* $Log$
+ *#* Revision 1.3 2004/09/20 03:31:27 bernie
+ *#* Sanitize for C++.
+ *#*
*#* Revision 1.2 2004/09/14 21:01:46 bernie
*#* Mark assertions as LIKELY().
*#*
int __check_wall(long *wall, int size, const char *name, const char *file, int line);
#ifndef CONFIG_KDEBUG_ASSERT_NO_TEXT
- #define ASSERT(x) (LIKELY(x) ? 0 : __assert(#x, THIS_FILE, __LINE__))
- #define ASSERT2(x, help) (LIKELY(x) ? 0 : __assert(help " (" #x ")", THIS_FILE, __LINE__))
+ #define ASSERT(x) ((void)(LIKELY(x) ? 0 : __assert(#x, THIS_FILE, __LINE__)))
+ #define ASSERT2(x, help) ((void)(LIKELY(x) ? 0 : __assert(help " (" #x ")", THIS_FILE, __LINE__)))
#else
- #define ASSERT(x) (LIKELY(x) ? 0 : __assert("", THIS_FILE, __LINE__))
- #define ASSERT2(x, help) ASSERT(x)
+ #define ASSERT(x) ((void)(LIKELY(x) ? 0 : __assert("", THIS_FILE, __LINE__)))
+ #define ASSERT2(x, help) ((void)ASSERT(x))
#endif
- #define ASSERT_VALID_PTR(p) (LIKELY((p) >= 0x200) ? 0 : __invalid_ptr(p, #p, THIS_FILE, __LINE__))
- #define ASSERT_VALID_PTR_OR_NULL(p) (LIKELY((p == NULL) || ((p) >= 0x200)) ? 0 : __invalid_ptr((p), #p, THIS_FILE, __LINE__))
+ #define ASSERT_VALID_PTR(p) ((void)(LIKELY((p) >= 0x200) ? 0 : __invalid_ptr(p, #p, THIS_FILE, __LINE__)))
+ #define ASSERT_VALID_PTR_OR_NULL(p) ((void)(LIKELY((p == NULL) || ((p) >= 0x200)) ? 0 : __invalid_ptr((p), #p, THIS_FILE, __LINE__)))
#define TRACE kprintf("%s()\n", __FUNCTION__)
#define TRACEMSG(msg,...) kprintf("%s(): " msg "\n", __FUNCTION__, ## __VA_ARGS__)
INLINE void kdbg_init(void) { /* nop */ }
INLINE void kputchar(UNUSED(char, c)) { /* nop */ }
INLINE void kputs(UNUSED(const char*, str)) { /* nop */ }
- INLINE void kprintf(UNUSED(const char*, fmt), ...) { /* nop */ }
+ #ifdef __cplusplus
+ /* G++ can't inline functions with variable arguments... */
+ #define kprintf(fmt,...) do { (void)(fmt); } while(0)
+ #else
+ /* ...but GCC can. */
+ INLINE void kprintf(UNUSED(const char*, fmt), ...) { /* nop */ }
+ #endif
#endif /* _DEBUG */
* All Rights Reserved.
* -->
*
- * \version $Id$
- *
- * \author Stefano Fedrigo <aleph@develer.com>
- * \author Bernardo Innocenti <bernie@develer.com>
- *
* \brief Driver for the 24xx16 and 24xx256 I2C EEPROMS (implementation)
*
* \note This implementation is AVR specific.
+ *
+ * \version $Id$
+ * \author Stefano Fedrigo <aleph@develer.com>
+ * \author Bernardo Innocenti <bernie@develer.com>
*/
/*#*
*#* $Log$
+ *#* Revision 1.10 2004/09/20 03:31:22 bernie
+ *#* Sanitize for C++.
+ *#*
*#* Revision 1.9 2004/09/14 21:03:46 bernie
*#* Use debug.h instead of kdebug.h.
*#*
*
* \return true on success, false on error.
*/
-static bool twi_send(const uint8_t *buf, size_t count)
+static bool twi_send(const void *_buf, size_t count)
{
+ const uint8_t *buf = (const uint8_t *)_buf;
+
while (count--)
{
TWDR = *buf++;
*
* \return true on success, false on error
*/
-static bool twi_recv(uint8_t *buf, size_t count)
+static bool twi_recv(void *_buf, size_t count)
{
+ uint8_t *buf = (uint8_t *)_buf;
+
/*
* When reading the last byte the TWEA bit is not
* set, and the eeprom should answer with NACK
void eeprom_test(void)
{
- static const char magic[13] = "Humpty Dumpty";
- char buf[sizeof magic + 1];
+ static const char magic[14] = "Humpty Dumpty";
+ char buf[sizeof magic];
size_t i;
// Write something to EEPROM using unaligned sequential writes