summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-08-30 14:26:56 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-08-30 14:26:56 -0600
commit8e185b4cba702e2c98922ea211e3496bb814702f (patch)
treeacf7e9dd554df0ade833eaef31975d66a5ba64c6 /nuttx
parent4da5bc0a49f0f308eda5b46b41e628111bb079a5 (diff)
downloadnuttx-8e185b4cba702e2c98922ea211e3496bb814702f.tar.gz
nuttx-8e185b4cba702e2c98922ea211e3496bb814702f.tar.bz2
nuttx-8e185b4cba702e2c98922ea211e3496bb814702f.zip
Back out and replace recent kludges for errno and clock_systimer. There is a cleaner way
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/Makefile.unix4
-rw-r--r--nuttx/Makefile.win4
-rw-r--r--nuttx/include/errno.h2
-rw-r--r--nuttx/include/nuttx/clock.h10
-rw-r--r--nuttx/include/nuttx/syscall.h110
-rw-r--r--nuttx/sched/clock/clock_systimer.c7
-rw-r--r--nuttx/syscall/syscall.csv6
-rw-r--r--nuttx/syscall/syscall_stublookup.c4
8 files changed, 17 insertions, 130 deletions
diff --git a/nuttx/Makefile.unix b/nuttx/Makefile.unix
index 9c6ee8132..5f64360fd 100644
--- a/nuttx/Makefile.unix
+++ b/nuttx/Makefile.unix
@@ -409,8 +409,10 @@ audio/libaudio$(LIBEXT): context
lib/libaudio$(LIBEXT): audio/libaudio$(LIBEXT)
$(Q) install audio/libaudio$(LIBEXT) lib/libaudio$(LIBEXT)
+# Special case
+
syscall/libstubs$(LIBEXT): context
- $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libstubs$(LIBEXT) EXTRADEFINES=$(KDEFINE)
+ $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libstubs$(LIBEXT) # EXTRADEFINES=$(KDEFINE)
lib/libstubs$(LIBEXT): syscall/libstubs$(LIBEXT)
$(Q) install syscall/libstubs$(LIBEXT) lib/libstubs$(LIBEXT)
diff --git a/nuttx/Makefile.win b/nuttx/Makefile.win
index e5ba6466d..2cd9a0b84 100644
--- a/nuttx/Makefile.win
+++ b/nuttx/Makefile.win
@@ -430,8 +430,10 @@ audio\libaudio$(LIBEXT): context
lib\libaudio$(LIBEXT): audio\libaudio$(LIBEXT)
$(Q) install audio\libaudio$(LIBEXT) lib\libaudio$(LIBEXT)
+# Special case
+
syscall\libstubs$(LIBEXT): context
- $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libstubs$(LIBEXT) EXTRADEFINES=$(KDEFINE)
+ $(Q) $(MAKE) -C syscall TOPDIR="$(TOPDIR)" libstubs$(LIBEXT) # EXTRADEFINES=$(KDEFINE)
lib\libstubs$(LIBEXT): syscall\libstubs$(LIBEXT)
$(Q) install syscall\libstubs$(LIBEXT) lib\libstubs$(LIBEXT)
diff --git a/nuttx/include/errno.h b/nuttx/include/errno.h
index e61a752aa..0812fa815 100644
--- a/nuttx/include/errno.h
+++ b/nuttx/include/errno.h
@@ -63,7 +63,7 @@
# define __DIRECT_ERRNO_ACCESS 1
-#elif defined(CONFIG_BUILD_KERNEL)
+#elif defined(CONFIG_BUILD_KERNEL) && defined(__KERNEL__)
/* Kernel only build. The kernel has access */
# define __DIRECT_ERRNO_ACCESS 1
diff --git a/nuttx/include/nuttx/clock.h b/nuttx/include/nuttx/clock.h
index 18c67fe16..898aa1026 100644
--- a/nuttx/include/nuttx/clock.h
+++ b/nuttx/include/nuttx/clock.h
@@ -71,18 +71,12 @@
# define __HAVE_KERNEL_GLOBALS 0
-#elif defined(CONFIG_BUILD_PROTECTED)
-# if defined(__KERNEL__)
+#elif defined(CONFIG_BUILD_PROTECTED) && defined(__KERNEL__)
/* Case 3: Kernel mode of protected kernel build */
# define __HAVE_KERNEL_GLOBALS 1
-# else
- /* User mode of protected kernel build */
-
-# define __HAVE_KERNEL_GLOBALS 0
-# endif
-#elif defined(CONFIG_BUILD_KERNEL)
+#elif defined(CONFIG_BUILD_KERNEL) && defined(__KERNEL__)
/* Case 3: Kernel only build */
# define __HAVE_KERNEL_GLOBALS 1
diff --git a/nuttx/include/nuttx/syscall.h b/nuttx/include/nuttx/syscall.h
deleted file mode 100644
index 4fd05c7b2..000000000
--- a/nuttx/include/nuttx/syscall.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/************************************************************************
- * include/nuttx/errno.h
- *
- * Copyright (C) 2014 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <gnutt@nuttx.org>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- * 3. Neither the name NuttX nor the names of its contributors may be
- * used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- ************************************************************************/
-
-#ifndef __INCLUDE_NUTTX_ERRNO_H
-#define __INCLUDE_NUTTX_ERRNO_H
-
-/************************************************************************
- * Included Files
- ************************************************************************/
-
-#include <nuttx/config.h>
-
-/* These must always be included before this file */
-
-#include <errno.h>
-#include <nuttx/clock.h>
-
-#ifdef CONFIG_LIB_SYSCALL
-
-/************************************************************************
- * Pre-processor Definitions
- ************************************************************************/
-/* 'errno' and timer access is awkward. We need to generate get_errno(),
- * set_errno(), and clock_systimer() interfaces to support the system
- * calls, even though we don't use them from within the OS.
- *
- * The "normal" pre-processor definitions for the errno functions are in
- * errno.h and clock functions in nuttx/clock.h but we need the internal
- * function prototypes in here because those may be macro-ized.
- */
-
-#undef get_errno
-#undef set_errno
-#undef clock_systimer
-
-/************************************************************************
- * Type Declarations
- ************************************************************************/
-
-/************************************************************************
- * Public Data
- ************************************************************************/
-
-#undef EXTERN
-#if defined(__cplusplus)
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-/************************************************************************
- * Public Function Prototypes
- ************************************************************************/
-/* These get_errno(), set_errno(), and clock_systimer() functions are
- * always exported as functions from the kernel always when the system
- * call interface is built. errno.h and nuttx/clock.h provide the
- * context-specific usage interface for both the kernel- and
- * user-spaces. These may be different: These interfaces may be macro-
- * ized in those header files.
- *
- * This header file always exists to disambiguate the context. The
- * prototypes here duplicate those of errno.h and nuttx/clock.h and must
- * exactly match.
- */
-
-void set_errno(int errcode);
-int get_errno(void);
-uint32_t clock_systimer(void);
-
-#undef EXTERN
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* CONFIG_LIB_SYSCALL */
-#endif /* __INCLUDE_NUTTX_ERRNO_H */
diff --git a/nuttx/sched/clock/clock_systimer.c b/nuttx/sched/clock/clock_systimer.c
index 1d24803ef..5d49b019f 100644
--- a/nuttx/sched/clock/clock_systimer.c
+++ b/nuttx/sched/clock/clock_systimer.c
@@ -49,7 +49,10 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
+/* See nuttx/clock.h */
+#undef clock_systimer
+
/****************************************************************************
* Private Data
****************************************************************************/
@@ -74,7 +77,6 @@
*
****************************************************************************/
-#if !defined(clock_systimer) /* See nuttx/clock.h */
uint32_t clock_systimer(void)
{
#ifdef CONFIG_SCHED_TICKLESS
@@ -104,7 +106,6 @@ uint32_t clock_systimer(void)
#endif
}
-#endif
/****************************************************************************
* Name: clock_systimer64
@@ -122,7 +123,6 @@ uint32_t clock_systimer(void)
*
****************************************************************************/
-#if !defined(clock_systimer) /* See nuttx/clock.h */
#ifdef CONFIG_SYSTEM_TIME64
uint64_t clock_systimer64(void)
{
@@ -144,4 +144,3 @@ uint64_t clock_systimer64(void)
#endif
}
#endif
-#endif
diff --git a/nuttx/syscall/syscall.csv b/nuttx/syscall/syscall.csv
index 1f7a2e759..3c734d2d7 100644
--- a/nuttx/syscall/syscall.csv
+++ b/nuttx/syscall/syscall.csv
@@ -6,7 +6,7 @@
"clock_getres","time.h","","int","clockid_t","struct timespec*"
"clock_gettime","time.h","","int","clockid_t","struct timespec*"
"clock_settime","time.h","","int","clockid_t","const struct timespec*"
-"clock_systimer","nuttx/syscall.h","","uint32_t"
+"clock_systimer","nuttx/clock.h","","uint32_t"
"close","unistd.h","CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0","int","int"
"closedir","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","int","FAR DIR*"
"connect","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","FAR const struct sockaddr*","socklen_t"
@@ -18,7 +18,7 @@
"fcntl","fcntl.h","CONFIG_NFILE_DESCRIPTORS > 0","int","int","int","..."
"fs_fdopen","nuttx/fs/fs.h","CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0","FAR struct file_struct*","int","int","FAR struct tcb_s*"
"fsync","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT)","int","int"
-"get_errno","nuttx/syscall.h","","int"
+"get_errno","errno.h","","int"
"getenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","FAR char*","FAR const char*"
"getpid","unistd.h","","pid_t"
"getsockopt","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","int","int","FAR void*","FAR socklen_t*"
@@ -110,7 +110,7 @@
"send","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","ssize_t","int","FAR const void*","size_t","int"
"sendfile","sys/sendfile.h","CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_NET_SENDFILE)","ssize_t","int","int","FAR off_t*","size_t"
"sendto","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","ssize_t","int","FAR const void*","size_t","int","FAR const struct sockaddr*","socklen_t"
-"set_errno","nuttx/syscall.h","","void","int"
+"set_errno","errno.h","","void","int"
"setenv","stdlib.h","!defined(CONFIG_DISABLE_ENVIRON)","int","const char*","const char*","int"
"setsockopt","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","int","int","FAR const void*","socklen_t"
"sigaction","signal.h","!defined(CONFIG_DISABLE_SIGNALS)","int","int","FAR const struct sigaction*","FAR struct sigaction*"
diff --git a/nuttx/syscall/syscall_stublookup.c b/nuttx/syscall/syscall_stublookup.c
index 9a5a6206f..e8ea0782e 100644
--- a/nuttx/syscall/syscall_stublookup.c
+++ b/nuttx/syscall/syscall_stublookup.c
@@ -46,7 +46,7 @@
* a kernel build.
*/
-#if defined(CONFIG_LIB_SYSCALL) && defined(__KERNEL__)
+#if defined(CONFIG_LIB_SYSCALL)
/****************************************************************************
* Pre-processor definitions
@@ -341,4 +341,4 @@ const uintptr_t g_stublookup[SYS_nsyscalls] =
* Public Functions
****************************************************************************/
-#endif /* CONFIG_LIB_SYSCALL && __KERNEL__ */
+#endif /* CONFIG_LIB_SYSCALL */