aboutsummaryrefslogtreecommitdiff
path: root/nuttx/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-09-16 15:46:54 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-09-16 15:46:54 +0000
commitc09094ccfc6e51b0de4e045a9bfe51bf1b178667 (patch)
treec04ff269ee062f272732557ebc1e08c1d8d69bb6 /nuttx/include
parent62f6889f929002e32865650a92a083698424cd49 (diff)
downloadpx4-firmware-c09094ccfc6e51b0de4e045a9bfe51bf1b178667.tar.gz
px4-firmware-c09094ccfc6e51b0de4e045a9bfe51bf1b178667.tar.bz2
px4-firmware-c09094ccfc6e51b0de4e045a9bfe51bf1b178667.zip
Add W25 FLASH driver; Use attribute definitions in nuttx/compiler.h
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5161 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/include')
-rw-r--r--nuttx/include/nuttx/analog/adc.h3
-rw-r--r--nuttx/include/nuttx/compiler.h24
-rw-r--r--nuttx/include/nuttx/mtd.h13
3 files changed, 35 insertions, 5 deletions
diff --git a/nuttx/include/nuttx/analog/adc.h b/nuttx/include/nuttx/analog/adc.h
index 873f5d9da..f654bff05 100644
--- a/nuttx/include/nuttx/analog/adc.h
+++ b/nuttx/include/nuttx/analog/adc.h
@@ -47,6 +47,7 @@
************************************************************************************/
#include <nuttx/config.h>
+#include <nuttx/compiler.h>
#include <sys/types.h>
#include <stdint.h>
@@ -78,7 +79,7 @@ struct adc_msg_s
{
uint8_t am_channel; /* The 8-bit ADC Channel */
int32_t am_data; /* ADC convert result (4 bytes) */
-} __attribute__((__packed__));
+} packed_struct;
struct adc_fifo_s
{
diff --git a/nuttx/include/nuttx/compiler.h b/nuttx/include/nuttx/compiler.h
index 733d58eec..1e0af4382 100644
--- a/nuttx/include/nuttx/compiler.h
+++ b/nuttx/include/nuttx/compiler.h
@@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/compiler.h
*
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -92,6 +92,14 @@
# define reentrant_function
# define naked_function
+/* The inline_function attribute informs GCC that the function should always
+ * be inlined, regardless of the level of optimization. The noinline_function
+ * indicates that the function should never be inlined.
+ */
+
+# define inline_function __attribute__ ((always_inline))
+# define noinline_function __attribute__ ((noinline))
+
/* GCC has does not use storage classes to qualify addressing */
# define FAR
@@ -224,10 +232,15 @@
# define noreturn_function
# define packed_struct
-/* SDCC does support "naked" function s*/
+/* SDCC does support "naked" functions */
# define naked_function __naked
+/* SDCC does not support forced inlining. */
+
+# define inline_function
+# define noinline_function
+
/* The reentrant attribute informs SDCC that the function
* must be reentrant. In this case, SDCC will store input
* arguments on the stack to support reentrancy.
@@ -320,11 +333,13 @@
# define weak_function
# define weak_const_function
-/* The Zilog compiler does not support the noreturn, packed, or naked attributes */
+/* The Zilog compiler does not support the noreturn, packed, naked attributes */
# define noreturn_function
# define packed_struct
# define naked_function
+# define inline_function
+# define noinline_function
/* The Zilog compiler does not support the reentrant attribute */
@@ -406,7 +421,8 @@
# define packed_struct
# define reentrant_function
# define naked_function
-
+# define inline_function
+# define noinline_function
# define FAR
# define NEAR
diff --git a/nuttx/include/nuttx/mtd.h b/nuttx/include/nuttx/mtd.h
index 5b955a45f..44582c412 100644
--- a/nuttx/include/nuttx/mtd.h
+++ b/nuttx/include/nuttx/mtd.h
@@ -220,6 +220,19 @@ EXTERN FAR struct mtd_dev_s *at24c_initialize(FAR struct i2c_dev_s *dev);
EXTERN FAR struct mtd_dev_s *sst25_initialize(FAR struct spi_dev_s *dev);
+
+/****************************************************************************
+ * Name: w25_initialize
+ *
+ * Description:
+ * Create an initialized MTD device instance. MTD devices are not registered
+ * in the file system, but are created as instances that can be bound to
+ * other functions (such as a block or character driver front end).
+ *
+ ****************************************************************************/
+
+EXTERN FAR struct mtd_dev_s *w25_initialize(FAR struct spi_dev_s *dev);
+
#undef EXTERN
#ifdef __cplusplus
}