summaryrefslogtreecommitdiff
path: root/nuttx/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-27 21:17:21 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2007-02-27 21:17:21 +0000
commit148cde5e982950ad5836fa96baa466de842e1c14 (patch)
treebf737b367b91c5da81345eb21016b07400d7a72f /nuttx/include
parentf6b81a790c28d7d36d9de33810df5270c1ebbfd7 (diff)
downloadpx4-nuttx-148cde5e982950ad5836fa96baa466de842e1c14.tar.gz
px4-nuttx-148cde5e982950ad5836fa96baa466de842e1c14.tar.bz2
px4-nuttx-148cde5e982950ad5836fa96baa466de842e1c14.zip
Finally, a clean SDCC compile
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@20 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/include')
-rw-r--r--nuttx/include/assert.h4
-rw-r--r--nuttx/include/errno.h8
-rw-r--r--nuttx/include/mqueue.h5
-rw-r--r--nuttx/include/nuttx/arch.h20
-rw-r--r--nuttx/include/nuttx/compiler.h104
-rw-r--r--nuttx/include/nuttx/fs.h76
-rw-r--r--nuttx/include/nuttx/irq.h4
-rw-r--r--nuttx/include/nuttx/kmalloc.h8
-rw-r--r--nuttx/include/nuttx/lib.h8
-rw-r--r--nuttx/include/nuttx/os_external.h2
-rw-r--r--nuttx/include/pthread.h59
-rw-r--r--nuttx/include/queue.h46
-rw-r--r--nuttx/include/sched.h53
-rw-r--r--nuttx/include/semaphore.h18
-rw-r--r--nuttx/include/signal.h5
-rw-r--r--nuttx/include/stdio.h30
-rw-r--r--nuttx/include/stdlib.h40
-rw-r--r--nuttx/include/string.h4
-rw-r--r--nuttx/include/unistd.h2
-rw-r--r--nuttx/include/wdog.h2
20 files changed, 308 insertions, 190 deletions
diff --git a/nuttx/include/assert.h b/nuttx/include/assert.h
index 022e343ca..4222aa2d8 100644
--- a/nuttx/include/assert.h
+++ b/nuttx/include/assert.h
@@ -106,8 +106,8 @@ extern "C" {
#endif
#ifdef __GNUC__
-EXTERN void up_assert(const ubyte *fileName, int lineNum);
-EXTERN void up_assert_code(const ubyte *fileName, int lineNum,
+EXTERN void up_assert(FAR const ubyte *filename, int linenum);
+EXTERN void up_assert_code(FAR const ubyte *filename, int linenum,
int error_code);
#else
EXTERN void up_assert(void);
diff --git a/nuttx/include/errno.h b/nuttx/include/errno.h
index d189ccaa0..6f362cfc9 100644
--- a/nuttx/include/errno.h
+++ b/nuttx/include/errno.h
@@ -190,13 +190,7 @@ extern "C" {
/* Return a pointer to the thread specifid errno */
-extern int *get_errno_ptr(void);
-
-#ifndef CONFIG_CAN_CAST_POINTERS
-/* Return the value ERROR cast to (void*) */
-
-extern void *get_errorptr(void);
-#endif
+extern FAR int *get_errno_ptr(void);
#undef EXTERN
#if defined(__cplusplus)
diff --git a/nuttx/include/mqueue.h b/nuttx/include/mqueue.h
index 3e54ba6e8..7e0966d25 100644
--- a/nuttx/include/mqueue.h
+++ b/nuttx/include/mqueue.h
@@ -78,7 +78,7 @@ struct sigevent {
/* Message queue descriptor */
-typedef struct mq_des *mqd_t;
+typedef FAR struct mq_des *mqd_t;
/************************************************************
* Global Variables
@@ -95,8 +95,7 @@ extern "C" {
#define EXTERN extern
#endif
-EXTERN mqd_t mq_open(const char *mq_name,
- int oflags, ... );
+EXTERN mqd_t mq_open(const char *mq_name, int oflags, ... );
EXTERN int mq_close(mqd_t mqdes );
EXTERN int mq_unlink(const char *mq_name );
EXTERN int mq_send(mqd_t mqdes, const void *msg,
diff --git a/nuttx/include/nuttx/arch.h b/nuttx/include/nuttx/arch.h
index 5ccba7c20..11e6a96fc 100644
--- a/nuttx/include/nuttx/arch.h
+++ b/nuttx/include/nuttx/arch.h
@@ -127,7 +127,7 @@ EXTERN void up_idle(void);
*
************************************************************/
-EXTERN void up_initial_state(_TCB *tcb);
+EXTERN void up_initial_state(FAR _TCB *tcb);
/************************************************************
* Name: up_create_stack
@@ -150,7 +150,7 @@ EXTERN void up_initial_state(_TCB *tcb);
* must be allocated.
************************************************************/
-EXTERN STATUS up_create_stack(_TCB *tcb, size_t stack_size);
+EXTERN STATUS up_create_stack(FAR _TCB *tcb, size_t stack_size);
/************************************************************
* Name: up_use_stack
@@ -173,7 +173,7 @@ EXTERN STATUS up_create_stack(_TCB *tcb, size_t stack_size);
*
************************************************************/
-EXTERN STATUS up_use_stack(_TCB *tcb, void *stack, size_t stack_size);
+EXTERN STATUS up_use_stack(FAR _TCB *tcb, FAR void *stack, size_t stack_size);
/************************************************************
* Name: up_release_stack
@@ -184,7 +184,7 @@ EXTERN STATUS up_use_stack(_TCB *tcb, void *stack, size_t stack_size);
*
************************************************************/
-EXTERN void up_release_stack(_TCB *dtcb);
+EXTERN void up_release_stack(FAR _TCB *dtcb);
/************************************************************
* Name: up_unblock_task
@@ -202,7 +202,7 @@ EXTERN void up_release_stack(_TCB *dtcb);
*
************************************************************/
-EXTERN void up_unblock_task(_TCB *tcb);
+EXTERN void up_unblock_task(FAR _TCB *tcb);
/************************************************************
* Name: up_block_task
@@ -224,7 +224,7 @@ EXTERN void up_unblock_task(_TCB *tcb);
*
************************************************************/
-EXTERN void up_block_task(_TCB *tcb, tstate_t task_state);
+EXTERN void up_block_task(FAR _TCB *tcb, tstate_t task_state);
/************************************************************
* Name: up_release_pending
@@ -259,7 +259,7 @@ EXTERN void up_release_pending(void);
*
************************************************************/
-EXTERN void up_reprioritize_rtr(_TCB *tcb, ubyte priority);
+EXTERN void up_reprioritize_rtr(FAR _TCB *tcb, ubyte priority);
/************************************************************
* Name: _exit
@@ -314,7 +314,7 @@ EXTERN void up_reprioritize_rtr(_TCB *tcb, ubyte priority);
*
************************************************************/
-EXTERN void up_schedule_sigaction(_TCB *tcb, sig_deliver_t sigdeliver);
+EXTERN void up_schedule_sigaction(FAR _TCB *tcb, sig_deliver_t sigdeliver);
/************************************************************
* Name: up_allocate_heap
@@ -328,7 +328,7 @@ EXTERN void up_schedule_sigaction(_TCB *tcb, sig_deliver_t sigdeliver);
************************************************************/
#ifndef CONFIG_HEAP_BASE
-EXTERN void up_allocate_heap(void **heap_start, size_t *heap_size);
+EXTERN void up_allocate_heap(FAR void **heap_start, size_t *heap_size);
#endif
/************************************************************
@@ -401,7 +401,7 @@ EXTERN void sched_process_timer(void);
*
***********************************************************/
-EXTERN void irq_dispatch(int irq, void *context);
+EXTERN void irq_dispatch(int irq, FAR void *context);
/************************************************************
* Debug interfaces exported by the architecture-specific
diff --git a/nuttx/include/nuttx/compiler.h b/nuttx/include/nuttx/compiler.h
index b5eafe8d9..f15902171 100644
--- a/nuttx/include/nuttx/compiler.h
+++ b/nuttx/include/nuttx/compiler.h
@@ -44,26 +44,128 @@
* Definitions
************************************************************/
+/* GCC-specific definitions *********************************/
+
#ifdef __GNUC__
+
+/* GCC supports weak symbols which can be used to reduce
+ * code size because unnecessary "weak" functions can be
+ * excluded from the link.
+ */
+
+# define CONFIG_HAVE_WEAKFUNCTIONS 1
# define weak_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));
# define weak_function __attribute__ ((weak))
# define weak_const_function __attribute__ ((weak, __const__))
+
+/* The noreturn attribute informs GCC that the function will
+ * not return.
+ */
+
# define noreturn_function __attribute__ ((noreturn))
+
+/* GCC does not support the reentrant attribute */
+
# define reentrant_function
-#elif defined(__SDCC__)
+
+/* GCC has does not use storage classes to qualify addressing */
+
+# define FAR
+# define NEAR
+
+/* Select the large, 32-bit addressing model */
+
+# undef CONFIG_SMALL_MEMORY
+
+/* GCC supports inlined functions */
+
+# define CONFIG_HAVE_INLINE 1
+
+/* GCC supports both types double and long long */
+
+# define CONFIG_HAVE_DOUBLE 1
+# define CONFIG_HAVE_LONG_LONG 1
+
+/* Structures and unions can be assigned and passed as values */
+
+# define CONFIG_CAN_PASS_STRUCTS 1
+
+/* SDCC-specific definitions ********************************/
+
+#elif defined(SDCC)
+
+/* Disable warnings for unused function arguments */
+
# pragma disable_warning 85
+
+/* SDCC does not support weak symbols */
+
+# undef CONFIG_HAVE_WEAKFUNCTIONS
# define weak_alias(name, aliasname)
# define weak_function
# define weak_const_function
+
+/* SDCC does not support the noreturn attribute */
+
# define noreturn_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.
+ */
+
# define reentrant_function __reentrant
+
+/* It is assumed that the system is build using the small
+ * data model with storage defaulting to internal RAM.
+ * The NEAR storage class can also be used to address data
+ * in internal RAM; FAR can be used to address data in
+ * external RAM.
+ */
+
+#define FAR __xdata
+#define NEAR __data
+
+/* Select small, 16-bit address model */
+
+# define CONFIG_SMALL_MEMORY 1
+
+/* SDCC does not support inline functions */
+
+# undef CONFIG_HAVE_INLINE
+
+/* SDCC does not support type long long or type double */
+
+# undef CONFIG_HAVE_LONG_LONG
+# undef CONFIG_HAVE_DOUBLE
+
+/* Structures and unions cannot be passed as values or used
+ * in assignments.
+ */
+
+# undef CONFIG_CAN_PASS_STRUCTS
+
+/* Unknown compiler *****************************************/
+
#else
+
+# undef CONFIG_HAVE_WEAKFUNCTIONS
# define weak_alias(name, aliasname)
# define weak_function
# define weak_const_function
# define noreturn_function
# define reentrant_function
+
+# define FAR
+# define NEAR
+
+# undef CONFIG_SMALL_MEMORY
+# undef CONFIG_HAVE_INLINE
+# undef CONFIG_HAVE_LONG_LONG
+# undef CONFIG_HAVE_DOUBLE
+# undef CONFIG_CAN_PASS_STRUCTS
+
#endif
/************************************************************
diff --git a/nuttx/include/nuttx/fs.h b/nuttx/include/nuttx/fs.h
index 085c050ef..7e0eb8980 100644
--- a/nuttx/include/nuttx/fs.h
+++ b/nuttx/include/nuttx/fs.h
@@ -60,29 +60,27 @@
struct file;
struct file_operations
{
- int (*open)(struct file *);
- int (*close)(struct file *);
-// off_t (*llseek)(struct file *, off_t, int);
- ssize_t (*read)(struct file *, char *, size_t);
- ssize_t (*write)(struct file *, const char *, size_t);
-// unsigned int (*poll)(struct file *, struct poll_table_struct *);
- int (*ioctl)(struct file *, int, unsigned long);
+ int (*open)(FAR struct file *);
+ int (*close)(FAR struct file *);
+ ssize_t (*read)(FAR struct file *, char *, size_t);
+ ssize_t (*write)(FAR struct file *, const char *, size_t);
+ int (*ioctl)(FAR struct file *, int, unsigned long);
};
/* This structure represents one inode in the Nuttx psuedo-file system */
struct inode
{
- struct inode *i_peer; /* Pointer to inode at same level */
- struct inode *i_child; /* Pointer to inode at lower level */
- struct file_operations *i_ops; /* Driver file operations for inode */
- sint16 i_crefs; /* References to inode */
- uint16 i_flags; /* flags for inode */
+ FAR struct inode *i_peer; /* Pointer to inode at same level */
+ FAR struct inode *i_child; /* Pointer to inode at lower level */
+ struct file_operations *i_ops; /* Driver file operations for inode */
+ sint16 i_crefs; /* References to inode */
+ uint16 i_flags; /* flags for inode */
#ifdef CONFIG_FILE_MODE
- mode_t i_mode; /* Access mode flags */
+ mode_t i_mode; /* Access mode flags */
#endif
- void *i_private; /* Driver private data */
- char i_name[1]; /* Name of inode (variable length) */
+ FAR void *i_private; /* Driver private data */
+ char i_name[1]; /* Name of inode (variable length) */
};
#define FSNODE_SIZE(n) (sizeof(struct inode) + (n))
@@ -94,9 +92,9 @@ struct inode
struct file
{
- int f_oflags; /* Open mode flags */
- off_t f_pos; /* File position */
- struct inode *f_inode; /* Driver interface */
+ int f_oflags; /* Open mode flags */
+ off_t f_pos; /* File position */
+ FAR struct inode *f_inode; /* Driver interface */
};
/* This defines a list of files indexed by the file descriptor */
@@ -119,20 +117,20 @@ struct filelist
#if CONFIG_NFILE_STREAMS > 0
struct file_struct
{
- int fs_filedes; /* File descriptor associated with stream */
- mode_t fs_oflags; /* Open mode flags */
+ int fs_filedes; /* File descriptor associated with stream */
+ mode_t fs_oflags; /* Open mode flags */
#if CONFIG_NUNGET_CHARS > 0
- uint8 fs_nungotten; /* The number of characters buffered for ungetc */
- unsigned char fs_ungotten[CONFIG_NUNGET_CHARS];
+ uint8 fs_nungotten; /* The number of characters buffered for ungetc */
+ unsigned char fs_ungotten[CONFIG_NUNGET_CHARS];
#endif
#if CONFIG_STDIO_BUFFER_SIZE > 0
- sem_t fs_sem; /* For thread safety */
- pid_t fs_holder; /* Holder of sem */
- int fs_counts; /* Number of times sem is held */
- unsigned char *fs_bufstart; /* Pointer to start of buffer */
- unsigned char *fs_bufend; /* Pointer to 1 past end of buffer */
- unsigned char *fs_bufpos; /* Current position in buffer */
- unsigned char *fs_bufread; /* Pointer to 1 past last buffered read char. */
+ sem_t fs_sem; /* For thread safety */
+ pid_t fs_holder; /* Holder of sem */
+ int fs_counts; /* Number of times sem is held */
+ FAR unsigned char *fs_bufstart; /* Pointer to start of buffer */
+ FAR unsigned char *fs_bufend; /* Pointer to 1 past end of buffer */
+ FAR unsigned char *fs_bufpos; /* Current position in buffer */
+ FAR unsigned char *fs_bufread; /* Pointer to 1 past last buffered read char. */
#endif
};
@@ -170,15 +168,15 @@ EXTERN STATUS unregister_inode(const char *path);
/* fs_open.c ************************************************/
-EXTERN int inode_checkflags(struct inode *inode, int oflags);
+EXTERN int inode_checkflags(FAR struct inode *inode, int oflags);
/* fs_files.c ***********************************************/
#if CONFIG_NFILE_DESCRIPTORS >0
-EXTERN struct filelist *files_alloclist(void);
-EXTERN int files_addreflist(struct filelist *list);
-EXTERN int files_releaselist(struct filelist *list);
-EXTERN int files_dup(struct file *filep1, struct file *filep2);
+EXTERN FAR struct filelist *files_alloclist(void);
+EXTERN int files_addreflist(FAR struct filelist *list);
+EXTERN int files_releaselist(FAR struct filelist *list);
+EXTERN int files_dup(FAR struct file *filep1, FAR struct file *filep2);
#endif
/* lib_fopen.c **********************************************/
@@ -186,16 +184,16 @@ EXTERN int files_dup(struct file *filep1, struct file *filep2);
/* Used by the OS to clone stdin, stdout, stderr */
#if CONFIG_NFILE_STREAMS > 0
-EXTERN struct file_struct *lib_fdopen(int fd,
- const char *mode,
- struct filelist *flist,
- struct streamlist *slist);
+EXTERN FAR struct file_struct *lib_fdopen(int fd,
+ const char *mode,
+ FAR struct filelist *flist,
+ FAR struct streamlist *slist);
#endif
/* lib_fflush.c *********************************************/
#if CONFIG_NFILE_STREAMS > 0
-EXTERN void lib_flushall(struct streamlist *list);
+EXTERN void lib_flushall(FAR struct streamlist *list);
#endif
/* drivers **************************************************/
diff --git a/nuttx/include/nuttx/irq.h b/nuttx/include/nuttx/irq.h
index 82a34c760..a806adb15 100644
--- a/nuttx/include/nuttx/irq.h
+++ b/nuttx/include/nuttx/irq.h
@@ -60,9 +60,9 @@
/* This struct defines the way the registers are stored */
#ifndef __ASSEMBLY__
-typedef int (*xcpt_t)(int irq, void *context);
+typedef int (*xcpt_t)(int irq, FAR void *context);
typedef int (*swint_t)(int code, int parm2, int parm3,
- void *context);
+ FAR void *context);
#endif
/* Now include architecture-specific types */
diff --git a/nuttx/include/nuttx/kmalloc.h b/nuttx/include/nuttx/kmalloc.h
index 5a48f33d2..29678ebc9 100644
--- a/nuttx/include/nuttx/kmalloc.h
+++ b/nuttx/include/nuttx/kmalloc.h
@@ -63,28 +63,28 @@ extern "C" {
# include <stdlib.h>
# define kmalloc(s) malloc(s)
#else
-KMALLOC_EXTERN void *kmalloc(size_t);
+KMALLOC_EXTERN FAR void *kmalloc(size_t);
#endif
#ifndef CONFIG_ARCH_KZMALLOC
# include <stdlib.h>
# define kzmalloc(s) zalloc(s)
#else
-KMALLOC_EXTERN void *kzalloc(size_t);
+KMALLOC_EXTERN FAR void *kzalloc(size_t);
#endif
#ifndef CONFIG_ARCH_KFREE
# include <stdlib.h>
# define kfree(p) free(p)
#else
-KMALLOC_EXTERN void kfree(void*);
+KMALLOC_EXTERN void kfree(FAR void*);
#endif
/* Functions defined in os_list.c ***************************/
/* Handles memory freed from an interrupt handler */
-KMALLOC_EXTERN void sched_free(void *address);
+KMALLOC_EXTERN void sched_free(FAR void *address);
#undef KMALLOC_EXTERN
#if defined(__cplusplus)
diff --git a/nuttx/include/nuttx/lib.h b/nuttx/include/nuttx/lib.h
index 52f506897..cca174aa3 100644
--- a/nuttx/include/nuttx/lib.h
+++ b/nuttx/include/nuttx/lib.h
@@ -64,11 +64,11 @@ extern "C" {
/* Functions contained in lib_init.c ************************/
-EXTERN void weak_function lib_initialize(void);
+EXTERN void weak_function lib_initialize(void);
#if CONFIG_NFILE_STREAMS > 0
-EXTERN struct streamlist *lib_alloclist(void);
-EXTERN void lib_addreflist(struct streamlist *list);
-EXTERN void lib_releaselist(struct streamlist *list);
+EXTERN FAR struct streamlist *lib_alloclist(void);
+EXTERN void lib_addreflist(FAR struct streamlist *list);
+EXTERN void lib_releaselist(FAR struct streamlist *list);
#endif
#undef EXTERN
diff --git a/nuttx/include/nuttx/os_external.h b/nuttx/include/nuttx/os_external.h
index 6d96b5afb..1d475d84e 100644
--- a/nuttx/include/nuttx/os_external.h
+++ b/nuttx/include/nuttx/os_external.h
@@ -75,7 +75,7 @@ EXTERN void os_start(void); /* OS entry point called by boot logic */
/* Functions contained in mm_init.c *************************/
-EXTERN void mm_initialize(void *heap_start, size_t heap_size);
+EXTERN void mm_initialize(FAR void *heap_start, size_t heap_size);
#undef EXTERN
#ifdef __cplusplus
diff --git a/nuttx/include/pthread.h b/nuttx/include/pthread.h
index 12f0d5365..ad907cf55 100644
--- a/nuttx/include/pthread.h
+++ b/nuttx/include/pthread.h
@@ -41,6 +41,7 @@
************************************************************/
#include <nuttx/config.h> /* Default settings */
+#include <nuttx/compiler.h> /* Compiler settings */
#include <sys/types.h> /* Needed for general types */
#include <semaphore.h> /* Needed for sem_t */
#include <time.h> /* Needed for struct timespec */
@@ -85,11 +86,7 @@
/* Thread return value when a pthread is canceled */
-#ifdef CONFIG_CAN_CAST_POINTERS
-# define PTHREAD_CANCELED ((void*)ERROR)
-#else
-# define PTHREAD_CANCELED ((void*)pthread_create)
-#endif
+# define PTHREAD_CANCELED ((FAR void*)ERROR)
/************************************************************
* Global Type Declarations
@@ -107,7 +104,7 @@ extern "C" {
*----------------------------------------------------------*/
typedef int pthread_key_t;
-typedef void *pthread_addr_t;
+typedef FAR void *pthread_addr_t;
typedef pthread_addr_t any_t;
typedef pthread_addr_t (*pthread_startroutine_t)(pthread_addr_t);
@@ -115,10 +112,10 @@ typedef pthread_startroutine_t pthread_func_t;
struct pthread_addr_s
{
- unsigned long stacksize; /* Size of the stack allocated for the pthead */
- short priority; /* Priority of the pthread */
- ubyte policy; /* Pthread scheduler policy */
- ubyte inheritsched; /* Inherit parent prio/policy? */
+ size_t stacksize; /* Size of the stack allocated for the pthead */
+ short priority; /* Priority of the pthread */
+ ubyte policy; /* Pthread scheduler policy */
+ ubyte inheritsched; /* Inherit parent prio/policy? */
};
typedef struct pthread_addr_s pthread_attr_t;
@@ -173,8 +170,10 @@ EXTERN int pthread_attr_destroy(pthread_attr_t *attr);
* Set or obtain the default scheduling algorithm
*----------------------------------------------------------*/
-EXTERN int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
-EXTERN int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy);
+EXTERN int pthread_attr_setschedpolicy(pthread_attr_t *attr,
+ int policy);
+EXTERN int pthread_attr_getschedpolicy(pthread_attr_t *attr,
+ int *policy);
EXTERN int pthread_attr_setschedparam(pthread_attr_t *attr,
const struct sched_param *param);
EXTERN int pthread_attr_getschedparam(pthread_attr_t *attr,
@@ -188,8 +187,10 @@ EXTERN int pthread_attr_getinheritsched(const pthread_attr_t *attr,
* Set or obtain the default stack size
*----------------------------------------------------------*/
-EXTERN int pthread_attr_setstacksize(pthread_attr_t *attr, long stacksize);
-EXTERN int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr);
+EXTERN int pthread_attr_setstacksize(pthread_attr_t *attr,
+ long stacksize);
+EXTERN int pthread_attr_getstacksize(pthread_attr_t *attr,
+ long *stackaddr);
/*----------------------------------------------------------*
* To create a thread object and runnable thread, a routine
@@ -200,7 +201,8 @@ EXTERN int pthread_attr_getstacksize(pthread_attr_t *attr, long *stackaddr);
* specify details about the kind of thread being created.
*----------------------------------------------------------*/
-EXTERN int pthread_create(pthread_t *thread, pthread_attr_t *attr,
+EXTERN int pthread_create(pthread_t *thread,
+ pthread_attr_t *attr,
pthread_startroutine_t startRoutine,
pthread_addr_t arg);
@@ -216,7 +218,7 @@ EXTERN int pthread_detach(pthread_t thread);
* execution of another thread.
*----------------------------------------------------------*/
-EXTERN void pthread_exit(pthread_addr_t pvValue) noreturn_function;
+EXTERN void pthread_exit(pthread_addr_t value) noreturn_function;
EXTERN int pthread_cancel(pthread_t thread);
EXTERN int pthread_setcancelstate(int state, int *oldstate);
EXTERN void pthread_testcancel(void);
@@ -226,7 +228,8 @@ EXTERN void pthread_testcancel(void);
* the return value of the thread.
*----------------------------------------------------------*/
-EXTERN int pthread_join(pthread_t thread, pthread_addr_t *ppvValue);
+EXTERN int pthread_join(pthread_t thread,
+ pthread_addr_t *value);
/*----------------------------------------------------------*
* A thread may tell the scheduler that its processor can be
@@ -245,7 +248,8 @@ EXTERN void pthread_yield(void);
* Thread scheduling parameters
*----------------------------------------------------------*/
-EXTERN int pthread_getschedparam(pthread_t thread, int *policy,
+EXTERN int pthread_getschedparam(pthread_t thread,
+ int *policy,
struct sched_param *param);
EXTERN int pthread_setschedparam(pthread_t thread, int policy,
const struct sched_param *param);
@@ -255,9 +259,9 @@ EXTERN int pthread_setschedparam(pthread_t thread, int policy,
*----------------------------------------------------------*/
EXTERN int pthread_key_create(pthread_key_t *key,
- void (*destructor)(void*));
-EXTERN int pthread_setspecific(pthread_key_t key, void *value);
-EXTERN void *pthread_getspecific(pthread_key_t key);
+ FAR void (*destructor)(FAR void*));
+EXTERN int pthread_setspecific(pthread_key_t key, FAR void *value);
+EXTERN FAR void *pthread_getspecific(pthread_key_t key);
EXTERN int pthread_key_delete(pthread_key_t key);
/*----------------------------------------------------------*
@@ -294,7 +298,8 @@ EXTERN int pthread_condattr_destroy(pthread_condattr_t *attr);
* A thread can create and delete condition variables.
*----------------------------------------------------------*/
-EXTERN int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *attr);
+EXTERN int pthread_cond_init(pthread_cond_t *cond,
+ pthread_condattr_t *attr);
EXTERN int pthread_cond_destroy(pthread_cond_t *cond);
/*----------------------------------------------------------*
@@ -302,21 +307,23 @@ EXTERN int pthread_cond_destroy(pthread_cond_t *cond);
*----------------------------------------------------------*/
EXTERN int pthread_cond_broadcast(pthread_cond_t *cond);
-EXTERN int pthread_cond_signal(pthread_cond_t *dond);
+EXTERN int pthread_cond_signal(pthread_cond_t *cond);
/*----------------------------------------------------------*
* A thread can wait for a condition variable to be signalled
* or broadcast.
*----------------------------------------------------------*/
-EXTERN int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex);
+EXTERN int pthread_cond_wait(pthread_cond_t *cond,
+ pthread_mutex_t *mutex);
/*----------------------------------------------------------*
* A thread can perform a timed wait on a condition variable.
*----------------------------------------------------------*/
-EXTERN int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
- const struct timespec *abstime);
+EXTERN int pthread_cond_timedwait(pthread_cond_t *cond,
+ pthread_mutex_t *mutex,
+ const struct timespec *abstime);
#undef EXTERN
#ifdef __cplusplus
diff --git a/nuttx/include/queue.h b/nuttx/include/queue.h
index 17f4ddec0..9e45672df 100644
--- a/nuttx/include/queue.h
+++ b/nuttx/include/queue.h
@@ -58,25 +58,28 @@
struct sq_entry_s
{
- struct sq_entry_s *flink;
+ FAR struct sq_entry_s *flink;
};
typedef struct sq_entry_s sq_entry_t;
struct dq_entry_s
{
- struct dq_entry_s *flink, *blink;
+ FAR struct dq_entry_s *flink;
+ FAR struct dq_entry_s *blink;
};
typedef struct dq_entry_s dq_entry_t;
struct sq_queue_s
{
- sq_entry_t *head, *tail;
+ FAR sq_entry_t *head;
+ FAR sq_entry_t *tail;
};
typedef struct sq_queue_s sq_queue_t;
struct dq_queue_s
{
- dq_entry_t *head, *tail;
+ FAR dq_entry_t *head;
+ FAR dq_entry_t *tail;
};
typedef struct dq_queue_s dq_queue_t;
@@ -91,23 +94,24 @@ extern "C" {
#define EXTERN extern
#endif
-EXTERN void sq_addfirst(sq_entry_t *node, sq_queue_t *queue);
-EXTERN void dq_addfirst(dq_entry_t *node, dq_queue_t *queue);
-EXTERN void sq_addlast(sq_entry_t *node, sq_queue_t *queue);
-EXTERN void dq_addlast(dq_entry_t *node, dq_queue_t *queue);
-EXTERN void sq_addafter(sq_entry_t *prev, sq_entry_t *node,
- sq_queue_t *queue);
-EXTERN void dq_addafter(dq_entry_t *prev, dq_entry_t *node,
- dq_queue_t *queue);
-EXTERN void dq_addbefore(dq_entry_t *next, dq_entry_t *node,
- dq_queue_t *queue);
-EXTERN sq_entry_t *sq_remafter(sq_entry_t *node, sq_queue_t *queue);
-EXTERN void sq_rem(sq_entry_t *node, sq_queue_t *queue);
-EXTERN void dq_rem(dq_entry_t *node, dq_queue_t *queue);
-EXTERN sq_entry_t *sq_remlast(sq_queue_t *queue);
-EXTERN dq_entry_t *dq_remlast(dq_queue_t *queue);
-EXTERN sq_entry_t *sq_remfirst(sq_queue_t *queue);
-EXTERN dq_entry_t *dq_remfirst(dq_queue_t *queue);
+EXTERN void sq_addfirst(FAR sq_entry_t *node, sq_queue_t *queue);
+EXTERN void dq_addfirst(FAR dq_entry_t *node, dq_queue_t *queue);
+EXTERN void sq_addlast(FAR sq_entry_t *node, sq_queue_t *queue);
+EXTERN void dq_addlast(FAR dq_entry_t *node, dq_queue_t *queue);
+EXTERN void sq_addafter(FAR sq_entry_t *prev, FAR sq_entry_t *node,
+ sq_queue_t *queue);
+EXTERN void dq_addafter(FAR dq_entry_t *prev, FAR dq_entry_t *node,
+ dq_queue_t *queue);
+EXTERN void dq_addbefore(FAR dq_entry_t *next, FAR dq_entry_t *node,
+ dq_queue_t *queue);
+
+EXTERN FAR sq_entry_t *sq_remafter(FAR sq_entry_t *node, sq_queue_t *queue);
+EXTERN void sq_rem(FAR sq_entry_t *node, sq_queue_t *queue);
+EXTERN void dq_rem(FAR dq_entry_t *node, dq_queue_t *queue);
+EXTERN FAR sq_entry_t *sq_remlast(sq_queue_t *queue);
+EXTERN FAR dq_entry_t *dq_remlast(dq_queue_t *queue);
+EXTERN FAR sq_entry_t *sq_remfirst(sq_queue_t *queue);
+EXTERN FAR dq_entry_t *dq_remfirst(dq_queue_t *queue);
#undef EXTERN
#ifdef __cplusplus
diff --git a/nuttx/include/sched.h b/nuttx/include/sched.h
index 4266eb9c0..79d3b2f1d 100644
--- a/nuttx/include/sched.h
+++ b/nuttx/include/sched.h
@@ -147,7 +147,8 @@ struct _TCB
{
/* Fields used to support list management ***************************/
- struct _TCB *flink, *blink; /* link in DQ of TCBs */
+ FAR struct _TCB *flink; /* link in DQ of TCBs */
+ FAR struct _TCB *blink;
/* Task Management Fields *******************************************/
@@ -159,7 +160,7 @@ struct _TCB
tstate_t task_state; /* Current state of the thread */
uint16 flags; /* Misc. general status flags */
sint16 lockcount; /* 0=preemptable (not-locked) */
- void *joininfo; /* Detach-able info to support join */
+ FAR void *joininfo; /* Detach-able info to support join */
#if CONFIG_RR_INTERVAL > 0
int timeslice; /* RR timeslice interval remaining */
#endif
@@ -167,27 +168,27 @@ struct _TCB
/* Values needed to restart a task **********************************/
ubyte init_priority; /* Initial priority of the task */
- char *argv[NUM_TASK_ARGS+1]; /* Name + start-up parameters */
+ FAR char *argv[NUM_TASK_ARGS+1]; /* Name + start-up parameters */
/* Stack-Related Fields *********************************************/
size_t adj_stack_size; /* Stack size after adjustment */
/* for hardware, processor, etc. */
/* (for debug purposes only) */
- void *stack_alloc_ptr; /* Pointer to allocated stack */
+ FAR void *stack_alloc_ptr; /* Pointer to allocated stack */
/* Need to deallocate stack */
- void *adj_stack_ptr; /* Adjusted StatckAllocPtr for HW */
+ FAR void *adj_stack_ptr; /* Adjusted StatckAllocPtr for HW */
/* The initial stack pointer value */
/* POSIX thread Specific Data ***************************************/
#if CONFIG_NPTHREAD_KEYS > 0
- void *pthread_data[CONFIG_NPTHREAD_KEYS];
+ FAR void *pthread_data[CONFIG_NPTHREAD_KEYS];
#endif
/* POSIX Semaphore Control Fields ***********************************/
- sem_t *waitsem; /* Semaphore ID waiting on */
+ sem_t *waitsem; /* Semaphore ID waiting on */
/* POSIX Signal Control Fields **************************************/
@@ -202,7 +203,7 @@ struct _TCB
/* POSIX Named Message Queue Fields *********************************/
sq_queue_t msgdesq; /* List of opened message queues */
- msgq_t *msgwaitq; /* Waiting for this message queue */
+ FAR msgq_t *msgwaitq; /* Waiting for this message queue */
/* Library related fields *******************************************/
@@ -211,11 +212,11 @@ struct _TCB
/* File system support **********************************************/
#if CONFIG_NFILE_DESCRIPTORS > 0
- struct filelist *filelist; /* Maps file descriptor to file */
+ FAR struct filelist *filelist; /* Maps file descriptor to file */
#endif
#if CONFIG_NFILE_STREAMS > 0
- struct streamlist *streams; /* Holds C buffered I/O info */
+ FAR struct streamlist *streams; /* Holds C buffered I/O info */
#endif
/* State save areas *************************************************/
@@ -246,29 +247,31 @@ extern "C" {
/* Task Control Interfaces (non-standard) */
-EXTERN STATUS task_init(_TCB *tcb , char *name, int priority,
- uint32 *stack, uint32 stack_size, main_t entry,
- char *arg1, char *arg2, char *arg3, char *arg4);
-EXTERN STATUS task_activate(_TCB *tcb);
-EXTERN int task_create(char *name, int priority, int stack_size, main_t main,
- char *arg1, char *arg2, char *arg3, char *arg4);
+EXTERN STATUS task_init(FAR _TCB *tcb, const char *name, int priority,
+ FAR uint32 *stack, uint32 stack_size, main_t entry,
+ FAR char *arg1, FAR char *arg2,
+ FAR char *arg3, FAR char *arg4);
+EXTERN STATUS task_activate(FAR _TCB *tcb);
+EXTERN int task_create(const char *name, int priority, int stack_size, main_t main,
+ FAR char *arg1, FAR char *arg2,
+ FAR char *arg3, FAR char *arg4);
EXTERN STATUS task_delete(pid_t pid);
EXTERN STATUS task_restart(pid_t pid);
/* Task Scheduling Interfaces (based on POSIX APIs) */
EXTERN int sched_setparam(pid_t pid,
- const struct sched_param * param);
+ const struct sched_param *param);
EXTERN int sched_getparam(pid_t pid,
- struct sched_param * param);
+ struct sched_param *param);
EXTERN int sched_setscheduler(pid_t pid, int policy,
- const struct sched_param * param);
+ const struct sched_param *param);
EXTERN int sched_getscheduler(pid_t pid);
EXTERN int sched_yield(void);
EXTERN int sched_get_priority_max(int policy);
EXTERN int sched_get_priority_min(int policy);
EXTERN int sched_rr_get_interval(pid_t pid,
- struct timespec * interval);
+ struct timespec *interval);
/* Task Switching Interfaces (non-standard) */
@@ -282,9 +285,9 @@ EXTERN sint32 sched_lockcount(void);
#ifdef CONFIG_SCHED_INSTRUMENTATION
-EXTERN void sched_note_start(_TCB *tcb );
-EXTERN void sched_note_stop(_TCB *tcb );
-EXTERN void sched_note_switch(_TCB *pFromTcb, _TCB *pToTcb);
+EXTERN void sched_note_start(FAR _TCB *tcb );
+EXTERN void sched_note_stop(FAR _TCB *tcb );
+EXTERN void sched_note_switch(FAR _TCB *pFromTcb, FAR _TCB *pToTcb);
#else
# define sched_note_start(t)
@@ -295,9 +298,9 @@ EXTERN void sched_note_switch(_TCB *pFromTcb, _TCB *pToTcb);
/* File system helpers */
#if CONFIG_NFILE_DESCRIPTORS > 0
-EXTERN struct filelist *sched_getfiles(void);
+EXTERN FAR struct filelist *sched_getfiles(void);
#if CONFIG_NFILE_STREAMS > 0
-EXTERN struct streamlist *sched_getstreams(void);
+EXTERN FAR struct streamlist *sched_getstreams(void);
#endif /* CONFIG_NFILE_STREAMS */
#endif /* CONFIG_NFILE_DESCRIPTORS */
diff --git a/nuttx/include/semaphore.h b/nuttx/include/semaphore.h
index 92ac7ab89..f23435a1a 100644
--- a/nuttx/include/semaphore.h
+++ b/nuttx/include/semaphore.h
@@ -84,15 +84,15 @@ typedef struct sem_s sem_t;
/* Counting Semaphore Interfaces (based on POSIX APIs) */
-EXTERN int sem_init(sem_t *sem, int pshared, unsigned int value);
-EXTERN int sem_destroy(sem_t *sem);
-EXTERN sem_t *sem_open(const char *name, int oflag, ...);
-EXTERN int sem_close(sem_t *sem);
-EXTERN int sem_unlink(const char *name);
-EXTERN int sem_wait(sem_t *sem);
-EXTERN int sem_trywait(sem_t *sem);
-EXTERN int sem_post(sem_t *sem);
-EXTERN int sem_getvalue(sem_t *sem, int *sval);
+EXTERN int sem_init(sem_t *sem, int pshared, unsigned int value);
+EXTERN int sem_destroy(sem_t *sem);
+EXTERN FAR sem_t *sem_open(const char *name, int oflag, ...);
+EXTERN int sem_close(FAR sem_t *sem);
+EXTERN int sem_unlink(const char *name);
+EXTERN int sem_wait(sem_t *sem);
+EXTERN int sem_trywait(sem_t *sem);
+EXTERN int sem_post(sem_t *sem);
+EXTERN int sem_getvalue(sem_t *sem, int *sval);
#undef EXTERN
#ifdef __cplusplus
diff --git a/nuttx/include/signal.h b/nuttx/include/signal.h
index 4ec153b51..df8fe214d 100644
--- a/nuttx/include/signal.h
+++ b/nuttx/include/signal.h
@@ -41,6 +41,7 @@
************************************************************/
#include <nuttx/config.h>
+#include <nuttx/compiler.h>
#include <time.h> /* Needed for struct timespec */
#include <sys/types.h> /* Needed for, e.g., sigset_t */
@@ -123,7 +124,7 @@ struct sigaction
union
{
void (*_sa_handler)(int);
- void (*_sa_sigaction)(int, siginfo_t *, void *);
+ void (*_sa_sigaction)(int, FAR siginfo_t *, FAR void *);
} sa_u;
sigset_t sa_mask;
int sa_flags;
@@ -155,7 +156,7 @@ EXTERN int sigaction(int sig,
const struct sigaction *act,
struct sigaction *oact);
EXTERN int sigprocmask(int how, const sigset_t *set,
- sigset_t *oset);
+ sigset_t *oset);
EXTERN int sigpending(sigset_t *set);
EXTERN int sigsuspend(const sigset_t *sigmask);
EXTERN int sigwaitinfo(const sigset_t *set,
diff --git a/nuttx/include/stdio.h b/nuttx/include/stdio.h
index 883e32fc4..8b9a7e28e 100644
--- a/nuttx/include/stdio.h
+++ b/nuttx/include/stdio.h
@@ -129,12 +129,12 @@
struct _dirent
{
- char *d_name; /* name of directory entry */
+ FAR char *d_name; /* name of directory entry */
};
struct dirent
{
- char *d_name; /* A pointer to szName */
- char szName[NAME_MAX+1]; /* name of the directory entry */
+ FAR char *d_name; /* A pointer to d_szname */
+ char d_szname[NAME_MAX+1]; /* name of the directory entry */
};
typedef struct
@@ -147,7 +147,7 @@ typedef struct
{
unsigned long inode;
int generation;
- char *fileName;
+ FAR char *filename;
} HANDLE_TO_NAME_IOCTL;
struct stat
@@ -186,7 +186,7 @@ struct statfs
/* Streams */
-typedef struct file_struct FILE;
+typedef FAR struct file_struct FILE;
typedef void DIR;
@@ -239,22 +239,22 @@ EXTERN int close(int fd);
EXTERN int closedir(DIR *dirp);
EXTERN int creat(const char *path, mode_t mode);
EXTERN FILE *fdopen(int fd, const char *type);
-EXTERN int fstat(int fd, struct stat *buf);
-EXTERN char *getcwd(char *buf, size_t size);
+EXTERN int fstat(int fd, FAR struct stat *buf);
+EXTERN char *getcwd(FAR char *buf, size_t size);
EXTERN int ioctl(int fd, int req, unsigned long arg);
EXTERN off_t lseek(int fd, off_t offset, int whence);
EXTERN int mkdir(const char *path, mode_t mode);
-EXTERN int open( const char *path, int oflag, ... );
+EXTERN int open(const char *path, int oflag, ...);
EXTERN DIR *opendir(const char *path);
EXTERN int read(int fd, void *buf, unsigned int nbytes);
-EXTERN struct _dirent *readdir(DIR *dirp);
-EXTERN int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
-EXTERN void rewinddir(DIR *dirp);
+EXTERN struct _dirent *readdir(FAR DIR *dirp);
+EXTERN int readdir_r(FAR DIR *dirp, struct dirent *entry, FAR struct dirent **result);
+EXTERN void rewinddir(FAR DIR *dirp);
EXTERN int rmdir(const char *path);
-EXTERN void seekdir(DIR *dirp, int loc);
-EXTERN int stat(const char *path, struct stat *buf);
-EXTERN int statfs(const char *path, struct statfs *buf);
-EXTERN int telldir(DIR *dirp);
+EXTERN void seekdir(FAR DIR *dirp, int loc);
+EXTERN int stat(const char *path, FAR struct stat *buf);
+EXTERN int statfs(const char *path, FAR struct statfs *buf);
+EXTERN int telldir(FAR DIR *dirp);
EXTERN int unlink(const char *path);
EXTERN int write(int fd, const void *buf, unsigned int nbytes);
diff --git a/nuttx/include/stdlib.h b/nuttx/include/stdlib.h
index ba4f2b502..4a9f2ef0d 100644
--- a/nuttx/include/stdlib.h
+++ b/nuttx/include/stdlib.h
@@ -83,30 +83,40 @@ extern "C" {
#endif
/* Random number generation */
-EXTERN void srand(unsigned int seed);
-EXTERN int rand(void);
+
+EXTERN void srand(unsigned int seed);
+EXTERN int rand(void);
/* Environment variable support */
-EXTERN char *getenv(const char *name);
+
+EXTERN char *getenv(const char *name);
/* Process exit functions */
-EXTERN void exit(int status);
-EXTERN void abort(void);
-EXTERN int atexit(void (*func)(void));
+
+EXTERN void exit(int status);
+EXTERN void abort(void);
+EXTERN int atexit(void (*func)(void));
/* String to binary conversions */
-#define atoi(nptr) strtol((nptr), (char**)NULL, 10)
-EXTERN long strtol(const char *, char **, int);
-EXTERN double_t strtod(const char *, char **);
+
+#define atoi(nptr) strtol((nptr), (FAR char**)NULL, 10)
+EXTERN long strtol(const char *, char **, int);
+EXTERN double_t strtod(const char *, char **);
/* Memory Management */
-EXTERN void *malloc(size_t);
-EXTERN void free(void*);
-EXTERN void *realloc(void*, size_t);
-EXTERN void *memalign(size_t, size_t);
-EXTERN void *zalloc(size_t);
-EXTERN void *calloc(size_t, size_t);
+
+EXTERN FAR void *malloc(size_t);
+EXTERN void free(FAR void*);
+EXTERN FAR void *realloc(FAR void*, size_t);
+EXTERN FAR void *memalign(size_t, size_t);
+EXTERN FAR void *zalloc(size_t);
+EXTERN FAR void *calloc(size_t, size_t);
+
+#ifdef CONFIG_CAN_PASS_STRUCTS
EXTERN struct mallinfo mallinfo(void);
+#else
+EXTERN int mallinfo(struct mallinfo *info);
+#endif
#undef EXTERN
#if defined(__cplusplus)
diff --git a/nuttx/include/string.h b/nuttx/include/string.h
index e63895188..0c8bd59b7 100644
--- a/nuttx/include/string.h
+++ b/nuttx/include/string.h
@@ -60,7 +60,7 @@ extern "C" {
#endif
EXTERN char *strchr(const char *s, int c);
-EXTERN char *strdup(const char *s);
+EXTERN FAR char *strdup(const char *s);
EXTERN char *strerror(int);
EXTERN size_t strlen(const char *);
EXTERN char *strncat(char *, const char *, size_t);
@@ -74,7 +74,7 @@ EXTERN char *strrchr(const char *, int);
EXTERN size_t strspn(const char *, const char *);
EXTERN size_t strcspn(const char *, const char *);
EXTERN char *strstr(const char *, const char *);
-EXTERN char *strtok(char *, const char *);
+EXTERN char *strtok(FAR char *, const char *);
EXTERN void *memset(void *s, int c, size_t n);
EXTERN void *memcpy(void *dest, const void *src, size_t n);
diff --git a/nuttx/include/unistd.h b/nuttx/include/unistd.h
index e6c787ecc..faf50e3a3 100644
--- a/nuttx/include/unistd.h
+++ b/nuttx/include/unistd.h
@@ -67,7 +67,7 @@ extern "C" {
/* Task Control Interfaces (based on ANSII APIs) */
-EXTERN pid_t getpid( void );
+EXTERN pid_t getpid(void);
EXTERN void _exit(int status) noreturn_function;
EXTERN unsigned int sleep(unsigned int seconds);
EXTERN void usleep(unsigned long usec);
diff --git a/nuttx/include/wdog.h b/nuttx/include/wdog.h
index a1065eaae..fb45cb6a2 100644
--- a/nuttx/include/wdog.h
+++ b/nuttx/include/wdog.h
@@ -80,7 +80,7 @@ typedef void (*wdentry_t)(int argc, uint32 arg1, ...);
/* Watchdog 'handle' */
-typedef struct wdog_s *WDOG_ID;
+typedef FAR struct wdog_s *WDOG_ID;
/************************************************************
* Global Variables