configs/sim/nxwm now uses kconfig-frontends

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5449 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-12-21 21:30:33 +00:00
parent cc022f93df
commit fe49f7c965
6 changed files with 707 additions and 431 deletions

View File

@ -3805,6 +3805,9 @@
* graphics/: Adds 5x8 monospace font. This tiny font is useful for graph
labels and for small bitmapped display. Contributed by Petteri
Aimonen.
* configs/stm3220g-eval/nxwm: Converted to use the kconfig-fronteds
* configs/stm3220g-eval/nxwm: Converted to use the kconfig-frontends
configuration tool.
* configs/sim/nxwm: Converted to use the kconfig-frontends configuration
tool.
* include/pthread.h: In sys/prctl.h because it is needed by
pthread_[set|get]name_np()

View File

@ -50,7 +50,7 @@ config SIM_FRAMEBUFFER
config SIM_X11FB
bool "Use X11 window"
default n
depends on NX && FB_CMAP
depends on NX
---help---
Use an X11 graphics window to simulate the graphics device"

View File

@ -461,46 +461,57 @@ nxwm
nuttx-code/NxWidgets/UnitTests/READEM.txt
NOTE: There is an issue with running this example under the
simulation. In the default configuration, this example will
run the NxConsole example which waits on readline() for console
intput. When it calls readline(), the whole system blocks
waiting from input from the host OS. So, in order to get
this example to run, you must comment out the readline call in
apps/nshlib/nsh_consolemain.c like:
NOTES
-----
1. This configuration uses the mconf-based configuration tool. To
change this configuration using that tool, you should:
Index: nsh_consolemain.c
===================================================================
--- nsh_consolemain.c (revision 4681)
+++ nsh_consolemain.c (working copy)
@@ -117,7 +117,8 @@
/* Execute the startup script */
a. Build and install the mconf tool. See nuttx/README.txt and
misc/tools/
b. Execute 'make menuconfig' in nuttx/ in order to start the
reconfiguration process.
2. There is an issue with running this example under the
simulation. In the default configuration, this example will
run the NxConsole example which waits on readline() for console
input. When it calls readline(), the whole system blocks
waiting from input from the host OS. So, in order to get
this example to run, you must comment out the readline call in
apps/nshlib/nsh_consolemain.c like:
Index: nsh_consolemain.c
===================================================================
--- nsh_consolemain.c (revision 4681)
+++ nsh_consolemain.c (working copy)
@@ -117,7 +117,8 @@
/* Execute the startup script */
#ifdef CONFIG_NSH_ROMFSETC
- (void)nsh_script(&pstate->cn_vtbl, "init", NSH_INITPATH);
+// REMOVE ME
+// (void)nsh_script(&pstate->cn_vtbl, "init", NSH_INITPATH);
#endif
#ifdef CONFIG_NSH_ROMFSETC
- (void)nsh_script(&pstate->cn_vtbl, "init", NSH_INITPATH);
+// REMOVE ME
+// (void)nsh_script(&pstate->cn_vtbl, "init", NSH_INITPATH);
#endif
/* Then enter the command line parsing loop */
@@ -130,7 +131,8 @@
fflush(pstate->cn_outstream);
/* Then enter the command line parsing loop */
@@ -130,7 +131,8 @@
fflush(pstate->cn_outstream);
/* Get the next line of input */
-
+sleep(2); // REMOVE ME
+#if 0 // REMOVE ME
ret = readline(pstate->cn_line, CONFIG_NSH_LINELEN,
INSTREAM(pstate), OUTSTREAM(pstate));
if (ret > 0)
@@ -153,6 +155,7 @@
"readline", NSH_ERRNO_OF(-ret));
nsh_exit(&pstate->cn_vtbl, 1);
}
+#endif // REMOVE ME
}
/* Get the next line of input */
-
+sleep(2); // REMOVE ME
+#if 0 // REMOVE ME
ret = readline(pstate->cn_line, CONFIG_NSH_LINELEN,
INSTREAM(pstate), OUTSTREAM(pstate));
if (ret > 0)
@@ -153,6 +155,7 @@
"readline", NSH_ERRNO_OF(-ret));
nsh_exit(&pstate->cn_vtbl, 1);
}
+#endif // REMOVE ME
}
/* Clean up */
/* Clean up */
ostest

View File

@ -1,40 +0,0 @@
############################################################################
# configs/sim/nxwm/appconfig
#
# Copyright (C) 2012 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.
#
############################################################################
# The NSH Library
CONFIGURED_APPS += system/readline
CONFIGURED_APPS += nshlib

View File

@ -1,159 +1,150 @@
############################################################################
# sim/nxwm/defconfig
#
# Copyright (C) 2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
# Automatically generated file; DO NOT EDIT.
# Nuttx/ Configuration
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
CONFIG_NUTTX_NEWCONFIG=y
#
# 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.
# Build Setup
#
# 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.
# CONFIG_EXPERIMENTAL is not set
CONFIG_HOST_LINUX=y
# CONFIG_HOST_OSX is not set
# CONFIG_HOST_WINDOWS is not set
# CONFIG_HOST_OTHER is not set
#
############################################################################
# Build Configuration
#
# Architecture selection
# CONFIG_APPS_DIR="../apps"
# CONFIG_BUILD_2PASS is not set
#
CONFIG_ARCH="sim"
# Binary Output Formats
#
# CONFIG_RRLOAD_BINARY is not set
# CONFIG_INTELHEX_BINARY is not set
# CONFIG_MOTOROLA_SREC is not set
# CONFIG_RAW_BINARY is not set
#
# Customize Header Files
#
# CONFIG_ARCH_STDBOOL_H is not set
# CONFIG_ARCH_MATH_H is not set
# CONFIG_ARCH_FLOAT_H is not set
# CONFIG_ARCH_STDARG_H is not set
#
# Debug Options
#
# CONFIG_DEBUG is not set
CONFIG_DEBUG_SYMBOLS=y
#
# System Type
#
# CONFIG_ARCH_8051 is not set
# CONFIG_ARCH_ARM is not set
# CONFIG_ARCH_AVR is not set
# CONFIG_ARCH_HC is not set
# CONFIG_ARCH_MIPS is not set
# CONFIG_ARCH_RGMP is not set
# CONFIG_ARCH_SH is not set
CONFIG_ARCH_SIM=y
CONFIG_ARCH_BOARD="sim"
CONFIG_ARCH_BOARD_SIM=y
# CONFIG_ARCH_X86 is not set
# CONFIG_ARCH_Z16 is not set
# CONFIG_ARCH_Z80 is not set
CONFIG_ARCH="sim"
CONFIG_BOARD_LOOPSPERMSEC=
#
# Framebuffer driver options
#
CONFIG_FB_CMAP=n
CONFIG_FB_HWCURSOR=n
CONFIG_FB_HWCURSORIMAGE=n
#CONFIG_FB_HWCURSORSIZE
#CONFIG_FB_TRANSPARENCY
#
# Simulated framebuffer configuration
# Simulation Configuration Options
#
# CONFIG_SIM_M32 is not set
# CONFIG_SIM_WALLTIME is not set
CONFIG_SIM_FRAMEBUFFER=y
CONFIG_SIM_X11FB=y
CONFIG_SIM_FBWIDTH=480
# CONFIG_SIM_X11NOSHM is not set
CONFIG_SIM_FBHEIGHT=240
CONFIG_SIM_FBWIDTH=480
CONFIG_SIM_FBBPP=32
#
# Simulated touchscreen configuration
# (Set both of the following to 'y' to enable)
# Architecture Options
#
CONFIG_INPUT=n
CONFIG_SIM_TOUCHSCREEN=n
# CONFIG_ARCH_NOINTC is not set
# CONFIG_ARCH_DMA is not set
# CONFIG_ARCH_IRQPRIO is not set
# CONFIG_CUSTOM_STACK is not set
# CONFIG_ADDRENV is not set
# CONFIG_ARCH_STACKDUMP is not set
# CONFIG_ENDIAN_BIG is not set
#
# General OS setup
# Board Settings
#
CONFIG_USER_ENTRYPOINT="nxwm_main"
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=y
CONFIG_DEBUG_GRAPHICS=n
CONFIG_HAVE_CXX=y
CONFIG_HAVE_CXXINITIALIZE=n
CONFIG_MM_REGIONS=1
CONFIG_ARCH_LOWPUTC=y
CONFIG_DRAM_START=
CONFIG_DRAM_SIZE=
#
# Boot options
#
# CONFIG_BOOT_RUNFROMEXTSRAM is not set
CONFIG_BOOT_RUNFROMFLASH=y
# CONFIG_BOOT_RUNFROMISRAM is not set
# CONFIG_BOOT_RUNFROMSDRAM is not set
# CONFIG_BOOT_COPYTORAM is not set
#
# Board Selection
#
CONFIG_ARCH_BOARD_SIM=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="sim"
#
# Common Board Options
#
CONFIG_NSH_MMCSDMINOR=0
#
# Board-Specific Options
#
#
# RTOS Features
#
CONFIG_MSEC_PER_TICK=10
CONFIG_RR_INTERVAL=0
CONFIG_SCHED_INSTRUMENTATION=n
# CONFIG_SCHED_INSTRUMENTATION is not set
CONFIG_TASK_NAME_SIZE=32
# CONFIG_JULIAN_TIME is not set
CONFIG_START_YEAR=2012
CONFIG_START_MONTH=5
CONFIG_START_DAY=1
CONFIG_JULIAN_TIME=n
CONFIG_DEV_CONSOLE=y
CONFIG_DEV_LOWCONSOLE=n
CONFIG_MUTEX_TYPES=n
CONFIG_PRIORITY_INHERITANCE=n
CONFIG_SEM_PREALLOCHOLDERS=0
CONFIG_SEM_NNESTPRIO=0
CONFIG_FDCLONE_DISABLE=n
CONFIG_FDCLONE_STDIO=n
# CONFIG_MUTEX_TYPES is not set
# CONFIG_PRIORITY_INHERITANCE is not set
# CONFIG_FDCLONE_DISABLE is not set
# CONFIG_FDCLONE_STDIO is not set
CONFIG_SDCLONE_DISABLE=y
CONFIG_SIG_SIGWORK=4
CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=8192
# CONFIG_SCHED_WORKQUEUE is not set
CONFIG_SCHED_WAITPID=y
CONFIG_SCHED_ATEXIT=n
# CONFIG_SCHED_ATEXIT is not set
CONFIG_SCHED_ONEXIT=y
#
# The following can be used to disable categories of
# APIs supported by the OS. If the compiler supports
# weak functions, then it should not be necessary to
# disable functions unless you want to restrict usage
# of those APIs.
#
# There are certain dependency relationships in these
# features.
#
# o mq_notify logic depends on signals to awaken tasks
# waiting for queues to become full or empty.
# o pthread_condtimedwait() depends on signals to wake
# up waiting tasks.
#
CONFIG_DISABLE_CLOCK=n
CONFIG_SCHED_ONEXIT_MAX=1
CONFIG_USER_ENTRYPOINT="nxwm_main"
CONFIG_DISABLE_OS_API=y
# CONFIG_DISABLE_CLOCK is not set
CONFIG_DISABLE_POSIX_TIMERS=y
CONFIG_DISABLE_PTHREAD=n
CONFIG_DISABLE_SIGNALS=n
CONFIG_DISABLE_MQUEUE=n
CONFIG_DISABLE_MOUNTPOINT=n
CONFIG_DISABLE_ENVIRON=n
# CONFIG_DISABLE_PTHREAD is not set
# CONFIG_DISABLE_SIGNALS is not set
# CONFIG_DISABLE_MQUEUE is not set
# CONFIG_DISABLE_MOUNTPOINT is not set
# CONFIG_DISABLE_ENVIRON is not set
CONFIG_DISABLE_POLL=y
#
# Misc libc settings
#
CONFIG_NOPRINTF_FIELDWIDTH=n
#
# Allow for architecture optimized implementations
#
# The architecture can provide optimized versions of the
# following to improve sysem performance
#
CONFIG_ARCH_MEMCPY=n
CONFIG_ARCH_MEMCMP=n
CONFIG_ARCH_MEMMOVE=n
CONFIG_ARCH_MEMSET=n
CONFIG_ARCH_STRCMP=n
CONFIG_ARCH_STRCPY=n
CONFIG_ARCH_STRNCPY=n
CONFIG_ARCH_STRLEN=n
CONFIG_ARCH_STRNLEN=n
CONFIG_ARCH_BZERO=n
#
# General build options
#
CONFIG_RRLOAD_BINARY=n
CONFIG_INTELHEX_BINARY=n
CONFIG_RAW_BINARY=n
#
# Sizes of configurable things (0 disables)
#
@ -163,9 +154,6 @@ CONFIG_NPTHREAD_KEYS=4
CONFIG_NFILE_DESCRIPTORS=16
CONFIG_NFILE_STREAMS=16
CONFIG_NAME_MAX=32
CONFIG_STDIO_BUFFER_SIZE=256
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_PREALLOC_MQ_MSGS=32
CONFIG_MQ_MAXMSGSIZE=48
CONFIG_MAX_WDOGPARMS=4
@ -173,156 +161,371 @@ CONFIG_PREALLOC_WDOGS=32
CONFIG_PREALLOC_TIMERS=8
#
# Filesystem configuration
# Stack and heap information
#
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_USERMAIN_STACKSIZE=8192
CONFIG_PTHREAD_STACK_MIN=256
CONFIG_PTHREAD_STACK_DEFAULT=8192
#
# Device Drivers
#
CONFIG_DEV_NULL=y
# CONFIG_DEV_ZERO is not set
# CONFIG_LOOP is not set
# CONFIG_RAMDISK is not set
# CONFIG_CAN is not set
# CONFIG_PWM is not set
# CONFIG_I2C is not set
# CONFIG_SPI is not set
# CONFIG_RTC is not set
# CONFIG_WATCHDOG is not set
# CONFIG_ANALOG is not set
# CONFIG_BCH is not set
# CONFIG_INPUT is not set
# CONFIG_LCD is not set
# CONFIG_MMCSD is not set
# CONFIG_MTD is not set
# CONFIG_PIPES is not set
# CONFIG_PM is not set
# CONFIG_POWER is not set
# CONFIG_SENSORS is not set
# CONFIG_SERCOMM_CONSOLE is not set
CONFIG_SERIAL=y
# CONFIG_DEV_LOWCONSOLE is not set
# CONFIG_16550_UART is not set
# CONFIG_STANDARD_SERIAL is not set
# CONFIG_USBDEV is not set
# CONFIG_USBHOST is not set
# CONFIG_WIRELESS is not set
#
# System Logging Device Options
#
#
# System Logging
#
# CONFIG_RAMLOG is not set
#
# Networking Support
#
# CONFIG_NET is not set
#
# File Systems
#
#
# File system configuration
#
CONFIG_FS_FAT=y
CONFIG_FAT_LCNAMES=y
CONFIG_FAT_LFN=y
CONFIG_FAT_MAXFNAME=32
CONFIG_FS_NXFFS=n
# CONFIG_FS_FATTIME is not set
# CONFIG_FAT_DMAMEMORY is not set
# CONFIG_FS_RAMMAP is not set
# CONFIG_FS_NXFFS is not set
CONFIG_FS_ROMFS=y
#
# TCP/IP and UDP support via uIP
# System Logging
#
CONFIG_NET=n
CONFIG_NET_IPv6=n
CONFIG_NSOCKET_DESCRIPTORS=0
CONFIG_NET_SOCKOPTS=y
CONFIG_NET_BUFSIZE=420
CONFIG_NET_TCP=n
CONFIG_NET_TCP_CONNS=40
CONFIG_NET_MAX_LISTENPORTS=40
CONFIG_NET_UDP=n
CONFIG_NET_UDP_CHECKSUMS=y
#CONFIG_NET_UDP_CONNS=10
CONFIG_NET_ICMP=n
CONFIG_NET_ICMP_PING=n
#CONFIG_NET_PINGADDRCONF=0
CONFIG_NET_STATISTICS=y
#CONFIG_NET_RECEIVE_WINDOW=
#CONFIG_NET_ARPTAB_SIZE=8
CONFIG_NET_BROADCAST=n
# CONFIG_SYSLOG is not set
#
# UIP Network Utilities
#
CONFIG_NET_DHCP_LIGHT=n
CONFIG_NET_RESOLV_ENTRIES=4
#
# Graphics related configuration settings
# Graphics Support
#
CONFIG_NX=y
CONFIG_NX_MULTIUSER=y
CONFIG_NX_NPLANES=1
# CONFIG_NX_WRITEONLY is not set
#
# Supported Pixel Depths
#
CONFIG_NX_DISABLE_1BPP=y
CONFIG_NX_DISABLE_2BPP=y
CONFIG_NX_DISABLE_4BPP=y
CONFIG_NX_DISABLE_8BPP=y
CONFIG_NX_DISABLE_16BPP=y
CONFIG_NX_DISABLE_24BPP=y
CONFIG_NX_DISABLE_32BPP=n
CONFIG_NX_PACKEDMSFIRST=n
# CONFIG_NX_DISABLE_32BPP is not set
# CONFIG_NX_PACKEDMSFIRST is not set
#
# Input Devices
#
CONFIG_NX_MOUSE=y
CONFIG_NX_KBD=y
#CONFIG_NXTK_BORDERWIDTH=4
#
# Framed Window Borders
#
CONFIG_NXTK_BORDERWIDTH=4
CONFIG_NXTK_BORDERCOLOR1=0x005a96bd
CONFIG_NXTK_BORDERCOLOR2=0x00233a49
CONFIG_NXTK_BORDERCOLOR3=0x00f8f8f8
CONFIG_NXTK_AUTORAISE=n
CONFIG_NXFONT_SANS22X29=n
CONFIG_NXFONT_SANS23X27=y
CONFIG_NXFONT_SANS28X37=n
CONFIG_NXFONT_SANS22X29B=n
CONFIG_NXFONT_SANS28X37B=y
CONFIG_NXFONT_SANS40X49B=n
CONFIG_NXFONT_SERIF22X29=n
CONFIG_NXFONT_SERIF29X37=n
CONFIG_NXFONT_SERIF38X48=n
CONFIG_NXFONT_SERIF22X28B=n
CONFIG_NXFONT_SERIF27X38B=n
CONFIG_NXFONT_SERIF38X49B=n
# CONFIG_NXTK_AUTORAISE is not set
#
# Font Selections
#
CONFIG_NXFONTS_CHARBITS=7
# CONFIG_NXFONT_SANS17X22 is not set
# CONFIG_NXFONT_SANS20X26 is not set
CONFIG_NXFONT_SANS23X27=y
# CONFIG_NXFONT_SANS22X29 is not set
# CONFIG_NXFONT_SANS28X37 is not set
# CONFIG_NXFONT_SANS39X48 is not set
# CONFIG_NXFONT_SANS17X23B is not set
# CONFIG_NXFONT_SANS20X27B is not set
# CONFIG_NXFONT_SANS22X29B is not set
CONFIG_NXFONT_SANS28X37B=y
# CONFIG_NXFONT_SANS40X49B is not set
# CONFIG_NXFONT_SERIF22X29 is not set
# CONFIG_NXFONT_SERIF29X37 is not set
# CONFIG_NXFONT_SERIF38X48 is not set
# CONFIG_NXFONT_SERIF22X28B is not set
# CONFIG_NXFONT_SERIF27X38B is not set
# CONFIG_NXFONT_SERIF38X49B is not set
CONFIG_NXCONSOLE=y
#
# NxConsole Output Text/Graphics Options
#
CONFIG_NXCONSOLE_BPP=32
CONFIG_NXCONSOLE_CURSORCHAR=137
CONFIG_NXCONSOLE_MXCHARS=256
CONFIG_NXCONSOLE_CACHESIZE=16
CONFIG_NXCONSOLE_LINESEPARATION=0
# CONFIG_NXCONSOLE_NOWRAP is not set
#
# NxConsole Input options
#
# CONFIG_NXCONSOLE_NXKBDIN is not set
CONFIG_NXCONSOLE_KBDBUFSIZE=16
CONFIG_NXCONSOLE_NPOLLWAITERS=4
#
# NX Multi-user only options
#
CONFIG_NX_MULTIUSER=y
CONFIG_NX_BLOCKING=y
CONFIG_NX_MXSERVERMSGS=32
CONFIG_NX_MXCLIENTMSGS=16
#
# NxWidgets / NxWM
# Memory Management
#
# Use all defaults except
# 1. 32 bits-per-pixel
# 2. Need an especially big server stack size to work with X
# 3. Make the NxWidgets background color match the NxWM back color
# 4. Taskbar on the left
# 5. Bigger stack for NxConsole
# 6. No touchscreen
#
CONFIG_NXWIDGETS_BPP=32
CONFIG_NXWIDGETS_SERVERSTACK=16384
CONFIG_NXWIDGETS_LISTENERSTACK=8192
CONFIG_NXWIDGETS_DEFAULT_BACKGROUNDCOLOR=MKRGB(148,189,215)
CONFIG_NXWIDGETS_DEFAULT_SELECTEDBACKGROUNDCOLOR=MKRGB(206,227,241)
CONFIG_NXWIDGETS_DEFAULT_SHADOWEDGECOLOR=MKRGB(35,58,73)
CONFIG_NXWM_TASKBAR_LEFT=y
CONFIG_NXWM_NXCONSOLE_STACKSIZE=8192
CONFIG_NXWM_UNITTEST=y
CONFIG_NXWM_TOUCHSCREEN=n
# CONFIG_MM_SMALL is not set
CONFIG_MM_REGIONS=1
# CONFIG_GRAN is not set
#
# NxConsole Configuration Settings:
# Binary Formats
#
CONFIG_NXCONSOLE=y
CONFIG_NXCONSOLE_BPP=32
CONFIG_NXCONSOLE_MXCHARS=256
# CONFIG_BINFMT_DISABLE is not set
# CONFIG_BINFMT_EXEPATH is not set
# CONFIG_NXFLAT is not set
# CONFIG_ELF is not set
# CONFIG_PIC is not set
# CONFIG_SYMTAB_ORDEREDBYNAME is not set
#
# Library Routines
#
CONFIG_STDIO_BUFFER_SIZE=256
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBM is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set
# CONFIG_EOL_IS_CR is not set
# CONFIG_EOL_IS_LF is not set
# CONFIG_EOL_IS_BOTH_CRLF is not set
CONFIG_EOL_IS_EITHER_CRLF=y
# CONFIG_LIBC_STRERROR is not set
# CONFIG_LIBC_PERROR_STDOUT is not set
CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
#
# Basic CXX Support
#
# CONFIG_C99_BOOL8 is not set
CONFIG_HAVE_CXX=y
# CONFIG_HAVE_CXXINITIALIZE is not set
# CONFIG_CXX_NEWLONG is not set
#
# uClibc++ Standard C++ Library
#
# CONFIG_UCLIBCXX is not set
#
# Application Configuration
#
#
# Settings for examples/uip
# Named Applications
#
CONFIG_EXAMPLES_UIP_IPADDR=0xc0a80080
CONFIG_EXAMPLES_UIP_DRIPADDR=0xc0a80001
CONFIG_EXAMPLES_UIP_NETMASK=0xffffff00
CONFIG_EXAMPLES_UIP_DHCPC=n
# CONFIG_NAMEDAPP is not set
#
# Settings for examples/nettest
# Examples
#
CONFIG_EXAMPLES_NETTEST_SERVER=n
CONFIG_EXAMPLES_NETTEST_PERFORMANCE=n
CONFIG_EXAMPLES_NETTEST_NOMAC=n
CONFIG_EXAMPLES_NETTEST_IPADDR=0xc0a80080
CONFIG_EXAMPLES_NETTEST_DRIPADDR=0xc0a80001
CONFIG_EXAMPLES_NETTEST_NETMASK=0xffffff00
CONFIG_EXAMPLES_NETTEST_CLIENTIP=0xc0a8006a
# CONFIG_EXAMPLES_BUTTONS is not set
# CONFIG_EXAMPLES_CAN is not set
# CONFIG_EXAMPLES_CDCACM is not set
# CONFIG_EXAMPLES_COMPOSITE is not set
# CONFIG_EXAMPLES_CXXTEST is not set
# CONFIG_EXAMPLES_DHCPD is not set
# CONFIG_EXAMPLES_ELF is not set
# CONFIG_EXAMPLES_FTPC is not set
# CONFIG_EXAMPLES_FTPD is not set
# CONFIG_EXAMPLES_HELLO is not set
# CONFIG_EXAMPLES_HELLOXX is not set
# CONFIG_EXAMPLES_JSON is not set
# CONFIG_EXAMPLES_HIDKBD is not set
# CONFIG_EXAMPLES_KEYPADTEST is not set
# CONFIG_EXAMPLES_IGMP is not set
# CONFIG_EXAMPLES_LCDRW is not set
# CONFIG_EXAMPLES_MM is not set
# CONFIG_EXAMPLES_MOUNT is not set
# CONFIG_EXAMPLES_MODBUS is not set
# CONFIG_EXAMPLES_NETTEST is not set
# CONFIG_EXAMPLES_NSH is not set
# CONFIG_EXAMPLES_NULL is not set
# CONFIG_EXAMPLES_NX is not set
# CONFIG_EXAMPLES_NXCONSOLE is not set
# CONFIG_EXAMPLES_NXFFS is not set
# CONFIG_EXAMPLES_NXFLAT is not set
# CONFIG_EXAMPLES_NXHELLO is not set
# CONFIG_EXAMPLES_NXIMAGE is not set
# CONFIG_EXAMPLES_NXLINES is not set
# CONFIG_EXAMPLES_NXTEXT is not set
# CONFIG_EXAMPLES_OSTEST is not set
# CONFIG_EXAMPLES_PASHELLO is not set
# CONFIG_EXAMPLES_PIPE is not set
# CONFIG_EXAMPLES_POLL is not set
# CONFIG_EXAMPLES_QENCODER is not set
# CONFIG_EXAMPLES_RGMP is not set
# CONFIG_EXAMPLES_ROMFS is not set
# CONFIG_EXAMPLES_SENDMAIL is not set
# CONFIG_EXAMPLES_SERLOOP is not set
# CONFIG_EXAMPLES_TELNETD is not set
# CONFIG_EXAMPLES_THTTPD is not set
# CONFIG_EXAMPLES_TIFF is not set
# CONFIG_EXAMPLES_TOUCHSCREEN is not set
# CONFIG_EXAMPLES_UDP is not set
# CONFIG_EXAMPLES_UIP is not set
# CONFIG_EXAMPLES_USBSERIAL is not set
# CONFIG_EXAMPLES_USBMSC is not set
# CONFIG_EXAMPLES_USBTERM is not set
# CONFIG_EXAMPLES_WATCHDOG is not set
# CONFIG_EXAMPLES_WLAN is not set
#
# Settings for examples/ostest
# Interpreters
#
CONFIG_EXAMPLES_OSTEST_LOOPS=100
CONFIG_EXAMPLES_OSTEST_STACKSIZE=8192
#
# Settings for apps/nshlib
# Interpreters
#
CONFIG_NSH_BUILTIN_APPS=n
# CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_PCODE is not set
#
# Network Utilities
#
#
# Networking Utilities
#
# CONFIG_NETUTILS_CODECS is not set
# CONFIG_NETUTILS_DHCPC is not set
# CONFIG_NETUTILS_DHCPD is not set
# CONFIG_NETUTILS_FTPC is not set
# CONFIG_NETUTILS_FTPD is not set
# CONFIG_NETUTILS_JSON is not set
# CONFIG_NETUTILS_RESOLV is not set
# CONFIG_NETUTILS_SMTP is not set
# CONFIG_NETUTILS_TELNETD is not set
# CONFIG_NETUTILS_TFTPC is not set
# CONFIG_NETUTILS_THTTPD is not set
# CONFIG_NETUTILS_UIPLIB is not set
# CONFIG_NETUTILS_WEBCLIENT is not set
#
# ModBus
#
#
# FreeModbus
#
# CONFIG_MODBUS is not set
#
# NSH Library
#
CONFIG_NSH_LIBRARY=y
#
# Disable Individual commands
#
# CONFIG_NSH_DISABLE_CAT is not set
# CONFIG_NSH_DISABLE_CD is not set
# CONFIG_NSH_DISABLE_CP is not set
# CONFIG_NSH_DISABLE_DD is not set
# CONFIG_NSH_DISABLE_ECHO is not set
# CONFIG_NSH_DISABLE_EXEC is not set
# CONFIG_NSH_DISABLE_EXIT is not set
# CONFIG_NSH_DISABLE_FREE is not set
# CONFIG_NSH_DISABLE_GET is not set
# CONFIG_NSH_DISABLE_HELP is not set
# CONFIG_NSH_DISABLE_HEXDUMP is not set
# CONFIG_NSH_DISABLE_IFCONFIG is not set
# CONFIG_NSH_DISABLE_KILL is not set
# CONFIG_NSH_DISABLE_LOSETUP is not set
# CONFIG_NSH_DISABLE_LS is not set
# CONFIG_NSH_DISABLE_MB is not set
# CONFIG_NSH_DISABLE_MKDIR is not set
# CONFIG_NSH_DISABLE_MKFATFS is not set
# CONFIG_NSH_DISABLE_MKFIFO is not set
# CONFIG_NSH_DISABLE_MKRD is not set
# CONFIG_NSH_DISABLE_MH is not set
# CONFIG_NSH_DISABLE_MOUNT is not set
# CONFIG_NSH_DISABLE_MW is not set
# CONFIG_NSH_DISABLE_NSFMOUNT is not set
# CONFIG_NSH_DISABLE_PS is not set
# CONFIG_NSH_DISABLE_PING is not set
# CONFIG_NSH_DISABLE_PUT is not set
# CONFIG_NSH_DISABLE_PWD is not set
# CONFIG_NSH_DISABLE_RM is not set
# CONFIG_NSH_DISABLE_RMDIR is not set
# CONFIG_NSH_DISABLE_SET is not set
# CONFIG_NSH_DISABLE_SH is not set
# CONFIG_NSH_DISABLE_SLEEP is not set
# CONFIG_NSH_DISABLE_TEST is not set
# CONFIG_NSH_DISABLE_UMOUNT is not set
# CONFIG_NSH_DISABLE_UNSET is not set
# CONFIG_NSH_DISABLE_USLEEP is not set
# CONFIG_NSH_DISABLE_WGET is not set
# CONFIG_NSH_DISABLE_XD is not set
CONFIG_NSH_CODECS_BUFSIZE=128
CONFIG_NSH_FILEIOSIZE=1024
CONFIG_NSH_STRERROR=n
CONFIG_NSH_LINELEN=80
CONFIG_NSH_NESTDEPTH=3
CONFIG_NSH_DISABLESCRIPT=n
CONFIG_NSH_DISABLEBG=n
# CONFIG_NSH_DISABLESCRIPT is not set
# CONFIG_NSH_DISABLEBG is not set
CONFIG_NSH_ROMFSETC=y
CONFIG_NSH_CONSOLE=y
CONFIG_NSH_TELNET=n
CONFIG_NSH_IOBUFFER_SIZE=512
CONFIG_NSH_DHCPC=n
CONFIG_NSH_NOMAC=n
CONFIG_NSH_IPADDR=0x0a000002
CONFIG_NSH_DRIPADDR=0x0a000001
CONFIG_NSH_NETMASK=0xffffff00
CONFIG_NSH_ROMFSMOUNTPT="/etc"
CONFIG_NSH_INITSCRIPT="init.d/rcS"
CONFIG_NSH_ROMFSDEVNO=1
@ -331,81 +534,176 @@ CONFIG_NSH_FATDEVNO=2
CONFIG_NSH_FATSECTSIZE=512
CONFIG_NSH_FATNSECTORS=1024
CONFIG_NSH_FATMOUNTPT="/tmp"
CONFIG_NSH_CONSOLE=y
# CONFIG_NSH_CONDEV is not set
# CONFIG_NSH_ARCHINIT is not set
#
# Settings for examples/nx
# NxWidgets/NxWM
#
CONFIG_EXAMPLES_NX_BUILTIN=n
CONFIG_EXAMPLES_NX_VPLANE=0
#CONFIG_EXAMPLES_NX_BGCOLOR
#CONFIG_EXAMPLES_NX_COLOR1
#CONFIG_EXAMPLES_NX_COLOR2
#CONFIG_EXAMPLES_NX_TBCOLOR
#CONFIG_EXAMPLES_NX_FONTCOLOR
CONFIG_EXAMPLES_NX_BPP=CONFIG_SIM_FBBPP
CONFIG_EXAMPLES_NX_RAWWINDOWS=n
CONFIG_EXAMPLES_NX_STACKSIZE=8192
CONFIG_EXAMPLES_NX_CLIENTPRIO=80
CONFIG_EXAMPLES_NX_SERVERPRIO=120
CONFIG_EXAMPLES_NX_NOTIFYSIGNO=4
CONFIG_NXWIDGETS=y
#
# Settings for examples/nxhello
# NX Server/Device Configuration
#
CONFIG_EXAMPLES_NXHELLO_BUILTIN=y
CONFIG_EXAMPLES_NXHELLO_VPLANE=0
#CONFIG_EXAMPLES_NXHELLO_BGCOLOR
CONFIG_EXAMPLES_NXHELLO_FONTID=6
#CONFIG_EXAMPLES_NXHELLO_FONTCOLOR
CONFIG_EXAMPLES_NXHELLO_BPP=CONFIG_SIM_FBBPP
CONFIG_EXAMPLES_NXHELLO_EXTERNINIT=n
# CONFIG_NXWIDGETS_FLICKERFREE is not set
CONFIG_NXWIDGETS_DEVNO=0
CONFIG_NXWIDGETS_VPLANE=0
CONFIG_NXWIDGETS_SERVERPRIO=51
CONFIG_NXWIDGETS_SERVERSTACK=16384
CONFIG_NXWIDGETS_CLIENTPRIO=50
CONFIG_NXWIDGETS_LISTENERPRIO=50
CONFIG_NXWIDGETS_LISTENERSTACK=8192
# CONFIG_NXWIDGETS_EXTERNINIT is not set
# CONFIG_NXWIDGET_EVENTWAIT is not set
#
# Settings for examples/nxlines
# NXWidget Configuration
#
CONFIG_EXAMPLES_NXLINES_VPLANE=0
#CONFIG_EXAMPLES_NXLINES_BGCOLOR
CONFIG_EXAMPLES_NXLINES_LINEWIDTH=16
#CONFIG_EXAMPLES_NXLINES_LINECOLOR
CONFIG_EXAMPLES_NXLINES_BORDERWIDTH=4
#CONFIG_EXAMPLES_NXLINES_BORDERCOLOR
#CONFIG_EXAMPLES_NXLINES_CIRCLECOLOR
CONFIG_EXAMPLES_NXLINES_BPP=CONFIG_SIM_FBBPP
CONFIG_EXAMPLES_NXLINES_EXTERNINIT=n
CONFIG_NXWIDGETS_BPP=32
CONFIG_NXWIDGETS_SIZEOFCHAR=1
#
# Settings for examples/touchscreen
# NXWidget Default Values
#
CONFIG_EXAMPLES_TOUCHSCREEN_BUILTIN=y
CONFIG_EXAMPLES_TOUCHSCREEN_MINOR=0
CONFIG_EXAMPLES_TOUCHSCREEN_DEVPATH="/dev/input0"
CONFIG_EXAMPLES_TOUCHSCREEN_NSAMPLES=25
# CONFIG_NXWIDGETS_SYSTEM_CUSTOM_FONTID is not set
CONFIG_NXWIDGETS_TNXARRAY_INITIALSIZE=16
CONFIG_NXWIDGETS_TNXARRAY_SIZEINCREMENT=8
# CONFIG_NXWIDGETS_CUSTOM_FILLCOLORS is not set
# CONFIG_NXWIDGETS_CUSTOM_EDGECOLORS is not set
# CONFIG_NXWIDGETS_CUSTOM_TEXTCOLORS is not set
CONFIG_NXWIDGETS_TRANSPARENT_COLOR=0x0
#
# Settings for examples/mount
# Keypad behavior
#
CONFIG_EXAMPLES_MOUNT_DEVNAME="/dev/ram0"
#CONFIG_EXAMPLES_MOUNT_NSECTORS=2048
#CONFIG_EXAMPLES_MOUNT_SECTORSIZE=512
#CONFIG_EXAMPLES_MOUNT_RAMDEVNO=1
CONFIG_NXWIDGETS_FIRST_REPEAT_TIME=500
CONFIG_NXWIDGETS_CONTINUE_REPEAT_TIME=200
CONFIG_NXWIDGETS_DOUBLECLICK_TIME=350
CONFIG_NXWIDGETS_KBDBUFFER_SIZE=16
CONFIG_NXWIDGETS_CURSORCONTROL_SIZE=4
# CONFIG_NXWIDGET_MEMMONITOR is not set
CONFIG_NXWM=y
#
# Stack and heap information
# General settings
#
CONFIG_BOOT_RUNFROMFLASH=n
CONFIG_BOOT_COPYTORAM=n
CONFIG_CUSTOM_STACK=n
CONFIG_IDLETHREAD_STACKSIZE=8192
CONFIG_USERMAIN_STACKSIZE=8192
CONFIG_PTHREAD_STACK_MIN=256
CONFIG_PTHREAD_STACK_DEFAULT=8192
CONFIG_HEAP_BASE=
CONFIG_HEAP_SIZE=
# CONFIG_NXWM_SYSTEM_CUSTOM_FONTID is not set
CONFIG_NXWM_UNITTEST=y
#
# Maintain legacy build behavior (revisit)
# Color configuration
#
# CONFIG_NXWM_CUSTOM_FILLCOLORS is not set
# CONFIG_NXWM_CUSTOM_EDGECOLORS is not set
# CONFIG_NXWM_CUSTOM_TEXTCOLORS is not set
#
# Horizontal and vertical spacing of icons in the task bar
#
CONFIG_NXWM_TASKBAR_VSPACING=2
CONFIG_NXWM_TASKBAR_HSPACING=2
# CONFIG_NXWM_TASKBAR_TOP is not set
# CONFIG_NXWM_TASKBAR_BOTTOM is not set
CONFIG_NXWM_TASKBAR_LEFT=y
# CONFIG_NXWM_TASKBAR_RIGHT is not set
# CONFIG_NXWM_CUSTOM_TASKBAR_WIDTH is not set
# CONFIG_NXWM_DISABLE_MINIMIZE is not set
#
# Tool Bar Configuration
#
# CONFIG_NXWM_CUSTOM_TOOLBAR_HEIGHT is not set
#
# Background Image
#
# CONFIG_NXWM_DISABLE_BACKGROUND_IMAGE is not set
CONFIG_NXWM_BACKGROUND_IMAGE=""
#
# Start Window Configuration
#
CONFIG_MMCSD=y
CONFIG_MMCSD_SPI=y
CONFIG_MMCSD_SDIO=y
#
# Horizontal and vertical spacing of icons in the task bar
#
CONFIG_NXWM_STARTWINDOW_VSPACING=4
CONFIG_NXWM_STARTWINDOW_HSPACING=4
# CONFIG_NXWM_CUSTOM_STARTWINDOW_ICON is not set
CONFIG_NXWM_STARTWINDOW_MQNAME="/dev/nxwm"
CONFIG_NXWM_STARTWINDOW_MXMSGS=32
CONFIG_NXWM_STARTWINDOW_MXMPRIO=42
CONFIG_NXWM_STARTWINDOW_PRIO=50
CONFIG_NXWM_STARTWINDOW_STACKSIZE=2048
#
# NxConsole Window Configuration
#
CONFIG_NXWM_NXCONSOLE_PRIO=50
CONFIG_NXWM_NXCONSOLE_STACKSIZE=8192
# CONFIG_NXWM_NXCONSOLE_CUSTOM_COLORS is not set
# CONFIG_NXWM_NXCONSOLE_CUSTOM_FONTID is not set
# CONFIG_NXWM_CUSTOM_NXCONSOLE_ICON is not set
# CONFIG_NXWM_TOUCHSCREEN is not set
# CONFIG_NXWM_KEYBOARD is not set
#
# Calibration display settings
#
# CONFIG_NXWM_CALIBRATION_CUSTOM_COLORS is not set
# CONFIG_NXWM_CUSTOM_CALIBRATION_ICON is not set
CONFIG_NXWM_CALIBRATION_SIGNO=5
CONFIG_NXWM_CALIBRATION_LISTENERPRIO=50
CONFIG_NXWM_CALIBRATION_LISTENERSTACK=2048
#
# Hex Calculator display settings
#
# CONFIG_NXWM_HEXCALCULATOR_CUSTOM_COLORS is not set
# CONFIG_NXWM_CUSTOM_HEXCALCULATOR_ICON is not set
# CONFIG_NXWM_HEXCALCULATOR_CUSTOM_FONTID is not set
#
# System NSH Add-Ons
#
#
# Custom Free Memory Command
#
# CONFIG_SYSTEM_FREE is not set
#
# I2C tool
#
#
# FLASH Program Installation
#
# CONFIG_SYSTEM_INSTALL is not set
#
# readline()
#
CONFIG_SYSTEM_READLINE=y
CONFIG_READLINE_ECHO=y
#
# Power Off
#
# CONFIG_SYSTEM_POWEROFF is not set
#
# RAMTRON
#
# CONFIG_SYSTEM_RAMTRON is not set
#
# SD Card
#
# CONFIG_SYSTEM_SDCARD is not set
#
# Sysinfo
#
# CONFIG_SYSTEM_SYSINFO is not set

View File

@ -44,6 +44,8 @@
#include <nuttx/compiler.h> /* Compiler settings, noreturn_function */
#include <sys/types.h> /* Needed for general types */
#include <sys/prctl.h> /* Needed by pthread_[set|get]name_np */
#include <stdint.h> /* C99 fixed width integer types */
#include <stdbool.h> /* C99 boolean types */
#include <unistd.h> /* For getpid */
@ -58,10 +60,11 @@
/* Standard POSIX switches */
#ifndef _POSIX_THREADS
#define _POSIX_THREADS
# define _POSIX_THREADS
#endif
#ifndef _POSIX_THREAD_ATTR_STACKSIZE
#define _POSIX_THREAD_ATTR_STACKSIZE
# define _POSIX_THREAD_ATTR_STACKSIZE
#endif
/********************************************************************************
@ -153,10 +156,8 @@
********************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
extern "C" {
#else
#define EXTERN extern
extern "C"
{
#endif
/* pthread-specific types */
@ -245,28 +246,29 @@ struct sched_param; /* Defined in sched.h */
* the individual attributes used by a given implementation.
*/
EXTERN int pthread_attr_init(FAR pthread_attr_t *attr);
int pthread_attr_init(FAR pthread_attr_t *attr);
/* An attributes object can be deleted when it is no longer needed. */
EXTERN int pthread_attr_destroy(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);
/* Set or obtain the default scheduling algorithm */
EXTERN int pthread_attr_setschedpolicy(FAR pthread_attr_t *attr, int policy);
EXTERN int pthread_attr_getschedpolicy(FAR pthread_attr_t *attr, int *policy);
EXTERN int pthread_attr_setschedparam(FAR pthread_attr_t *attr,
FAR const struct sched_param *param);
EXTERN int pthread_attr_getschedparam(FAR pthread_attr_t *attr,
FAR struct sched_param *param);
EXTERN int pthread_attr_setinheritsched(FAR pthread_attr_t *attr, int inheritsched);
EXTERN int pthread_attr_getinheritsched(FAR const pthread_attr_t *attr,
FAR int *inheritsched);
int pthread_attr_setschedpolicy(FAR pthread_attr_t *attr, int policy);
int pthread_attr_getschedpolicy(FAR pthread_attr_t *attr, int *policy);
int pthread_attr_setschedparam(FAR pthread_attr_t *attr,
FAR const struct sched_param *param);
int pthread_attr_getschedparam(FAR pthread_attr_t *attr,
FAR struct sched_param *param);
int pthread_attr_setinheritsched(FAR pthread_attr_t *attr,
int inheritsched);
int pthread_attr_getinheritsched(FAR const pthread_attr_t *attr,
FAR int *inheritsched);
/* Set or obtain the default stack size */
EXTERN int pthread_attr_setstacksize(FAR pthread_attr_t *attr, long stacksize);
EXTERN int pthread_attr_getstacksize(FAR pthread_attr_t *attr, long *stackaddr);
int pthread_attr_setstacksize(FAR pthread_attr_t *attr, long stacksize);
int pthread_attr_getstacksize(FAR pthread_attr_t *attr, long *stackaddr);
/* To create a thread object and runnable thread, a routine must be specified
* as the new thread's start routine. An argument may be passed to this
@ -275,34 +277,33 @@ EXTERN int pthread_attr_getstacksize(FAR pthread_attr_t *attr, long *stackaddr);
* about the kind of thread being created.
*/
EXTERN int pthread_create(FAR pthread_t *thread, FAR pthread_attr_t *attr,
pthread_startroutine_t startroutine,
pthread_addr_t arg);
int pthread_create(FAR pthread_t *thread, FAR pthread_attr_t *attr,
pthread_startroutine_t startroutine, pthread_addr_t arg);
/* A thread object may be "detached" to specify that the return value and
* completion status will not be requested.
*/
EXTERN int pthread_detach(pthread_t thread);
int pthread_detach(pthread_t thread);
/* A thread may terminate it's own execution or the execution of another
* thread.
*/
EXTERN void pthread_exit(pthread_addr_t value) noreturn_function;
EXTERN int pthread_cancel(pthread_t thread);
EXTERN int pthread_setcancelstate(int state, FAR int *oldstate);
EXTERN void pthread_testcancel(void);
void pthread_exit(pthread_addr_t value) noreturn_function;
int pthread_cancel(pthread_t thread);
int pthread_setcancelstate(int state, FAR int *oldstate);
void pthread_testcancel(void);
/* A thread can await termination of another thread and retrieve the return
* value of the thread.
*/
EXTERN int pthread_join(pthread_t thread, FAR pthread_addr_t *value);
int pthread_join(pthread_t thread, FAR pthread_addr_t *value);
/* A thread may tell the scheduler that its processor can be made available. */
EXTERN void pthread_yield(void);
void pthread_yield(void);
/* A thread may obtain a copy of its own thread handle. */
@ -314,91 +315,94 @@ EXTERN void pthread_yield(void);
/* Thread scheduling parameters */
EXTERN int pthread_getschedparam(pthread_t thread, FAR int *policy,
FAR struct sched_param *param);
EXTERN int pthread_setschedparam(pthread_t thread, int policy,
FAR const struct sched_param *param);
EXTERN int pthread_setschedprio(pthread_t thread, int prio);
int pthread_getschedparam(pthread_t thread, FAR int *policy,
FAR struct sched_param *param);
int pthread_setschedparam(pthread_t thread, int policy,
FAR const struct sched_param *param);
int pthread_setschedprio(pthread_t thread, int prio);
/* Thread-specific Data Interfaces */
EXTERN int pthread_key_create(FAR pthread_key_t *key,
CODE 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);
int pthread_key_create(FAR pthread_key_t *key,
CODE void (*destructor)(FAR void*));
int pthread_setspecific(pthread_key_t key, FAR void *value);
FAR void *pthread_getspecific(pthread_key_t key);
int pthread_key_delete(pthread_key_t key);
/* Create, operate on, and destroy mutex attributes. */
EXTERN int pthread_mutexattr_init(FAR pthread_mutexattr_t *attr);
EXTERN int pthread_mutexattr_destroy(FAR pthread_mutexattr_t *attr);
EXTERN int pthread_mutexattr_getpshared(FAR pthread_mutexattr_t *attr, FAR int *pshared);
EXTERN int pthread_mutexattr_setpshared(FAR pthread_mutexattr_t *attr, int pshared);
int pthread_mutexattr_init(FAR pthread_mutexattr_t *attr);
int pthread_mutexattr_destroy(FAR pthread_mutexattr_t *attr);
int pthread_mutexattr_getpshared(FAR pthread_mutexattr_t *attr,
FAR int *pshared);
int pthread_mutexattr_setpshared(FAR pthread_mutexattr_t *attr,
int pshared);
#ifdef CONFIG_MUTEX_TYPES
EXTERN int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type);
EXTERN int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *type);
int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
#endif
/* The following routines create, delete, lock and unlock mutexes. */
EXTERN int pthread_mutex_init(FAR pthread_mutex_t *mutex, FAR pthread_mutexattr_t *attr);
EXTERN int pthread_mutex_destroy(FAR pthread_mutex_t *mutex);
EXTERN int pthread_mutex_lock(FAR pthread_mutex_t *mutex);
EXTERN int pthread_mutex_trylock(FAR pthread_mutex_t *mutex);
EXTERN int pthread_mutex_unlock(FAR pthread_mutex_t *mutex);
int pthread_mutex_init(FAR pthread_mutex_t *mutex,
FAR pthread_mutexattr_t *attr);
int pthread_mutex_destroy(FAR pthread_mutex_t *mutex);
int pthread_mutex_lock(FAR pthread_mutex_t *mutex);
int pthread_mutex_trylock(FAR pthread_mutex_t *mutex);
int pthread_mutex_unlock(FAR pthread_mutex_t *mutex);
/* Operations on condition variables */
EXTERN int pthread_condattr_init(FAR pthread_condattr_t *attr);
EXTERN int pthread_condattr_destroy(FAR pthread_condattr_t *attr);
int pthread_condattr_init(FAR pthread_condattr_t *attr);
int pthread_condattr_destroy(FAR pthread_condattr_t *attr);
/* A thread can create and delete condition variables. */
EXTERN int pthread_cond_init(FAR pthread_cond_t *cond, FAR pthread_condattr_t *attr);
EXTERN int pthread_cond_destroy(FAR pthread_cond_t *cond);
int pthread_cond_init(FAR pthread_cond_t *cond, FAR pthread_condattr_t *attr);
int pthread_cond_destroy(FAR pthread_cond_t *cond);
/* A thread can signal to and broadcast on a condition variable. */
EXTERN int pthread_cond_broadcast(FAR pthread_cond_t *cond);
EXTERN int pthread_cond_signal(FAR pthread_cond_t *cond);
int pthread_cond_broadcast(FAR pthread_cond_t *cond);
int pthread_cond_signal(FAR pthread_cond_t *cond);
/* A thread can wait for a condition variable to be signalled or broadcast. */
EXTERN int pthread_cond_wait(FAR pthread_cond_t *cond, FAR pthread_mutex_t *mutex);
int pthread_cond_wait(FAR pthread_cond_t *cond, FAR pthread_mutex_t *mutex);
/* A thread can perform a timed wait on a condition variable. */
EXTERN int pthread_cond_timedwait(FAR pthread_cond_t *cond, FAR pthread_mutex_t *mutex,
FAR const struct timespec *abstime);
int pthread_cond_timedwait(FAR pthread_cond_t *cond,
FAR pthread_mutex_t *mutex,
FAR const struct timespec *abstime);
/* Barrier attributes */
EXTERN int pthread_barrierattr_destroy(FAR pthread_barrierattr_t *attr);
EXTERN int pthread_barrierattr_init(FAR pthread_barrierattr_t *attr);
EXTERN int pthread_barrierattr_getpshared(FAR const pthread_barrierattr_t *attr,
FAR int *pshared);
EXTERN int pthread_barrierattr_setpshared(FAR pthread_barrierattr_t *attr,
int pshared);
int pthread_barrierattr_destroy(FAR pthread_barrierattr_t *attr);
int pthread_barrierattr_init(FAR pthread_barrierattr_t *attr);
int pthread_barrierattr_getpshared(FAR const pthread_barrierattr_t *attr,
FAR int *pshared);
int pthread_barrierattr_setpshared(FAR pthread_barrierattr_t *attr,
int pshared);
/* Barriers */
EXTERN int pthread_barrier_destroy(FAR pthread_barrier_t *barrier);
EXTERN int pthread_barrier_init(FAR pthread_barrier_t *barrier,
int pthread_barrier_destroy(FAR pthread_barrier_t *barrier);
int pthread_barrier_init(FAR pthread_barrier_t *barrier,
FAR const pthread_barrierattr_t *attr,
unsigned int count);
EXTERN int pthread_barrier_wait(FAR pthread_barrier_t *barrier);
int pthread_barrier_wait(FAR pthread_barrier_t *barrier);
/* Pthread initialization */
EXTERN int pthread_once(FAR pthread_once_t *once_control,
int pthread_once(FAR pthread_once_t *once_control,
CODE void (*init_routine)(void));
/* Pthread signal management APIs */
EXTERN int pthread_kill(pthread_t thread, int sig);
EXTERN int pthread_sigmask(int how, FAR const sigset_t *set, FAR sigset_t *oset);
int pthread_kill(pthread_t thread, int sig);
int pthread_sigmask(int how, FAR const sigset_t *set, FAR sigset_t *oset);
#undef EXTERN
#ifdef __cplusplus
}
#endif