diff --git a/ChangeLog b/ChangeLog
index 0c60c4227ce..d2717377b95 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -9309,7 +9309,7 @@
adds support for initializing of the ltdc controller and the lcd
device connected on the stm32f429i-disco. The following methods are
provided for the generic fb interface: up_fbinitialize,
- up_fbgetvplane, and fb_uninitialize. The following methods are
+ up_fbgetvplane, and up_fbuninitialize. The following methods are
provided for the ltdc interface: up_ltdcgetlayer. From Marco Krahl
(2014-12-19).
* zrch/arm/src/stm32/Kconfig: Add configuration option for ltdc. This
@@ -11622,3 +11622,36 @@
POSIX programming but the name signal() probably has the better
credentials. sigset() is now relegated to a #define in signal.h that
makes it equivalent to signal() (2016-04-10).
+ * configs/nucleus2g: Removed the Nucleus2G configuration. There has
+ not been any activity with the commercial board in a few years and it
+ no longer appears to be available from the 2g-eng.com website.
+ Since the board is commercial and no longer publically available, it
+ no longer qualifies for inclusion in the open source repositories.
+ The code as of this data is still available in the Obsoleted
+ repository at configs/nucleus2g (2016-04-12).
+ * arch/arm/src/stm32l4: Fix the STM32L4 SPI driver. That SPI driver is
+ quite different. They now handle frames of arbitrary size between 4
+ and 16 bits. It was broken before a new bit has to be set (rx fifo
+ threshold) to handle <= 8-bit transactions. If not set, the default is
+ 16-bit packed >=8-bit frames and the RXNE bit is never set (it is set
+ when 16-bits are received). weird things as always.
+ This also add 8-bit access routines to the data register, because a
+ 16-bit access to the data register when the frame size is below 9 bits
+ is interpreted as a packed dual frame exchange. Sebastien Lorquet
+ (2016-04-13).
+ * net/sockets/listen.c and accept.c and include/nuttx/net: Separate
+ out psock_listen() and psock_accepti() for internal OS usage
+ (2016-04-14).
+ * fs/inode/, fs/vfs/, and sched/task/: File and socket descriptors are
+ no longer allocated for kernel threads. They must use SYSLOG for
+ output and the low-level psock interfaces for network I/O. This
+ saves a little memory which might be important for small footprint
+ configurations (2015-04-14).
+ * Framebuffer driver: Add a display number to each interface in order
+ to support multiple display devices (2015-04-14).
+ * drivers/wireless/nrf24l01.c: Fix backward calculation of relative
+ frequency. Noted by Henry Zhang (2015-04-15).
+ * drivers/sensors/h1750fvi.c: Add a character driver for Rohm Ambient
+ Light Sensor BH1750FVI. From Alan Carvalho de Assi (2016-04-15).
+ * configs/stm32f4discovery: Integrate BH1750FVI driver in the
+ STM32F4Discovery board. From Alan Carvalho de Assi (2016-04-15).
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 4746a9e2947..03b8fc720a0 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -8,7 +8,7 @@
NuttX RTOS
- Last Updated: March 27, 2016
+ Last Updated: April 12, 2016
|
@@ -3288,7 +3288,7 @@ nsh>
The first functional release for the NXP LPC1768/Nucleus2G occured with NuttX 5.7 with
Some additional enhancements through NuttX-5.9.
- Refer to the NuttX board README file for further information.
+ Refer to the NuttX board README file for further information.
@@ -3302,6 +3302,12 @@ nsh>
However, due to some technical reasons, neither the SPI nor the USB device drivers are fully verified.
(Although they have since been verified on other platforms; this needs to be revisited on the Nucleus2G).
+ Obsoleted.
+ Support for the Nucleus2G board was terminated on 2016-04-12.
+ There has not been any activity with the commercial board in a few years and it no longer appears to be available from the 2g-eng.com website.
+ Since the board is commercial and no longer publically available, it no longer qualifies for inclusion in the open source repositories.
+ A snapshot of the code is still available in the Obsoleted repository and can easily be reconstitued if needed.
+
mbed LPC1768
diff --git a/Documentation/NuttxPortingGuide.html b/Documentation/NuttxPortingGuide.html
index 605999fc6cd..d935ad37a15 100644
--- a/Documentation/NuttxPortingGuide.html
+++ b/Documentation/NuttxPortingGuide.html
@@ -5483,8 +5483,7 @@ int kbd_decode(FAR struct lib_instream_s *stream, FAR struct kbd_getstate_s *sta
Examples:
- The function nsh_waiter() in the file configs/nucleus2g/src/lpc17_appinit.c and
- the function nsh_waiter() in the file configs/olimex-lpc1766stk/src/lpc17_appinit.c.
+ The function nsh_waiter() in the file configs/olimex-lpc1766stk/src/lpc17_appinit.c.
diff --git a/Documentation/README.html b/Documentation/README.html
index dc264b0afcc..ed18b435931 100644
--- a/Documentation/README.html
+++ b/Documentation/README.html
@@ -8,7 +8,7 @@
NuttX README Files
- Last Updated: April 8, 2016
+ Last Updated: April 12, 2016
|
@@ -159,8 +159,6 @@ nuttx/
| | `- README.txt
| |- nucleo-f4x1re/
| | `- README.txt
- | |- nucleus2g/
- | | `- README.txt
| |- nutiny-nuc120/
| | `- README.txt
| |- olimex-efm32g880f129-stk/
diff --git a/README.txt b/README.txt
index 941aa03685f..570cf1478db 100644
--- a/README.txt
+++ b/README.txt
@@ -1319,8 +1319,6 @@ nuttx/
| | `- README.txt
| |- nucleo-f4x1re/
| | `- README.txt
- | |- nucleus2g/
- | | `- README.txt
| |- nutiny-nuc120/
| | `- README.txt
| |- olimex-efm32g880f129-stk/
diff --git a/arch/arm/src/dm320/dm320_framebuffer.c b/arch/arm/src/dm320/dm320_framebuffer.c
index 6a7f44e819a..057a4a9d6b7 100644
--- a/arch/arm/src/dm320/dm320_framebuffer.c
+++ b/arch/arm/src/dm320/dm320_framebuffer.c
@@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/dm320/dm320_framebuffer.c
*
- * Copyright (C) 2008-2009, 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2008-2009, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -1361,11 +1361,19 @@ static int dm320_setcursor(FAR struct fb_vtable_s *vtable, FAR struct fb_setcurs
* Name: up_fbinitialize
*
* Description:
- * Initialize the video hardware
+ * Initialize the framebuffer video hardware associated with the display.
+ *
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
*
****************************************************************************/
-int up_fbinitialize(void)
+int up_fbinitialize(int display)
{
int ret;
@@ -1388,17 +1396,21 @@ int up_fbinitialize(void)
* Name: up_fbgetvplane
*
* Description:
- * Return a a reference to the framebuffer object for the specified video plane.
+ * Return a a reference to the framebuffer object for the specified video
+ * plane of the specified plane. Many OSDs support multiple planes of video.
*
* Input parameters:
- * None
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
*
- * Returned value:
- * Reference to the framebuffer object (NULL on failure)
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
*
****************************************************************************/
-FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
switch (vplane)
{
diff --git a/arch/arm/src/kinetis/kinetis_sdhc.c b/arch/arm/src/kinetis/kinetis_sdhc.c
index 5af56d50df8..7841cc1ad59 100644
--- a/arch/arm/src/kinetis/kinetis_sdhc.c
+++ b/arch/arm/src/kinetis/kinetis_sdhc.c
@@ -77,8 +77,8 @@
# warning "Large Non-DMA transfer may result in RX overrun failures"
#endif
-#ifndef CONFIG_SCHED_WORKQUEUE
-# error "Callback support requires CONFIG_SCHED_WORKQUEUE"
+#if !defined(CONFIG_SCHED_WORKQUEUE) || !defined(CONFIG_SCHED_HPWORK)
+# error "Callback support requires CONFIG_SCHED_WORKQUEUE and CONFIG_SCHED_HPWORK"
#endif
#ifndef CONFIG_KINETIS_SDHC_PRIO
@@ -86,7 +86,7 @@
#endif
#ifndef CONFIG_KINETIS_SDHC_DMAPRIO
-# define CONFIG_KINETIS_SDHC_DMAPRIO DMA_CCR_PRIMED
+# define CONFIG_KINETIS_SDHC_DMAPRIO DMA_CCR_PRIMED
#endif
#if !defined(CONFIG_DEBUG_FS) || !defined(CONFIG_DEBUG_VERBOSE)
diff --git a/arch/arm/src/lpc17xx/lpc17_lcd.c b/arch/arm/src/lpc17xx/lpc17_lcd.c
index 03f3e4e6b5a..f2b892ee4c5 100644
--- a/arch/arm/src/lpc17xx/lpc17_lcd.c
+++ b/arch/arm/src/lpc17xx/lpc17_lcd.c
@@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src//lpc17xx/lpc17_lcd.c
*
- * Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -455,11 +455,19 @@ static int lpc17_setcursor(FAR struct fb_vtable_s *vtable,
* Name: up_fbinitialize
*
* Description:
- * Initialize the framebuffer video hardware
+ * Initialize the framebuffer video hardware associated with the display.
+ *
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
*
****************************************************************************/
-int up_fbinitialize(void)
+int up_fbinitialize(int display)
{
uint32_t regval;
int i;
@@ -699,21 +707,24 @@ int up_fbinitialize(void)
}
/****************************************************************************
- * Name: lpc17_fbgetvplane
+ * Name: up_fbgetvplane
*
* Description:
* Return a a reference to the framebuffer object for the specified video
- * plane.
+ * plane of the specified plane. Many OSDs support multiple planes of video.
*
* Input parameters:
- * None
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
*
- * Returned value:
- * Reference to the framebuffer object (NULL on failure)
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
*
****************************************************************************/
-FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
gvdbg("vplane: %d\n", vplane);
if (vplane == 0)
@@ -727,14 +738,21 @@ FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
}
/****************************************************************************
- * Name: fb_uninitialize
+ * Name: up_fbuninitialize
*
* Description:
- * Unitialize the framebuffer support
+ * Uninitialize the framebuffer support for the specified display.
+ *
+ * Input Parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * None
*
****************************************************************************/
-void fb_uninitialize(void)
+void up_fbuninitialize(int display)
{
uint32_t regval;
int i;
diff --git a/arch/arm/src/sama5/sam_lcd.c b/arch/arm/src/sama5/sam_lcd.c
index c41d880d546..f696e71a69b 100644
--- a/arch/arm/src/sama5/sam_lcd.c
+++ b/arch/arm/src/sama5/sam_lcd.c
@@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/sama5/sam_lcd.c
*
- * Copyright (C) 2013-2014 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2013-2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* References:
@@ -2893,14 +2893,22 @@ static void sam_show_hcr(void)
****************************************************************************/
/****************************************************************************
- * Name: sam_fbinitialize
+ * Name: up_fbinitialize
*
* Description:
- * Initialize the framebuffer video hardware
+ * Initialize the framebuffer video hardware associated with the display.
+ *
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
*
****************************************************************************/
-int up_fbinitialize(void)
+int up_fbinitialize(int display)
{
#if defined(CONFIG_SAMA5_LCDC_OVR1) && defined(CONFIG_SAMA5_LCDC_HEO)
uint32_t regval;
@@ -2984,21 +2992,24 @@ int up_fbinitialize(void)
}
/****************************************************************************
- * Name: sam_fbgetvplane
+ * Name: up_fbgetvplane
*
* Description:
* Return a a reference to the framebuffer object for the specified video
- * plane.
+ * plane of the specified plane. Many OSDs support multiple planes of video.
*
* Input parameters:
- * None
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
*
- * Returned value:
- * Reference to the framebuffer object (NULL on failure)
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
*
****************************************************************************/
-struct fb_vtable_s *up_fbgetvplane(int vplane)
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
gvdbg("vplane: %d\n", vplane);
if (vplane == 0)
@@ -3012,15 +3023,21 @@ struct fb_vtable_s *up_fbgetvplane(int vplane)
}
/****************************************************************************
- * Name: fb_uninitialize
+ * Name: up_fbuninitialize
*
* Description:
- * Uninitialize the framebuffer driver. Bad things will happen if you
- * call this without first calling fb_initialize()!
+ * Uninitialize the framebuffer support for the specified display.
+ *
+ * Input Parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * None
*
****************************************************************************/
-void fb_uninitialize(void)
+void up_fbuninitialize(int display)
{
/* Disable the LCD controller */
diff --git a/arch/arm/src/stm32/stm32_ltdc.c b/arch/arm/src/stm32/stm32_ltdc.c
index 2da314a7928..72bfb532018 100644
--- a/arch/arm/src/stm32/stm32_ltdc.c
+++ b/arch/arm/src/stm32/stm32_ltdc.c
@@ -3533,7 +3533,7 @@ struct fb_vtable_s *stm32_ltdcgetvplane(int vplane)
}
/****************************************************************************
- * Name: fb_uninitialize
+ * Name: stm32_ltdcuninitialize
*
* Description:
* Uninitialize the framebuffer driver. Bad things will happen if you
diff --git a/arch/arm/src/stm32l4/stm32l4_spi.c b/arch/arm/src/stm32l4/stm32l4_spi.c
index 86c7ddbc54a..b6907d5955b 100644
--- a/arch/arm/src/stm32l4/stm32l4_spi.c
+++ b/arch/arm/src/stm32l4/stm32l4_spi.c
@@ -55,8 +55,7 @@
*
****************************************************c********************************/
-/*
- * This driver is ported from the stm32 one, which only supports 8 and 16 bits
+/* This driver is ported from the stm32 one, which only supports 8 and 16 bits
* transfers. The STM32L4 family supports frame size from 4 to 16 bits, but we do not
* support that yet. For the moment, we replace uses of the CR1_DFF bit with a check
* of the CR2_DS[0..3] bits. If the value is SPI_CR2_DS_16BIT it means 16 bits, else 8 bits.
@@ -90,11 +89,13 @@
#include "stm32l4_dma.h"
#include "stm32l4_spi.h"
-#if defined(CONFIG_STM32L4_SPI1) || defined(CONFIG_STM32L4_SPI2) || defined(CONFIG_STM32L4_SPI3)
+#if defined(CONFIG_STM32L4_SPI1) || defined(CONFIG_STM32L4_SPI2) || \
+ defined(CONFIG_STM32L4_SPI3)
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
+
/* Configuration ********************************************************************/
/* SPI interrupts */
@@ -414,22 +415,62 @@ static inline uint16_t spi_getreg(FAR struct stm32l4_spidev_s *priv, uint8_t off
*
************************************************************************************/
-static inline void spi_putreg(FAR struct stm32l4_spidev_s *priv, uint8_t offset, uint16_t value)
+static inline void spi_putreg(FAR struct stm32l4_spidev_s *priv, uint8_t offset,
+ uint16_t value)
{
putreg16(value, priv->spibase + offset);
}
+/************************************************************************************
+ * Name: spi_getreg8
+ *
+ * Description:
+ * Get the contents of the SPI register at offset
+ *
+ * Input Parameters:
+ * priv - private SPI device structure
+ * offset - offset to the register of interest
+ *
+ * Returned Value:
+ * The contents of the 8-bit register
+ *
+ ************************************************************************************/
+
+static inline uint8_t spi_getreg8(FAR struct stm32l4_spidev_s *priv, uint8_t offset)
+{
+ return getreg8(priv->spibase + offset);
+}
+
+/************************************************************************************
+ * Name: spi_putreg8
+ *
+ * Description:
+ * Write a 8-bit value to the SPI register at offset
+ *
+ * Input Parameters:
+ * priv - private SPI device structure
+ * offset - offset to the register of interest
+ * value - the 8-bit value to be written
+ *
+ ************************************************************************************/
+
+static inline void spi_putreg8(FAR struct stm32l4_spidev_s *priv, uint8_t offset,
+ uint8_t value)
+{
+ putreg8(value, priv->spibase + offset);
+}
+
/************************************************************************************
* Name: spi_readword
*
* Description:
- * Read one byte from SPI
+ * Read one word (TWO bytes!) from SPI
*
* Input Parameters:
* priv - Device-specific state data
*
* Returned Value:
- * Byte as read
+ * Word as read
*
************************************************************************************/
@@ -445,14 +486,39 @@ static inline uint16_t spi_readword(FAR struct stm32l4_spidev_s *priv)
}
/************************************************************************************
- * Name: spi_writeword
+ * Name: spi_readbyte
*
* Description:
- * Write one byte to SPI
+ * Read one byte from SPI
*
* Input Parameters:
* priv - Device-specific state data
- * byte - Byte to send
+ *
+ * Returned Value:
+ * Byte as read
+ *
+ ************************************************************************************/
+
+static inline uint8_t spi_readbyte(FAR struct stm32l4_spidev_s *priv)
+{
+ /* Wait until the receive buffer is not empty */
+
+ while ((spi_getreg(priv, STM32L4_SPI_SR_OFFSET) & SPI_SR_RXNE) == 0);
+
+ /* Then return the received byte */
+
+ return spi_getreg8(priv, STM32L4_SPI_DR_OFFSET);
+}
+
+/************************************************************************************
+ * Name: spi_writeword
+ *
+ * Description:
+ * Write one 16-bit frame to the SPI FIFO
+ *
+ * Input Parameters:
+ * priv - Device-specific state data
+ * byte - Word to send
*
* Returned Value:
* None
@@ -470,6 +536,32 @@ static inline void spi_writeword(FAR struct stm32l4_spidev_s *priv, uint16_t wor
spi_putreg(priv, STM32L4_SPI_DR_OFFSET, word);
}
+/************************************************************************************
+ * Name: spi_writebyte
+ *
+ * Description:
+ * Write one 8-bit frame to the SPI FIFO
+ *
+ * Input Parameters:
+ * priv - Device-specific state data
+ * byte - Byte to send
+ *
+ * Returned Value:
+ * None
+ *
+ ************************************************************************************/
+
+static inline void spi_writebyte(FAR struct stm32l4_spidev_s *priv, uint8_t byte)
+{
+ /* Wait until the transmit buffer is empty */
+
+ while ((spi_getreg(priv, STM32L4_SPI_SR_OFFSET) & SPI_SR_TXE) == 0);
+
+ /* Then send the byte */
+
+ spi_putreg8(priv, STM32L4_SPI_DR_OFFSET, byte);
+}
+
/************************************************************************************
* Name: spi_16bitmode
*
@@ -486,7 +578,22 @@ static inline void spi_writeword(FAR struct stm32l4_spidev_s *priv, uint16_t wor
static inline bool spi_16bitmode(FAR struct stm32l4_spidev_s *priv)
{
- return ((spi_getreg(priv, STM32L4_SPI_CR2_OFFSET) & SPI_CR2_DS_MASK) == SPI_CR2_DS_16BIT);
+ uint8_t bits = priv->nbits;
+
+ /* Get the real number of bits */
+
+ if (bits < 0)
+ {
+ bits = -bits;
+ }
+
+ return (bits > 8);
+
+ /* Should we read the hardware regs? seems to be equivalent ~~ sebastien lorquet
+ * (20160413)
+ */
+
+// return ((spi_getreg(priv, STM32L4_SPI_CR2_OFFSET) & SPI_CR2_DS_MASK) == SPI_CR2_DS_16BIT);
}
/************************************************************************************
@@ -761,11 +868,12 @@ static inline void spi_dmatxstart(FAR struct stm32l4_spidev_s *priv)
static void spi_modifycr(uint32_t addr, FAR struct stm32l4_spidev_s *priv, uint16_t setbits, uint16_t clrbits)
{
- uint16_t cr1;
- cr1 = spi_getreg(priv, addr);
- cr1 &= ~clrbits;
- cr1 |= setbits;
- spi_putreg(priv, addr, cr1);
+ uint16_t cr;
+
+ cr = spi_getreg(priv, addr);
+ cr &= ~clrbits;
+ cr |= setbits;
+ spi_putreg(priv, addr, cr);
}
/************************************************************************************
@@ -1007,6 +1115,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits)
FAR struct stm32l4_spidev_s *priv = (FAR struct stm32l4_spidev_s *)dev;
uint16_t setbits1, setbits2;
uint16_t clrbits1, clrbits2;
+ int savbits = nbits;
spivdbg("nbits=%d\n", nbits);
@@ -1014,11 +1123,10 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits)
if (nbits != priv->nbits)
{
-
/* Yes... Set CR1/2 appropriately */
+ /* Negative sign means LSBFIRST, set this in CR1*/
- /* negative sign means LSBFIRST, set this in CR1*/
- if(nbits<0)
+ if (nbits < 0)
{
setbits1 = SPI_CR1_LSBFIRST;
clrbits1 = 0;
@@ -1030,8 +1138,9 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits)
clrbits1 = SPI_CR1_LSBFIRST;
}
- /* set the number of bits (valid range 4-16) */
- if(nbits<4 || nbits>16)
+ /* Set the number of bits (valid range 4-16) */
+
+ if (nbits < 4 || nbits > 16)
{
return;
}
@@ -1039,6 +1148,19 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits)
clrbits2 = SPI_CR2_DS_MASK;
setbits2 = SPI_CR2_DS_VAL(nbits);
+ /* If nbits is <=8, then we are in byte mode and FRXTH shall be set
+ * (else, transaction will not complete).
+ */
+
+ if (nbits < 9)
+ {
+ setbits2 |= SPI_CR2_FRXTH; /* RX FIFO Threshold = 1 byte */
+ }
+ else
+ {
+ clrbits2 |= SPI_CR2_FRXTH; /* RX FIFO Threshold = 2 bytes */
+ }
+
spi_modifycr(STM32L4_SPI_CR1_OFFSET, priv, 0, SPI_CR1_SPE);
spi_modifycr(STM32L4_SPI_CR1_OFFSET, priv, setbits1, clrbits1);
spi_modifycr(STM32L4_SPI_CR2_OFFSET, priv, setbits2, clrbits2);
@@ -1046,7 +1168,7 @@ static void spi_setbits(FAR struct spi_dev_s *dev, int nbits)
/* Save the selection so the subsequence re-configurations will be faster */
- priv->nbits = nbits;
+ priv->nbits = savbits; // nbits has been clobbered... save the signed value.
}
}
@@ -1074,16 +1196,38 @@ static uint16_t spi_send(FAR struct spi_dev_s *dev, uint16_t wd)
DEBUGASSERT(priv && priv->spibase);
- spi_writeword(priv, wd);
- ret = spi_readword(priv);
+ /* According to the number of bits, access data register as word or byte
+ * This is absolutely required because of packing. With <=8 bit frames,
+ * two bytes are received by a 16-bit read of the data register!
+ */
- /* Check and clear any error flags (Reading from the SR clears the error flags) */
+ if (spi_16bitmode(priv))
+ {
+ spi_writeword(priv, wd);
+ ret = spi_readword(priv);
+ }
+ else
+ {
+ spi_writebyte(priv, (uint8_t)(wd & 0xFF));
+ ret = (uint16_t)spi_readbyte(priv);
+ }
+
+ /* Check and clear any error flags (Reading from the SR clears the error
+ * flags).
+ */
regval = spi_getreg(priv, STM32L4_SPI_SR_OFFSET);
- spivdbg("Sent: %04x Return: %04x Status: %02x\n", wd, ret, regval);
- UNUSED(regval);
+ if (spi_16bitmode(priv))
+ {
+ spivdbg("Sent: %04x Return: %04x Status: %02x\n", wd, ret, regval);
+ }
+ else
+ {
+ spivdbg("Sent: %02x Return: %02x Status: %02x\n", wd, ret, regval);
+ }
+ UNUSED(regval);
return ret;
}
@@ -1341,7 +1485,7 @@ static void spi_bus_initialize(FAR struct stm32l4_spidev_s *priv)
spi_modifycr(STM32L4_SPI_CR1_OFFSET, priv, setbits, clrbits);
clrbits = SPI_CR2_DS_MASK;
- setbits = SPI_CR2_DS_8BIT;
+ setbits = SPI_CR2_DS_8BIT | SPI_CR2_FRXTH; /* FRXTH must be high in 8-bit mode */
spi_modifycr(STM32L4_SPI_CR2_OFFSET, priv, setbits, clrbits);
priv->frequency = 0;
diff --git a/arch/sim/src/up_framebuffer.c b/arch/sim/src/up_framebuffer.c
index 15a8168e6d8..406f49ab22e 100644
--- a/arch/sim/src/up_framebuffer.c
+++ b/arch/sim/src/up_framebuffer.c
@@ -344,11 +344,19 @@ static int up_setcursor(FAR struct fb_vtable_s *vtable,
* Name: up_fbinitialize
*
* Description:
- * Initialize the video hardware
+ * Initialize the framebuffer video hardware associated with the display.
+ *
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
*
****************************************************************************/
-int up_fbinitialize(void)
+int up_fbinitialize(int display)
{
#ifdef CONFIG_SIM_X11FB
return up_x11initialize(CONFIG_SIM_FBWIDTH, CONFIG_SIM_FBHEIGHT,
@@ -363,17 +371,21 @@ int up_fbinitialize(void)
* Name: up_fbgetvplane
*
* Description:
- * Return a a reference to the framebuffer object for the specified video plane.
+ * Return a a reference to the framebuffer object for the specified video
+ * plane of the specified plane. Many OSDs support multiple planes of video.
*
* Input parameters:
- * None
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
*
- * Returned value:
- * Reference to the framebuffer object (NULL on failure)
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
*
****************************************************************************/
-FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
if (vplane == 0)
{
@@ -386,10 +398,21 @@ FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
}
/****************************************************************************
- * Name: up_fbteardown
+ * Name: up_fbuninitialize
+ *
+ * Description:
+ * Uninitialize the framebuffer support for the specified display.
+ *
+ * Input Parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * None
+ *
****************************************************************************/
-void fb_uninitialize(void)
+void up_fbuninitialize(int display)
{
}
diff --git a/configs/Kconfig b/configs/Kconfig
index f69f0055ea9..7b9618bfda6 100644
--- a/configs/Kconfig
+++ b/configs/Kconfig
@@ -414,15 +414,6 @@ config ARCH_BOARD_NTOSD_DM320
STATUS: This port is code complete, verified, and included in the
NuttX 0.2.1 release.
-config ARCH_BOARD_NUCLEUS2G
- bool "Nucleus 2G board"
- depends on ARCH_CHIP_LPC1768
- select ARCH_HAVE_LEDS
- ---help---
- This port uses the Nucleus 2G board (with Babel CAN board). This board
- features an NXP LPC1768 processor. See the 2G website (http://www.2g-eng.com/)
- for more information about the Nucleus 2G.
-
config ARCH_BOARD_LPC1766STK
bool "Olimex LPC1766-STK board"
depends on ARCH_CHIP_LPC1766
@@ -1354,7 +1345,6 @@ config ARCH_BOARD
default "mx1ads" if ARCH_BOARD_MX1ADS
default "ne64badge" if ARCH_BOARD_NE64BADGE
default "ntosd-dm320" if ARCH_BOARD_NTOSD_DM320
- default "nucleus2g" if ARCH_BOARD_NUCLEUS2G
default "nutiny-nuc120" if ARCH_BOARD_NUTINY_NUC120
default "olimex-efm32g880f128-stk" if ARCH_BOARD_OLIMEX_EFM32G880F128_STK
default "olimex-lpc1766stk" if ARCH_BOARD_LPC1766STK
@@ -1626,9 +1616,6 @@ endif
if ARCH_BOARD_NTOSD_DM320
source "configs/ntosd-dm320/Kconfig"
endif
-if ARCH_BOARD_NUCLEUS2G
-source "configs/nucleus2g/Kconfig"
-endif
if ARCH_BOARD_NUTINY_NUC120
source "configs/nutiny-nuc120/Kconfig"
endif
diff --git a/configs/README.txt b/configs/README.txt
index ebd2a78bb5e..4df80fa8147 100644
--- a/configs/README.txt
+++ b/configs/README.txt
@@ -401,11 +401,6 @@ configs/nucleo-f4x1re
configs/nucleo-f303re
STMicro ST Nucleo F303RE board. Contributed by Paul Alexander Patience.
-configs/nucleus2g
- This port uses the Nucleus 2G board (with Babel CAN board). This board
- features an NXP LPC1768 processor. See the 2G website (http://www.2g-eng.com/)
- for more information about the Nucleus 2G.
-
configs/nutiny-nuc120
This is the port of NuttX to the NuvoTon NuTiny-SDK-NUC120 board. This
board has the NUC120LE3AN chip with a built-in NuLink debugger.
diff --git a/configs/lpcxpresso-lpc1768/dhcpd/defconfig b/configs/lpcxpresso-lpc1768/dhcpd/defconfig
index caca3ccbb3b..c7504dbae6c 100644
--- a/configs/lpcxpresso-lpc1768/dhcpd/defconfig
+++ b/configs/lpcxpresso-lpc1768/dhcpd/defconfig
@@ -272,7 +272,6 @@ CONFIG_RAM_SIZE=32768
#
CONFIG_ARCH_BOARD_LPCXPRESSO=y
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="lpcxpresso-lpc1768"
diff --git a/configs/lpcxpresso-lpc1768/nsh/defconfig b/configs/lpcxpresso-lpc1768/nsh/defconfig
index d15a6338cf6..2726b4626c4 100644
--- a/configs/lpcxpresso-lpc1768/nsh/defconfig
+++ b/configs/lpcxpresso-lpc1768/nsh/defconfig
@@ -276,7 +276,6 @@ CONFIG_RAM_SIZE=32768
#
CONFIG_ARCH_BOARD_LPCXPRESSO=y
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="lpcxpresso-lpc1768"
diff --git a/configs/lpcxpresso-lpc1768/nx/defconfig b/configs/lpcxpresso-lpc1768/nx/defconfig
index 874b60fcea3..bc3568b5aee 100644
--- a/configs/lpcxpresso-lpc1768/nx/defconfig
+++ b/configs/lpcxpresso-lpc1768/nx/defconfig
@@ -261,7 +261,6 @@ CONFIG_RAM_SIZE=32768
#
CONFIG_ARCH_BOARD_LPCXPRESSO=y
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="lpcxpresso-lpc1768"
diff --git a/configs/lpcxpresso-lpc1768/thttpd/defconfig b/configs/lpcxpresso-lpc1768/thttpd/defconfig
index d0a079e11e4..5fc4662adc7 100644
--- a/configs/lpcxpresso-lpc1768/thttpd/defconfig
+++ b/configs/lpcxpresso-lpc1768/thttpd/defconfig
@@ -272,7 +272,6 @@ CONFIG_RAM_SIZE=32768
#
CONFIG_ARCH_BOARD_LPCXPRESSO=y
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="lpcxpresso-lpc1768"
diff --git a/configs/lpcxpresso-lpc1768/usbmsc/defconfig b/configs/lpcxpresso-lpc1768/usbmsc/defconfig
index a9d5cae6197..8d68fff8ce0 100644
--- a/configs/lpcxpresso-lpc1768/usbmsc/defconfig
+++ b/configs/lpcxpresso-lpc1768/usbmsc/defconfig
@@ -272,7 +272,6 @@ CONFIG_RAM_SIZE=32768
#
CONFIG_ARCH_BOARD_LPCXPRESSO=y
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="lpcxpresso-lpc1768"
diff --git a/configs/mbed/hidkbd/defconfig b/configs/mbed/hidkbd/defconfig
index b90bb8ae9a2..87f20d30da4 100644
--- a/configs/mbed/hidkbd/defconfig
+++ b/configs/mbed/hidkbd/defconfig
@@ -249,7 +249,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
CONFIG_ARCH_BOARD_MBED=y
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="mbed"
diff --git a/configs/mbed/nsh/defconfig b/configs/mbed/nsh/defconfig
index d9e08cdf19d..420f83f9917 100644
--- a/configs/mbed/nsh/defconfig
+++ b/configs/mbed/nsh/defconfig
@@ -259,7 +259,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
CONFIG_ARCH_BOARD_MBED=y
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="mbed"
diff --git a/configs/mbed/scripts/ld.script b/configs/mbed/scripts/ld.script
index 2d90a7608fa..da5fe0c4e6b 100644
--- a/configs/mbed/scripts/ld.script
+++ b/configs/mbed/scripts/ld.script
@@ -1,5 +1,5 @@
/****************************************************************************
- * configs/nucleus2g/mbed/ld.script
+ * configs/mbed/scripts/ld.script
*
* Copyright (C) 2010 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
diff --git a/configs/nucleus2g/Kconfig b/configs/nucleus2g/Kconfig
deleted file mode 100644
index 0ad7a4136a9..00000000000
--- a/configs/nucleus2g/Kconfig
+++ /dev/null
@@ -1,7 +0,0 @@
-#
-# For a description of the syntax of this configuration file,
-# see the file kconfig-language.txt in the NuttX tools repository.
-#
-
-if ARCH_BOARD_NUCLEUS2G
-endif
diff --git a/configs/nucleus2g/README.txt b/configs/nucleus2g/README.txt
deleted file mode 100644
index 2c82f6bd801..00000000000
--- a/configs/nucleus2g/README.txt
+++ /dev/null
@@ -1,555 +0,0 @@
-README
-^^^^^^
-
-README for NuttX port to the Nucleus 2G LPC1768 board from 2G Engineering
-(http://www.2g-eng.com/)
-
-Contents
-^^^^^^^^
-
- 2G-Engineering Nucleus Board
- Development Environment
- GNU Toolchain Options
- IDEs
- NuttX EABI "buildroot" Toolchain
- NuttX OABI "buildroot" Toolchain
- NXFLAT Toolchain
- LEDs
- Nucleus 2G Configuration Options
- Configurations
-
-Nucleus 2G Board
-^^^^^^^^^^^^^^^^
-
-GPIO Usage
-
- P0[0]/RD1/TXD3/SDA1 P0[0]/CAN_RX1
- P0[1]/TD1/RXD3/SCL P0[1]/CAN_TX1
- P0[2]/TXD0/AD0[7] TX0
- P0[3]/RXD0/AD0[6] RX0
- P0[4] P0[4]/CAN1_STB
- P0[5] P0[5]/CAN2_STB
- P0[6]/I2SRX_SDA/SSEL1/MAT2[0] GPI/O_CS1
- P0[7]/I2STX_CLK/SCK1/MAT2[1] SCLK1
- P0[8]/I2STX_WS/MISO1/MAT2[2] MISO1
- P0[9]/I2STX_SDA/MOSI1/MAT2[3] MOSI1
- P0[10] P0[10]/CAN1_TERM
- P0[11] P0[11]/CAN2_TERM
- P0[15]/TXD1/SCK0/SCK MMC_CLK
- P0[16]/RXD1/SSEL0/SSEL MMC_CD
- P0[17]/CTS1/MISO0/MISO MMC_DATA0
- P0[18]/DCD1/MOSI0/MOSI MMC_MISO
- P0[19]/DSR1/SDA1 GPI/O_CS2
- P0[20]/DTR1/SCL1 GPI/O_CS3
- P0[21]/RI1/MCIPWR/RD1 P0[21]
- P0[22]/RTS1/TD1 P0[22]
- P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] AD0
- P0[24]/AD0[1]/I2SRX_WS/CAP3[1] AD1
- P0[25]/AD0[2]/I2SRX_SDA/TXD3 AD2
- P0[26]/AD0[3]/AOUT/RXD3 AD3
- P0[27]/SDA0/USB_SDA SDA
- P0[28]/SCL0 SCL
- P0[29]/USB_D+ USB+
- P0[30]/USB_D- USB-
-
- P1[0] - P1[17] Not connected
- P1[18]/USB_UP_LED/PWM1[1]/CAP1[0] USB_LINK
- P1[19]-P[29] P[19]-P[29]
- P1[30]/VBUS/AD0[4] USB_+5
- P1[31]/SCK1/AD0[5] AD5
-
- P2[0] P2[0]/LED1_A
- P2[1] P2[1]/LED1_B
- P2[2] P2[2]/LED2_A
- P2[3] P2[3]/LED2_B
- P2[4] P2[4]
- P2[5]/PWM1[6]/DTR1/TRACEDATA[0] 232_POWERAVE
- P2[6]/PCAP1[0]/RI1/TRACECLK 232_VALID
- P2[7]/RD2/RTS1 P2[7]/CAN_RX2
- P2[8]/TD2/TXD2 P2[8]/CAN_TX2
- P2[9]/USB_CONNECT/RXD2 USB_CONNECT
- P2[10]/EINT0/NMI BOOTLOADER
- P2[11]/EINT1/I2STX_CLK HEARTBEAT
- P2[12]/EINT2/I2STX_WS EXTRA_LED
- P2[13]/EINT3/I2STX_SDA 5V_ENABLE
-
- P3[25]-P3[26] Not connected
-
- P4[28]-P4[29] P4[28]-P4[29]
-
-Development Environment
-^^^^^^^^^^^^^^^^^^^^^^^
-
- Either Linux or Cygwin on Windows can be used for the development environment.
- The source has been built only using the GNU toolchain (see below). Other
- toolchains will likely cause problems. Testing was performed using the Cygwin
- environment.
-
-GNU Toolchain Options
-^^^^^^^^^^^^^^^^^^^^^
-
- The NuttX make system has been modified to support the following different
- toolchain options.
-
- 1. The CodeSourcery GNU toolchain,
- 2. The devkitARM GNU toolchain,
- 3. The NuttX buildroot Toolchain (see below).
-
- All testing has been conducted using the NuttX buildroot toolchain. However,
- the make system is setup to default to use the devkitARM toolchain. To use
- the CodeSourcery or devkitARM toolchain, you simply need add one of the
- following configuration options to your .config (or defconfig) file:
-
- CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows
- CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux
- CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows
- CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default)
-
- If you are not using CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT, then you may also have to modify
- the PATH in the setenv.h file if your make cannot find the tools.
-
- NOTE: the CodeSourcery (for Windows)and devkitARM are Windows native toolchains.
- The CodeSourcey (for Linux) and NuttX buildroot toolchains are Cygwin and/or
- Linux native toolchains. There are several limitations to using a Windows based
- toolchain in a Cygwin environment. The three biggest are:
-
- 1. The Windows toolchain cannot follow Cygwin paths. Path conversions are
- performed automatically in the Cygwin makefiles using the 'cygpath' utility
- but you might easily find some new path problems. If so, check out 'cygpath -w'
-
- 2. Windows toolchains cannot follow Cygwin symbolic links. Many symbolic links
- are used in Nuttx (e.g., include/arch). The make system works around these
- problems for the Windows tools by copying directories instead of linking them.
- But this can also cause some confusion for you: For example, you may edit
- a file in a "linked" directory and find that your changes had no effect.
- That is because you are building the copy of the file in the "fake" symbolic
- directory. If you use a Windows toolchain, you should get in the habit of
- making like this:
-
- make clean_context all
-
- An alias in your .bashrc file might make that less painful.
-
- NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
- level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
- -Os.
-
- NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that
- the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM
- path or will get the wrong version of make.
-
-IDEs
-^^^^
-
- NuttX is built using command-line make. It can be used with an IDE, but some
- effort will be required to create the project.
-
- Makefile Build
- --------------
- Under Eclipse, it is pretty easy to set up an "empty makefile project" and
- simply use the NuttX makefile to build the system. That is almost for free
- under Linux. Under Windows, you will need to set up the "Cygwin GCC" empty
- makefile project in order to work with Windows (Google for "Eclipse Cygwin" -
- there is a lot of help on the internet).
-
- Native Build
- ------------
- Here are a few tips before you start that effort:
-
- 1) Select the toolchain that you will be using in your .config file
- 2) Start the NuttX build at least one time from the Cygwin command line
- before trying to create your project. This is necessary to create
- certain auto-generated files and directories that will be needed.
- 3) Set up include pathes: You will need include/, arch/arm/src/lpc17xx,
- arch/arm/src/common, arch/arm/src/armv7-m, and sched/.
- 4) All assembly files need to have the definition option -D __ASSEMBLY__
- on the command line.
-
- Startup files will probably cause you some headaches. The NuttX startup file
- is arch/arm/src/lpc17x/lpc17_vectors.S.
-
-NuttX EABI "buildroot" Toolchain
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- A GNU GCC-based toolchain is assumed. The files */setenv.sh should
- be modified to point to the correct path to the Cortex-M3 GCC toolchain (if
- different from the default in your PATH variable).
-
- If you have no Cortex-M3 toolchain, one can be downloaded from the NuttX
- Bitbucket download site (https://bitbucket.org/nuttx/buildroot/downloads/).
- This GNU toolchain builds and executes in the Linux or Cygwin environment.
-
- 1. You must have already configured Nuttx in /nuttx.
-
- cd tools
- ./configure.sh nucleus2g/
-
- 2. Download the latest buildroot package into
-
- 3. unpack the buildroot tarball. The resulting directory may
- have versioning information on it like buildroot-x.y.z. If so,
- rename /buildroot-x.y.z to /buildroot.
-
- 4. cd /buildroot
-
- 5. cp configs/cortexm3-eabi-defconfig-4.6.3 .config
-
- 6. make oldconfig
-
- 7. make
-
- 8. Edit setenv.h, if necessary, so that the PATH variable includes
- the path to the newly built binaries.
-
- See the file configs/README.txt in the buildroot source tree. That has more
- details PLUS some special instructions that you will need to follow if you
- are building a Cortex-M3 toolchain for Cygwin under Windows.
-
- NOTE: Unfortunately, the 4.6.3 EABI toolchain is not compatible with the
- the NXFLAT tools. See the top-level TODO file (under "Binary loaders") for
- more information about this problem. If you plan to use NXFLAT, please do not
- use the GCC 4.6.3 EABI toochain; instead use the GCC 4.3.3 OABI toolchain.
- See instructions below.
-
-NuttX OABI "buildroot" Toolchain
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- The older, OABI buildroot toolchain is also available. To use the OABI
- toolchain:
-
- 1. When building the buildroot toolchain, either (1) modify the cortexm3-eabi-defconfig-4.6.3
- configuration to use EABI (using 'make menuconfig'), or (2) use an exising OABI
- configuration such as cortexm3-defconfig-4.3.3
-
- 2. Modify the Make.defs file to use the OABI conventions:
-
- +CROSSDEV = arm-nuttx-elf-
- +ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
- +NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-gotoff.ld -no-check-sections
- -CROSSDEV = arm-nuttx-eabi-
- -ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
- -NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-
-NXFLAT Toolchain
-^^^^^^^^^^^^^^^^
-
- If you are *not* using the NuttX buildroot toolchain and you want to use
- the NXFLAT tools, then you will still have to build a portion of the buildroot
- tools -- just the NXFLAT tools. The buildroot with the NXFLAT tools can
- be downloaded from the NuttX Bitbucket download site
- (https://bitbucket.org/nuttx/nuttx/downloads/).
-
- This GNU toolchain builds and executes in the Linux or Cygwin environment.
-
- 1. You must have already configured Nuttx in /nuttx.
-
- cd tools
- ./configure.sh lpcxpresso-lpc1768/
-
- 2. Download the latest buildroot package into
-
- 3. unpack the buildroot tarball. The resulting directory may
- have versioning information on it like buildroot-x.y.z. If so,
- rename /buildroot-x.y.z to /buildroot.
-
- 4. cd /buildroot
-
- 5. cp configs/cortexm3-defconfig-nxflat .config
-
- 6. make oldconfig
-
- 7. make
-
- 8. Edit setenv.h, if necessary, so that the PATH variable includes
- the path to the newly builtNXFLAT binaries.
-
-LEDs
-^^^^
-
- If CONFIG_ARCH_LEDS is defined, then support for the Nucleus-2G LEDs will be
- included in the build. See:
-
- - configs/nucleus2g/include/board.h - Defines LED constants, types and
- prototypes the LED interface functions.
-
- - configs/nucleus2g/src/nucleus2g.h - GPIO settings for the LEDs.
-
- - configs/nucleus2g/src/up_leds.c - LED control logic.
-
- The Nucleus2G has 3 LEDs... two on the Babel CAN board and a "heartbeat" LED."
- The LEDs on the Babel CAN board are capabl of OFF/GREEN/RED/AMBER status.
- In normal usage, the two LEDs on the Babel CAN board would show CAN status, but if
- CONFIG_ARCH_LEDS is defined, these LEDs will be controlled as follows for NuttX
- debug functionality (where NC means "No Change").
-
- During the boot phases. LED1 and LED2 will show boot status.
-
- /* LED1 LED2 HEARTBEAT */
- #define LED_STARTED 0 /* OFF OFF OFF */
- #define LED_HEAPALLOCATE 1 /* GREEN OFF OFF */
- #define LED_IRQSENABLED 2 /* OFF GREEN OFF */
- #define LED_STACKCREATED 3 /* OFF OFF OFF */
-
- #define LED_INIRQ 4 /* NC NC ON (momentary) */
- #define LED_SIGNAL 5 /* NC NC ON (momentary) */
- #define LED_ASSERTION 6 /* NC NC ON (momentary) */
- #define LED_PANIC 7 /* NC NC ON (2Hz flashing) */
- #undef LED_IDLE /* Sleep mode indication not supported */
-
- After the system is booted, this logic will no longer use LEDs 1 and 2. They
- are then available for use the application software using lpc17_led1() and
- lpc17_led2():
-
- enum lpc17_ledstate_e
- {
- LPC17_LEDSTATE_OFF = 0,
- LPC17_LEDSTATE_GREEN = 1,
- LPC17_LEDSTATE_RED = 2,
- LPC17_LEDSTATE_AMBER = (LPC17_LEDSTATE_GREEN|LPC17_LEDSTATE_RED),
- };
-
- EXTERN void lpc17_led1(enum lpc17_ledstate_e state);
- EXTERN void lpc17_led2(enum lpc17_ledstate_e state);
-
- The heartbeat LED is illuminated during all interrupt and signal procressing.
- Normally, it will glow dimly to inicate that the LPC17xx is taking interrupts.
- On an assertion PANIC, it will flash at 2Hz.
-
-Nucleus 2G Configuration Options
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- CONFIG_ARCH - Identifies the arch/ subdirectory. This should
- be set to:
-
- CONFIG_ARCH=arm
-
- CONFIG_ARCH_family - For use in C code:
-
- CONFIG_ARCH_ARM=y
-
- CONFIG_ARCH_architecture - For use in C code:
-
- CONFIG_ARCH_CORTEXM3=y
-
- CONFIG_ARCH_CHIP - Identifies the arch/*/chip subdirectory
-
- CONFIG_ARCH_CHIP=lpc17xx
-
- CONFIG_ARCH_CHIP_name - For use in C code to identify the exact
- chip:
-
- CONFIG_ARCH_CHIP_LPC1768=y
-
- CONFIG_ARCH_BOARD - Identifies the configs subdirectory and
- hence, the board that supports the particular chip or SoC.
-
- CONFIG_ARCH_BOARD=nucleus2g (for the Nucleus 2G)
-
- CONFIG_ARCH_BOARD_name - For use in C code
-
- CONFIG_ARCH_BOARD_NUCLEUS2G=y
-
- CONFIG_ARCH_LOOPSPERMSEC - Must be calibrated for correct operation
- of delay loops
-
- CONFIG_ENDIAN_BIG - define if big endian (default is little
- endian)
-
- CONFIG_RAM_SIZE - Describes the installed DRAM (CPU SRAM in this case):
-
- CONFIG_RAM_SIZE=(32*1024) (32Kb)
-
- There is an additional 32Kb of SRAM in AHB SRAM banks 0 and 1.
-
- CONFIG_RAM_START - The start address of installed DRAM
-
- CONFIG_RAM_START=0x10000000
-
- CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to boards that
- have LEDs
-
- CONFIG_ARCH_INTERRUPTSTACK - This architecture supports an interrupt
- stack. If defined, this symbol is the size of the interrupt
- stack in bytes. If not defined, the user task stacks will be
- used during interrupt handling.
-
- CONFIG_ARCH_STACKDUMP - Do stack dumps after assertions
-
- CONFIG_ARCH_LEDS - Use LEDs to show state. Unique to board architecture.
-
- CONFIG_ARCH_CALIBRATION - Enables some build in instrumentation that
- cause a 100 second delay during boot-up. This 100 second delay
- serves no purpose other than it allows you to calibratre
- CONFIG_ARCH_LOOPSPERMSEC. You simply use a stop watch to measure
- the 100 second delay then adjust CONFIG_ARCH_LOOPSPERMSEC until
- the delay actually is 100 seconds.
-
- Individual subsystems can be enabled:
- CONFIG_LPC17_MAINOSC=y
- CONFIG_LPC17_PLL0=y
- CONFIG_LPC17_PLL1=n
- CONFIG_LPC17_ETHERNET=n
- CONFIG_LPC17_USBHOST=n
- CONFIG_LPC17_USBOTG=n
- CONFIG_LPC17_USBDEV=n
- CONFIG_LPC17_UART0=y
- CONFIG_LPC17_UART1=n
- CONFIG_LPC17_UART2=n
- CONFIG_LPC17_UART3=n
- CONFIG_LPC17_CAN1=n
- CONFIG_LPC17_CAN2=n
- CONFIG_LPC17_SPI=n
- CONFIG_LPC17_SSP0=n
- CONFIG_LPC17_SSP1=n
- CONFIG_LPC17_I2C0=n
- CONFIG_LPC17_I2C1=n
- CONFIG_LPC17_I2S=n
- CONFIG_LPC17_TMR0=n
- CONFIG_LPC17_TMR1=n
- CONFIG_LPC17_TMR2=n
- CONFIG_LPC17_TMR3=n
- CONFIG_LPC17_RIT=n
- CONFIG_LPC17_PWM0=n
- CONFIG_LPC17_MCPWM=n
- CONFIG_LPC17_QEI=n
- CONFIG_LPC17_RTC=n
- CONFIG_LPC17_WDT=n
- CONFIG_LPC17_ADC=n
- CONFIG_LPC17_DAC=n
- CONFIG_LPC17_GPDMA=n
- CONFIG_LPC17_FLASH=n
-
- LPC17xx specific device driver settings
-
- CONFIG_UARTn_SERIAL_CONSOLE - selects the UARTn for the
- console and ttys0 (default is the UART0).
- CONFIG_UARTn_RXBUFSIZE - Characters are buffered as received.
- This specific the size of the receive buffer
- CONFIG_UARTn_TXBUFSIZE - Characters are buffered before
- being sent. This specific the size of the transmit buffer
- CONFIG_UARTn_BAUD - The configure BAUD of the UART. Must be
- CONFIG_UARTn_BITS - The number of bits. Must be either 7 or 8.
- CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
- CONFIG_UARTn_2STOP - Two stop bits
-
- LPC17xx specific CAN device driver settings. These settings all
- require CONFIG_CAN:
-
- CONFIG_CAN_EXTID - Enables support for the 29-bit extended ID. Default
- Standard 11-bit IDs.
- CONFIG_CAN1_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN1 is defined.
- CONFIG_CAN2_BAUD - CAN1 BAUD rate. Required if CONFIG_LPC17_CAN2 is defined.
- CONFIG_CAN1_DIVISOR - CAN1 is clocked at CCLK divided by this number.
- (the CCLK frequency is divided by this number to get the CAN clock).
- Options = {1,2,4,6}. Default: 4.
- CONFIG_CAN2_DIVISOR - CAN2 is clocked at CCLK divided by this number.
- (the CCLK frequency is divided by this number to get the CAN clock).
- Options = {1,2,4,6}. Default: 4.
- CONFIG_CAN_TSEG1 - The number of CAN time quanta in segment 1. Default: 6
- CONFIG_CAN_TSEG2 = the number of CAN time quanta in segment 2. Default: 7
-
- LPC17xx specific PHY/Ethernet device driver settings. These setting
- also require CONFIG_NET and CONFIG_LPC17_ETHERNET.
-
- CONFIG_ETH0_PHY_KS8721 - Selects Micrel KS8721 PHY
- CONFIG_PHY_AUTONEG - Enable auto-negotion
- CONFIG_PHY_SPEED100 - Select 100Mbit vs. 10Mbit speed.
- CONFIG_PHY_FDUPLEX - Select full (vs. half) duplex
-
- CONFIG_NET_EMACRAM_SIZE - Size of EMAC RAM. Default: 16Kb
- CONFIG_NET_NTXDESC - Configured number of Tx descriptors. Default: 18
- CONFIG_NET_NRXDESC - Configured number of Rx descriptors. Default: 18
- CONFIG_NET_WOL - Enable Wake-up on Lan (not fully implemented).
- CONFIG_NET_REGDEBUG - Enabled low level register debug. Also needs
- CONFIG_DEBUG.
- CONFIG_NET_DUMPPACKET - Dump all received and transmitted packets.
- Also needs CONFIG_DEBUG.
- CONFIG_NET_HASH - Enable receipt of near-perfect match frames.
- CONFIG_LPC17_MULTICAST - Enable receipt of multicast (and unicast) frames.
- Automatically set if CONFIG_NET_IGMP is selected.
-
- LPC17xx USB Device Configuration
-
- CONFIG_LPC17_USBDEV_FRAME_INTERRUPT
- Handle USB Start-Of-Frame events.
- Enable reading SOF from interrupt handler vs. simply reading on demand.
- Probably a bad idea... Unless there is some issue with sampling the SOF
- from hardware asynchronously.
- CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT
- Enable high priority interrupts. I have no idea why you might want to
- do that
- CONFIG_LPC17_USBDEV_NDMADESCRIPTORS
- Number of DMA descriptors to allocate in SRAM.
- CONFIG_LPC17_USBDEV_DMA
- Enable lpc17xx-specific DMA support
- CONFIG_LPC17_USBDEV_NOVBUS
- Define if the hardware implementation does not support the VBUS signal
- CONFIG_LPC17_USBDEV_NOLED
- Define if the hardware implementation does not support the LED output
-
- LPC17xx USB Host Configuration (the Nucleus2G does not support USB Host)
-
- CONFIG_USBHOST_OHCIRAM_SIZE
- Total size of OHCI RAM (in AHB SRAM Bank 1)
- CONFIG_USBHOST_NEDS
- Number of endpoint descriptors
- CONFIG_USBHOST_NTDS
- Number of transfer descriptors
- CONFIG_USBHOST_TDBUFFERS
- Number of transfer descriptor buffers
- CONFIG_USBHOST_TDBUFSIZE
- Size of one transfer descriptor buffer
- CONFIG_USBHOST_IOBUFSIZE
- Size of one end-user I/O buffer. This can be zero if the
- application can guarantee that all end-user I/O buffers
- reside in AHB SRAM.
-
-Configurations
-^^^^^^^^^^^^^^
-
-Each Nucleus 2G configuration is maintained in a
-sub-directory and can be selected as follow:
-
- cd tools
- ./configure.sh nucleus2g/
- cd -
- . ./setenv.sh
-
-Where is one of the following:
-
- nsh:
- Configures the NuttShell (nsh) located at examples/nsh. The
- Configuration enables only the serial NSH interface.
-
- NOTES:
-
- 1. This configuration uses the mconf-based configuration tool. To
- change this configurations using that tool, you should:
-
- a. Build and install the kconfig-mconf tool. See nuttx/README.txt
- see additional README.txt files in the NuttX tools repository.
-
- b. Execute 'make menuconfig' in nuttx/ in order to start the
- reconfiguration process.
-
- usbserial:
- This configuration directory exercises the USB serial class
- driver at examples/usbserial. See examples/README.txt for
- more information.
-
- usbmsc:
- This configuration directory exercises the USB mass storage
- class driver at system/usbmsc. See examples/README.txt for
- more information.
-
- NOTES:
-
- 1. This configuration uses the mconf-based configuration tool. To
- change this configurations using that tool, you should:
-
- a. Build and install the kconfig-mconf tool. See nuttx/README.txt
- see additional README.txt files in the NuttX tools repository.
-
- b. Execute 'make menuconfig' in nuttx/ in order to start the
- reconfiguration process.
-
diff --git a/configs/nucleus2g/include/board.h b/configs/nucleus2g/include/board.h
deleted file mode 100644
index a60a565ec46..00000000000
--- a/configs/nucleus2g/include/board.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/************************************************************************************
- * configs/nucleus2g/include/board.h
- * include/arch/board/board.h
- *
- * Copyright (C) 2010, 2012 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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 __ARCH_BOARD_BOARD_H
-#define __ARCH_BOARD_BOARD_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include
-
-/************************************************************************************
- * Pre-processor Definitions
- ************************************************************************************/
-
-/* Clocking *************************************************************************/
-/* NOTE: The following definitions require lpc17_syscon.h. It is not included here
- * because the including C file may not have that file in its include path.
- */
-
-#define BOARD_XTAL_FREQUENCY (12000000) /* XTAL oscillator frequency */
-#define BOARD_OSCCLK_FREQUENCY BOARD_XTAL_FREQUENCY /* Main oscillator frequency */
-#define BOARD_RTCCLK_FREQUENCY (32000) /* RTC oscillator frequency */
-#define BOARD_INTRCOSC_FREQUENCY (4000000) /* Internal RC oscillator frequency */
-
-/* This is the clock setup we configure for:
- *
- * SYSCLK = BOARD_OSCCLK_FREQUENCY = 12MHz -> Select Main oscillator for source
- * PLL0CLK = (2 * 20 * SYSCLK) / 1 = 480MHz -> PLL0 multipler=20, pre-divider=1
- * CCLCK = 480MHz / 6 = 80MHz -> CCLK divider = 6
- */
-
-#define LPC17_CCLK 80000000 /* 80Mhz */
-
-/* Select the main oscillator as the frequency source. SYSCLK is then the frequency
- * of the main oscillator.
- */
-
-#undef CONFIG_LPC17_MAINOSC
-#define CONFIG_LPC17_MAINOSC 1
-#define BOARD_SCS_VALUE SYSCON_SCS_OSCEN
-
-/* Select the main oscillator and CCLK divider. The output of the divider is CCLK.
- * The input to the divider (PLLCLK) will be determined by the PLL output.
- */
-
-#define BOARD_CCLKCFG_DIVIDER 6
-#define BOARD_CCLKCFG_VALUE ((BOARD_CCLKCFG_DIVIDER-1) << SYSCON_CCLKCFG_SHIFT)
-
-/* PLL0. PLL0 is used to generate the CPU clock divider input (PLLCLK).
- *
- * Source clock: Main oscillator
- * PLL0 Multiplier value (M): 20
- * PLL0 Pre-divider value (N): 1
- *
- * PLL0CLK = (2 * 20 * SYSCLK) / 1 = 480MHz
- */
-
-#undef CONFIG_LPC17_PLL0
-#define CONFIG_LPC17_PLL0 1
-#define BOARD_CLKSRCSEL_VALUE SYSCON_CLKSRCSEL_MAIN
-
-#define BOARD_PLL0CFG_MSEL 20
-#define BOARD_PLL0CFG_NSEL 1
-#define BOARD_PLL0CFG_VALUE \
- (((BOARD_PLL0CFG_MSEL-1) << SYSCON_PLL0CFG_MSEL_SHIFT) | \
- ((BOARD_PLL0CFG_NSEL-1) << SYSCON_PLL0CFG_NSEL_SHIFT))
-
-/* PLL1 -- Not used. */
-
-#undef CONFIG_LPC17_PLL1
-#define BOARD_PLL1CFG_MSEL 36
-#define BOARD_PLL1CFG_NSEL 1
-#define BOARD_PLL1CFG_VALUE \
- (((BOARD_PLL1CFG_MSEL-1) << SYSCON_PLL1CFG_MSEL_SHIFT) | \
- ((BOARD_PLL1CFG_NSEL-1) << SYSCON_PLL1CFG_NSEL_SHIFT))
-
-/* USB divider. This divider is used when PLL1 is not enabled to get the
- * USB clock from PLL0:
- *
- * USBCLK = PLL0CLK / 10 = 48MHz
- */
-
-#define BOARD_USBCLKCFG_VALUE SYSCON_USBCLKCFG_DIV10
-
-/* FLASH Configuration */
-
-#undef CONFIG_LPC17_FLASH
-#define CONFIG_LPC17_FLASH 1
-#define BOARD_FLASHCFG_VALUE 0x0000303a
-
-/* LED definitions ******************************************************************/
-/* The Nucleus2G has 3 LEDs... two on the Babel CAN board and a "heartbeat" LED."
- * The LEDs on the Babel CAN board are capabl of OFF/GREEN/RED/AMBER status.
- * In normal usage, the two LEDs on the Babel CAN board would show CAN status, but if
- * CONFIG_ARCH_LEDS is defined, these LEDs will be controlled as follows for NuttX
- * debug functionality (where NC means "No Change").
- *
- * During the boot phases. LED1 and LED2 will show boot status.
- */
- /* LED1 LED2 HEARTBEAT */
-#define LED_STARTED 0 /* OFF OFF OFF */
-#define LED_HEAPALLOCATE 1 /* GREEN OFF OFF */
-#define LED_IRQSENABLED 2 /* OFF GREEN OFF */
-#define LED_STACKCREATED 3 /* OFF OFF OFF */
-
-/* After the system is booted, this logic will no longer use LEDs 1 and 2. They
- * are available for use the application software using lpc17_led1() and lpc17_led2()
- * (prototyped below)
- */
- /* LED1 LED2 HEARTBEAT */
-#define LED_INIRQ 4 /* NC NC ON (momentary) */
-#define LED_SIGNAL 5 /* NC NC ON (momentary) */
-#define LED_ASSERTION 6 /* NC NC ON (momentary) */
-#define LED_PANIC 7 /* NC NC ON (1Hz flashing) */
-
-/* Alternate pin selections *********************************************************/
-/* UART1 -- Not connected */
-
-#define GPIO_UART1_TXD GPIO_UART1_TXD_1
-#define GPIO_UART1_RXD GPIO_UART1_RXD_1
-#define GPIO_UART1_CTS GPIO_UART1_CTS_1
-#define GPIO_UART1_DCD GPIO_UART1_DCD_1
-#define GPIO_UART1_DSR GPIO_UART1_DSR_1
-#define GPIO_UART1_DTR GPIO_UART1_DTR_1
-#define GPIO_UART1_RI GPIO_UART1_RI_1
-#define GPIO_UART1_RTS GPIO_UART1_RTS_1
-
-/* UART2 -- Not connected */
-
-#define GPIO_UART2_TXD GPIO_UART2_TXD_1
-#define GPIO_UART2_RXD GPIO_UART2_RXD_1
-
-/* UART3 -- Not connected */
-
-#define GPIO_UART3_TXD GPIO_UART3_TXD_3
-#define GPIO_UART3_RXD GPIO_UART3_RXD_3
-
-/* Either SPI or SSP0 can drive the MMC/SD slot (SSP0 alternate pin settings are
- * not connected)
- */
-
-#define GPIO_SSP0_SCK GPIO_SSP0_SCK_1
-#define GPIO_SSP0_SSEL GPIO_SSP0_SSEL_1
-#define GPIO_SSP0_MISO GPIO_SSP0_MISO_1
-#define GPIO_SSP0_MOSI GPIO_SSP0_MOSI_1
-
-/* SSP1 */
-
-#define GPIO_SSP1_SCK GPIO_SSP1_SCK_1
-
-/* Can bus config */
-
-/* CAN1 GPIO PIN SIGNAL NAME
- * -------------------------------- ---- --------------
- * P0[0]/RD1/TXD3/SDA1 46 RD1
- * P0[1]/TD1/RXD3/SCL1 47 TD1
- */
-
-#define GPIO_CAN1_RD GPIO_CAN1_RD_1
-#define GPIO_CAN1_TD GPIO_CAN1_TD_1
-
-/* Suppy default CAN BAUD (can be overridden in the .config file) */
-
-#ifndef CONFIG_CAN1_BAUD
-# define CONFIG_CAN1_BAUD 1000000
-#endif
-#ifndef CONFIG_CAN2_BAUD
-# define CONFIG_CAN2_BAUD 1000000
-#endif
-
-/************************************************************************************
- * Public Types
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-#ifdef CONFIG_ARCH_LEDS
-enum lpc17_ledstate_e
-{
- LPC17_LEDSTATE_OFF = 0,
- LPC17_LEDSTATE_GREEN = 1,
- LPC17_LEDSTATE_RED = 2,
- LPC17_LEDSTATE_AMBER = (LPC17_LEDSTATE_GREEN|LPC17_LEDSTATE_RED),
-};
-#endif
-
-enum output_state
-{
- RELAY_OPEN = 0,
- RELAY_CLOSED = 1,
- RELAY_TOGGLE = 2,
-};
-
-/************************************************************************************
- * Public Data
- ************************************************************************************/
-
-#undef EXTERN
-#if defined(__cplusplus)
-#define EXTERN extern "C"
-extern "C"
-{
-#else
-#define EXTERN extern
-#endif
-
-/************************************************************************************
- * Public Function Prototypes
- ************************************************************************************/
-/************************************************************************************
- * Name: lpc17_boardinitialize
- *
- * Description:
- * All LPC17xx architectures must provide the following entry point. This entry point
- * is called early in the initialization -- after all memory has been configured
- * and mapped but before any devices have been initialized.
- *
- ************************************************************************************/
-
-void lpc17_boardinitialize(void);
-
-/************************************************************************************
- * Name: lpc17_led1 and 2
- *
- * Description:
- * Once the system has booted, these functions can be used to control LEDs 1 and 2
- *
- ************************************************************************************/
-
-#ifdef CONFIG_ARCH_LEDS
-void lpc17_led1(enum lpc17_ledstate_e state);
-void lpc17_led2(enum lpc17_ledstate_e state);
-#endif
-
-/************************************************************************************
- * Name: nucleus_bms_relay 1-4
- *
- * Description:
- * once booted these functions control the 4 isolated FET outputs from the
- * master BMS controller
- *
- ************************************************************************************/
-
-#ifdef CONFIG_ARCH_BOARD_NUCLEUS2G_BMS
-void nucleus_bms_relay1(enum output_state state);
-void nucleus_bms_relay2(enum output_state state);
-void nucleus_bms_relay3(enum output_state state);
-void nucleus_bms_relay4(enum output_state state);
-#endif
-
-#undef EXTERN
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* __ASSEMBLY__ */
-#endif /* __ARCH_BOARD_BOARD_H */
diff --git a/configs/nucleus2g/nsh/Make.defs b/configs/nucleus2g/nsh/Make.defs
deleted file mode 100644
index afc8df84533..00000000000
--- a/configs/nucleus2g/nsh/Make.defs
+++ /dev/null
@@ -1,111 +0,0 @@
-############################################################################
-# configs/nucleus2g/nsh/Make.defs
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-############################################################################
-
-include ${TOPDIR}/.config
-include ${TOPDIR}/tools/Config.mk
-include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
-
-ifeq ($(WINTOOL),y)
- # Windows-native toolchains
- DIRLINK = $(TOPDIR)/tools/copydir.sh
- DIRUNLINK = $(TOPDIR)/tools/unlink.sh
- MKDEP = $(TOPDIR)/tools/mkwindeps.sh
- ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
- ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
- ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
-else
- # Linux/Cygwin-native toolchain
- MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
- ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
- ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
- ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
-endif
-
-CC = $(CROSSDEV)gcc
-CXX = $(CROSSDEV)g++
-CPP = $(CROSSDEV)gcc -E
-LD = $(CROSSDEV)ld
-AR = $(CROSSDEV)ar rcs
-NM = $(CROSSDEV)nm
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-
-ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
-ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHDEFINES =
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-ASMEXT = .S
-OBJEXT = .o
-LIBEXT = .a
-EXEEXT =
-
-ifneq ($(CROSSDEV),arm-nuttx-elf-)
- LDFLAGS += -nostartfiles -nodefaultlibs
-endif
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
-
-
-HOSTCC = gcc
-HOSTINCLUDES = -I.
-HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
-HOSTLDFLAGS =
-
diff --git a/configs/nucleus2g/nsh/defconfig b/configs/nucleus2g/nsh/defconfig
deleted file mode 100644
index 2fdc22d963f..00000000000
--- a/configs/nucleus2g/nsh/defconfig
+++ /dev/null
@@ -1,830 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Nuttx/ Configuration
-#
-
-#
-# Build Setup
-#
-# CONFIG_EXPERIMENTAL is not set
-# CONFIG_DEFAULT_SMALL is not set
-# CONFIG_HOST_LINUX is not set
-# CONFIG_HOST_OSX is not set
-CONFIG_HOST_WINDOWS=y
-# CONFIG_HOST_OTHER is not set
-# CONFIG_WINDOWS_NATIVE is not set
-CONFIG_WINDOWS_CYGWIN=y
-# CONFIG_WINDOWS_MSYS is not set
-# CONFIG_WINDOWS_OTHER is not set
-
-#
-# Build Configuration
-#
-# CONFIG_APPS_DIR="../apps"
-CONFIG_BUILD_FLAT=y
-# CONFIG_BUILD_2PASS is not set
-
-#
-# Binary Output Formats
-#
-# CONFIG_RRLOAD_BINARY is not set
-CONFIG_INTELHEX_BINARY=y
-# CONFIG_MOTOROLA_SREC is not set
-# CONFIG_RAW_BINARY is not set
-# CONFIG_UBOOT_UIMAGE is not set
-
-#
-# Customize Header Files
-#
-# CONFIG_ARCH_STDINT_H is not set
-# 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_ARCH_HAVE_HEAPCHECK is not set
-CONFIG_ARCH_HAVE_STACKCHECK=y
-# CONFIG_STACK_COLORATION is not set
-# CONFIG_DEBUG_SYMBOLS is not set
-CONFIG_ARCH_HAVE_CUSTOMOPT=y
-# CONFIG_DEBUG_NOOPT is not set
-# CONFIG_DEBUG_CUSTOMOPT is not set
-CONFIG_DEBUG_FULLOPT=y
-
-#
-# System Type
-#
-CONFIG_ARCH_ARM=y
-# 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 is not set
-# CONFIG_ARCH_X86 is not set
-# CONFIG_ARCH_Z16 is not set
-# CONFIG_ARCH_Z80 is not set
-CONFIG_ARCH="arm"
-
-#
-# ARM Options
-#
-# CONFIG_ARCH_CHIP_A1X is not set
-# CONFIG_ARCH_CHIP_C5471 is not set
-# CONFIG_ARCH_CHIP_CALYPSO is not set
-# CONFIG_ARCH_CHIP_DM320 is not set
-# CONFIG_ARCH_CHIP_EFM32 is not set
-# CONFIG_ARCH_CHIP_IMX1 is not set
-# CONFIG_ARCH_CHIP_KINETIS is not set
-# CONFIG_ARCH_CHIP_KL is not set
-# CONFIG_ARCH_CHIP_LM is not set
-# CONFIG_ARCH_CHIP_TIVA is not set
-# CONFIG_ARCH_CHIP_LPC11XX is not set
-CONFIG_ARCH_CHIP_LPC17XX=y
-# CONFIG_ARCH_CHIP_LPC214X is not set
-# CONFIG_ARCH_CHIP_LPC2378 is not set
-# CONFIG_ARCH_CHIP_LPC31XX is not set
-# CONFIG_ARCH_CHIP_LPC43XX is not set
-# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAMA5 is not set
-# CONFIG_ARCH_CHIP_SAMD is not set
-# CONFIG_ARCH_CHIP_SAML is not set
-# CONFIG_ARCH_CHIP_SAM34 is not set
-# CONFIG_ARCH_CHIP_SAMV7 is not set
-# CONFIG_ARCH_CHIP_STM32 is not set
-# CONFIG_ARCH_CHIP_STR71X is not set
-# CONFIG_ARCH_ARM7TDMI is not set
-# CONFIG_ARCH_ARM926EJS is not set
-# CONFIG_ARCH_ARM920T is not set
-# CONFIG_ARCH_CORTEXM0 is not set
-CONFIG_ARCH_CORTEXM3=y
-# CONFIG_ARCH_CORTEXM4 is not set
-# CONFIG_ARCH_CORTEXM7 is not set
-# CONFIG_ARCH_CORTEXA5 is not set
-# CONFIG_ARCH_CORTEXA8 is not set
-CONFIG_ARCH_FAMILY="armv7-m"
-CONFIG_ARCH_CHIP="lpc17xx"
-# CONFIG_ARMV7M_USEBASEPRI is not set
-CONFIG_ARCH_HAVE_CMNVECTOR=y
-# CONFIG_ARMV7M_CMNVECTOR is not set
-# CONFIG_ARMV7M_LAZYFPU is not set
-# CONFIG_ARCH_HAVE_FPU is not set
-# CONFIG_ARCH_HAVE_DPFPU is not set
-# CONFIG_ARM_MPU is not set
-
-#
-# ARMV7M Configuration Options
-#
-# CONFIG_ARMV7M_HAVE_ICACHE is not set
-# CONFIG_ARMV7M_HAVE_DCACHE is not set
-# CONFIG_ARMV7M_HAVE_ITCM is not set
-# CONFIG_ARMV7M_HAVE_DTCM is not set
-# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
-# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set
-# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set
-# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
-# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIW is not set
-# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set
-# CONFIG_ARMV7M_OABI_TOOLCHAIN is not set
-# CONFIG_ARMV7M_HAVE_STACKCHECK is not set
-# CONFIG_ARMV7M_ITMSYSLOG is not set
-# CONFIG_GPIO_IRQ is not set
-# CONFIG_SERIAL_TERMIOS is not set
-
-#
-# LPC17xx Configuration Options
-#
-# CONFIG_ARCH_CHIP_LPC1751 is not set
-# CONFIG_ARCH_CHIP_LPC1752 is not set
-# CONFIG_ARCH_CHIP_LPC1754 is not set
-# CONFIG_ARCH_CHIP_LPC1756 is not set
-# CONFIG_ARCH_CHIP_LPC1758 is not set
-# CONFIG_ARCH_CHIP_LPC1759 is not set
-# CONFIG_ARCH_CHIP_LPC1764 is not set
-# CONFIG_ARCH_CHIP_LPC1765 is not set
-# CONFIG_ARCH_CHIP_LPC1766 is not set
-# CONFIG_ARCH_CHIP_LPC1767 is not set
-CONFIG_ARCH_CHIP_LPC1768=y
-# CONFIG_ARCH_CHIP_LPC1769 is not set
-# CONFIG_ARCH_CHIP_LPC1773 is not set
-# CONFIG_ARCH_CHIP_LPC1774 is not set
-# CONFIG_ARCH_CHIP_LPC1776 is not set
-# CONFIG_ARCH_CHIP_LPC1777 is not set
-# CONFIG_ARCH_CHIP_LPC1778 is not set
-# CONFIG_ARCH_CHIP_LPC1785 is not set
-# CONFIG_ARCH_CHIP_LPC1786 is not set
-# CONFIG_ARCH_CHIP_LPC1787 is not set
-# CONFIG_ARCH_CHIP_LPC1788 is not set
-CONFIG_ARCH_FAMILY_LPC176X=y
-
-#
-# LPC17xx Peripheral Support
-#
-CONFIG_LPC17_MAINOSC=y
-CONFIG_LPC17_PLL0=y
-CONFIG_LPC17_PLL1=y
-# CONFIG_LPC17_ETHERNET is not set
-# CONFIG_LPC17_USBHOST is not set
-# CONFIG_LPC17_USBDEV is not set
-CONFIG_LPC17_UART0=y
-# CONFIG_LPC17_UART1 is not set
-# CONFIG_LPC17_UART2 is not set
-# CONFIG_LPC17_UART3 is not set
-# CONFIG_LPC17_UART4 is not set
-# CONFIG_LPC17_CAN1 is not set
-# CONFIG_LPC17_CAN2 is not set
-# CONFIG_LPC17_SPI is not set
-CONFIG_LPC17_SSP0=y
-# CONFIG_LPC17_SSP1 is not set
-# CONFIG_LPC17_I2C0 is not set
-# CONFIG_LPC17_I2C1 is not set
-# CONFIG_LPC17_I2C2 is not set
-# CONFIG_LPC17_I2S is not set
-# CONFIG_LPC17_TMR0 is not set
-# CONFIG_LPC17_TMR1 is not set
-# CONFIG_LPC17_TMR2 is not set
-# CONFIG_LPC17_TMR3 is not set
-# CONFIG_LPC17_RIT is not set
-# CONFIG_LPC17_PWM0 is not set
-# CONFIG_LPC17_PWM1 is not set
-# CONFIG_LPC17_MCPWM is not set
-# CONFIG_LPC17_QEI is not set
-# CONFIG_LPC17_RTC is not set
-# CONFIG_LPC17_WDT is not set
-# CONFIG_LPC17_ADC is not set
-# CONFIG_LPC17_DAC is not set
-# CONFIG_LPC17_GPDMA is not set
-# CONFIG_LPC17_FLASH is not set
-
-#
-# External Memory Configuration
-#
-
-#
-# Serial driver options
-#
-
-#
-# Architecture Options
-#
-# CONFIG_ARCH_NOINTC is not set
-# CONFIG_ARCH_VECNOTIRQ is not set
-# CONFIG_ARCH_DMA is not set
-CONFIG_ARCH_HAVE_IRQPRIO=y
-# CONFIG_ARCH_L2CACHE is not set
-# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
-# CONFIG_ARCH_HAVE_ADDRENV is not set
-# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
-CONFIG_ARCH_HAVE_VFORK=y
-# CONFIG_ARCH_HAVE_MMU is not set
-CONFIG_ARCH_HAVE_MPU=y
-# CONFIG_ARCH_NAND_HWECC is not set
-# CONFIG_ARCH_HAVE_EXTCLK is not set
-# CONFIG_ARCH_HAVE_POWEROFF is not set
-# CONFIG_ARCH_USE_MPU is not set
-# CONFIG_ARCH_IRQPRIO is not set
-CONFIG_ARCH_STACKDUMP=y
-# CONFIG_ENDIAN_BIG is not set
-# CONFIG_ARCH_IDLE_CUSTOM is not set
-# CONFIG_ARCH_HAVE_RAMFUNCS is not set
-CONFIG_ARCH_HAVE_RAMVECTORS=y
-# CONFIG_ARCH_RAMVECTORS is not set
-
-#
-# Board Settings
-#
-CONFIG_BOARD_LOOPSPERMSEC=7982
-# CONFIG_ARCH_CALIBRATION is not set
-
-#
-# Interrupt options
-#
-CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-CONFIG_ARCH_INTERRUPTSTACK=0
-CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
-# CONFIG_ARCH_HIPRI_INTERRUPT is not set
-
-#
-# 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
-
-#
-# Boot Memory Configuration
-#
-CONFIG_RAM_START=0x10000000
-CONFIG_RAM_SIZE=32768
-# CONFIG_ARCH_HAVE_SDRAM is not set
-
-#
-# Board Selection
-#
-# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
-# CONFIG_ARCH_BOARD_MBED is not set
-CONFIG_ARCH_BOARD_NUCLEUS2G=y
-# CONFIG_ARCH_BOARD_ZKITARM is not set
-# CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="nucleus2g"
-
-#
-# Common Board Options
-#
-CONFIG_ARCH_HAVE_LEDS=y
-CONFIG_ARCH_LEDS=y
-CONFIG_NSH_MMCSDMINOR=0
-CONFIG_NSH_MMCSDSLOTNO=0
-CONFIG_NSH_MMCSDSPIPORTNO=0
-
-#
-# Board-Specific Options
-#
-CONFIG_LIB_BOARDCTL=y
-# CONFIG_BOARDCTL_TSCTEST is not set
-# CONFIG_BOARDCTL_ADCTEST is not set
-# CONFIG_BOARDCTL_PWMTEST is not set
-# CONFIG_BOARDCTL_GRAPHICS is not set
-# CONFIG_BOARDCTL_IOCTL is not set
-
-#
-# RTOS Features
-#
-CONFIG_DISABLE_OS_API=y
-# CONFIG_DISABLE_POSIX_TIMERS is not set
-# CONFIG_DISABLE_PTHREAD is not set
-# CONFIG_DISABLE_SIGNALS is not set
-# CONFIG_DISABLE_MQUEUE is not set
-# CONFIG_DISABLE_ENVIRON is not set
-
-#
-# Clocks and Timers
-#
-CONFIG_USEC_PER_TICK=10000
-# CONFIG_SYSTEM_TIME64 is not set
-# CONFIG_CLOCK_MONOTONIC is not set
-# CONFIG_JULIAN_TIME is not set
-CONFIG_START_YEAR=2010
-CONFIG_START_MONTH=12
-CONFIG_START_DAY=22
-CONFIG_MAX_WDOGPARMS=2
-CONFIG_PREALLOC_WDOGS=4
-CONFIG_WDOG_INTRESERVE=0
-CONFIG_PREALLOC_TIMERS=4
-
-#
-# Tasks and Scheduling
-#
-# CONFIG_INIT_NONE is not set
-CONFIG_INIT_ENTRYPOINT=y
-# CONFIG_INIT_FILEPATH is not set
-CONFIG_USER_ENTRYPOINT="nsh_main"
-CONFIG_RR_INTERVAL=200
-CONFIG_TASK_NAME_SIZE=0
-CONFIG_MAX_TASKS=16
-# CONFIG_SCHED_HAVE_PARENT is not set
-# CONFIG_SCHED_WAITPID is not set
-
-#
-# Pthread Options
-#
-# CONFIG_MUTEX_TYPES is not set
-CONFIG_NPTHREAD_KEYS=4
-
-#
-# Performance Monitoring
-#
-# CONFIG_SCHED_CPULOAD is not set
-# CONFIG_SCHED_INSTRUMENTATION is not set
-
-#
-# Files and I/O
-#
-CONFIG_DEV_CONSOLE=y
-# CONFIG_FDCLONE_DISABLE is not set
-# CONFIG_FDCLONE_STDIO is not set
-CONFIG_SDCLONE_DISABLE=y
-CONFIG_NFILE_DESCRIPTORS=8
-CONFIG_NFILE_STREAMS=8
-CONFIG_NAME_MAX=32
-# CONFIG_PRIORITY_INHERITANCE is not set
-
-#
-# RTOS hooks
-#
-# CONFIG_BOARD_INITIALIZE is not set
-# CONFIG_SCHED_STARTHOOK is not set
-# CONFIG_SCHED_ATEXIT is not set
-# CONFIG_SCHED_ONEXIT is not set
-
-#
-# Signal Numbers
-#
-CONFIG_SIG_SIGUSR1=1
-CONFIG_SIG_SIGUSR2=2
-CONFIG_SIG_SIGALARM=3
-CONFIG_SIG_SIGCONDTIMEDOUT=16
-
-#
-# POSIX Message Queue Options
-#
-CONFIG_PREALLOC_MQ_MSGS=4
-CONFIG_MQ_MAXMSGSIZE=32
-
-#
-# Work Queue Support
-#
-# CONFIG_SCHED_WORKQUEUE is not set
-# CONFIG_SCHED_HPWORK is not set
-# CONFIG_SCHED_LPWORK is not set
-
-#
-# Stack and heap information
-#
-CONFIG_IDLETHREAD_STACKSIZE=1024
-CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PTHREAD_STACK_MIN=256
-CONFIG_PTHREAD_STACK_DEFAULT=2048
-# CONFIG_LIB_SYSCALL is not set
-
-#
-# Device Drivers
-#
-CONFIG_DISABLE_POLL=y
-CONFIG_DEV_NULL=y
-# CONFIG_DEV_ZERO is not set
-# CONFIG_DEV_LOOP is not set
-
-#
-# Buffering
-#
-# CONFIG_DRVR_WRITEBUFFER is not set
-# CONFIG_DRVR_READAHEAD is not set
-# CONFIG_RAMDISK is not set
-# CONFIG_CAN is not set
-# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
-# CONFIG_PWM is not set
-# CONFIG_ARCH_HAVE_I2CRESET is not set
-# CONFIG_I2C is not set
-CONFIG_SPI=y
-# CONFIG_SPI_EXCHANGE is not set
-# CONFIG_SPI_CMDDATA is not set
-# CONFIG_SPI_CALLBACK is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_I2S is not set
-
-#
-# Timer Driver Support
-#
-# CONFIG_TIMER is not set
-# CONFIG_RTC is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_ANALOG is not set
-# CONFIG_AUDIO_DEVICES is not set
-# CONFIG_VIDEO_DEVICES is not set
-# CONFIG_BCH is not set
-# CONFIG_INPUT is not set
-# CONFIG_LCD is not set
-CONFIG_MMCSD=y
-CONFIG_MMCSD_NSLOTS=1
-# CONFIG_MMCSD_READONLY is not set
-# CONFIG_MMCSD_MULTIBLOCK_DISABLE is not set
-# CONFIG_MMCSD_MMCSUPPORT is not set
-CONFIG_MMCSD_HAVECARDDETECT=y
-CONFIG_MMCSD_SPI=y
-CONFIG_MMCSD_SPICLOCK=20000000
-CONFIG_MMCSD_SPIMODE=0
-# CONFIG_ARCH_HAVE_SDIO is not set
-# CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE is not set
-# CONFIG_MTD is not set
-# CONFIG_EEPROM 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_ARCH_HAVE_UART is not set
-CONFIG_ARCH_HAVE_UART0=y
-# CONFIG_ARCH_HAVE_UART1 is not set
-# CONFIG_ARCH_HAVE_UART2 is not set
-# CONFIG_ARCH_HAVE_UART3 is not set
-# CONFIG_ARCH_HAVE_UART4 is not set
-# CONFIG_ARCH_HAVE_UART5 is not set
-# CONFIG_ARCH_HAVE_UART6 is not set
-# CONFIG_ARCH_HAVE_UART7 is not set
-# CONFIG_ARCH_HAVE_UART8 is not set
-# CONFIG_ARCH_HAVE_SCI0 is not set
-# CONFIG_ARCH_HAVE_SCI1 is not set
-# CONFIG_ARCH_HAVE_USART0 is not set
-# CONFIG_ARCH_HAVE_USART1 is not set
-# CONFIG_ARCH_HAVE_USART2 is not set
-# CONFIG_ARCH_HAVE_USART3 is not set
-# CONFIG_ARCH_HAVE_USART4 is not set
-# CONFIG_ARCH_HAVE_USART5 is not set
-# CONFIG_ARCH_HAVE_USART6 is not set
-# CONFIG_ARCH_HAVE_USART7 is not set
-# CONFIG_ARCH_HAVE_USART8 is not set
-# CONFIG_ARCH_HAVE_OTHER_UART is not set
-
-#
-# USART Configuration
-#
-CONFIG_MCU_SERIAL=y
-CONFIG_STANDARD_SERIAL=y
-# CONFIG_SERIAL_IFLOWCONTROL is not set
-# CONFIG_SERIAL_OFLOWCONTROL is not set
-CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
-CONFIG_UART0_SERIAL_CONSOLE=y
-# CONFIG_OTHER_SERIAL_CONSOLE is not set
-# CONFIG_NO_SERIAL_CONSOLE is not set
-
-#
-# UART0 Configuration
-#
-CONFIG_UART0_RXBUFSIZE=256
-CONFIG_UART0_TXBUFSIZE=256
-CONFIG_UART0_BAUD=115200
-CONFIG_UART0_BITS=8
-CONFIG_UART0_PARITY=0
-CONFIG_UART0_2STOP=0
-# CONFIG_UART0_IFLOWCONTROL is not set
-# CONFIG_UART0_OFLOWCONTROL is not set
-# CONFIG_USBDEV is not set
-# CONFIG_USBHOST is not set
-# CONFIG_DRIVERS_WIRELESS is not set
-
-#
-# System Logging Device Options
-#
-
-#
-# System Logging
-#
-# CONFIG_RAMLOG is not set
-# CONFIG_SYSLOG_CONSOLE is not set
-
-#
-# Networking Support
-#
-# CONFIG_ARCH_HAVE_NET is not set
-# CONFIG_ARCH_HAVE_PHY is not set
-# CONFIG_NET is not set
-
-#
-# Crypto API
-#
-# CONFIG_CRYPTO is not set
-
-#
-# File Systems
-#
-
-#
-# File system configuration
-#
-# CONFIG_DISABLE_MOUNTPOINT is not set
-# CONFIG_FS_AUTOMOUNTER is not set
-# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
-# CONFIG_FS_READABLE is not set
-# CONFIG_FS_WRITABLE is not set
-# CONFIG_FS_NAMED_SEMAPHORES is not set
-CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
-# CONFIG_FS_RAMMAP is not set
-# CONFIG_FS_FAT is not set
-# CONFIG_FS_NXFFS is not set
-# CONFIG_FS_ROMFS is not set
-# CONFIG_FS_SMARTFS is not set
-# CONFIG_FS_PROCFS is not set
-# CONFIG_FS_UNIONFS is not set
-
-#
-# System Logging
-#
-# CONFIG_SYSLOG is not set
-# CONFIG_SYSLOG_TIMESTAMP is not set
-
-#
-# Graphics Support
-#
-# CONFIG_NX is not set
-
-#
-# Memory Management
-#
-# CONFIG_MM_SMALL is not set
-CONFIG_MM_REGIONS=2
-# CONFIG_ARCH_HAVE_HEAP2 is not set
-# CONFIG_GRAN is not set
-
-#
-# Audio Support
-#
-# CONFIG_AUDIO is not set
-
-#
-# Binary Loader
-#
-# CONFIG_BINFMT_DISABLE is not set
-# CONFIG_BINFMT_EXEPATH is not set
-# CONFIG_NXFLAT is not set
-# CONFIG_ELF is not set
-# CONFIG_BUILTIN is not set
-# CONFIG_PIC is not set
-# CONFIG_SYMTAB_ORDEREDBYNAME is not set
-
-#
-# Library Routines
-#
-
-#
-# Standard C Library Options
-#
-CONFIG_STDIO_BUFFER_SIZE=64
-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_LIBC_LONG_LONG=y
-# CONFIG_LIBC_IOCTL_VARIADIC is not set
-CONFIG_LIB_RAND_ORDER=1
-# 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_EXECFUNCS is not set
-CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
-CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
-# CONFIG_LIBC_STRERROR is not set
-# CONFIG_LIBC_PERROR_STDOUT is not set
-CONFIG_ARCH_LOWPUTC=y
-# CONFIG_LIBC_LOCALTIME is not set
-# CONFIG_TIME_EXTENDED is not set
-CONFIG_LIB_SENDFILE_BUFSIZE=512
-# CONFIG_ARCH_ROMGETC is not set
-# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
-
-#
-# Non-standard Library Support
-#
-# CONFIG_LIB_KBDCODEC is not set
-# CONFIG_LIB_SLCDCODEC is not set
-
-#
-# Basic CXX Support
-#
-# CONFIG_C99_BOOL8 is not set
-# CONFIG_HAVE_CXX is not set
-
-#
-# Application Configuration
-#
-
-#
-# Built-In Applications
-#
-
-#
-# Examples
-#
-# CONFIG_EXAMPLES_BUTTONS is not set
-# CONFIG_EXAMPLES_CAN is not set
-# CONFIG_EXAMPLES_CONFIGDATA is not set
-# CONFIG_EXAMPLES_CPUHOG 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_MM is not set
-# CONFIG_EXAMPLES_MODBUS is not set
-# CONFIG_EXAMPLES_MOUNT is not set
-# CONFIG_EXAMPLES_NRF24L01TERM is not set
-CONFIG_EXAMPLES_NSH=y
-# CONFIG_EXAMPLES_NULL is not set
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXTERM is not set
-# CONFIG_EXAMPLES_NXFFS 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_PIPE is not set
-# CONFIG_EXAMPLES_POLL is not set
-# CONFIG_EXAMPLES_PPPD is not set
-# CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_QENCODER is not set
-# CONFIG_EXAMPLES_RGMP is not set
-# CONFIG_EXAMPLES_SENDMAIL is not set
-# CONFIG_EXAMPLES_SERIALBLASTER is not set
-# CONFIG_EXAMPLES_SERIALRX is not set
-# CONFIG_EXAMPLES_SERLOOP is not set
-# CONFIG_EXAMPLES_SLCD is not set
-# CONFIG_EXAMPLES_SMART is not set
-# CONFIG_EXAMPLES_TCPECHO is not set
-# CONFIG_EXAMPLES_TELNETD is not set
-# CONFIG_EXAMPLES_TIFF is not set
-# CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_WEBSERVER is not set
-# CONFIG_EXAMPLES_USBSERIAL is not set
-# CONFIG_EXAMPLES_USBTERM is not set
-# CONFIG_EXAMPLES_WATCHDOG is not set
-
-#
-# Graphics Support
-#
-# CONFIG_TIFF is not set
-# CONFIG_GRAPHICS_TRAVELER is not set
-
-#
-# Interpreters
-#
-# CONFIG_INTERPRETERS_FICL is not set
-# CONFIG_INTERPRETERS_PCODE is not set
-# CONFIG_INTERPRETERS_MICROPYTHON is not set
-
-#
-# Network Utilities
-#
-
-#
-# Networking Utilities
-#
-# CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_SMTP is not set
-
-#
-# FreeModBus
-#
-# CONFIG_MODBUS is not set
-
-#
-# NSH Library
-#
-CONFIG_NSH_LIBRARY=y
-
-#
-# Command Line Configuration
-#
-CONFIG_NSH_READLINE=y
-# CONFIG_NSH_CLE is not set
-CONFIG_NSH_LINELEN=64
-# CONFIG_NSH_DISABLE_SEMICOLON is not set
-CONFIG_NSH_CMDPARMS=y
-CONFIG_NSH_MAXARGUMENTS=6
-CONFIG_NSH_ARGCAT=y
-CONFIG_NSH_NESTDEPTH=3
-# CONFIG_NSH_DISABLEBG is not set
-
-#
-# Disable Individual commands
-#
-# CONFIG_NSH_DISABLE_ADDROUTE is not set
-# CONFIG_NSH_DISABLE_CAT is not set
-# CONFIG_NSH_DISABLE_CD is not set
-# CONFIG_NSH_DISABLE_CP is not set
-# CONFIG_NSH_DISABLE_CMP is not set
-CONFIG_NSH_DISABLE_DATE=y
-# CONFIG_NSH_DISABLE_DD is not set
-# CONFIG_NSH_DISABLE_DF is not set
-# CONFIG_NSH_DISABLE_DELROUTE 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_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_MV is not set
-# CONFIG_NSH_DISABLE_MW is not set
-# CONFIG_NSH_DISABLE_PS 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
-
-#
-# Configure Command Options
-#
-CONFIG_NSH_CMDOPT_DF_H=y
-CONFIG_NSH_CODECS_BUFSIZE=128
-CONFIG_NSH_CMDOPT_HEXDUMP=y
-CONFIG_NSH_FILEIOSIZE=512
-
-#
-# Scripting Support
-#
-# CONFIG_NSH_DISABLESCRIPT is not set
-# CONFIG_NSH_DISABLE_ITEF is not set
-# CONFIG_NSH_DISABLE_LOOPS is not set
-
-#
-# Console Configuration
-#
-CONFIG_NSH_CONSOLE=y
-# CONFIG_NSH_ALTCONDEV is not set
-CONFIG_NSH_ARCHINIT=y
-
-#
-# NxWidgets/NxWM
-#
-
-#
-# Platform-specific Support
-#
-# CONFIG_PLATFORM_CONFIGDATA is not set
-
-#
-# System Libraries and NSH Add-Ons
-#
-# CONFIG_SYSTEM_FREE is not set
-# CONFIG_SYSTEM_CLE is not set
-# CONFIG_SYSTEM_CUTERM is not set
-# CONFIG_SYSTEM_INSTALL is not set
-# CONFIG_SYSTEM_HEX2BIN is not set
-# CONFIG_FSUTILS_INIFILE is not set
-# CONFIG_SYSTEM_RAMTEST is not set
-CONFIG_SYSTEM_READLINE=y
-CONFIG_READLINE_ECHO=y
-# CONFIG_SYSTEM_SUDOKU is not set
-# CONFIG_SYSTEM_VI is not set
-# CONFIG_SYSTEM_ZMODEM is not set
diff --git a/configs/nucleus2g/nsh/setenv.sh b/configs/nucleus2g/nsh/setenv.sh
deleted file mode 100755
index ffdc74e9b90..00000000000
--- a/configs/nucleus2g/nsh/setenv.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# configs/nucleus2g/nsh/setenv.sh
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-
-if [ "$(basename $0)" = "setenv.sh" ] ; then
- echo "You must source this script, not run it!" 1>&2
- exit 1
-fi
-
-if [ -z "${PATH_ORIG}" ]; then export PATH_ORIG="${PATH}"; fi
-
-WD=`pwd`
-export LPCTOOL_DIR="${WD}/configs/nucleus2g/tools"
-export BUILDROOT_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
-export PATH="${BUILDROOT_BIN}:${LPCTOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
-
-echo "PATH : ${PATH}"
diff --git a/configs/nucleus2g/scripts/ld.script b/configs/nucleus2g/scripts/ld.script
deleted file mode 100644
index 3d6fcb1d2a0..00000000000
--- a/configs/nucleus2g/scripts/ld.script
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
- * configs/nucleus2g/scripts/ld.script
- *
- * Copyright (C) 2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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 LPC1768 has 512Kb of FLASH beginning at address 0x0000:0000 and
- * 64Kb of total SRAM: 32Kb of SRAM in the CPU block beginning at address
- * 0x10000000 and 32Kb of AHB SRAM in two banks of 16Kb beginning at addresses
- * 0x20070000 and 0x20080000. Here we assume that .data and .bss will all fit
- * into the 32Kb CPU SRAM address range.
- */
-
-MEMORY
-{
- flash (rx) : ORIGIN = 0x00000000, LENGTH = 512K
- sram (rwx) : ORIGIN = 0x10000000, LENGTH = 32K
-}
-
-OUTPUT_ARCH(arm)
-ENTRY(_stext)
-SECTIONS
-{
- .text : {
- _stext = ABSOLUTE(.);
- *(.vectors)
- *(.text .text.*)
- *(.fixup)
- *(.gnu.warning)
- *(.rodata .rodata.*)
- *(.gnu.linkonce.t.*)
- *(.glue_7)
- *(.glue_7t)
- *(.got)
- *(.gcc_except_table)
- *(.gnu.linkonce.r.*)
- _etext = ABSOLUTE(.);
- } > flash
-
- .init_section : {
- _sinit = ABSOLUTE(.);
- *(.init_array .init_array.*)
- _einit = ABSOLUTE(.);
- } > flash
-
- .ARM.extab : {
- *(.ARM.extab*)
- } > flash
-
- __exidx_start = ABSOLUTE(.);
- .ARM.exidx : {
- *(.ARM.exidx*)
- } > flash
- __exidx_end = ABSOLUTE(.);
-
- _eronly = ABSOLUTE(.);
-
- .data : {
- _sdata = ABSOLUTE(.);
- *(.data .data.*)
- *(.gnu.linkonce.d.*)
- CONSTRUCTORS
- _edata = ABSOLUTE(.);
- } > sram AT > flash
-
- .bss : { /* BSS */
- _sbss = ABSOLUTE(.);
- *(.bss .bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- _ebss = ABSOLUTE(.);
- } > sram
- /* Stabs debugging sections. */
- .stab 0 : { *(.stab) }
- .stabstr 0 : { *(.stabstr) }
- .stab.excl 0 : { *(.stab.excl) }
- .stab.exclstr 0 : { *(.stab.exclstr) }
- .stab.index 0 : { *(.stab.index) }
- .stab.indexstr 0 : { *(.stab.indexstr) }
- .comment 0 : { *(.comment) }
- .debug_abbrev 0 : { *(.debug_abbrev) }
- .debug_info 0 : { *(.debug_info) }
- .debug_line 0 : { *(.debug_line) }
- .debug_pubnames 0 : { *(.debug_pubnames) }
- .debug_aranges 0 : { *(.debug_aranges) }
-}
diff --git a/configs/nucleus2g/src/.gitignore b/configs/nucleus2g/src/.gitignore
deleted file mode 100644
index 726d936e1e3..00000000000
--- a/configs/nucleus2g/src/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/.depend
-/Make.dep
diff --git a/configs/nucleus2g/src/Makefile b/configs/nucleus2g/src/Makefile
deleted file mode 100644
index 2e0311d06c1..00000000000
--- a/configs/nucleus2g/src/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-############################################################################
-# configs/nucleus2g/src/Makefile
-#
-# Copyright (C) 2010-2012, 2015 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-############################################################################
-
--include $(TOPDIR)/Make.defs
-
-ASRCS =
-CSRCS = lpc17_boot.c lpc17_leds.c lpc17_ssp.c lpc17_outputs.c
-
-ifeq ($(CONFIG_LIB_BOARDCTL),y)
-CSRCS += lpc17_appinit.c
-endif
-
-ifeq ($(CONFIG_USBMSC),y)
-CSRCS += lpc17_usbmsc.c
-endif
-
-include $(TOPDIR)/configs/Board.mk
diff --git a/configs/nucleus2g/src/lpc17_appinit.c b/configs/nucleus2g/src/lpc17_appinit.c
deleted file mode 100644
index c0496b35cd7..00000000000
--- a/configs/nucleus2g/src/lpc17_appinit.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
- * config/nucleus2g/src/lpc17_appinit.c
- *
- * Copyright (C) 2010-2011, 2013, 2015 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include "lpc17_ssp.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-#define HAVE_USBDEV 1
-#define HAVE_MMCSD 1
-
-/* PORT and SLOT number probably depend on the board configuration */
-
-#ifdef CONFIG_NSH_ARCHINIT
-# if !defined(CONFIG_NSH_MMCSDSPIPORTNO) || CONFIG_NSH_MMCSDSPIPORTNO != 0
-# error "The Nucleus-2G MMC/SD is on SSP0"
-# undef CONFIG_NSH_MMCSDSPIPORTNO
-# define CONFIG_NSH_MMCSDSPIPORTNO 0
-# endif
-
-# if !defined(CONFIG_NSH_MMCSDSLOTNO) || CONFIG_NSH_MMCSDSLOTNO != 0
-# error "The Nucleus-2G MMC/SD is only one slot (0)"
-# undef CONFIG_NSH_MMCSDSLOTNO
-# define CONFIG_NSH_MMCSDSLOTNO 0
-# endif
-
-# ifndef CONFIG_NSH_MMCSDMINOR
-# define CONFIG_NSH_MMCSDMINOR 0
-# endif
-
-#else
-# undef CONFIG_NSH_MMCSDSPIPORTNO
-# define CONFIG_NSH_MMCSDSPIPORTNO 0
-# undef CONFIG_NSH_MMCSDSLOTNO
-# define CONFIG_NSH_MMCSDSLOTNO 0
-# undef CONFIG_NSH_MMCSDMINOR
-# define CONFIG_NSH_MMCSDMINOR 0
-#endif
-
-/* Can't support USB device features if USB device is not enabled */
-
-#ifndef CONFIG_USBDEV
-# undef HAVE_USBDEV
-#endif
-
-/* Can't support MMC/SD features if mountpoints are disabled */
-
-#ifdef HAVE_MMCSD
-# ifndef CONFIG_LPC17_SSP0
-# warning "CONFIG_LPC17_SSP0 is require for MMC/SD support"
-# undef HAVE_MMCSD
-# endif
-
-# ifdef CONFIG_DISABLE_MOUNTPOINT
-# warning "No MMC/SD support. Mountpoints disabled (CONFIG_DISABLE_MOUNTPOINT)"
-# undef HAVE_MMCSD
-# endif
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_app_initialize
- *
- * Description:
- * Perform architecture specific initialization
- *
- ****************************************************************************/
-
-int board_app_initialize(void)
-{
-#ifdef HAVE_MMCSD
- FAR struct spi_dev_s *ssp;
- int ret;
-
- /* Get the SSP port */
-
- ssp = lpc17_sspbus_initialize(CONFIG_NSH_MMCSDSPIPORTNO);
- if (!ssp)
- {
- syslog(LOG_ERR, "ERROR: Failed to initialize SSP port %d\n",
- CONFIG_NSH_MMCSDSPIPORTNO);
- return -ENODEV;
- }
-
- syslog(LOG_INFO, "Successfully initialized SSP port %d\n",
- CONFIG_NSH_MMCSDSPIPORTNO);
-
- /* Bind the SSP port to the slot */
-
- ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, CONFIG_NSH_MMCSDSLOTNO, ssp);
- if (ret < 0)
- {
- syslog(LOG_ERR, "ERROR: Failed to bind SSP port %d to MMC/SD slot %d: %d\n",
- CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO, ret);
- return ret;
- }
-
- syslog(LOG_INFO, "Successfuly bound SSP port %d to MMC/SD slot %d\n",
- CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO);
-#endif
-
- return OK;
-}
diff --git a/configs/nucleus2g/src/lpc17_leds.c b/configs/nucleus2g/src/lpc17_leds.c
deleted file mode 100644
index 501eeb8d49c..00000000000
--- a/configs/nucleus2g/src/lpc17_leds.c
+++ /dev/null
@@ -1,231 +0,0 @@
-/****************************************************************************
- * configs/nucleus2g/src/lpc17_leds.c
- *
- * Copyright (C) 2010, 2013, 2015 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-
-#include "chip.h"
-#include "up_arch.h"
-#include "up_internal.h"
-
-#include "lpc17_gpio.h"
-
-#include "nucleus2g.h"
-
-#ifdef CONFIG_ARCH_LEDS
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* CONFIG_DEBUG_LEDS enables debug output from this file (needs CONFIG_DEBUG
- * with CONFIG_DEBUG_VERBOSE too)
- */
-
-#ifdef CONFIG_DEBUG_LEDS
-# define leddbg lldbg
-# ifdef CONFIG_DEBUG_VERBOSE
-# define ledvdbg lldbg
-# else
-# define ledvdbg(x...)
-# endif
-#else
-# define leddbg(x...)
-# define ledvdbg(x...)
-#endif
-
-/* Dump GPIO registers */
-
-#if defined(CONFIG_DEBUG_VERBOSE) && defined(CONFIG_DEBUG_LEDS)
-# define led_dumpgpio(m) lpc17_dumpgpio(NUCLEUS2G_LED1_A, m)
-#else
-# define led_dumpgpio(m)
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/* The Nucleus2G has 3 LEDs... two on the Babel CAN board and a "heartbeat" LED."
- * The LEDs on the Babel CAN board are capabl of OFF/GREEN/RED/AMBER status.
- * In normal usage, the two LEDs on the Babel CAN board would show CAN status, but if
- * CONFIG_ARCH_LEDS is defined, these LEDs will be controlled as follows for NuttX
- * debug functionality (where NC means "No Change").
- *
- * LED1 LED2 HEARTBEAT
- * +------- ------ -----------------------
- * LED_STARTED | OFF OFF OFF
- * LED_HEAPALLOCATE | GREEN OFF OFF
- * LED_IRQSENABLED | OFF GREEN OFF
- * LED_STACKCREATED | OFF OFF OFF
- * LED_INIRQ | NC NC ON (momentary)
- * LED_SIGNAL | NC NC ON (momentary)
- * LED_ASSERTION | NC NC ON (momentary)
- * LED_PANIC | NC NC ON (1Hz flashing)
- */
-
-static bool g_initialized;
-static int g_nestcount;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_autoled_initialize
- ****************************************************************************/
-
-void board_autoled_initialize(void)
-{
- /* Configure all LED GPIO lines */
-
- led_dumpgpio("board_autoled_initialize() Entry)");
-
- lpc17_configgpio(NUCLEUS2G_LED1_A);
- lpc17_configgpio(NUCLEUS2G_LED1_B);
- lpc17_configgpio(NUCLEUS2G_LED2_A);
- lpc17_configgpio(NUCLEUS2G_LED2_B);
- lpc17_configgpio(NUCLEUS2G_HEARTBEAT);
- lpc17_configgpio(NUCLEUS2G_EXTRA_LED);
-
- led_dumpgpio("board_autoled_initialize() Exit");
-}
-
-/****************************************************************************
- * Name: board_autoled_on
- ****************************************************************************/
-
-void board_autoled_on(int led)
-{
- /* We will control LED1 and LED2 not yet completed the boot sequence. */
-
- if (!g_initialized)
- {
- enum lpc17_ledstate_e led1 = LPC17_LEDSTATE_OFF;
- enum lpc17_ledstate_e led2 = LPC17_LEDSTATE_OFF;
- switch (led)
- {
- case LED_STACKCREATED:
- g_initialized = true;
- case LED_STARTED:
- default:
- break;
-
- case LED_HEAPALLOCATE:
- led1 = LPC17_LEDSTATE_GREEN;
- break;
-
- case LED_IRQSENABLED:
- led2 = LPC17_LEDSTATE_GREEN;
- }
- lpc17_led1(led1);
- lpc17_led2(led2);
- }
-
- /* We will always control the HB LED */
-
- switch (led)
- {
- default:
- break;
-
- case LED_INIRQ:
- case LED_SIGNAL:
- case LED_ASSERTION:
- case LED_PANIC:
- lpc17_gpiowrite(NUCLEUS2G_HEARTBEAT, false);
- g_nestcount++;
- }
-}
-
-/****************************************************************************
- * Name: board_autoled_off
- ****************************************************************************/
-
-void board_autoled_off(int led)
-{
- /* In all states, OFF can only mean turning off the HB LED */
-
- if (g_nestcount <= 1)
- {
- lpc17_gpiowrite(NUCLEUS2G_HEARTBEAT, true);
- g_nestcount = 0;
- }
- else
- {
- g_nestcount--;
- }
-}
-
-/************************************************************************************
- * Name: lpc17_led1 and 2
- *
- * Description:
- * Once the system has booted, these functions can be used to control LEDs 1 and 2
- *
- ************************************************************************************/
-
-void lpc17_led1(enum lpc17_ledstate_e state)
-{
- bool red = (((unsigned int)state & LPC17_LEDSTATE_RED) != 0);
- bool green = (((unsigned int)state & LPC17_LEDSTATE_GREEN) != 0);
-
- lpc17_gpiowrite(NUCLEUS2G_LED1_A, red);
- lpc17_gpiowrite(NUCLEUS2G_LED1_B, green);
-}
-
-void lpc17_led2(enum lpc17_ledstate_e state)
-{
- bool red = (((unsigned int)state & LPC17_LEDSTATE_RED) != 0);
- bool green = (((unsigned int)state & LPC17_LEDSTATE_GREEN) != 0);
-
- lpc17_gpiowrite(NUCLEUS2G_LED2_A, red);
- lpc17_gpiowrite(NUCLEUS2G_LED2_B, green);
-}
-#endif /* CONFIG_ARCH_LEDS */
diff --git a/configs/nucleus2g/src/lpc17_outputs.c b/configs/nucleus2g/src/lpc17_outputs.c
deleted file mode 100644
index f50138db8f1..00000000000
--- a/configs/nucleus2g/src/lpc17_outputs.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * configs/nucleus2g/src/lpc17_outputs.c
- *
- * Copyright (C) 2012 Hal Glenn. All rights reserved.
- * Author: Hal Glenn
- *
- * This file is part of NuttX:
- *
- * Copyright (C) 2012-2013 Gregory Nutt. All rights reserved.
- *
- * 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.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include
-
-#include
-#include
-#include
-
-#include
-
-#include "chip.h"
-#include "up_arch.h"
-#include "up_internal.h"
-
-#include "lpc17_gpio.h"
-
-#include "nucleus2g.h"
-
-#ifdef CONFIG_ARCH_BOARD_NUCLEUS2G_BMS
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nucleus_bms_relay 1-4
- *
- * Description:
- * Once booted these functions control the 4 isolated FET outputs from the
- * master BMS controller
- *
- ****************************************************************************/
-
-void nucleus_bms_relay1(enum output_state state)
-{
- bool value = (state == (enum output_state)RELAY_OPEN);
- lpc17_gpiowrite(NUCLEUS_BMS_RELAY1, value);
-}
-
-void nucleus_bms_relay2(enum output_state state)
-{
- bool value = (state == (enum output_state)RELAY_OPEN);
- lpc17_gpiowrite(NUCLEUS_BMS_RELAY2, value);
-}
-
-void nucleus_bms_relay3(enum output_state state)
-{
- bool value = (state == (enum output_state)RELAY_OPEN);
- lpc17_gpiowrite(NUCLEUS_BMS_RELAY3, value);
-}
-
-void nucleus_bms_relay4(enum output_state state)
-{
- bool value = (state == (enum output_state)RELAY_OPEN);
- lpc17_gpiowrite(NUCLEUS_BMS_RELAY4, value);
-}
-
-/****************************************************************************
- * Name: up_relayinit
- *
- * Description:
- * This function is called on boot to init the GPIO for relay control
- *
- ****************************************************************************/
-
-void up_relayinit(void)
-{
- lpc17_configgpio(NUCLEUS_BMS_RELAY1);
- lpc17_configgpio(NUCLEUS_BMS_RELAY2);
- lpc17_configgpio(NUCLEUS_BMS_RELAY3);
- lpc17_configgpio(NUCLEUS_BMS_RELAY4);
-}
-
-#endif /* CONFIG_ARCH_BOARD_NUCLEUS2G_BMS */
-
diff --git a/configs/nucleus2g/src/lpc17_ssp.c b/configs/nucleus2g/src/lpc17_ssp.c
deleted file mode 100644
index ff950e3c30a..00000000000
--- a/configs/nucleus2g/src/lpc17_ssp.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/************************************************************************************
- * configs/nucleus2g/src/lpc17_ssp.c
- *
- * Copyright (C) 2010, 2013 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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.
- *
- ************************************************************************************/
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-
-#include "up_arch.h"
-#include "chip.h"
-#include "lpc17_gpio.h"
-#include "lpc17_ssp.h"
-#include "nucleus2g.h"
-
-#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1)
-
-/************************************************************************************
- * Pre-processor Definitions
- ************************************************************************************/
-
-/* Enables debug output from this file (needs CONFIG_DEBUG too) */
-
-#undef SSP_DEBUG /* Define to enable debug */
-#undef SSP_VERBOSE /* Define to enable verbose debug */
-
-#ifdef SSP_DEBUG
-# define sspdbg lldbg
-# ifdef SSP_VERBOSE
-# define sspvdbg lldbg
-# else
-# define sspvdbg(x...)
-# endif
-#else
-# undef SSP_VERBOSE
-# define sspdbg(x...)
-# define sspvdbg(x...)
-#endif
-
-/* Dump GPIO registers */
-
-#ifdef SSP_VERBOSE
-# define ssp_dumpgpio(m) lpc17_dumpgpio(SDCCS_GPIO, m)
-#else
-# define ssp_dumpgpio(m)
-#endif
-
-/************************************************************************************
- * Private Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Public Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Name: nucleus2g_sspdev_initialize
- *
- * Description:
- * Called to configure SPI chip select GPIO pins for the Nucleus 2G.
- *
- ************************************************************************************/
-
-void weak_function nucleus2g_sspdev_initialize(void)
-{
- /* Configure the SPI-based microSD CS GPIO */
-
- ssp_dumpgpio("nucleus2g_sspdev_initialize() Entry)");
-
- /* SSP0 connects only to the MMC/SD slot on the Nucleus 1G board.
- * P0[15]/TXD1/SCK0/SCK MMC_CLK
- * P0[16]/RXD1/SSEL0/SSEL MMC_CD
- * P0[17]/CTS1/MISO0/MISO MMC_DATA0
- * P0[18]/DCD1/MOSI0/MOSI MMC_MISO
- *
- * In SPI mode the MMC/SD DATA3/CD functions as the SPI chip select.
- */
-
-#ifdef CONFIG_LPC17_SSP0
- lpc17_configgpio(NUCLEUS2G_MMCSD_CS);
-#endif
-
- /* SSP1 goes off the Nucleus 2G board to the Babel CAN board along with 3 chip
- * select pins. However, it is currently not used on that board.
- */
-
-#ifdef CONFIG_LPC17_SSP1
-# warning "SSP1 chip selects not known"
-#endif
- ssp_dumpgpio("nucleus2g_sspdev_initialize() Exit");
-}
-
-/************************************************************************************
- * Name: lpc17_ssp0/ssp1select and lpc17_ssp0/ssp1status
- *
- * Description:
- * The external functions, lpc17_ssp0/ssp1select and lpc17_ssp0/ssp1status
- * must be provided by board-specific logic. They are implementations of the select
- * and status methods of the SPI interface defined by struct spi_ops_s (see
- * include/nuttx/spi/spi.h). All other methods (including lpc17_sspbus_initialize())
- * are provided by common LPC17xx logic. To use this common SPI logic on your
- * board:
- *
- * 1. Provide logic in lpc17_boardinitialize() to configure SPI/SSP chip select
- * pins.
- * 2. Provide lpc17_ssp0/ssp1select() and lpc17_ssp0/ssp1status() functions
- * in your board-specific logic. These functions will perform chip selection
- * and status operations using GPIOs in the way your board is configured.
- * 3. Add a calls to lpc17_sspbus_initialize() in your low level application
- * initialization logic
- * 4. The handle returned by lpc17_sspbus_initialize() may then be used to bind the
- * SPI driver to higher level logic (e.g., calling
- * mmcsd_spislotinitialize(), for example, will bind the SPI driver to
- * the SPI MMC/SD driver).
- *
- ************************************************************************************/
-
-#ifdef CONFIG_LPC17_SSP0
-void lpc17_ssp0select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
-{
- sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
- ssp_dumpgpio("lpc17_ssp0select() Entry");
-
- if (devid == SPIDEV_MMCSD)
- {
- /* Assert the CS pin to the card */
-
- lpc17_gpiowrite(NUCLEUS2G_MMCSD_CS, !selected);
- }
- ssp_dumpgpio("lpc17_ssp0select() Exit");
-}
-
-uint8_t lpc17_ssp0status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
-{
- sspdbg("Returning SPI_STATUS_PRESENT\n");
- return SPI_STATUS_PRESENT;
-}
-#endif
-
-#ifdef CONFIG_LPC17_SSP1
-# warning "SSP1 chip selects not known"
-#endif
-
-#endif /* CONFIG_LPC17_SSP0 || CONFIG_LPC17_SSP1 */
diff --git a/configs/nucleus2g/src/lpc17_usbmsc.c b/configs/nucleus2g/src/lpc17_usbmsc.c
deleted file mode 100644
index 5c1f1134a55..00000000000
--- a/configs/nucleus2g/src/lpc17_usbmsc.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
- * configs/nucleus2g/src/lpc17_usbmsc.c
- *
- * Copyright (C) 2010, 2013, 2016 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * Configure and register the LPC17xx MMC/SD SPI block driver.
- *
- * 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.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include
-
-#include
-#include
-#include
-
-#include
-#include
-#include
-
-#include "lpc17_ssp.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-#ifndef CONFIG_SYSTEM_USBMSC_DEVMINOR1
-# define CONFIG_SYSTEM_USBMSC_DEVMINOR1 0
-#endif
-
-/* PORT and SLOT number probably depend on the board configuration */
-
-#ifdef CONFIG_ARCH_BOARD_NUCLEUS2G
-# undef LPC17XX_MMCSDSPIPORTNO
-# define LPC17XX_MMCSDSPIPORTNO 1
-# undef LPC17XX_MMCSDSLOTNO
-# define LPC17XX_MMCSDSLOTNO 0
-#else
- /* Add configuration for new LPC17xx boards here */
-# error "Unrecognized LPC17xx board"
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: board_usbmsc_initialize
- *
- * Description:
- * Perform architecture specific initialization of the USB MSC device.
- *
- ****************************************************************************/
-
-int board_usbmsc_initialize(int port)
-{
- FAR struct spi_dev_s *spi;
- int ret;
-
- /* Get the SPI port */
-
- syslog(LOG_INFO, "Initializing SPI port %d\n",
- LPC17XX_MMCSDSPIPORTNO);
-
- spi = lpc17_sspbus_initialize(LPC17XX_MMCSDSPIPORTNO);
- if (!spi)
- {
- syslog(LOG_ERR, "ERROR: Failed to initialize SPI port %d\n",
- LPC17XX_MMCSDSPIPORTNO);
- return -ENODEV;
- }
-
- syslog(LOG_INFO, "Successfully initialized SPI port %d\n",
- LPC17XX_MMCSDSPIPORTNO);
-
- /* Bind the SPI port to the slot */
-
- syslog(LOG_INFO, "Binding SPI port %d to MMC/SD slot %d\n",
- LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO);
-
- ret = mmcsd_spislotinitialize(CONFIG_SYSTEM_USBMSC_DEVMINOR1,
- LPC17XX_MMCSDSLOTNO, spi);
- if (ret < 0)
- {
- syslog(LOG_ERR,
- "ERROR: Failed to bind SPI port %d to MMC/SD slot %d: %d\n",
- LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO, ret);
- return ret;
- }
-
- syslog(LOG_INFO, "Successfully bound SPI port %d to MMC/SD slot %d\n",
- LPC17XX_MMCSDSPIPORTNO, LPC17XX_MMCSDSLOTNO);
- return OK;
-}
diff --git a/configs/nucleus2g/src/nucleus2g.h b/configs/nucleus2g/src/nucleus2g.h
deleted file mode 100644
index 74c5db3d731..00000000000
--- a/configs/nucleus2g/src/nucleus2g.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/************************************************************************************
- * configs/nucleus2g/src/nucleus2g.h
- *
- * Copyright (C) 2010, 2012 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
- *
- * 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 _CONFIGS_NUCLEUS2G_SRC_NUCLEUS2G_H
-#define _CONFIGS_NUCLEUS2G_SRC_NUCLEUS2G_H
-
-/************************************************************************************
- * Included Files
- ************************************************************************************/
-
-#include
-#include
-
-/************************************************************************************
- * Pre-processor Definitions
- ************************************************************************************/
-
-/* NUCLEUS-2G GPIO Pin Definitions **************************************************/
-/* Board GPIO Usage:
- *
- * P0[0]/RD1/TXD3/SDA1 P0[0]/CAN_RX1
- * P0[1]/TD1/RXD3/SCL P0[1]/CAN_TX1
- * P0[2]/TXD0/AD0[7] TX0
- * P0[3]/RXD0/AD0[6] RX0
- * P0[4] P0[4]/CAN1_STB
- * P0[5] P0[5]/CAN2_STB
- * P0[6]/I2SRX_SDA/SSEL1/MAT2[0] GPI/O_CS1
- * P0[7]/I2STX_CLK/SCK1/MAT2[1] SCLK1
- * P0[8]/I2STX_WS/MISO1/MAT2[2] MISO1
- * P0[9]/I2STX_SDA/MOSI1/MAT2[3] MOSI1
- * P0[10] P0[10]/CAN1_TERM
- * P0[11] P0[11]/CAN2_TERM
- * P0[15]/TXD1/SCK0/SCK MMC_CLK
- * P0[16]/RXD1/SSEL0/SSEL MMC_CD
- * P0[17]/CTS1/MISO0/MISO MMC_DATA0
- * P0[18]/DCD1/MOSI0/MOSI MMC_MISO
- * P0[19]/DSR1/SDA1 GPI/O_CS2
- * P0[20]/DTR1/SCL1 GPI/O_CS3
- * P0[21]/RI1/MCIPWR/RD1 P0[21]
- * P0[22]/RTS1/TD1 P0[22]
- * P0[23]/AD0[0]/I2SRX_CLK/CAP3[0] AD0
- * P0[24]/AD0[1]/I2SRX_WS/CAP3[1] AD1
- * P0[25]/AD0[2]/I2SRX_SDA/TXD3 AD2
- * P0[26]/AD0[3]/AOUT/RXD3 AD3
- * P0[27]/SDA0/USB_SDA SDA
- * P0[28]/SCL0 SCL
- * P0[29]/USB_D+ USB+
- * P0[30]/USB_D- USB-
- *
- * P1[0] - P1[17] Not connected
- * P1[18]/USB_UP_LED/PWM1[1]/CAP1[0] USB_LINK
- * P1[19]-P[29] P[19]-P[29]
- * P1[30]/VBUS/AD0[4] USB_+5
- * P1[31]/SCK1/AD0[5] AD5
- *
- * P2[0] P2[0]/LED1_A
- * P2[1] P2[1]/LED1_B
- * P2[2] P2[2]/LED2_A
- * P2[3] P2[3]/LED2_B
- * P2[4] P2[4]
- * P2[5]/PWM1[6]/DTR1/TRACEDATA[0] 232_POWERAVE
- * P2[6]/PCAP1[0]/RI1/TRACECLK 232_VALID
- * P2[7]/RD2/RTS1 P2[7]/CAN_RX2
- * P2[8]/TD2/TXD2 P2[8]/CAN_TX2
- * P2[9]/USB_CONNECT/RXD2 USB_CONNECT
- * P2[10]/EINT0/NMI BOOTLOADER
- * P2[11]/EINT1/I2STX_CLK HEARTBEAT
- * P2[12]/EINT2/I2STX_WS EXTRA_LED
- * P2[13]/EINT3/I2STX_SDA 5V_ENABLE
- *
- * P3[25]-P3[26] Not connected
- *
- * P4[28]-P4[29] P4[28]-P4[29]
- */
-
-#define NUCLEUS2G_LED1_A (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN0)
-#define NUCLEUS2G_LED1_B (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN1)
-#define NUCLEUS2G_LED2_A (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN2)
-#define NUCLEUS2G_LED2_B (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN3)
-#define NUCLEUS2G_232_ENABLE (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT2 | GPIO_PIN5)
-#define NUCLEUS2G_232_POWERSAVE (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN5)
-#define NUCLEUS2G_232_VALID (GPIO_INPUT | GPIO_PULLUP | GPIO_PORT2 | GPIO_PIN5)
-#define NUCLEUS2G_HEARTBEAT (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT2 | GPIO_PIN11)
-#define NUCLEUS2G_EXTRA_LED (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN12)
-#define NUCLEUS2G_5V_ENABLE (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT2 | GPIO_PIN13)
-#define NUCLEUS2G_5V_DISABLE (GPIO_OUTPUT | GPIO_VALUE_ZERO | GPIO_PORT2 | GPIO_PIN13)
-
-#define NUCLEUS2G_MMCSD_CS (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT0 | GPIO_PIN16)
-
-#define NUCLEUS_BMS_RELAY1 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN20)
-#define NUCLEUS_BMS_RELAY2 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN21)
-#define NUCLEUS_BMS_RELAY3 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN22)
-#define NUCLEUS_BMS_RELAY4 (GPIO_OUTPUT | GPIO_VALUE_ONE | GPIO_PORT1 | GPIO_PIN23)
-
-/************************************************************************************
- * Public Types
- ************************************************************************************/
-
-/************************************************************************************
- * Public data
- ************************************************************************************/
-
-#ifndef __ASSEMBLY__
-
-/************************************************************************************
- * Public Functions
- ************************************************************************************/
-
-/************************************************************************************
- * Name: nucleus2g_sspdev_initialize
- *
- * Description:
- * Called to configure SPI chip select GPIO pins for the NUCLEUS-2G board.
- *
- ************************************************************************************/
-
-void weak_function nucleus2g_sspdev_initialize(void);
-
-void up_relayinit(void);
-
-#endif /* __ASSEMBLY__ */
-#endif /* _CONFIGS_NUCLEUS2G_SRC_NUCLEUS2G_H */
-
diff --git a/configs/nucleus2g/tools/olimex-tiny.cfg b/configs/nucleus2g/tools/olimex-tiny.cfg
deleted file mode 100644
index 03d3ac6bc0c..00000000000
--- a/configs/nucleus2g/tools/olimex-tiny.cfg
+++ /dev/null
@@ -1,61 +0,0 @@
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "Olimex OpenOCD JTAG ARM-USB-TINY-H"
-ft2232_layout "olimex-jtag"
-ft2232_vid_pid 0x15ba 0x002a
-
-# NXP LPC1768 Cortex-M3 with 512kB Flash and 32kB+32kB Local On-Chip SRAM, clocked with 4MHz internal RC oscillator
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME lpc1768
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- set _ENDIAN little
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- set _CPUTAPID 0x4ba00477
-}
-
-#delays on reset lines
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-# LPC2000 & LPC1700 -> SRST causes TRST
-reset_config trst_and_srst srst_pulls_trst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME
-
-# LPC1768 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
-$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size 0x8000 -work-area-backup 0
-
-# REVISIT is there any good reason to have this reset-init event handler??
-# Normally they should set up (board-specific) clocking then probe the flash...
-$_TARGETNAME configure -event reset-init {
- # Force NVIC.VTOR to point to flash at 0 ...
- # WHY? This is it's reset value; we run right after reset!!
- mwb 0xE000ED08 0x00
-}
-
-# LPC1768 has 512kB of user-available FLASH (bootloader is located in separate dedicated region).
-# flash bank lpc1700 0 0 [calc_checksum]
-
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 80000 calc_checksum
-
-# 4MHz / 6 = 666kHz, so use 500
-jtag_khz 500
diff --git a/configs/nucleus2g/tools/olimex.cfg b/configs/nucleus2g/tools/olimex.cfg
deleted file mode 100644
index 8183ffd922f..00000000000
--- a/configs/nucleus2g/tools/olimex.cfg
+++ /dev/null
@@ -1,62 +0,0 @@
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "Olimex OpenOCD JTAG A"
-ft2232_layout "olimex-jtag"
-ft2232_vid_pid 0x15BA 0x0003
-
-# NXP LPC1768 Cortex-M3 with 512kB Flash and 32kB+32kB Local On-Chip SRAM, clocked with 4MHz internal RC oscillator
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME lpc1768
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- set _ENDIAN little
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- set _CPUTAPID 0x4ba00477
-}
-
-#delays on reset lines
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-# LPC2000 & LPC1700 -> SRST causes TRST
-reset_config trst_and_srst srst_pulls_trst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME
-
-# LPC1768 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
-$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size 0x8000 -work-area-backup 0
-
-# REVISIT is there any good reason to have this reset-init event handler??
-# Normally they should set up (board-specific) clocking then probe the flash...
-$_TARGETNAME configure -event reset-init {
- # Force NVIC.VTOR to point to flash at 0 ...
- # WHY? This is it's reset value; we run right after reset!!
- mwb 0xE000ED08 0x00
-}
-
-# LPC1768 has 512kB of user-available FLASH (bootloader is located in separate dedicated region).
-# flash bank lpc1700 0 0 [calc_checksum]
-
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 80000 calc_checksum
-
-# 4MHz / 6 = 666kHz, so use 500
-jtag_khz 100
-
diff --git a/configs/nucleus2g/tools/oocd.sh b/configs/nucleus2g/tools/oocd.sh
deleted file mode 100755
index 23bc9670316..00000000000
--- a/configs/nucleus2g/tools/oocd.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-TOPDIR=$1
-CFGFILE=$2
-USAGE="$0 [-d]"
-
-if [ -z "${TOPDIR}" ]; then
- echo "Missing argument"
- echo $USAGE
- exit 1
-fi
-
-if [ -z "${CFGFILE}" ]; then
- echo "Using olimex.cfg"
- CFGFILE=olimex.cfg
-fi
-
-OPENOCD_PATH="/cygdrive/c/OpenOCD/openocd-0.4.0/src"
-OPENOCD_EXE=openocd.exe
-OPENOCD_CFG="${TOPDIR}/configs/nucleus2g/tools/${CFGFILE}"
-OPENOCD_ARGS="-f `cygpath -w ${OPENOCD_CFG}`"
-
-if [ "X$2" = "X-d" ]; then
- OPENOCD_ARGS=$OPENOCD_ARGS" -d3"
- set -x
-fi
-
-if [ ! -d ${OPENOCD_PATH} ]; then
- echo "OpenOCD path does not exist: ${OPENOCD_PATH}"
- exit 1
-fi
-if [ ! -x ${OPENOCD_PATH}/${OPENOCD_EXE} ]; then
- echo "OpenOCD does not exist: ${OPENOCD_PATH}/${OPENOCD_EXE}"
- exit 1
-fi
-if [ ! -f ${OPENOCD_CFG} ]; then
- echo "OpenOCD config file does not exist: ${OPENOCD_CFG}"
- exit 1
-fi
-
-echo "Starting OpenOCD"
-${OPENOCD_PATH}/${OPENOCD_EXE} ${OPENOCD_ARGS} &
-echo "OpenOCD daemon started"
-ps -ef | grep openocd
-echo "In GDB: target remote localhost:3333"
-
-
-
-
diff --git a/configs/nucleus2g/tools/scarab.cfg b/configs/nucleus2g/tools/scarab.cfg
deleted file mode 100644
index a94c6071a21..00000000000
--- a/configs/nucleus2g/tools/scarab.cfg
+++ /dev/null
@@ -1,63 +0,0 @@
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "usbScarab A"
-ft2232_layout "olimex-jtag"
-ft2232_vid_pid 0x0403 0xbbe0
-
-# NXP LPC1768 Cortex-M3 with 512kB Flash and 32kB+32kB Local On-Chip SRAM, clocked with 4MHz internal RC oscillator
-
-if { [info exists CHIPNAME] } {
- set _CHIPNAME $CHIPNAME
-} else {
- set _CHIPNAME lpc1768
-}
-
-if { [info exists ENDIAN] } {
- set _ENDIAN $ENDIAN
-} else {
- set _ENDIAN little
-}
-
-if { [info exists CPUTAPID ] } {
- set _CPUTAPID $CPUTAPID
-} else {
- set _CPUTAPID 0x4ba00477
-}
-
-#delays on reset lines
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-# LPC2000 & LPC1700 -> SRST causes TRST
-reset_config trst_and_srst srst_pulls_trst
-
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
-
-set _TARGETNAME $_CHIPNAME.cpu
-target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME
-
-# LPC1768 has 32kB of SRAM on its main system bus (so-called Local On-Chip SRAM)
-$_TARGETNAME configure -work-area-phys 0x10000000 -work-area-size 0x8000 -work-area-backup 0
-
-# REVISIT is there any good reason to have this reset-init event handler??
-# Normally they should set up (board-specific) clocking then probe the flash...
-$_TARGETNAME configure -event reset-init {
- # Force NVIC.VTOR to point to flash at 0 ...
- # WHY? This is it's reset value; we run right after reset!!
- mwb 0xE000ED08 0x00
-}
-
-# LPC1768 has 512kB of user-available FLASH (bootloader is located in separate dedicated region).
-# flash bank lpc1700 0 0 [calc_checksum]
-
-set _FLASHNAME $_CHIPNAME.flash
-flash bank $_FLASHNAME lpc2000 0x0 0x80000 0 0 $_TARGETNAME lpc1700 80000 calc_checksum
-
-# 4MHz / 6 = 666kHz, so use 500
-jtag_khz 100
-#jtag_rclk 1000
-
diff --git a/configs/nucleus2g/tools/usb-driver.txt b/configs/nucleus2g/tools/usb-driver.txt
deleted file mode 100644
index 83d7598a556..00000000000
--- a/configs/nucleus2g/tools/usb-driver.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-https://www.olimex.com/dev/pdf/ARM/JTAG/Repair%20Procedure%20for%20OpenOcd-Rev.%20G%20drivers.pdf
-
-Repair procedure for ARM-USB-OCD drivers
-
-1. Uninstalling ARM-USB-OCD drivers
--------------------------------------
-1.1. Connect your programmer/debugger to your computer, open Device Manager
- and uninstall the drivers for ARM-USB-OCD.
-1.2. After you have uninstalled ARM-USB-TINY driver from Device Manager,
- disconnect the programmer from your computer.
-1.3. Now you should download FTClean.exe from here:
- http://www.ftdichip.com/Support/Utilities/FTClean.zip.
-1.4. After download is complete extract the "*.zip" file, open folder FTClean,
- and run FTClean.exe
-1.5. Ror VID (Hex) select "Other". And after that fill the first box with 15ba
- and "PID (Hex)" with 0004.
-1.6. Press "Clean System" button. Make sure that all FTDI devices are
- disconnected. (My require administrator privileges).
-
-2. Re-installing the ARM-USB-OCD driver
----------------------------------------
-2.1 Connect the programmer/debugger to the computer.
-2.2 When prompted, browse to the C:\gccfd\DRIVERS\ARM-USB-OCD-DRIVER
- directory and install. (A different driver is required for OpenOCD
- 0.4.0. That driver is available from the olimex.com web site).
diff --git a/configs/nucleus2g/usbmsc/Make.defs b/configs/nucleus2g/usbmsc/Make.defs
deleted file mode 100644
index fced4554e86..00000000000
--- a/configs/nucleus2g/usbmsc/Make.defs
+++ /dev/null
@@ -1,111 +0,0 @@
-############################################################################
-# configs/nucleus2g/usbmsc/Make.defs
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-############################################################################
-
-include ${TOPDIR}/.config
-include ${TOPDIR}/tools/Config.mk
-include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
-
-ifeq ($(WINTOOL),y)
- # Windows-native toolchains
- DIRLINK = $(TOPDIR)/tools/copydir.sh
- DIRUNLINK = $(TOPDIR)/tools/unlink.sh
- MKDEP = $(TOPDIR)/tools/mkwindeps.sh
- ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
- ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
- ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
-else
- # Linux/Cygwin-native toolchain
- MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
- ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
- ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
- ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
-endif
-
-CC = $(CROSSDEV)gcc
-CXX = $(CROSSDEV)g++
-CPP = $(CROSSDEV)gcc -E
-LD = $(CROSSDEV)ld
-AR = $(CROSSDEV)ar rcs
-NM = $(CROSSDEV)nm
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-
-ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
-ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHDEFINES =
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-ASMEXT = .S
-OBJEXT = .o
-LIBEXT = .a
-EXEEXT =
-
-ifneq ($(CROSSDEV),arm-nuttx-elf-)
- LDFLAGS += -nostartfiles -nodefaultlibs
-endif
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
-
-
-HOSTCC = gcc
-HOSTINCLUDES = -I.
-HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
-HOSTLDFLAGS =
-
diff --git a/configs/nucleus2g/usbmsc/defconfig b/configs/nucleus2g/usbmsc/defconfig
deleted file mode 100644
index b8e5177c6d3..00000000000
--- a/configs/nucleus2g/usbmsc/defconfig
+++ /dev/null
@@ -1,779 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Nuttx/ Configuration
-#
-
-#
-# Build Setup
-#
-# CONFIG_EXPERIMENTAL is not set
-# CONFIG_DEFAULT_SMALL 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
-#
-# CONFIG_APPS_DIR="../apps"
-CONFIG_BUILD_FLAT=y
-# CONFIG_BUILD_2PASS is not set
-
-#
-# Binary Output Formats
-#
-# CONFIG_RRLOAD_BINARY is not set
-CONFIG_INTELHEX_BINARY=y
-# CONFIG_MOTOROLA_SREC is not set
-# CONFIG_RAW_BINARY is not set
-# CONFIG_UBOOT_UIMAGE is not set
-
-#
-# Customize Header Files
-#
-# CONFIG_ARCH_STDINT_H is not set
-# 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_ARCH_HAVE_HEAPCHECK is not set
-CONFIG_ARCH_HAVE_STACKCHECK=y
-# CONFIG_STACK_COLORATION is not set
-# CONFIG_DEBUG_SYMBOLS is not set
-CONFIG_ARCH_HAVE_CUSTOMOPT=y
-# CONFIG_DEBUG_NOOPT is not set
-# CONFIG_DEBUG_CUSTOMOPT is not set
-CONFIG_DEBUG_FULLOPT=y
-
-#
-# System Type
-#
-CONFIG_ARCH_ARM=y
-# 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 is not set
-# CONFIG_ARCH_X86 is not set
-# CONFIG_ARCH_Z16 is not set
-# CONFIG_ARCH_Z80 is not set
-CONFIG_ARCH="arm"
-
-#
-# ARM Options
-#
-# CONFIG_ARCH_CHIP_A1X is not set
-# CONFIG_ARCH_CHIP_C5471 is not set
-# CONFIG_ARCH_CHIP_CALYPSO is not set
-# CONFIG_ARCH_CHIP_DM320 is not set
-# CONFIG_ARCH_CHIP_EFM32 is not set
-# CONFIG_ARCH_CHIP_IMX1 is not set
-# CONFIG_ARCH_CHIP_KINETIS is not set
-# CONFIG_ARCH_CHIP_KL is not set
-# CONFIG_ARCH_CHIP_LM is not set
-# CONFIG_ARCH_CHIP_TIVA is not set
-# CONFIG_ARCH_CHIP_LPC11XX is not set
-CONFIG_ARCH_CHIP_LPC17XX=y
-# CONFIG_ARCH_CHIP_LPC214X is not set
-# CONFIG_ARCH_CHIP_LPC2378 is not set
-# CONFIG_ARCH_CHIP_LPC31XX is not set
-# CONFIG_ARCH_CHIP_LPC43XX is not set
-# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAMA5 is not set
-# CONFIG_ARCH_CHIP_SAMD is not set
-# CONFIG_ARCH_CHIP_SAML is not set
-# CONFIG_ARCH_CHIP_SAM34 is not set
-# CONFIG_ARCH_CHIP_SAMV7 is not set
-# CONFIG_ARCH_CHIP_STM32 is not set
-# CONFIG_ARCH_CHIP_STR71X is not set
-# CONFIG_ARCH_ARM7TDMI is not set
-# CONFIG_ARCH_ARM926EJS is not set
-# CONFIG_ARCH_ARM920T is not set
-# CONFIG_ARCH_CORTEXM0 is not set
-CONFIG_ARCH_CORTEXM3=y
-# CONFIG_ARCH_CORTEXM4 is not set
-# CONFIG_ARCH_CORTEXM7 is not set
-# CONFIG_ARCH_CORTEXA5 is not set
-# CONFIG_ARCH_CORTEXA8 is not set
-CONFIG_ARCH_FAMILY="armv7-m"
-CONFIG_ARCH_CHIP="lpc17xx"
-# CONFIG_ARMV7M_USEBASEPRI is not set
-CONFIG_ARCH_HAVE_CMNVECTOR=y
-# CONFIG_ARMV7M_CMNVECTOR is not set
-# CONFIG_ARMV7M_LAZYFPU is not set
-# CONFIG_ARCH_HAVE_FPU is not set
-# CONFIG_ARCH_HAVE_DPFPU is not set
-# CONFIG_ARM_MPU is not set
-
-#
-# ARMV7M Configuration Options
-#
-# CONFIG_ARMV7M_HAVE_ICACHE is not set
-# CONFIG_ARMV7M_HAVE_DCACHE is not set
-# CONFIG_ARMV7M_HAVE_ITCM is not set
-# CONFIG_ARMV7M_HAVE_DTCM is not set
-# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
-CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y
-# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
-# CONFIG_ARMV7M_HAVE_STACKCHECK is not set
-# CONFIG_ARMV7M_ITMSYSLOG is not set
-# CONFIG_GPIO_IRQ is not set
-# CONFIG_SERIAL_TERMIOS is not set
-
-#
-# LPC17xx Configuration Options
-#
-# CONFIG_ARCH_CHIP_LPC1751 is not set
-# CONFIG_ARCH_CHIP_LPC1752 is not set
-# CONFIG_ARCH_CHIP_LPC1754 is not set
-# CONFIG_ARCH_CHIP_LPC1756 is not set
-# CONFIG_ARCH_CHIP_LPC1758 is not set
-# CONFIG_ARCH_CHIP_LPC1759 is not set
-# CONFIG_ARCH_CHIP_LPC1764 is not set
-# CONFIG_ARCH_CHIP_LPC1765 is not set
-# CONFIG_ARCH_CHIP_LPC1766 is not set
-# CONFIG_ARCH_CHIP_LPC1767 is not set
-CONFIG_ARCH_CHIP_LPC1768=y
-# CONFIG_ARCH_CHIP_LPC1769 is not set
-# CONFIG_ARCH_CHIP_LPC1773 is not set
-# CONFIG_ARCH_CHIP_LPC1774 is not set
-# CONFIG_ARCH_CHIP_LPC1776 is not set
-# CONFIG_ARCH_CHIP_LPC1777 is not set
-# CONFIG_ARCH_CHIP_LPC1778 is not set
-# CONFIG_ARCH_CHIP_LPC1785 is not set
-# CONFIG_ARCH_CHIP_LPC1786 is not set
-# CONFIG_ARCH_CHIP_LPC1787 is not set
-# CONFIG_ARCH_CHIP_LPC1788 is not set
-CONFIG_ARCH_FAMILY_LPC176X=y
-
-#
-# LPC17xx Peripheral Support
-#
-CONFIG_LPC17_MAINOSC=y
-CONFIG_LPC17_PLL0=y
-CONFIG_LPC17_PLL1=y
-# CONFIG_LPC17_ETHERNET is not set
-# CONFIG_LPC17_USBHOST is not set
-# CONFIG_LPC17_USBDEV is not set
-CONFIG_LPC17_UART0=y
-# CONFIG_LPC17_UART1 is not set
-# CONFIG_LPC17_UART2 is not set
-# CONFIG_LPC17_UART3 is not set
-# CONFIG_LPC17_UART4 is not set
-# CONFIG_LPC17_CAN1 is not set
-# CONFIG_LPC17_CAN2 is not set
-# CONFIG_LPC17_SPI is not set
-CONFIG_LPC17_SSP0=y
-# CONFIG_LPC17_SSP1 is not set
-# CONFIG_LPC17_I2C0 is not set
-# CONFIG_LPC17_I2C1 is not set
-# CONFIG_LPC17_I2C2 is not set
-# CONFIG_LPC17_I2S is not set
-# CONFIG_LPC17_TMR0 is not set
-# CONFIG_LPC17_TMR1 is not set
-# CONFIG_LPC17_TMR2 is not set
-# CONFIG_LPC17_TMR3 is not set
-# CONFIG_LPC17_RIT is not set
-# CONFIG_LPC17_PWM0 is not set
-# CONFIG_LPC17_PWM1 is not set
-# CONFIG_LPC17_MCPWM is not set
-# CONFIG_LPC17_QEI is not set
-# CONFIG_LPC17_RTC is not set
-# CONFIG_LPC17_WDT is not set
-# CONFIG_LPC17_ADC is not set
-# CONFIG_LPC17_DAC is not set
-# CONFIG_LPC17_GPDMA is not set
-# CONFIG_LPC17_FLASH is not set
-
-#
-# External Memory Configuration
-#
-
-#
-# Serial driver options
-#
-
-#
-# Architecture Options
-#
-# CONFIG_ARCH_NOINTC is not set
-# CONFIG_ARCH_VECNOTIRQ is not set
-# CONFIG_ARCH_DMA is not set
-CONFIG_ARCH_HAVE_IRQPRIO=y
-# CONFIG_ARCH_L2CACHE is not set
-# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
-# CONFIG_ARCH_HAVE_ADDRENV is not set
-# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
-CONFIG_ARCH_HAVE_VFORK=y
-# CONFIG_ARCH_HAVE_MMU is not set
-CONFIG_ARCH_HAVE_MPU=y
-# CONFIG_ARCH_NAND_HWECC is not set
-# CONFIG_ARCH_HAVE_EXTCLK is not set
-# CONFIG_ARCH_USE_MPU is not set
-# CONFIG_ARCH_IRQPRIO is not set
-CONFIG_ARCH_STACKDUMP=y
-# CONFIG_ENDIAN_BIG is not set
-# CONFIG_ARCH_IDLE_CUSTOM is not set
-# CONFIG_ARCH_HAVE_RAMFUNCS is not set
-CONFIG_ARCH_HAVE_RAMVECTORS=y
-# CONFIG_ARCH_RAMVECTORS is not set
-
-#
-# Board Settings
-#
-CONFIG_BOARD_LOOPSPERMSEC=7982
-# CONFIG_ARCH_CALIBRATION is not set
-
-#
-# Interrupt options
-#
-CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-CONFIG_ARCH_INTERRUPTSTACK=0
-CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
-# CONFIG_ARCH_HIPRI_INTERRUPT is not set
-
-#
-# 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
-
-#
-# Boot Memory Configuration
-#
-CONFIG_RAM_START=0x10000000
-CONFIG_RAM_SIZE=32768
-# CONFIG_ARCH_HAVE_SDRAM is not set
-
-#
-# Board Selection
-#
-# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
-# CONFIG_ARCH_BOARD_MBED is not set
-CONFIG_ARCH_BOARD_NUCLEUS2G=y
-# CONFIG_ARCH_BOARD_ZKITARM is not set
-# CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="nucleus2g"
-
-#
-# Common Board Options
-#
-CONFIG_ARCH_HAVE_LEDS=y
-CONFIG_ARCH_LEDS=y
-
-#
-# Board-Specific Options
-#
-CONFIG_LIB_BOARDCTL=y
-CONFIG_BOARDCTL_USBDEVCTRL=y
-
-#
-# RTOS Features
-#
-CONFIG_DISABLE_OS_API=y
-# CONFIG_DISABLE_POSIX_TIMERS is not set
-# CONFIG_DISABLE_PTHREAD is not set
-# CONFIG_DISABLE_SIGNALS is not set
-# CONFIG_DISABLE_MQUEUE is not set
-# CONFIG_DISABLE_ENVIRON is not set
-
-#
-# Clocks and Timers
-#
-CONFIG_USEC_PER_TICK=10000
-# CONFIG_SYSTEM_TIME64 is not set
-# CONFIG_CLOCK_MONOTONIC is not set
-# CONFIG_JULIAN_TIME is not set
-CONFIG_START_YEAR=2010
-CONFIG_START_MONTH=7
-CONFIG_START_DAY=15
-CONFIG_MAX_WDOGPARMS=2
-CONFIG_PREALLOC_WDOGS=8
-CONFIG_WDOG_INTRESERVE=1
-CONFIG_PREALLOC_TIMERS=4
-
-#
-# Tasks and Scheduling
-#
-# CONFIG_INIT_NONE is not set
-CONFIG_INIT_ENTRYPOINT=y
-# CONFIG_INIT_FILEPATH is not set
-CONFIG_USER_ENTRYPOINT="msconn_main"
-CONFIG_RR_INTERVAL=200
-CONFIG_TASK_NAME_SIZE=0
-CONFIG_MAX_TASKS=16
-# CONFIG_SCHED_HAVE_PARENT is not set
-# CONFIG_SCHED_WAITPID is not set
-
-#
-# Pthread Options
-#
-# CONFIG_MUTEX_TYPES is not set
-CONFIG_NPTHREAD_KEYS=4
-
-#
-# Performance Monitoring
-#
-# CONFIG_SCHED_CPULOAD is not set
-# CONFIG_SCHED_INSTRUMENTATION is not set
-
-#
-# Files and I/O
-#
-CONFIG_DEV_CONSOLE=y
-# CONFIG_FDCLONE_DISABLE is not set
-# CONFIG_FDCLONE_STDIO is not set
-CONFIG_SDCLONE_DISABLE=y
-CONFIG_NFILE_DESCRIPTORS=8
-CONFIG_NFILE_STREAMS=8
-CONFIG_NAME_MAX=32
-# CONFIG_PRIORITY_INHERITANCE is not set
-
-#
-# RTOS hooks
-#
-# CONFIG_BOARD_INITIALIZE is not set
-# CONFIG_SCHED_STARTHOOK is not set
-# CONFIG_SCHED_ATEXIT is not set
-# CONFIG_SCHED_ONEXIT is not set
-
-#
-# Signal Numbers
-#
-CONFIG_SIG_SIGUSR1=1
-CONFIG_SIG_SIGUSR2=2
-CONFIG_SIG_SIGALARM=3
-CONFIG_SIG_SIGCONDTIMEDOUT=16
-
-#
-# POSIX Message Queue Options
-#
-CONFIG_PREALLOC_MQ_MSGS=4
-CONFIG_MQ_MAXMSGSIZE=32
-
-#
-# Work Queue Support
-#
-# CONFIG_SCHED_WORKQUEUE is not set
-# CONFIG_SCHED_HPWORK is not set
-# CONFIG_SCHED_LPWORK is not set
-
-#
-# Stack and heap information
-#
-CONFIG_IDLETHREAD_STACKSIZE=1024
-CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PTHREAD_STACK_MIN=256
-CONFIG_PTHREAD_STACK_DEFAULT=2048
-# CONFIG_LIB_SYSCALL is not set
-
-#
-# Device Drivers
-#
-CONFIG_DISABLE_POLL=y
-CONFIG_DEV_NULL=y
-# CONFIG_DEV_ZERO is not set
-# CONFIG_DEV_LOOP is not set
-
-#
-# Buffering
-#
-# CONFIG_DRVR_WRITEBUFFER is not set
-# CONFIG_DRVR_READAHEAD is not set
-# CONFIG_RAMDISK is not set
-# CONFIG_CAN is not set
-# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
-# CONFIG_PWM is not set
-# CONFIG_ARCH_HAVE_I2CRESET is not set
-# CONFIG_I2C is not set
-CONFIG_SPI=y
-# CONFIG_SPI_EXCHANGE is not set
-# CONFIG_SPI_CMDDATA is not set
-# CONFIG_SPI_CALLBACK is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_I2S is not set
-
-#
-# Timer Driver Support
-#
-# CONFIG_TIMER is not set
-# CONFIG_RTC is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_ANALOG is not set
-# CONFIG_AUDIO_DEVICES is not set
-# CONFIG_VIDEO_DEVICES is not set
-# CONFIG_BCH is not set
-# CONFIG_INPUT is not set
-# CONFIG_LCD is not set
-CONFIG_MMCSD=y
-CONFIG_MMCSD_NSLOTS=1
-# CONFIG_MMCSD_READONLY is not set
-# CONFIG_MMCSD_MULTIBLOCK_DISABLE is not set
-CONFIG_MMCSD_MMCSUPPORT=y
-CONFIG_MMCSD_HAVECARDDETECT=y
-CONFIG_MMCSD_SPI=y
-CONFIG_MMCSD_SPICLOCK=12500000
-CONFIG_MMCSD_SPIMODE=0
-# CONFIG_ARCH_HAVE_SDIO is not set
-# CONFIG_ARCH_HAVE_SDIOWAIT_WRCOMPLETE is not set
-# CONFIG_MTD is not set
-# CONFIG_EEPROM 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_ARCH_HAVE_UART is not set
-CONFIG_ARCH_HAVE_UART0=y
-# CONFIG_ARCH_HAVE_UART1 is not set
-# CONFIG_ARCH_HAVE_UART2 is not set
-# CONFIG_ARCH_HAVE_UART3 is not set
-# CONFIG_ARCH_HAVE_UART4 is not set
-# CONFIG_ARCH_HAVE_UART5 is not set
-# CONFIG_ARCH_HAVE_UART6 is not set
-# CONFIG_ARCH_HAVE_UART7 is not set
-# CONFIG_ARCH_HAVE_UART8 is not set
-# CONFIG_ARCH_HAVE_SCI0 is not set
-# CONFIG_ARCH_HAVE_SCI1 is not set
-# CONFIG_ARCH_HAVE_USART0 is not set
-# CONFIG_ARCH_HAVE_USART1 is not set
-# CONFIG_ARCH_HAVE_USART2 is not set
-# CONFIG_ARCH_HAVE_USART3 is not set
-# CONFIG_ARCH_HAVE_USART4 is not set
-# CONFIG_ARCH_HAVE_USART5 is not set
-# CONFIG_ARCH_HAVE_USART6 is not set
-# CONFIG_ARCH_HAVE_USART7 is not set
-# CONFIG_ARCH_HAVE_USART8 is not set
-# CONFIG_ARCH_HAVE_OTHER_UART is not set
-
-#
-# USART Configuration
-#
-CONFIG_MCU_SERIAL=y
-CONFIG_STANDARD_SERIAL=y
-# CONFIG_SERIAL_IFLOWCONTROL is not set
-# CONFIG_SERIAL_OFLOWCONTROL is not set
-CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
-CONFIG_UART0_SERIAL_CONSOLE=y
-# CONFIG_OTHER_SERIAL_CONSOLE is not set
-# CONFIG_NO_SERIAL_CONSOLE is not set
-
-#
-# UART0 Configuration
-#
-CONFIG_UART0_RXBUFSIZE=256
-CONFIG_UART0_TXBUFSIZE=256
-CONFIG_UART0_BAUD=115200
-CONFIG_UART0_BITS=8
-CONFIG_UART0_PARITY=0
-CONFIG_UART0_2STOP=0
-# CONFIG_UART0_IFLOWCONTROL is not set
-# CONFIG_UART0_OFLOWCONTROL is not set
-CONFIG_USBDEV=y
-
-#
-# USB Device Controller Driver Options
-#
-# CONFIG_USBDEV_ISOCHRONOUS is not set
-# CONFIG_USBDEV_DUALSPEED is not set
-CONFIG_USBDEV_SELFPOWERED=y
-# CONFIG_USBDEV_BUSPOWERED is not set
-CONFIG_USBDEV_MAXPOWER=100
-# CONFIG_USBDEV_DMA is not set
-# CONFIG_ARCH_USBDEV_STALLQUEUE is not set
-# CONFIG_USBDEV_TRACE is not set
-
-#
-# USB Device Class Driver Options
-#
-# CONFIG_USBDEV_COMPOSITE is not set
-# CONFIG_PL2303 is not set
-# CONFIG_CDCACM is not set
-CONFIG_USBMSC=y
-CONFIG_USBMSC_EP0MAXPACKET=64
-CONFIG_USBMSC_EPBULKOUT=2
-CONFIG_USBMSC_EPBULKIN=5
-CONFIG_USBMSC_NWRREQS=2
-CONFIG_USBMSC_NRDREQS=2
-CONFIG_USBMSC_BULKINREQLEN=256
-CONFIG_USBMSC_BULKOUTREQLEN=256
-CONFIG_USBMSC_VENDORID=0x584e
-CONFIG_USBMSC_VENDORSTR="NuttX"
-CONFIG_USBMSC_PRODUCTID=0x5342
-CONFIG_USBMSC_PRODUCTSTR="USBdev Storage"
-CONFIG_USBMSC_VERSIONNO=0x0399
-CONFIG_USBMSC_REMOVABLE=y
-CONFIG_USBMSC_SCSI_PRIO=128
-CONFIG_USBMSC_SCSI_STACKSIZE=2048
-# CONFIG_USBHOST is not set
-# CONFIG_DRIVERS_WIRELESS is not set
-
-#
-# System Logging Device Options
-#
-
-#
-# System Logging
-#
-# CONFIG_RAMLOG is not set
-# CONFIG_SYSLOG_CONSOLE is not set
-
-#
-# Networking Support
-#
-# CONFIG_ARCH_HAVE_NET is not set
-# CONFIG_ARCH_HAVE_PHY is not set
-# CONFIG_NET is not set
-
-#
-# Crypto API
-#
-# CONFIG_CRYPTO is not set
-
-#
-# File Systems
-#
-
-#
-# File system configuration
-#
-# CONFIG_DISABLE_MOUNTPOINT is not set
-# CONFIG_FS_AUTOMOUNTER is not set
-# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
-CONFIG_FS_READABLE=y
-CONFIG_FS_WRITABLE=y
-# CONFIG_FS_NAMED_SEMAPHORES is not set
-CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
-# CONFIG_FS_RAMMAP is not set
-# CONFIG_FS_FAT is not set
-# CONFIG_FS_NXFFS is not set
-# CONFIG_FS_ROMFS is not set
-# CONFIG_FS_SMARTFS is not set
-# CONFIG_FS_PROCFS is not set
-# CONFIG_FS_UNIONFS is not set
-
-#
-# System Logging
-#
-# CONFIG_SYSLOG is not set
-# CONFIG_SYSLOG_TIMESTAMP is not set
-
-#
-# Graphics Support
-#
-# CONFIG_NX is not set
-
-#
-# Memory Management
-#
-# CONFIG_MM_SMALL is not set
-CONFIG_MM_REGIONS=2
-# CONFIG_ARCH_HAVE_HEAP2 is not set
-# CONFIG_GRAN is not set
-
-#
-# Audio Support
-#
-# CONFIG_AUDIO is not set
-
-#
-# Binary Loader
-#
-# CONFIG_BINFMT_DISABLE is not set
-# CONFIG_BINFMT_EXEPATH is not set
-# CONFIG_NXFLAT is not set
-# CONFIG_ELF is not set
-# CONFIG_BUILTIN is not set
-# CONFIG_PIC is not set
-# CONFIG_SYMTAB_ORDEREDBYNAME is not set
-
-#
-# Library Routines
-#
-
-#
-# Standard C Library Options
-#
-CONFIG_STDIO_BUFFER_SIZE=64
-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_LIBC_LONG_LONG=y
-# CONFIG_LIBC_IOCTL_VARIADIC is not set
-CONFIG_LIB_RAND_ORDER=1
-# 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_EXECFUNCS is not set
-CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
-CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
-# CONFIG_LIBC_STRERROR is not set
-# CONFIG_LIBC_PERROR_STDOUT is not set
-CONFIG_LIBC_TMPDIR="/tmp"
-CONFIG_LIBC_MAX_TMPFILE=32
-CONFIG_ARCH_LOWPUTC=y
-# CONFIG_LIBC_LOCALTIME is not set
-# CONFIG_TIME_EXTENDED is not set
-CONFIG_LIB_SENDFILE_BUFSIZE=512
-# CONFIG_ARCH_ROMGETC is not set
-# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
-
-#
-# Non-standard Library Support
-#
-# CONFIG_LIB_KBDCODEC is not set
-# CONFIG_LIB_SLCDCODEC is not set
-
-#
-# Basic CXX Support
-#
-# CONFIG_C99_BOOL8 is not set
-# CONFIG_HAVE_CXX is not set
-
-#
-# Application Configuration
-#
-
-#
-# Built-In Applications
-#
-
-#
-# Examples
-#
-# CONFIG_EXAMPLES_BUTTONS is not set
-# CONFIG_EXAMPLES_CAN is not set
-# CONFIG_EXAMPLES_CONFIGDATA is not set
-# CONFIG_EXAMPLES_CPUHOG 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_MM is not set
-# CONFIG_EXAMPLES_MODBUS is not set
-# CONFIG_EXAMPLES_MOUNT is not set
-# CONFIG_EXAMPLES_NRF24L01TERM is not set
-# CONFIG_EXAMPLES_NSH is not set
-# CONFIG_EXAMPLES_NULL is not set
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXTERM is not set
-# CONFIG_EXAMPLES_NXFFS 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_PIPE is not set
-# CONFIG_EXAMPLES_POLL is not set
-# CONFIG_EXAMPLES_PPPD is not set
-# CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_QENCODER is not set
-# CONFIG_EXAMPLES_RGMP is not set
-# CONFIG_EXAMPLES_SENDMAIL is not set
-# CONFIG_EXAMPLES_SERIALBLASTER is not set
-# CONFIG_EXAMPLES_SERIALRX is not set
-# CONFIG_EXAMPLES_SERLOOP is not set
-# CONFIG_EXAMPLES_SLCD is not set
-# CONFIG_EXAMPLES_SMART is not set
-# CONFIG_EXAMPLES_TCPECHO is not set
-# CONFIG_EXAMPLES_TELNETD is not set
-# CONFIG_EXAMPLES_TIFF is not set
-# CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_WEBSERVER is not set
-# CONFIG_EXAMPLES_USBSERIAL is not set
-# CONFIG_EXAMPLES_USBTERM is not set
-# CONFIG_EXAMPLES_WATCHDOG is not set
-
-#
-# Graphics Support
-#
-# CONFIG_TIFF is not set
-# CONFIG_GRAPHICS_TRAVELER is not set
-
-#
-# Interpreters
-#
-# CONFIG_INTERPRETERS_BAS is not set
-# CONFIG_INTERPRETERS_FICL is not set
-# CONFIG_INTERPRETERS_PCODE is not set
-# CONFIG_INTERPRETERS_MICROPYTHON is not set
-
-#
-# Network Utilities
-#
-
-#
-# Networking Utilities
-#
-# CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_SMTP is not set
-
-#
-# FreeModBus
-#
-# CONFIG_MODBUS is not set
-
-#
-# NSH Library
-#
-# CONFIG_NSH_LIBRARY is not set
-
-#
-# NxWidgets/NxWM
-#
-
-#
-# Platform-specific Support
-#
-# CONFIG_PLATFORM_CONFIGDATA is not set
-
-#
-# System Libraries and NSH Add-Ons
-#
-# CONFIG_SYSTEM_FREE is not set
-# CONFIG_SYSTEM_CLE is not set
-# CONFIG_SYSTEM_CUTERM is not set
-# CONFIG_SYSTEM_INSTALL is not set
-# CONFIG_SYSTEM_HEX2BIN is not set
-# CONFIG_FSUTILS_INIFILE is not set
-# CONFIG_SYSTEM_RAMTEST is not set
-# CONFIG_SYSTEM_READLINE is not set
-# CONFIG_SYSTEM_POWEROFF is not set
-# CONFIG_SYSTEM_SUDOKU is not set
-# CONFIG_SYSTEM_VI is not set
-CONFIG_SYSTEM_USBMSC=y
-CONFIG_SYSTEM_USBMSC_NLUNS=1
-CONFIG_SYSTEM_USBMSC_DEVMINOR1=0
-CONFIG_SYSTEM_USBMSC_DEVPATH1="/dev/mmcsd0"
-CONFIG_SYSTEM_USBMSC_DEVMINOR2=1
-CONFIG_SYSTEM_USBMSC_DEVPATH2="/dev/mmcsd1"
-CONFIG_SYSTEM_USBMSC_DEVMINOR3=2
-CONFIG_SYSTEM_USBMSC_DEVPATH3="/dev/mmcsd2"
-# CONFIG_SYSTEM_USBMSC_DEBUGMM is not set
-# CONFIG_SYSTEM_ZMODEM is not set
diff --git a/configs/nucleus2g/usbmsc/setenv.sh b/configs/nucleus2g/usbmsc/setenv.sh
deleted file mode 100755
index 30d3e55beff..00000000000
--- a/configs/nucleus2g/usbmsc/setenv.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# configs/nucleus2g/usbmsc/setenv.sh
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-
-if [ "$(basename $0)" = "setenv.sh" ] ; then
- echo "You must source this script, not run it!" 1>&2
- exit 1
-fi
-
-if [ -z "${PATH_ORIG}" ]; then export PATH_ORIG="${PATH}"; fi
-
-WD=`pwd`
-export LPCTOOL_DIR="${WD}/configs/nucleus2g/tools"
-export BUILDROOT_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
-export PATH="${BUILDROOT_BIN}:${LPCTOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
-
-echo "PATH : ${PATH}"
diff --git a/configs/nucleus2g/usbserial/Make.defs b/configs/nucleus2g/usbserial/Make.defs
deleted file mode 100644
index afbde5b8056..00000000000
--- a/configs/nucleus2g/usbserial/Make.defs
+++ /dev/null
@@ -1,111 +0,0 @@
-############################################################################
-# configs/nucleus2g/usbserial/Make.defs
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-############################################################################
-
-include ${TOPDIR}/.config
-include ${TOPDIR}/tools/Config.mk
-include ${TOPDIR}/arch/arm/src/armv7-m/Toolchain.defs
-
-ifeq ($(WINTOOL),y)
- # Windows-native toolchains
- DIRLINK = $(TOPDIR)/tools/copydir.sh
- DIRUNLINK = $(TOPDIR)/tools/unlink.sh
- MKDEP = $(TOPDIR)/tools/mkwindeps.sh
- ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
- ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
- ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script}"
-else
- # Linux/Cygwin-native toolchain
- MKDEP = $(TOPDIR)/tools/mkdeps$(HOSTEXEEXT)
- ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
- ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
- ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/ld.script
-endif
-
-CC = $(CROSSDEV)gcc
-CXX = $(CROSSDEV)g++
-CPP = $(CROSSDEV)gcc -E
-LD = $(CROSSDEV)ld
-AR = $(CROSSDEV)ar rcs
-NM = $(CROSSDEV)nm
-OBJCOPY = $(CROSSDEV)objcopy
-OBJDUMP = $(CROSSDEV)objdump
-
-ARCHCCVERSION = ${shell $(CC) -v 2>&1 | sed -n '/^gcc version/p' | sed -e 's/^gcc version \([0-9\.]\)/\1/g' -e 's/[-\ ].*//g' -e '1q'}
-ARCHCCMAJOR = ${shell echo $(ARCHCCVERSION) | cut -d'.' -f1}
-
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- ARCHOPTIMIZATION = -g
-endif
-
-ifneq ($(CONFIG_DEBUG_NOOPT),y)
- ARCHOPTIMIZATION += $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
-endif
-
-ARCHCFLAGS = -fno-builtin
-ARCHCXXFLAGS = -fno-builtin -fno-exceptions
-ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow -Wundef
-ARCHWARNINGSXX = -Wall -Wshadow -Wundef
-ARCHDEFINES =
-ARCHPICFLAGS = -fpic -msingle-pic-base -mpic-register=r10
-
-CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
-CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
-CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
-CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
-AFLAGS = $(CFLAGS) -D__ASSEMBLY__
-
-NXFLATLDFLAGS1 = -r -d -warn-common
-NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat-pcrel.ld -no-check-sections
-LDNXFLATFLAGS = -e main -s 2048
-
-ASMEXT = .S
-OBJEXT = .o
-LIBEXT = .a
-EXEEXT =
-
-ifneq ($(CROSSDEV),arm-nuttx-elf-)
- LDFLAGS += -nostartfiles -nodefaultlibs
-endif
-ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
- LDFLAGS += -g
-endif
-
-
-HOSTCC = gcc
-HOSTINCLUDES = -I.
-HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
-HOSTLDFLAGS =
-
diff --git a/configs/nucleus2g/usbserial/defconfig b/configs/nucleus2g/usbserial/defconfig
deleted file mode 100644
index 1d3e0f08f2b..00000000000
--- a/configs/nucleus2g/usbserial/defconfig
+++ /dev/null
@@ -1,816 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Nuttx/ Configuration
-#
-
-#
-# Build Setup
-#
-# CONFIG_EXPERIMENTAL is not set
-# CONFIG_DEFAULT_SMALL 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
-#
-# CONFIG_APPS_DIR="../apps"
-CONFIG_BUILD_FLAT=y
-# CONFIG_BUILD_2PASS is not set
-
-#
-# Binary Output Formats
-#
-# CONFIG_RRLOAD_BINARY is not set
-CONFIG_INTELHEX_BINARY=y
-# CONFIG_MOTOROLA_SREC is not set
-# CONFIG_RAW_BINARY is not set
-# CONFIG_UBOOT_UIMAGE is not set
-
-#
-# Customize Header Files
-#
-# CONFIG_ARCH_STDINT_H is not set
-# 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
-# CONFIG_ARCH_DEBUG_H is not set
-
-#
-# Debug Options
-#
-# CONFIG_DEBUG is not set
-# CONFIG_ARCH_HAVE_HEAPCHECK is not set
-CONFIG_ARCH_HAVE_STACKCHECK=y
-# CONFIG_STACK_COLORATION is not set
-# CONFIG_DEBUG_SYMBOLS is not set
-CONFIG_ARCH_HAVE_CUSTOMOPT=y
-# CONFIG_DEBUG_NOOPT is not set
-# CONFIG_DEBUG_CUSTOMOPT is not set
-CONFIG_DEBUG_FULLOPT=y
-
-#
-# System Type
-#
-CONFIG_ARCH_ARM=y
-# 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 is not set
-# CONFIG_ARCH_X86 is not set
-# CONFIG_ARCH_Z16 is not set
-# CONFIG_ARCH_Z80 is not set
-CONFIG_ARCH="arm"
-
-#
-# ARM Options
-#
-# CONFIG_ARCH_CHIP_A1X is not set
-# CONFIG_ARCH_CHIP_C5471 is not set
-# CONFIG_ARCH_CHIP_CALYPSO is not set
-# CONFIG_ARCH_CHIP_DM320 is not set
-# CONFIG_ARCH_CHIP_EFM32 is not set
-# CONFIG_ARCH_CHIP_IMX1 is not set
-# CONFIG_ARCH_CHIP_IMX6 is not set
-# CONFIG_ARCH_CHIP_KINETIS is not set
-# CONFIG_ARCH_CHIP_KL is not set
-# CONFIG_ARCH_CHIP_LM is not set
-# CONFIG_ARCH_CHIP_TIVA is not set
-# CONFIG_ARCH_CHIP_LPC11XX is not set
-CONFIG_ARCH_CHIP_LPC17XX=y
-# CONFIG_ARCH_CHIP_LPC214X is not set
-# CONFIG_ARCH_CHIP_LPC2378 is not set
-# CONFIG_ARCH_CHIP_LPC31XX is not set
-# CONFIG_ARCH_CHIP_LPC43XX is not set
-# CONFIG_ARCH_CHIP_NUC1XX is not set
-# CONFIG_ARCH_CHIP_SAMA5 is not set
-# CONFIG_ARCH_CHIP_SAMD is not set
-# CONFIG_ARCH_CHIP_SAML is not set
-# CONFIG_ARCH_CHIP_SAM34 is not set
-# CONFIG_ARCH_CHIP_SAMV7 is not set
-# CONFIG_ARCH_CHIP_STM32 is not set
-# CONFIG_ARCH_CHIP_STM32F7 is not set
-# CONFIG_ARCH_CHIP_STM32L4 is not set
-# CONFIG_ARCH_CHIP_STR71X is not set
-# CONFIG_ARCH_CHIP_TMS570 is not set
-# CONFIG_ARCH_CHIP_MOXART is not set
-# CONFIG_ARCH_ARM7TDMI is not set
-# CONFIG_ARCH_ARM926EJS is not set
-# CONFIG_ARCH_ARM920T is not set
-# CONFIG_ARCH_CORTEXM0 is not set
-CONFIG_ARCH_CORTEXM3=y
-# CONFIG_ARCH_CORTEXM4 is not set
-# CONFIG_ARCH_CORTEXM7 is not set
-# CONFIG_ARCH_CORTEXA5 is not set
-# CONFIG_ARCH_CORTEXA8 is not set
-# CONFIG_ARCH_CORTEXA9 is not set
-# CONFIG_ARCH_CORTEXR4 is not set
-# CONFIG_ARCH_CORTEXR4F is not set
-# CONFIG_ARCH_CORTEXR5 is not set
-# CONFIG_ARCH_CORTEX5F is not set
-# CONFIG_ARCH_CORTEXR7 is not set
-# CONFIG_ARCH_CORTEXR7F is not set
-CONFIG_ARCH_FAMILY="armv7-m"
-CONFIG_ARCH_CHIP="lpc17xx"
-# CONFIG_ARMV7M_USEBASEPRI is not set
-CONFIG_ARCH_HAVE_CMNVECTOR=y
-# CONFIG_ARMV7M_CMNVECTOR is not set
-# CONFIG_ARMV7M_LAZYFPU is not set
-# CONFIG_ARCH_HAVE_FPU is not set
-# CONFIG_ARCH_HAVE_DPFPU is not set
-# CONFIG_ARCH_HAVE_TRUSTZONE is not set
-CONFIG_ARM_HAVE_MPU_UNIFIED=y
-# CONFIG_ARM_MPU is not set
-
-#
-# ARMV7M Configuration Options
-#
-# CONFIG_ARMV7M_HAVE_ICACHE is not set
-# CONFIG_ARMV7M_HAVE_DCACHE is not set
-# CONFIG_ARMV7M_HAVE_ITCM is not set
-# CONFIG_ARMV7M_HAVE_DTCM is not set
-CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y
-# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
-# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
-# CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL is not set
-CONFIG_ARMV7M_OABI_TOOLCHAIN=y
-# CONFIG_ARMV7M_HAVE_STACKCHECK is not set
-# CONFIG_ARMV7M_ITMSYSLOG is not set
-# CONFIG_GPIO_IRQ is not set
-# CONFIG_SERIAL_TERMIOS is not set
-
-#
-# LPC17xx Configuration Options
-#
-# CONFIG_ARCH_CHIP_LPC1751 is not set
-# CONFIG_ARCH_CHIP_LPC1752 is not set
-# CONFIG_ARCH_CHIP_LPC1754 is not set
-# CONFIG_ARCH_CHIP_LPC1756 is not set
-# CONFIG_ARCH_CHIP_LPC1758 is not set
-# CONFIG_ARCH_CHIP_LPC1759 is not set
-# CONFIG_ARCH_CHIP_LPC1764 is not set
-# CONFIG_ARCH_CHIP_LPC1765 is not set
-# CONFIG_ARCH_CHIP_LPC1766 is not set
-# CONFIG_ARCH_CHIP_LPC1767 is not set
-CONFIG_ARCH_CHIP_LPC1768=y
-# CONFIG_ARCH_CHIP_LPC1769 is not set
-# CONFIG_ARCH_CHIP_LPC1773 is not set
-# CONFIG_ARCH_CHIP_LPC1774 is not set
-# CONFIG_ARCH_CHIP_LPC1776 is not set
-# CONFIG_ARCH_CHIP_LPC1777 is not set
-# CONFIG_ARCH_CHIP_LPC1778 is not set
-# CONFIG_ARCH_CHIP_LPC1785 is not set
-# CONFIG_ARCH_CHIP_LPC1786 is not set
-# CONFIG_ARCH_CHIP_LPC1787 is not set
-# CONFIG_ARCH_CHIP_LPC1788 is not set
-CONFIG_ARCH_FAMILY_LPC176X=y
-
-#
-# LPC17xx Peripheral Support
-#
-CONFIG_LPC17_MAINOSC=y
-CONFIG_LPC17_PLL0=y
-CONFIG_LPC17_PLL1=y
-# CONFIG_LPC17_ETHERNET is not set
-# CONFIG_LPC17_USBHOST is not set
-CONFIG_LPC17_USBDEV=y
-CONFIG_LPC17_UART0=y
-# CONFIG_LPC17_UART1 is not set
-# CONFIG_LPC17_UART2 is not set
-# CONFIG_LPC17_UART3 is not set
-# CONFIG_LPC17_UART4 is not set
-# CONFIG_LPC17_CAN1 is not set
-# CONFIG_LPC17_CAN2 is not set
-# CONFIG_LPC17_SPI is not set
-# CONFIG_LPC17_SSP0 is not set
-# CONFIG_LPC17_SSP1 is not set
-# CONFIG_LPC17_I2C0 is not set
-# CONFIG_LPC17_I2C1 is not set
-# CONFIG_LPC17_I2C2 is not set
-# CONFIG_LPC17_I2S is not set
-# CONFIG_LPC17_TMR0 is not set
-# CONFIG_LPC17_TMR1 is not set
-# CONFIG_LPC17_TMR2 is not set
-# CONFIG_LPC17_TMR3 is not set
-# CONFIG_LPC17_RIT is not set
-# CONFIG_LPC17_PWM0 is not set
-# CONFIG_LPC17_PWM1 is not set
-# CONFIG_LPC17_MCPWM is not set
-# CONFIG_LPC17_QEI is not set
-# CONFIG_LPC17_RTC is not set
-# CONFIG_LPC17_WDT is not set
-# CONFIG_LPC17_ADC is not set
-# CONFIG_LPC17_DAC is not set
-# CONFIG_LPC17_GPDMA is not set
-# CONFIG_LPC17_FLASH is not set
-
-#
-# External Memory Configuration
-#
-
-#
-# Serial driver options
-#
-
-#
-# USB device driver options
-#
-CONFIG_LPC17_USBDEV_EP0_MAXSIZE=64
-# CONFIG_LPC17_USBDEV_FRAME_INTERRUPT is not set
-# CONFIG_LPC17_USBDEV_EPFAST_INTERRUPT is not set
-CONFIG_LPC17_USBDEV_NDMADESCRIPTORS=0
-# CONFIG_LPC17_USBDEV_DMA is not set
-# CONFIG_LPC17_USBDEV_NOVBUS is not set
-# CONFIG_LPC17_USBDEV_NOLED is not set
-
-#
-# Architecture Options
-#
-# CONFIG_ARCH_NOINTC is not set
-# CONFIG_ARCH_VECNOTIRQ is not set
-# CONFIG_ARCH_DMA is not set
-CONFIG_ARCH_HAVE_IRQPRIO=y
-# CONFIG_ARCH_L2CACHE is not set
-# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
-# CONFIG_ARCH_HAVE_ADDRENV is not set
-# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
-# CONFIG_ARCH_HAVE_MULTICPU is not set
-CONFIG_ARCH_HAVE_VFORK=y
-# CONFIG_ARCH_HAVE_MMU is not set
-CONFIG_ARCH_HAVE_MPU=y
-# CONFIG_ARCH_NAND_HWECC is not set
-# CONFIG_ARCH_HAVE_EXTCLK is not set
-# CONFIG_ARCH_HAVE_POWEROFF is not set
-CONFIG_ARCH_HAVE_RESET=y
-# CONFIG_ARCH_USE_MPU is not set
-# CONFIG_ARCH_IRQPRIO is not set
-CONFIG_ARCH_STACKDUMP=y
-# CONFIG_ENDIAN_BIG is not set
-# CONFIG_ARCH_IDLE_CUSTOM is not set
-# CONFIG_ARCH_HAVE_RAMFUNCS is not set
-CONFIG_ARCH_HAVE_RAMVECTORS=y
-# CONFIG_ARCH_RAMVECTORS is not set
-
-#
-# Board Settings
-#
-CONFIG_BOARD_LOOPSPERMSEC=7982
-# CONFIG_ARCH_CALIBRATION is not set
-
-#
-# Interrupt options
-#
-CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
-CONFIG_ARCH_INTERRUPTSTACK=0
-CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
-# CONFIG_ARCH_HIPRI_INTERRUPT is not set
-
-#
-# 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
-
-#
-# Boot Memory Configuration
-#
-CONFIG_RAM_START=0x10000000
-CONFIG_RAM_SIZE=32768
-# CONFIG_ARCH_HAVE_SDRAM is not set
-
-#
-# Board Selection
-#
-# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
-# CONFIG_ARCH_BOARD_MBED is not set
-CONFIG_ARCH_BOARD_NUCLEUS2G=y
-# CONFIG_ARCH_BOARD_U_BLOX_C027 is not set
-# CONFIG_ARCH_BOARD_ZKITARM is not set
-# CONFIG_ARCH_BOARD_CUSTOM is not set
-CONFIG_ARCH_BOARD="nucleus2g"
-
-#
-# Common Board Options
-#
-CONFIG_ARCH_HAVE_LEDS=y
-CONFIG_ARCH_LEDS=y
-
-#
-# Board-Specific Options
-#
-CONFIG_LIB_BOARDCTL=y
-# CONFIG_BOARDCTL_RESET is not set
-# CONFIG_BOARDCTL_UNIQUEID is not set
-CONFIG_BOARDCTL_USBDEVCTRL=y
-# CONFIG_BOARDCTL_TSCTEST is not set
-# CONFIG_BOARDCTL_ADCTEST is not set
-# CONFIG_BOARDCTL_PWMTEST is not set
-# CONFIG_BOARDCTL_GRAPHICS is not set
-# CONFIG_BOARDCTL_IOCTL is not set
-
-#
-# RTOS Features
-#
-CONFIG_DISABLE_OS_API=y
-# CONFIG_DISABLE_POSIX_TIMERS is not set
-# CONFIG_DISABLE_PTHREAD is not set
-# CONFIG_DISABLE_SIGNALS is not set
-# CONFIG_DISABLE_MQUEUE is not set
-# CONFIG_DISABLE_ENVIRON is not set
-
-#
-# Clocks and Timers
-#
-CONFIG_USEC_PER_TICK=10000
-# CONFIG_SYSTEM_TIME64 is not set
-# CONFIG_CLOCK_MONOTONIC is not set
-# CONFIG_JULIAN_TIME is not set
-CONFIG_START_YEAR=2010
-CONFIG_START_MONTH=11
-CONFIG_START_DAY=10
-CONFIG_MAX_WDOGPARMS=2
-CONFIG_PREALLOC_WDOGS=8
-CONFIG_WDOG_INTRESERVE=1
-CONFIG_PREALLOC_TIMERS=4
-
-#
-# Tasks and Scheduling
-#
-# CONFIG_INIT_NONE is not set
-CONFIG_INIT_ENTRYPOINT=y
-# CONFIG_INIT_FILEPATH is not set
-CONFIG_USER_ENTRYPOINT="usbserial_main"
-CONFIG_RR_INTERVAL=200
-# CONFIG_SCHED_SPORADIC is not set
-CONFIG_TASK_NAME_SIZE=0
-CONFIG_MAX_TASKS=16
-# CONFIG_SCHED_HAVE_PARENT is not set
-# CONFIG_SCHED_WAITPID is not set
-
-#
-# Pthread Options
-#
-# CONFIG_MUTEX_TYPES is not set
-CONFIG_NPTHREAD_KEYS=4
-
-#
-# Performance Monitoring
-#
-# CONFIG_SCHED_CPULOAD is not set
-# CONFIG_SCHED_INSTRUMENTATION is not set
-
-#
-# Files and I/O
-#
-CONFIG_DEV_CONSOLE=y
-# CONFIG_FDCLONE_DISABLE is not set
-# CONFIG_FDCLONE_STDIO is not set
-CONFIG_SDCLONE_DISABLE=y
-CONFIG_NFILE_DESCRIPTORS=8
-CONFIG_NFILE_STREAMS=8
-CONFIG_NAME_MAX=32
-# CONFIG_PRIORITY_INHERITANCE is not set
-
-#
-# RTOS hooks
-#
-# CONFIG_BOARD_INITIALIZE is not set
-# CONFIG_SCHED_STARTHOOK is not set
-# CONFIG_SCHED_ATEXIT is not set
-# CONFIG_SCHED_ONEXIT is not set
-
-#
-# Signal Numbers
-#
-CONFIG_SIG_SIGUSR1=1
-CONFIG_SIG_SIGUSR2=2
-CONFIG_SIG_SIGALARM=3
-CONFIG_SIG_SIGCONDTIMEDOUT=16
-
-#
-# POSIX Message Queue Options
-#
-CONFIG_PREALLOC_MQ_MSGS=4
-CONFIG_MQ_MAXMSGSIZE=32
-# CONFIG_MODULE is not set
-
-#
-# Work queue support
-#
-# CONFIG_SCHED_WORKQUEUE is not set
-# CONFIG_SCHED_HPWORK is not set
-# CONFIG_SCHED_LPWORK is not set
-
-#
-# Stack and heap information
-#
-CONFIG_IDLETHREAD_STACKSIZE=1024
-CONFIG_USERMAIN_STACKSIZE=2048
-CONFIG_PTHREAD_STACK_MIN=256
-CONFIG_PTHREAD_STACK_DEFAULT=2048
-# CONFIG_LIB_SYSCALL is not set
-
-#
-# Device Drivers
-#
-CONFIG_DISABLE_POLL=y
-CONFIG_DEV_NULL=y
-# CONFIG_DEV_ZERO is not set
-# CONFIG_DEV_LOOP is not set
-
-#
-# Buffering
-#
-# CONFIG_DRVR_WRITEBUFFER is not set
-# CONFIG_DRVR_READAHEAD is not set
-# CONFIG_RAMDISK is not set
-# CONFIG_CAN is not set
-# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
-# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set
-# CONFIG_PWM is not set
-# CONFIG_ARCH_HAVE_I2CRESET is not set
-# CONFIG_I2C is not set
-# CONFIG_SPI is not set
-# CONFIG_I2S is not set
-
-#
-# Timer Driver Support
-#
-# CONFIG_TIMER is not set
-# CONFIG_RTC is not set
-# CONFIG_WATCHDOG is not set
-# CONFIG_ANALOG is not set
-# CONFIG_AUDIO_DEVICES is not set
-# CONFIG_VIDEO_DEVICES is not set
-# CONFIG_BCH is not set
-# CONFIG_INPUT is not set
-# CONFIG_IOEXPANDER is not set
-# CONFIG_LCD is not set
-
-#
-# LED Support
-#
-# CONFIG_USERLED is not set
-# CONFIG_RGBLED is not set
-# CONFIG_PCA9635PW is not set
-# CONFIG_MMCSD is not set
-# CONFIG_MODEM is not set
-# CONFIG_MTD is not set
-# CONFIG_EEPROM 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_SERIAL_REMOVABLE=y
-# CONFIG_16550_UART is not set
-# CONFIG_ARCH_HAVE_UART is not set
-CONFIG_ARCH_HAVE_UART0=y
-# CONFIG_ARCH_HAVE_UART1 is not set
-# CONFIG_ARCH_HAVE_UART2 is not set
-# CONFIG_ARCH_HAVE_UART3 is not set
-# CONFIG_ARCH_HAVE_UART4 is not set
-# CONFIG_ARCH_HAVE_UART5 is not set
-# CONFIG_ARCH_HAVE_UART6 is not set
-# CONFIG_ARCH_HAVE_UART7 is not set
-# CONFIG_ARCH_HAVE_UART8 is not set
-# CONFIG_ARCH_HAVE_SCI0 is not set
-# CONFIG_ARCH_HAVE_SCI1 is not set
-# CONFIG_ARCH_HAVE_USART0 is not set
-# CONFIG_ARCH_HAVE_USART1 is not set
-# CONFIG_ARCH_HAVE_USART2 is not set
-# CONFIG_ARCH_HAVE_USART3 is not set
-# CONFIG_ARCH_HAVE_USART4 is not set
-# CONFIG_ARCH_HAVE_USART5 is not set
-# CONFIG_ARCH_HAVE_USART6 is not set
-# CONFIG_ARCH_HAVE_USART7 is not set
-# CONFIG_ARCH_HAVE_USART8 is not set
-# CONFIG_ARCH_HAVE_OTHER_UART is not set
-
-#
-# USART Configuration
-#
-CONFIG_MCU_SERIAL=y
-CONFIG_STANDARD_SERIAL=y
-# CONFIG_SERIAL_IFLOWCONTROL is not set
-# CONFIG_SERIAL_OFLOWCONTROL is not set
-# CONFIG_SERIAL_DMA is not set
-CONFIG_ARCH_HAVE_SERIAL_TERMIOS=y
-CONFIG_UART0_SERIAL_CONSOLE=y
-# CONFIG_OTHER_SERIAL_CONSOLE is not set
-# CONFIG_NO_SERIAL_CONSOLE is not set
-
-#
-# UART0 Configuration
-#
-CONFIG_UART0_RXBUFSIZE=256
-CONFIG_UART0_TXBUFSIZE=256
-CONFIG_UART0_BAUD=115200
-CONFIG_UART0_BITS=8
-CONFIG_UART0_PARITY=0
-CONFIG_UART0_2STOP=0
-# CONFIG_UART0_IFLOWCONTROL is not set
-# CONFIG_UART0_OFLOWCONTROL is not set
-# CONFIG_UART0_DMA is not set
-CONFIG_USBDEV=y
-
-#
-# USB Device Controller Driver Options
-#
-# CONFIG_USBDEV_ISOCHRONOUS is not set
-# CONFIG_USBDEV_DUALSPEED is not set
-CONFIG_USBDEV_SELFPOWERED=y
-# CONFIG_USBDEV_BUSPOWERED is not set
-CONFIG_USBDEV_MAXPOWER=100
-# CONFIG_USBDEV_DMA is not set
-# CONFIG_ARCH_USBDEV_STALLQUEUE is not set
-# CONFIG_USBDEV_TRACE is not set
-
-#
-# USB Device Class Driver Options
-#
-# CONFIG_USBDEV_COMPOSITE is not set
-CONFIG_PL2303=y
-# CONFIG_PL2303_CONSOLE is not set
-CONFIG_PL2303_EPINTIN=1
-CONFIG_PL2303_EPBULKOUT=2
-CONFIG_PL2303_EPBULKIN=5
-CONFIG_PL2303_EP0MAXPACKET=64
-CONFIG_PL2303_NWRREQS=4
-CONFIG_PL2303_NRDREQS=4
-CONFIG_PL2303_BULKIN_REQLEN=96
-CONFIG_PL2303_RXBUFSIZE=512
-CONFIG_PL2303_TXBUFSIZE=512
-CONFIG_PL2303_VENDORID=0x067b
-CONFIG_PL2303_PRODUCTID=0x2303
-CONFIG_PL2303_VENDORSTR="Nuttx"
-CONFIG_PL2303_PRODUCTSTR="USBdev Serial"
-# CONFIG_CDCACM is not set
-# CONFIG_USBMSC is not set
-# CONFIG_USBHOST is not set
-# CONFIG_DRIVERS_WIRELESS is not set
-
-#
-# System Logging Device Options
-#
-
-#
-# System Logging
-#
-# CONFIG_RAMLOG is not set
-# CONFIG_SYSLOG_CONSOLE is not set
-
-#
-# Networking Support
-#
-# CONFIG_ARCH_HAVE_NET is not set
-# CONFIG_ARCH_HAVE_PHY is not set
-# CONFIG_NET is not set
-
-#
-# Crypto API
-#
-# CONFIG_CRYPTO is not set
-
-#
-# File Systems
-#
-
-#
-# File system configuration
-#
-CONFIG_DISABLE_MOUNTPOINT=y
-# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
-# CONFIG_FS_READABLE is not set
-# CONFIG_FS_WRITABLE is not set
-# CONFIG_FS_NAMED_SEMAPHORES is not set
-CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
-# CONFIG_FS_RAMMAP is not set
-# CONFIG_FS_PROCFS is not set
-# CONFIG_FS_UNIONFS is not set
-
-#
-# System Logging
-#
-# CONFIG_SYSLOG is not set
-# CONFIG_SYSLOG_TIMESTAMP is not set
-
-#
-# Graphics Support
-#
-# CONFIG_NX is not set
-
-#
-# Memory Management
-#
-# CONFIG_MM_SMALL is not set
-CONFIG_MM_REGIONS=2
-# CONFIG_ARCH_HAVE_HEAP2 is not set
-# CONFIG_GRAN is not set
-
-#
-# Audio Support
-#
-# CONFIG_AUDIO is not set
-
-#
-# Wireless Support
-#
-
-#
-# Binary Loader
-#
-# CONFIG_BINFMT_DISABLE is not set
-# CONFIG_BINFMT_EXEPATH is not set
-# CONFIG_NXFLAT is not set
-# CONFIG_ELF is not set
-# CONFIG_BUILTIN is not set
-# CONFIG_PIC is not set
-# CONFIG_SYMTAB_ORDEREDBYNAME is not set
-
-#
-# Library Routines
-#
-
-#
-# Standard C Library Options
-#
-CONFIG_STDIO_BUFFER_SIZE=64
-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_LIBC_LONG_LONG=y
-# CONFIG_LIBC_IOCTL_VARIADIC is not set
-CONFIG_LIB_RAND_ORDER=1
-# 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_EXECFUNCS is not set
-CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
-CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
-# CONFIG_LIBC_STRERROR is not set
-# CONFIG_LIBC_PERROR_STDOUT is not set
-CONFIG_ARCH_LOWPUTC=y
-# CONFIG_LIBC_LOCALTIME is not set
-# CONFIG_TIME_EXTENDED is not set
-CONFIG_LIB_SENDFILE_BUFSIZE=512
-# CONFIG_ARCH_ROMGETC is not set
-# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
-CONFIG_ARCH_HAVE_TLS=y
-# CONFIG_TLS is not set
-# CONFIG_LIBC_NETDB is not set
-
-#
-# Non-standard Library Support
-#
-# CONFIG_LIB_KBDCODEC is not set
-# CONFIG_LIB_SLCDCODEC is not set
-
-#
-# Basic CXX Support
-#
-# CONFIG_C99_BOOL8 is not set
-# CONFIG_HAVE_CXX is not set
-
-#
-# Application Configuration
-#
-
-#
-# CAN Utilities
-#
-
-#
-# Examples
-#
-# CONFIG_EXAMPLES_CHAT is not set
-# CONFIG_EXAMPLES_CONFIGDATA is not set
-# CONFIG_EXAMPLES_CPUHOG 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_JSON is not set
-# CONFIG_EXAMPLES_HIDKBD is not set
-# CONFIG_EXAMPLES_KEYPADTEST is not set
-# CONFIG_EXAMPLES_IGMP is not set
-# CONFIG_EXAMPLES_MEDIA is not set
-# CONFIG_EXAMPLES_MM is not set
-# CONFIG_EXAMPLES_MODBUS is not set
-# CONFIG_EXAMPLES_MOUNT is not set
-# CONFIG_EXAMPLES_NRF24L01TERM is not set
-# CONFIG_EXAMPLES_NSH is not set
-# CONFIG_EXAMPLES_NULL is not set
-# CONFIG_EXAMPLES_NX is not set
-# CONFIG_EXAMPLES_NXTERM is not set
-# CONFIG_EXAMPLES_NXFFS 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_PCA9635 is not set
-# CONFIG_EXAMPLES_PIPE is not set
-# CONFIG_EXAMPLES_POLL is not set
-# CONFIG_EXAMPLES_PPPD is not set
-# CONFIG_EXAMPLES_POSIXSPAWN is not set
-# CONFIG_EXAMPLES_RGBLED is not set
-# CONFIG_EXAMPLES_RGMP is not set
-# CONFIG_EXAMPLES_SENDMAIL is not set
-# CONFIG_EXAMPLES_SERIALBLASTER is not set
-# CONFIG_EXAMPLES_SERIALRX is not set
-# CONFIG_EXAMPLES_SERLOOP is not set
-# CONFIG_EXAMPLES_SLCD is not set
-# CONFIG_EXAMPLES_SMART is not set
-# CONFIG_EXAMPLES_SMP is not set
-# CONFIG_EXAMPLES_TCPECHO is not set
-# CONFIG_EXAMPLES_TELNETD is not set
-# CONFIG_EXAMPLES_TIFF is not set
-# CONFIG_EXAMPLES_TOUCHSCREEN is not set
-# CONFIG_EXAMPLES_WEBSERVER is not set
-CONFIG_EXAMPLES_USBSERIAL=y
-CONFIG_EXAMPLES_USBSERIAL_BUFSIZE=512
-# CONFIG_EXAMPLES_USBTERM is not set
-# CONFIG_EXAMPLES_WATCHDOG is not set
-
-#
-# File System Utilities
-#
-# CONFIG_FSUTILS_INIFILE is not set
-
-#
-# GPS Utilities
-#
-# CONFIG_GPSUTILS_MINMEA_LIB is not set
-
-#
-# Graphics Support
-#
-# CONFIG_TIFF is not set
-# CONFIG_GRAPHICS_TRAVELER is not set
-
-#
-# Interpreters
-#
-# CONFIG_INTERPRETERS_FICL is not set
-# CONFIG_INTERPRETERS_PCODE is not set
-# CONFIG_INTERPRETERS_MICROPYTHON is not set
-
-#
-# FreeModBus
-#
-# CONFIG_MODBUS is not set
-
-#
-# Network Utilities
-#
-# CONFIG_NETUTILS_CODECS is not set
-# CONFIG_NETUTILS_FTPC is not set
-# CONFIG_NETUTILS_JSON is not set
-# CONFIG_NETUTILS_SMTP is not set
-
-#
-# NSH Library
-#
-# CONFIG_NSH_LIBRARY is not set
-
-#
-# NxWidgets/NxWM
-#
-
-#
-# Platform-specific Support
-#
-# CONFIG_PLATFORM_CONFIGDATA is not set
-
-#
-# System Libraries and NSH Add-Ons
-#
-# CONFIG_SYSTEM_FREE is not set
-# CONFIG_SYSTEM_CLE is not set
-# CONFIG_SYSTEM_CUTERM is not set
-# CONFIG_SYSTEM_INSTALL is not set
-# CONFIG_SYSTEM_HEX2BIN is not set
-# CONFIG_SYSTEM_HEXED is not set
-# CONFIG_SYSTEM_RAMTEST is not set
-# CONFIG_READLINE_HAVE_EXTMATCH is not set
-# CONFIG_SYSTEM_READLINE is not set
-# CONFIG_SYSTEM_SUDOKU is not set
-# CONFIG_SYSTEM_VI is not set
-# CONFIG_SYSTEM_UBLOXMODEM is not set
-# CONFIG_SYSTEM_ZMODEM is not set
diff --git a/configs/nucleus2g/usbserial/setenv.sh b/configs/nucleus2g/usbserial/setenv.sh
deleted file mode 100755
index 9333b3a2f59..00000000000
--- a/configs/nucleus2g/usbserial/setenv.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# configs/nucleus2g/usbserial/setenv.sh
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt
-#
-# 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.
-#
-
-if [ "$(basename $0)" = "setenv.sh" ] ; then
- echo "You must source this script, not run it!" 1>&2
- exit 1
-fi
-
-if [ -z "${PATH_ORIG}" ]; then export PATH_ORIG="${PATH}"; fi
-
-WD=`pwd`
-export LPCTOOL_DIR="${WD}/configs/nucleus2g/tools"
-export BUILDROOT_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
-export PATH="${BUILDROOT_BIN}:${LPCTOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
-
-echo "PATH : ${PATH}"
diff --git a/configs/sabre-6quad/README.txt b/configs/sabre-6quad/README.txt
index 07eb1d95f38..bf8fe28c2b4 100644
--- a/configs/sabre-6quad/README.txt
+++ b/configs/sabre-6quad/README.txt
@@ -31,6 +31,9 @@ that case).
There is a lot of testing that could be done but, unfortunately, I still
have no i.MX6 hardware to test on.
+In additional to the unexpected issues, I do expect to run into some
+cache coherency issues when I get to testing an SMP configuration.
+
2016-03-28: I now have a used MCIMX6Q-SDB which is similar to the target
configuration described below except that it does not have the 10.1" LVDS
display. Next step: Figure out how to run a copy of NuttX using U-Boot.
diff --git a/configs/sama5d3x-ek/src/sam_ov2640.c b/configs/sama5d3x-ek/src/sam_ov2640.c
index cc401ac56ad..ad55d0a4a6b 100644
--- a/configs/sama5d3x-ek/src/sam_ov2640.c
+++ b/configs/sama5d3x-ek/src/sam_ov2640.c
@@ -85,14 +85,14 @@ static inline FAR struct fb_vtable_s *ov2640_lcd_initialize(void)
/* Initialize the frame buffer device */
- ret = up_fbinitialize();
+ ret = up_fbinitialize(0);
if (ret < 0)
{
gdbg("ERROR: up_fbinitialize failed: %d\n", -ret);
return NULL;
}
- vplane = up_fbgetvplane(0);
+ vplane = up_fbgetvplane(0, 0);
if (!vplane)
{
gdbg("ERROR: up_fbgetvplane failed\n");
diff --git a/configs/samv71-xult/knsh/defconfig b/configs/samv71-xult/knsh/defconfig
index 9237a360d3a..2716784db29 100644
--- a/configs/samv71-xult/knsh/defconfig
+++ b/configs/samv71-xult/knsh/defconfig
@@ -85,6 +85,7 @@ CONFIG_ARCH="arm"
# CONFIG_ARCH_CHIP_DM320 is not set
# CONFIG_ARCH_CHIP_EFM32 is not set
# CONFIG_ARCH_CHIP_IMX1 is not set
+# CONFIG_ARCH_CHIP_IMX6 is not set
# CONFIG_ARCH_CHIP_KINETIS is not set
# CONFIG_ARCH_CHIP_KL is not set
# CONFIG_ARCH_CHIP_LM is not set
@@ -103,6 +104,7 @@ CONFIG_ARCH="arm"
CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
@@ -124,6 +126,8 @@ CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="samv7"
+# CONFIG_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
@@ -132,6 +136,7 @@ CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
CONFIG_ARM_MPU=y
CONFIG_ARM_MPU_NREGIONS=16
@@ -148,6 +153,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set
# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
@@ -794,6 +800,8 @@ CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
# CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set
diff --git a/configs/samv71-xult/module/defconfig b/configs/samv71-xult/module/defconfig
index 96ce1959bb4..8300fa0f3a8 100644
--- a/configs/samv71-xult/module/defconfig
+++ b/configs/samv71-xult/module/defconfig
@@ -99,6 +99,7 @@ CONFIG_ARCH="arm"
CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
@@ -120,6 +121,8 @@ CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="samv7"
+# CONFIG_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
CONFIG_ARMV7M_USEBASEPRI=y
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
@@ -128,6 +131,7 @@ CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
@@ -143,6 +147,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set
# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
@@ -711,6 +716,8 @@ CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
# CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set
diff --git a/configs/samv71-xult/netnsh/defconfig b/configs/samv71-xult/netnsh/defconfig
index 68b39a691a2..c40145daf3f 100644
--- a/configs/samv71-xult/netnsh/defconfig
+++ b/configs/samv71-xult/netnsh/defconfig
@@ -81,6 +81,7 @@ CONFIG_ARCH="arm"
# CONFIG_ARCH_CHIP_DM320 is not set
# CONFIG_ARCH_CHIP_EFM32 is not set
# CONFIG_ARCH_CHIP_IMX1 is not set
+# CONFIG_ARCH_CHIP_IMX6 is not set
# CONFIG_ARCH_CHIP_KINETIS is not set
# CONFIG_ARCH_CHIP_KL is not set
# CONFIG_ARCH_CHIP_LM is not set
@@ -99,6 +100,7 @@ CONFIG_ARCH="arm"
CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
@@ -120,6 +122,8 @@ CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="samv7"
+# CONFIG_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
@@ -128,6 +132,7 @@ CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
@@ -143,6 +148,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set
# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
@@ -958,6 +964,8 @@ CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
CONFIG_LIBC_NETDB=y
# CONFIG_NETDB_HOSTFILE is not set
CONFIG_NETDB_DNSCLIENT=y
diff --git a/configs/samv71-xult/nsh/defconfig b/configs/samv71-xult/nsh/defconfig
index ee2472b2ce0..c3c64d50fa0 100644
--- a/configs/samv71-xult/nsh/defconfig
+++ b/configs/samv71-xult/nsh/defconfig
@@ -80,6 +80,7 @@ CONFIG_ARCH="arm"
# CONFIG_ARCH_CHIP_DM320 is not set
# CONFIG_ARCH_CHIP_EFM32 is not set
# CONFIG_ARCH_CHIP_IMX1 is not set
+# CONFIG_ARCH_CHIP_IMX6 is not set
# CONFIG_ARCH_CHIP_KINETIS is not set
# CONFIG_ARCH_CHIP_KL is not set
# CONFIG_ARCH_CHIP_LM is not set
@@ -98,6 +99,7 @@ CONFIG_ARCH="arm"
CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
@@ -119,6 +121,8 @@ CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="samv7"
+# CONFIG_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
@@ -127,6 +131,7 @@ CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
@@ -142,6 +147,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set
# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
@@ -786,6 +792,8 @@ CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
# CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set
diff --git a/configs/samv71-xult/nxwm/defconfig b/configs/samv71-xult/nxwm/defconfig
index 564779b6518..e12363decd6 100644
--- a/configs/samv71-xult/nxwm/defconfig
+++ b/configs/samv71-xult/nxwm/defconfig
@@ -80,6 +80,7 @@ CONFIG_ARCH="arm"
# CONFIG_ARCH_CHIP_DM320 is not set
# CONFIG_ARCH_CHIP_EFM32 is not set
# CONFIG_ARCH_CHIP_IMX1 is not set
+# CONFIG_ARCH_CHIP_IMX6 is not set
# CONFIG_ARCH_CHIP_KINETIS is not set
# CONFIG_ARCH_CHIP_KL is not set
# CONFIG_ARCH_CHIP_LM is not set
@@ -98,6 +99,7 @@ CONFIG_ARCH="arm"
CONFIG_ARCH_CHIP_SAMV7=y
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
+# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
@@ -119,6 +121,8 @@ CONFIG_ARCH_CORTEXM7=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="samv7"
+# CONFIG_ARM_TOOLCHAIN_IAR is not set
+CONFIG_ARM_TOOLCHAIN_GNU=y
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_CMNVECTOR=y
CONFIG_ARMV7M_CMNVECTOR=y
@@ -127,6 +131,7 @@ CONFIG_ARCH_HAVE_FPU=y
CONFIG_ARCH_HAVE_DPFPU=y
CONFIG_ARCH_FPU=y
CONFIG_ARCH_DPFPU=y
+# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
@@ -142,6 +147,7 @@ CONFIG_ARMV7M_HAVE_ITCM=y
CONFIG_ARMV7M_HAVE_DTCM=y
# CONFIG_ARMV7M_ITCM is not set
# CONFIG_ARMV7M_DTCM is not set
+# CONFIG_ARMV7M_TOOLCHAIN_IARW is not set
# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDW is not set
@@ -933,6 +939,8 @@ CONFIG_ARCH_LOWPUTC=y
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
+CONFIG_ARCH_HAVE_TLS=y
+# CONFIG_TLS is not set
# CONFIG_LIBC_NETDB is not set
# CONFIG_NETDB_HOSTFILE is not set
diff --git a/configs/sim/README.txt b/configs/sim/README.txt
index 2b0ce395f4e..759b75647f1 100644
--- a/configs/sim/README.txt
+++ b/configs/sim/README.txt
@@ -677,8 +677,8 @@ nx11
the simulation is built and can only be eliminated by calling
up_simtouchscreen(0) from your application.
- b. You must first up_fbinitialize() before calling up_simtouchscreen()
- or you will get a crash.
+ b. You must first call up_fbinitialize(0) before calling
+ up_simtouchscreen() or you will get a crash.
c. Call sim_tcunininitializee() when you are finished with the
simulated touchscreen.
diff --git a/configs/sim/src/sim_touchscreen.c b/configs/sim/src/sim_touchscreen.c
index 57ec36c1ae5..5187aa411f2 100644
--- a/configs/sim/src/sim_touchscreen.c
+++ b/configs/sim/src/sim_touchscreen.c
@@ -1,7 +1,7 @@
/****************************************************************************
* config/sim/src/sim_touchscreen.c
*
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -104,14 +104,14 @@ int board_tsc_setup(int minor)
*/
ivdbg("Initializing framebuffer\n");
- ret = up_fbinitialize();
+ ret = up_fbinitialize(0);
if (ret < 0)
{
idbg("up_fbinitialize failed: %d\n", -ret);
goto errout;
}
- dev = up_fbgetvplane(0);
+ dev = up_fbgetvplane(0, 0);
if (!dev)
{
idbg("up_fbgetvplane 0 failed\n");
@@ -156,7 +156,7 @@ errout_with_nx:
nx_close(g_simtc.hnx);
goto errout;
errout_with_fb:
- fb_uninitialize();
+ up_fbuninitialize(0);
errout:
return ret;
}
diff --git a/configs/stm32f429i-disco/src/stm32_boot.c b/configs/stm32f429i-disco/src/stm32_boot.c
index 2cf12677bcd..77653432e08 100644
--- a/configs/stm32f429i-disco/src/stm32_boot.c
+++ b/configs/stm32f429i-disco/src/stm32_boot.c
@@ -1,7 +1,7 @@
/************************************************************************************
* configs/stm32f429i-disco/src/stm32_boot.c
*
- * Copyright (C) 2011-2012, 2015 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2011-2012, 2015-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -134,7 +134,7 @@ void board_initialize(void)
#ifdef CONFIG_STM32F429I_DISCO_ILI9341_FBIFACE
/* Initialize the framebuffer driver */
- up_fbinitialize();
+ up_fbinitialize(0);
#endif
#ifdef CONFIG_STM32F429I_DISCO_ILI9341_LCDIFACE
diff --git a/configs/stm32f429i-disco/src/stm32_lcd.c b/configs/stm32f429i-disco/src/stm32_lcd.c
index 884ce0e31b1..2f527abc81e 100644
--- a/configs/stm32f429i-disco/src/stm32_lcd.c
+++ b/configs/stm32f429i-disco/src/stm32_lcd.c
@@ -512,18 +512,23 @@ int board_lcd_initialize(void)
#endif /* CONFIG_STM32F429I_DISCO_ILI9341_LCDIFACE */
#ifdef CONFIG_STM32_LTDC
-/************************************************************************************
+/****************************************************************************
* Name: up_fbinitialize
*
* Description:
- * The generic method to initialize the framebuffer device
+ * Initialize the framebuffer video hardware associated with the display.
*
- * Return:
- * OK - On succes
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
*
- ************************************************************************************/
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
+ *
+ ****************************************************************************/
-int up_fbinitialize(void)
+int up_fbinitialize(int display)
{
#ifdef CONFIG_STM32F429I_DISCO_ILI9341_FBIFACE
int ret;
@@ -546,34 +551,45 @@ int up_fbinitialize(void)
#endif
}
-/************************************************************************************
+/****************************************************************************
* Name: up_fbgetvplane
*
* Description:
- * The generic method to get the videoplane.
+ * Return a a reference to the framebuffer object for the specified video
+ * plane of the specified plane. Many OSDs support multiple planes of video.
*
- * Paramater:
- * vplane - Number othe video plane
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
*
- * Return:
- * Reference to the fb_vtable_s on success otherwise NULL.
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
*
- ************************************************************************************/
+ ****************************************************************************/
-FAR struct fb_vtable_s *up_fbgetvplane(int vplane)
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane)
{
return stm32_ltdcgetvplane(vplane);
}
-/************************************************************************************
- * Name: up_uninitialize
+/****************************************************************************
+ * Name: up_fbuninitialize
*
* Description:
- * The generic method to uninitialize the framebuffer device
+ * Uninitialize the framebuffer support for the specified display.
*
- ************************************************************************************/
+ * Input Parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * None
+ *
+ ****************************************************************************/
-void fb_uninitialize(void)
+void up_fbuninitialize(int display)
{
stm32_ltdcuninitialize();
}
diff --git a/configs/stm32f4discovery/src/Makefile b/configs/stm32f4discovery/src/Makefile
index 7e3b47a826b..b607925bce1 100644
--- a/configs/stm32f4discovery/src/Makefile
+++ b/configs/stm32f4discovery/src/Makefile
@@ -52,6 +52,10 @@ ifeq ($(CONFIG_STM32_OTGFS),y)
CSRCS += stm32_usb.c
endif
+ifeq ($(CONFIG_BH1750FVI),y)
+CSRCS += stm32_bh1750fvi.c
+endif
+
ifeq ($(CONFIG_BMP180),y)
CSRCS += stm32_bmp180.c
endif
diff --git a/configs/nucleus2g/src/lpc17_boot.c b/configs/stm32f4discovery/src/stm32_bh1750fvi.c
similarity index 59%
rename from configs/nucleus2g/src/lpc17_boot.c
rename to configs/stm32f4discovery/src/stm32_bh1750fvi.c
index 33189658457..5455c05ea31 100644
--- a/configs/nucleus2g/src/lpc17_boot.c
+++ b/configs/stm32f4discovery/src/stm32_bh1750fvi.c
@@ -1,8 +1,8 @@
/************************************************************************************
- * configs/nucleus2g/src/lpc17_boot.c
+ * configs/stm32f4discovery/src/stm32_bh1750fvi.c
*
- * Copyright (C) 2010, 2012, 2015 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt
+ * Copyright (C) 2016 Alan Carvalho de Assis. All rights reserved.
+ * Author: Alan Carvalho de Assis
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -39,79 +39,67 @@
#include
+#include
#include
-#include
-#include
+#include
+#include
-#include "up_arch.h"
-#include "up_internal.h"
+#include "stm32.h"
+#include "stm32_i2c.h"
+#include "stm32f4discovery.h"
-#include "lpc17_ssp.h"
-#include "lpc17_gpio.h"
-
-#include "nucleus2g.h"
+#if defined(CONFIG_I2C) && defined(CONFIG_BH1750FVI)
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
-/************************************************************************************
- * Private Functions
- ************************************************************************************/
+#define BH1750FVI_I2C_PORTNO 1 /* On I2C1 */
/************************************************************************************
* Public Functions
************************************************************************************/
/************************************************************************************
- * Name: lpc17_boardinitialize
+ * Name: stm32_bh1750initialize
*
* Description:
- * All LPC17xx architectures must provide the following entry point. This entry point
- * is called early in the initialization -- after all memory has been configured
- * and mapped but before any devices have been initialized.
+ * Initialize and register the MPL115A Pressure Sensor driver.
+ *
+ * Input parameters:
+ * devpath - The full path to the driver to register. E.g., "/dev/light0"
+ *
+ * Returned Value:
+ * Zero (OK) on success; a negated errno value on failure.
*
************************************************************************************/
-void lpc17_boardinitialize(void)
+int stm32_bh1750initialize(FAR const char *devpath)
{
- /* Enable +5V needed for CAN */
+ FAR struct i2c_master_s *i2c;
+ int ret;
-#if defined(CONFIG_LPC17_CAN1) || defined(CONFIG_LPC17_CAN2)
- lpc17_configgpio(NUCLEUS2G_5V_ENABLE);
-#else
- lpc17_configgpio(NUCLEUS2G_5V_DISABLE);
-#endif
+ sndbg("Initializing BH1750FVI!\n");
- /* If UART0 is used, enabled the MAX232 driver */
+ /* Initialize I2C */
-#ifdef CONFIG_LPC17_UART0
- lpc17_configgpio(NUCLEUS2G_232_ENABLE);
-#else
- lpc17_configgpio(NUCLEUS2G_232_POWERSAVE);
-#endif
+ i2c = stm32_i2cbus_initialize(BH1750FVI_I2C_PORTNO);
- /* Configure SSP chip selects if 1) at least one SSP is enabled, and 2) the weak
- * function nucleus2g_sspdev_initialize() has been brought into the link.
- */
-
-#if defined(CONFIG_LPC17_SSP0) || defined(CONFIG_LPC17_SSP1)
- if (nucleus2g_sspdev_initialize)
+ if (!i2c)
{
- nucleus2g_sspdev_initialize();
+ return -ENODEV;
}
-#endif
- /* Configure on-board LEDs if LED support has been selected. */
+ /* Then register the barometer sensor */
-#ifdef CONFIG_ARCH_LEDS
- board_autoled_initialize();
-#endif
+ ret = bh1750fvi_register(devpath, i2c, BH1750FVI_I2C_ADDR);
+ if (ret < 0)
+ {
+ sndbg("Error registering BM180\n");
+ }
- /* Configure the relay outptus for use on the BMS master board */
-
-#ifdef CONFIG_ARCH_BOARD_NUCLEUS2G_BMS
- up_relayinit();
-#endif
+ return ret;
}
+
+#endif /* CONFIG_I2C && CONFIG_BH1750FVI && CONFIG_STM32_I2C1 */
diff --git a/configs/stm32f4discovery/src/stm32_bringup.c b/configs/stm32f4discovery/src/stm32_bringup.c
index 856307b5c81..fd4e7937515 100644
--- a/configs/stm32f4discovery/src/stm32_bringup.c
+++ b/configs/stm32f4discovery/src/stm32_bringup.c
@@ -98,6 +98,10 @@ int stm32_bringup(void)
#endif
int ret = OK;
+#ifdef CONFIG_BH1750FVI
+ stm32_bh1750initialize("/dev/light0");
+#endif
+
#ifdef CONFIG_ZEROCROSS
/* Configure the zero-crossing driver */
diff --git a/configs/stm32f4discovery/src/stm32f4discovery.h b/configs/stm32f4discovery/src/stm32f4discovery.h
index ffbb25ee538..3d3400920b4 100644
--- a/configs/stm32f4discovery/src/stm32f4discovery.h
+++ b/configs/stm32f4discovery/src/stm32f4discovery.h
@@ -355,6 +355,19 @@
void weak_function stm32_spidev_initialize(void);
+/****************************************************************************
+ * Name: stm32_bh1750initialize
+ *
+ * Description:
+ * Called to configure an I2C and to register BH1750FVI for the stm32f4discovery
+ * board.
+ *
+ ****************************************************************************/
+
+#ifdef CONFIG_BH1750FVI
+int stm32_bh1750initialize(FAR const char *devpath);
+#endif
+
/****************************************************************************
* Name: stm32_bmp180initialize
*
diff --git a/configs/u-blox-c027/nsh/defconfig b/configs/u-blox-c027/nsh/defconfig
index 447189b768f..51b5dc2e962 100644
--- a/configs/u-blox-c027/nsh/defconfig
+++ b/configs/u-blox-c027/nsh/defconfig
@@ -319,7 +319,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
CONFIG_ARCH_BOARD_U_BLOX_C027=y
# CONFIG_ARCH_BOARD_ZKITARM is not set
# CONFIG_ARCH_BOARD_CUSTOM is not set
diff --git a/configs/zkit-arm-1769/hello/defconfig b/configs/zkit-arm-1769/hello/defconfig
index 69c05c5b9ab..17c6a81fc97 100644
--- a/configs/zkit-arm-1769/hello/defconfig
+++ b/configs/zkit-arm-1769/hello/defconfig
@@ -273,7 +273,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
CONFIG_ARCH_BOARD_ZKITARM=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="zkit-arm-1769"
diff --git a/configs/zkit-arm-1769/nsh/defconfig b/configs/zkit-arm-1769/nsh/defconfig
index 146c2907a7c..d3a2937712f 100644
--- a/configs/zkit-arm-1769/nsh/defconfig
+++ b/configs/zkit-arm-1769/nsh/defconfig
@@ -277,7 +277,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
CONFIG_ARCH_BOARD_ZKITARM=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="zkit-arm-1769"
diff --git a/configs/zkit-arm-1769/nxhello/defconfig b/configs/zkit-arm-1769/nxhello/defconfig
index 02d8b6d1b72..9bff2a9046b 100644
--- a/configs/zkit-arm-1769/nxhello/defconfig
+++ b/configs/zkit-arm-1769/nxhello/defconfig
@@ -277,7 +277,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
CONFIG_ARCH_BOARD_ZKITARM=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="zkit-arm-1769"
diff --git a/configs/zkit-arm-1769/thttpd/defconfig b/configs/zkit-arm-1769/thttpd/defconfig
index 37066839f2c..958ac134e92 100644
--- a/configs/zkit-arm-1769/thttpd/defconfig
+++ b/configs/zkit-arm-1769/thttpd/defconfig
@@ -273,7 +273,6 @@ CONFIG_RAM_SIZE=32768
#
# CONFIG_ARCH_BOARD_LPCXPRESSO is not set
# CONFIG_ARCH_BOARD_MBED is not set
-# CONFIG_ARCH_BOARD_NUCLEUS2G is not set
CONFIG_ARCH_BOARD_ZKITARM=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="zkit-arm-1769"
diff --git a/drivers/can.c b/drivers/can.c
index a98e1145bc7..4cca6c0dbb8 100644
--- a/drivers/can.c
+++ b/drivers/can.c
@@ -116,10 +116,6 @@
#define HALF_SECOND_MSEC 500
#define HALF_SECOND_USEC 500000L
-/****************************************************************************
- * Private Type Definitions
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c
index 6ed8529ac36..b18767f0136 100644
--- a/drivers/mtd/ftl.c
+++ b/drivers/mtd/ftl.c
@@ -1,7 +1,7 @@
/****************************************************************************
* drivers/mtd/ftl.c
*
- * Copyright (C) 2009, 2011-2012 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2009, 2011-2012, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -115,6 +115,9 @@ static const struct block_operations g_bops =
#endif
ftl_geometry, /* geometry */
ftl_ioctl /* ioctl */
+#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
+ , 0 /* unlink */
+#endif
};
/****************************************************************************
diff --git a/drivers/sensors/Kconfig b/drivers/sensors/Kconfig
index c73e1abae06..78e4cd009ab 100644
--- a/drivers/sensors/Kconfig
+++ b/drivers/sensors/Kconfig
@@ -11,6 +11,13 @@ config AS5048B
---help---
Enable driver support for the AMS AS5048B magnetic rotary encoder.
+config BH1750FVI
+ bool "Rohm BH1750FVI Ambient Light Sensor support"
+ default n
+ select I2C
+ ---help---
+ Enable driver support for the Rohm BH1750FVI light sensor.
+
config BMP180
bool "Bosch BMP180 Barometer Sensor support"
default n
diff --git a/drivers/sensors/Make.defs b/drivers/sensors/Make.defs
index ca0912d0952..b2d5d52f43c 100644
--- a/drivers/sensors/Make.defs
+++ b/drivers/sensors/Make.defs
@@ -61,6 +61,10 @@ ifeq ($(CONFIG_ADXL345_I2C),y)
CSRCS += adxl345_i2c.c
endif
+ifeq ($(CONFIG_BH1750FVI),y)
+ CSRCS += bh1750fvi.c
+endif
+
ifeq ($(CONFIG_BMP180),y)
CSRCS += bmp180.c
endif
diff --git a/drivers/sensors/bh1750fvi.c b/drivers/sensors/bh1750fvi.c
new file mode 100644
index 00000000000..9823e12997b
--- /dev/null
+++ b/drivers/sensors/bh1750fvi.c
@@ -0,0 +1,459 @@
+/****************************************************************************
+ * drivers/sensors/bh1750fvi.c
+ * Character driver for the Rohm Ambient Light Sensor BH1750FVI
+ *
+ * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt
+ *
+ * Copyright (C) 2016 Alan Carvalho de Assis. All rights reserved.
+ * Author: Alan Carvalho de Assis
+ *
+ * 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.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include
+
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+#if defined(CONFIG_I2C) && defined(CONFIG_BH1750FVI)
+
+/****************************************************************************
+ * Pre-process Definitions
+ ****************************************************************************/
+
+#ifndef CONFIG_BH1750FVI_I2C_FREQUENCY
+# define CONFIG_BH1750FVI_I2C_FREQUENCY 400000
+#endif
+
+/****************************************************************************
+ * Private Types
+ ****************************************************************************/
+
+struct bh1750fvi_dev_s
+{
+ FAR struct i2c_master_s *i2c; /* I2C interface */
+ uint8_t addr; /* I2C address */
+};
+
+/****************************************************************************
+ * Private Function Prototypes
+ ****************************************************************************/
+
+/* I2C Helpers */
+
+static int bh1750fvi_read16(FAR struct bh1750fvi_dev_s *priv,
+ FAR uint16_t *regval);
+static int bh1750fvi_write8(FAR struct bh1750fvi_dev_s *priv,
+ uint8_t regval);
+
+/* Character driver methods */
+
+static int bh1750fvi_open(FAR struct file *filep);
+static int bh1750fvi_close(FAR struct file *filep);
+static ssize_t bh1750fvi_read(FAR struct file *filep, FAR char *buffer,
+ size_t buflen);
+static ssize_t bh1750fvi_write(FAR struct file *filep,
+ FAR const char *buffer, size_t buflen);
+static int bh1750fvi_ioctl(FAR struct file *filep, int cmd,
+ unsigned long arg);
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+static const struct file_operations g_bh1750fvi_fops =
+{
+ bh1750fvi_open, /* open */
+ bh1750fvi_close, /* close */
+ bh1750fvi_read, /* read */
+ bh1750fvi_write, /* write */
+ NULL, /* seek */
+ bh1750fvi_ioctl /* ioctl */
+#ifndef CONFIG_DISABLE_POLL
+ , NULL /* poll */
+#endif
+#ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS
+ , NULL /* unlink */
+#endif
+};
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: bh1750fvi_read16
+ *
+ * Description:
+ * Read 16-bit register
+ *
+ ****************************************************************************/
+
+static int bh1750fvi_read16(FAR struct bh1750fvi_dev_s *priv,
+ FAR uint16_t *regval)
+{
+ struct i2c_config_s config;
+ uint8_t buffer[2];
+ int ret = -1;
+
+ /* Set up the I2C configuration */
+
+ config.frequency = CONFIG_BH1750FVI_I2C_FREQUENCY;
+ config.address = priv->addr;
+ config.addrlen = 7;
+
+ /* Read 16-bits from the device */
+
+ ret = i2c_read(priv->i2c, &config, buffer, 2);
+ if (ret < 0)
+ {
+ sndbg ("i2c_read failed: %d\n", ret);
+ return ret;
+ }
+
+ /* Copy the content of the buffer to the location of the uint16_t pointer */
+
+ *regval = (uint16_t)((buffer[0]<<8) | (buffer[1]));
+
+ sndbg("value: %08x ret: %d\n", *regval, ret);
+ return OK;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_write8
+ *
+ * Description:
+ * Write from an 8-bit register
+ *
+ ****************************************************************************/
+
+static int bh1750fvi_write8(FAR struct bh1750fvi_dev_s *priv, uint8_t regval)
+{
+ struct i2c_config_s config;
+ int ret;
+
+ sndbg("value: %02x\n", regval);
+
+ /* Set up the I2C configuration */
+
+ config.frequency = CONFIG_BH1750FVI_I2C_FREQUENCY;
+ config.address = priv->addr;
+ config.addrlen = 7;
+
+ /* Write 8 bits to device */
+
+ ret = i2c_write(priv->i2c, &config, ®val, 1);
+ if (ret < 0)
+ {
+ sndbg("i2c_write failed: %d\n", ret);
+ }
+
+ return ret;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_open
+ *
+ * Description:
+ * This function is called whenever the BH1750FVI device is opened.
+ *
+ ****************************************************************************/
+
+static int bh1750fvi_open(FAR struct file *filep)
+{
+ return OK;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_close
+ *
+ * Description:
+ * This routine is called when the BH1750FVI device is closed.
+ *
+ ****************************************************************************/
+
+static int bh1750fvi_close(FAR struct file *filep)
+{
+ return OK;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_read
+ ****************************************************************************/
+
+static ssize_t bh1750fvi_read(FAR struct file *filep, FAR char *buffer,
+ size_t buflen)
+{
+ int ret;
+ FAR struct inode *inode;
+ FAR struct bh1750fvi_dev_s *priv;
+ uint16_t lux = 0;
+
+ DEBUGASSERT(filep);
+ inode = filep->f_inode;
+
+ DEBUGASSERT(inode && inode->i_private);
+ priv = (FAR struct bh1750fvi_dev_s *)inode->i_private;
+
+ /* Check if the user is reading the right size */
+
+ if (buflen != 2)
+ {
+ sndbg("You need to read 2 bytes from this sensor!\n");
+ return -EINVAL;
+ }
+
+ ret = bh1750fvi_read16(priv, &lux);
+ if (ret < 0)
+ {
+ sndbg("Error reading light sensor!\n");
+ return ret;
+ }
+
+ buffer[0] = lux & 0xFF;
+ buffer[1] = (lux & 0xFF00) >> 8;
+
+ return buflen;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_write
+ ****************************************************************************/
+
+static ssize_t bh1750fvi_write(FAR struct file *filep,
+ FAR const char *buffer, size_t buflen)
+{
+ return -ENOSYS;
+}
+
+/****************************************************************************
+ * Name: bh1750fvi_ioctl
+ ****************************************************************************/
+
+static int bh1750fvi_ioctl(FAR struct file *filep, int cmd,
+ unsigned long arg)
+{
+ FAR struct inode *inode = filep->f_inode;
+ FAR struct bh1750fvi_dev_s *priv = inode->i_private;
+ int ret = OK;
+
+ switch (cmd)
+ {
+ /* Set device to Continuously H-Resolution Mode */
+
+ case SNIOC_CHRM:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_CONTINUOUS_HRM);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to Continuously H-Resolution Mode!\n");
+ }
+ }
+ break;
+
+ /* Set device to Continuously H-Resolution Mode2 */
+
+ case SNIOC_CHRM2:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_CONTINUOUS_HRM2);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to Continuously H-Resolution Mode2!\n");
+ }
+ }
+ break;
+
+ /* Set device to Continuously L-Resolution Mode */
+
+ case SNIOC_CLRM:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_CONTINUOUS_LRM);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to Continuously L-Resolution Mode!\n");
+ }
+ }
+ break;
+
+ /* Set device to One Time H-Resolution Mode */
+
+ case SNIOC_OTHRM:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_ONETIME_HRM);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to One Time H-Resolution Mode!\n");
+ }
+ }
+ break;
+
+ /* Set device to One Time H-Resolution Mode 2 */
+
+ case SNIOC_OTHRM2:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_ONETIME_HRM2);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to One Time H-Resolution Mode2!\n");
+ }
+ }
+ break;
+
+ /* Set device to One Time L-Resolution Mode */
+
+ case SNIOC_OTLRM:
+ {
+ ret = bh1750fvi_write8(priv, BH1750FVI_ONETIME_LRM);
+ if (ret < 0)
+ {
+ sndbg("Cannot change to One Time L-Resolution Mode!\n");
+ }
+ }
+ break;
+
+ /* Change the Measurement Time */
+
+ case SNIOC_CHMEATIME:
+ {
+ FAR uint8_t *ptr = (FAR uint8_t *)((uintptr_t)arg);
+ uint8_t reg;
+ DEBUGASSERT(ptr != NULL);
+
+ reg = BH1750FVI_MEASURE_TIMEH | ((*ptr & 0xE0) >> 5);
+
+ ret = bh1750fvi_write8(priv, reg);
+ if (ret < 0)
+ {
+ sndbg("Cannot Change Measure Time at MEASURE_TIMEH!\n");
+ }
+
+ reg = BH1750FVI_MEASURE_TIMEL | (*ptr & 0x1F);
+
+ ret = bh1750fvi_write8(priv, reg);
+ if (ret < 0)
+ {
+ sndbg("Cannot Change Measure Time at MEASURE_TIMEL!\n");
+ }
+ }
+ break;
+
+ default:
+ sndbg("Unrecognized cmd: %d\n", cmd);
+ ret = -ENOTTY;
+ break;
+ }
+
+ return ret;
+}
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: bh1750fvi_register
+ *
+ * Description:
+ * Register the BH1750FVI character device as 'devpath'
+ *
+ * Input Parameters:
+ * devpath - The full path to the driver to register. E.g., "/dev/light0"
+ * i2c - An instance of the I2C interface to use to communicate with BH1750FVI
+ * addr - The I2C address of the BH1750FVI.
+ *
+ * Returned Value:
+ * Zero (OK) on success; a negated errno value on failure.
+ *
+ ****************************************************************************/
+
+int bh1750fvi_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
+ uint8_t addr)
+{
+ int ret;
+
+ /* Sanity check */
+
+ DEBUGASSERT(i2c != NULL);
+
+ /* Initialize the BH1750FVI device structure */
+
+ FAR struct bh1750fvi_dev_s *priv =
+ (FAR struct bh1750fvi_dev_s *)kmm_malloc(sizeof(struct bh1750fvi_dev_s));
+
+ if (priv == NULL)
+ {
+ sndbg("Failed to allocate instance\n");
+ return -ENOMEM;
+ }
+
+ priv->i2c = i2c;
+ priv->addr = addr;
+
+ /* Power on the device */
+
+ ret = bh1750fvi_write8(priv, BH1750FVI_POWERON);
+ if (ret < 0)
+ {
+ sndbg("Failed to power-on the BH1750FVI!\n");
+ return ret;
+ }
+
+ /* Set Continuosly H-Resolution Mode */
+
+ ret = bh1750fvi_write8(priv, BH1750FVI_CONTINUOUS_HRM);
+ if (ret < 0)
+ {
+ sndbg("Failed to enable the Continuosly H-Resolution Mode!\n");
+ return ret;
+ }
+
+ /* Register the character driver */
+
+ ret = register_driver(devpath, &g_bh1750fvi_fops, 0666, priv);
+ if (ret < 0)
+ {
+ sndbg("Failed to register driver: %d\n", ret);
+ kmm_free(priv);
+ }
+
+ return ret;
+}
+
+#endif /* CONFIG_I2C && CONFIG_BH1750FVI */
diff --git a/drivers/wireless/nrf24l01.c b/drivers/wireless/nrf24l01.c
index ab7402d7735..eb6c3f68c8b 100644
--- a/drivers/wireless/nrf24l01.c
+++ b/drivers/wireless/nrf24l01.c
@@ -1590,7 +1590,7 @@ int nrf24l01_setradiofreq(FAR struct nrf24l01_dev_s *dev, uint32_t freq)
CHECK_ARGS(dev && freq >= NRF24L01_MIN_FREQ && freq <= NRF24L01_MAX_FREQ);
- value = NRF24L01_MIN_FREQ - freq;
+ value = freq - NRF24L01_MIN_FREQ;
nrf24l01_lock(dev->spi);
nrf24l01_writeregbyte(dev, NRF24L01_RF_CH, value);
nrf24l01_unlock(dev->spi);
diff --git a/fs/aio/aio_cancel.c b/fs/aio/aio_cancel.c
index 497a2b93c54..bdd4ba463a0 100644
--- a/fs/aio/aio_cancel.c
+++ b/fs/aio/aio_cancel.c
@@ -50,27 +50,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-/* Configuration ************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/aio/aio_fsync.c b/fs/aio/aio_fsync.c
index ad816264b5a..8070817595b 100644
--- a/fs/aio/aio_fsync.c
+++ b/fs/aio/aio_fsync.c
@@ -52,22 +52,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/aio/aio_initialize.c b/fs/aio/aio_initialize.c
index 95193614213..8d30d6f54a1 100644
--- a/fs/aio/aio_initialize.c
+++ b/fs/aio/aio_initialize.c
@@ -50,14 +50,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
@@ -92,13 +84,10 @@ static uint16_t g_aio_count;
dq_queue_t g_aio_pending;
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
+
/****************************************************************************
* Name: aio_initialize
*
diff --git a/fs/aio/aio_queue.c b/fs/aio/aio_queue.c
index 34cb31df0fe..d4c7cf76ea1 100644
--- a/fs/aio/aio_queue.c
+++ b/fs/aio/aio_queue.c
@@ -50,22 +50,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/aio/aio_read.c b/fs/aio/aio_read.c
index 81ee4e59263..b3e717b58bf 100644
--- a/fs/aio/aio_read.c
+++ b/fs/aio/aio_read.c
@@ -52,22 +52,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/aio/aio_write.c b/fs/aio/aio_write.c
index 70f40ca5989..e9ed46d8155 100644
--- a/fs/aio/aio_write.c
+++ b/fs/aio/aio_write.c
@@ -52,22 +52,6 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/aio/aioc_contain.c b/fs/aio/aioc_contain.c
index 207ae74681d..05b03c776cb 100644
--- a/fs/aio/aioc_contain.c
+++ b/fs/aio/aioc_contain.c
@@ -49,29 +49,10 @@
#ifdef CONFIG_FS_AIO
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
+
/****************************************************************************
* Name: aio_contain
*
diff --git a/fs/binfs/fs_binfs.c b/fs/binfs/fs_binfs.c
index 9c03b9530e3..959b3336dd2 100644
--- a/fs/binfs/fs_binfs.c
+++ b/fs/binfs/fs_binfs.c
@@ -59,10 +59,6 @@
#if !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FS_BINFS)
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -92,10 +88,6 @@ static int binfs_statfs(FAR struct inode *mountpt,
static int binfs_stat(FAR struct inode *mountpt, FAR const char *relpath,
FAR struct stat *buf);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/driver/driver.h b/fs/driver/driver.h
index 72ba7318a0d..9b7f59bdb79 100644
--- a/fs/driver/driver.h
+++ b/fs/driver/driver.h
@@ -47,10 +47,6 @@
#include "inode/inode.h"
/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
- /****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/driver/fs_blockproxy.c b/fs/driver/fs_blockproxy.c
index b01ecc2a88e..197b5534a57 100644
--- a/fs/driver/fs_blockproxy.c
+++ b/fs/driver/fs_blockproxy.c
@@ -58,18 +58,6 @@
#if !defined(CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && \
!defined(CONFIG_DISABLE_MOUNTPOINT)
-/****************************************************************************
- * Pre-processor oDefinitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
diff --git a/fs/driver/fs_closeblockdriver.c b/fs/driver/fs_closeblockdriver.c
index 99bbddfdda9..3280236af14 100644
--- a/fs/driver/fs_closeblockdriver.c
+++ b/fs/driver/fs_closeblockdriver.c
@@ -45,10 +45,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_devsyslog.c b/fs/driver/fs_devsyslog.c
index 70b21a2c082..b33129a9241 100644
--- a/fs/driver/fs_devsyslog.c
+++ b/fs/driver/fs_devsyslog.c
@@ -97,10 +97,6 @@ struct syslog_dev_s
struct file sl_file; /* The syslog file structure */
};
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
diff --git a/fs/driver/fs_findblockdriver.c b/fs/driver/fs_findblockdriver.c
index ed5f240b0f1..86b2c65a158 100644
--- a/fs/driver/fs_findblockdriver.c
+++ b/fs/driver/fs_findblockdriver.c
@@ -49,10 +49,6 @@
#include "inode/inode.h"
#include "driver/driver.h"
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_openblockdriver.c b/fs/driver/fs_openblockdriver.c
index 21a3d516e49..28527515759 100644
--- a/fs/driver/fs_openblockdriver.c
+++ b/fs/driver/fs_openblockdriver.c
@@ -46,10 +46,6 @@
#include "inode/inode.h"
#include "driver/driver.h"
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_registerblockdriver.c b/fs/driver/fs_registerblockdriver.c
index 65493c900c0..69096190713 100644
--- a/fs/driver/fs_registerblockdriver.c
+++ b/fs/driver/fs_registerblockdriver.c
@@ -48,22 +48,6 @@
#ifndef CONFIG_DISABLE_MOUNTPOINT
-/****************************************************************************
- * Pre-processor oDefinitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_registerdriver.c b/fs/driver/fs_registerdriver.c
index 42c7acf4183..501bf93f662 100644
--- a/fs/driver/fs_registerdriver.c
+++ b/fs/driver/fs_registerdriver.c
@@ -46,22 +46,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_unregisterblockdriver.c b/fs/driver/fs_unregisterblockdriver.c
index b4b775cdf04..23470e9ba31 100644
--- a/fs/driver/fs_unregisterblockdriver.c
+++ b/fs/driver/fs_unregisterblockdriver.c
@@ -43,26 +43,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/driver/fs_unregisterdriver.c b/fs/driver/fs_unregisterdriver.c
index b8dec302ed0..242553a3663 100644
--- a/fs/driver/fs_unregisterdriver.c
+++ b/fs/driver/fs_unregisterdriver.c
@@ -43,26 +43,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/fat/fs_fat32.c b/fs/fat/fs_fat32.c
index 7fddec4d032..c9cf80be6e9 100644
--- a/fs/fat/fs_fat32.c
+++ b/fs/fat/fs_fat32.c
@@ -67,14 +67,6 @@
#include "inode/inode.h"
#include "fs_fat32.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -117,10 +109,6 @@ static int fat_rename(FAR struct inode *mountpt,
static int fat_stat(struct inode *mountpt, const char *relpath,
FAR struct stat *buf);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/fat/fs_fat32dirent.c b/fs/fat/fs_fat32dirent.c
index 98a37e31988..7ea497b62a1 100644
--- a/fs/fat/fs_fat32dirent.c
+++ b/fs/fat/fs_fat32dirent.c
@@ -86,10 +86,6 @@
#include "inode/inode.h"
#include "fs_fat32.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
/****************************************************************************
* Private Types
****************************************************************************/
@@ -155,14 +151,6 @@ static int fat_putsfdirentry(struct fat_mountpt_s *fs,
struct fat_dirinfo_s *dirinfo,
uint8_t attributes, uint32_t fattime);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/fat/fs_fat32util.c b/fs/fat/fs_fat32util.c
index 604b9ca07b3..84f3b8eae71 100644
--- a/fs/fat/fs_fat32util.c
+++ b/fs/fat/fs_fat32util.c
@@ -63,26 +63,6 @@
#include "inode/inode.h"
#include "fs_fat32.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/fat/fs_mkfatfs.h b/fs/fat/fs_mkfatfs.h
index 1e1fc05e158..ce170296c64 100644
--- a/fs/fat/fs_mkfatfs.h
+++ b/fs/fat/fs_mkfatfs.h
@@ -109,10 +109,6 @@ struct fat_var_s
const uint8_t *fv_bootcode; /* Points to boot code to put into MBR */
};
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
diff --git a/fs/fs_initialize.c b/fs/fs_initialize.c
index eceb3c5c209..8d37c069324 100644
--- a/fs/fs_initialize.c
+++ b/fs/fs_initialize.c
@@ -42,26 +42,6 @@
#include "inode/inode.h"
#include "aio/aio.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/hostfs/hostfs.c b/fs/hostfs/hostfs.c
index f3701273e45..ee57d8295f5 100644
--- a/fs/hostfs/hostfs.c
+++ b/fs/hostfs/hostfs.c
@@ -61,14 +61,6 @@
#include "hostfs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
diff --git a/fs/hostfs/hostfs.h b/fs/hostfs/hostfs.h
index 17227611a10..bf501332f98 100644
--- a/fs/hostfs/hostfs.h
+++ b/fs/hostfs/hostfs.h
@@ -91,10 +91,6 @@ struct hostfs_mountpt_s
char fs_root[HOSTFS_MAX_PATH];
};
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Internal function prototypes
****************************************************************************/
diff --git a/fs/inode/fs_files.c b/fs/inode/fs_files.c
index 8366b55ce70..84f78ee4009 100644
--- a/fs/inode/fs_files.c
+++ b/fs/inode/fs_files.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs/inode/fs_files.c
*
- * Copyright (C) 2007-2009, 2011-2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011-2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -51,22 +51,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
@@ -222,9 +206,18 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2)
}
list = sched_getfiles();
- DEBUGASSERT(list);
- _files_semtake(list);
+ /* The file list can be NULL under two cases: (1) One is an obscure
+ * cornercase: When memory management debug output is enabled. Then
+ * there may be attempts to write to stdout from malloc before the group
+ * data has been allocated. The other other is (2) if this is a kernel
+ * thread. Kernel threads have no allocated file descriptors.
+ */
+
+ if (list != NULL)
+ {
+ _files_semtake(list);
+ }
/* If there is already an inode contained in the new file structure,
* close the file and release the inode.
@@ -278,7 +271,11 @@ int file_dup2(FAR struct file *filep1, FAR struct file *filep2)
}
}
- _files_semgive(list);
+ if (list != NULL)
+ {
+ _files_semgive(list);
+ }
+
return OK;
/* Handler various error conditions */
@@ -291,7 +288,11 @@ errout_with_inode:
errout_with_ret:
err = -ret;
- _files_semgive(list);
+
+ if (list != NULL)
+ {
+ _files_semgive(list);
+ }
errout:
set_errno(err);
@@ -312,8 +313,10 @@ int files_allocate(FAR struct inode *inode, int oflags, off_t pos, int minfd)
FAR struct filelist *list;
int i;
+ /* Get the file descriptor list. It should not be NULL in this context. */
+
list = sched_getfiles();
- DEBUGASSERT(list);
+ DEBUGASSERT(list != NULL);
_files_semtake(list);
for (i = minfd; i < CONFIG_NFILE_DESCRIPTORS; i++)
@@ -349,10 +352,12 @@ int files_close(int fd)
FAR struct filelist *list;
int ret;
- /* Get the thread-specific file list */
+ /* Get the thread-specific file list. It should never be NULL in this
+ * context.
+ */
list = sched_getfiles();
- DEBUGASSERT(list);
+ DEBUGASSERT(list != NULL);
/* If the file was properly opened, there should be an inode assigned */
diff --git a/fs/inode/fs_foreachinode.c b/fs/inode/fs_foreachinode.c
index 41ef0f0160a..9af70dfbf39 100644
--- a/fs/inode/fs_foreachinode.c
+++ b/fs/inode/fs_foreachinode.c
@@ -52,6 +52,7 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
+
/* Is it better to allocate the struct inode_path_s from the heap? or
* from the stack? This decision depends on how often this is down and
* how much stack space you can afford.
diff --git a/fs/inode/fs_inode.c b/fs/inode/fs_inode.c
index 52985f8ad70..e2e86eaa003 100644
--- a/fs/inode/fs_inode.c
+++ b/fs/inode/fs_inode.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs/inode/fs_inode.c
*
- * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011-2012, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -57,6 +57,7 @@
/****************************************************************************
* Private Types
****************************************************************************/
+
/* Implements a re-entrant mutex for inode access. This must be re-entrant
* because there can be cycles. For example, it may be necessary to destroy
* a block driver inode on umount() after a removable block device has been
diff --git a/fs/inode/fs_inodeaddref.c b/fs/inode/fs_inodeaddref.c
index b34a32c9f8a..f02661a2b6e 100644
--- a/fs/inode/fs_inodeaddref.c
+++ b/fs/inode/fs_inodeaddref.c
@@ -43,22 +43,6 @@
#include
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/inode/fs_inodefind.c b/fs/inode/fs_inodefind.c
index 533e2ef2222..3ff249d348d 100644
--- a/fs/inode/fs_inodefind.c
+++ b/fs/inode/fs_inodefind.c
@@ -44,22 +44,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/inode/fs_inoderelease.c b/fs/inode/fs_inoderelease.c
index 97eadfaac0e..d8e535f3bf1 100644
--- a/fs/inode/fs_inoderelease.c
+++ b/fs/inode/fs_inoderelease.c
@@ -46,22 +46,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/inode/fs_inoderemove.c b/fs/inode/fs_inoderemove.c
index e0b12299c02..8f454f1d584 100644
--- a/fs/inode/fs_inoderemove.c
+++ b/fs/inode/fs_inoderemove.c
@@ -46,22 +46,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/inode/fs_inodereserve.c b/fs/inode/fs_inodereserve.c
index 9bf601e0c0a..d790689de97 100644
--- a/fs/inode/fs_inodereserve.c
+++ b/fs/inode/fs_inodereserve.c
@@ -47,18 +47,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/inode/inode.h b/fs/inode/inode.h
index 3437c3858bc..089bf672344 100644
--- a/fs/inode/inode.h
+++ b/fs/inode/inode.h
@@ -128,6 +128,7 @@ EXTERN FAR struct inode *g_root_inode;
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
+
/* fs_inode.c ***************************************************************/
/****************************************************************************
* Name: inode_initialize
diff --git a/fs/mmap/fs_rammap.h b/fs/mmap/fs_rammap.h
index d4a7b05a379..d39862dd68e 100644
--- a/fs/mmap/fs_rammap.h
+++ b/fs/mmap/fs_rammap.h
@@ -49,10 +49,6 @@
#ifdef CONFIG_FS_RAMMAP
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
/****************************************************************************
* Public Types
****************************************************************************/
diff --git a/fs/mount/fs_automount.c b/fs/mount/fs_automount.c
index e961fb5db8a..e0fea078812 100644
--- a/fs/mount/fs_automount.c
+++ b/fs/mount/fs_automount.c
@@ -102,14 +102,6 @@ static void automount_worker(FAR void *arg);
static int automount_interrupt(FAR const struct automount_lower_s *lower,
FAR void *arg, bool inserted);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/mount/fs_mount.c b/fs/mount/fs_mount.c
index abf7b9446e1..1fd2864c351 100644
--- a/fs/mount/fs_mount.c
+++ b/fs/mount/fs_mount.c
@@ -166,10 +166,6 @@ static const struct fsmap_t g_nonbdfsmap[] =
};
#endif /* NONBDFS_SUPPORT */
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/mount/fs_umount2.c b/fs/mount/fs_umount2.c
index a60dfc2a09a..e9154a49960 100644
--- a/fs/mount/fs_umount2.c
+++ b/fs/mount/fs_umount2.c
@@ -47,26 +47,6 @@
#include "inode/inode.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/mqueue/mq_close.c b/fs/mqueue/mq_close.c
index 0d0a4714617..454f5cf62a9 100644
--- a/fs/mqueue/mq_close.c
+++ b/fs/mqueue/mq_close.c
@@ -44,35 +44,71 @@
#include
#include
+#include
#include
#include "inode/inode.h"
#include "mqueue/mqueue.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
+/****************************************************************************
+ * Name: mq_close_group
+ *
+ * Description:
+ * This function is used to indicate that all threads in the group are
+ * finished with the specified message queue mqdes. The mq_close_group()
+ * deallocates any system resources allocated by the system for use by
+ * this task for its message queue.
+ *
+ * Parameters:
+ * mqdes - Message queue descriptor.
+ * group - Group that has the open descriptor.
+ *
+ * Return Value:
+ * 0 (OK) if the message queue is closed successfully,
+ * otherwise, -1 (ERROR).
+ *
+ ****************************************************************************/
+
+int mq_close_group(mqd_t mqdes, FAR struct task_group_s *group)
+{
+ FAR struct mqueue_inode_s *msgq;
+ FAR struct inode *inode;
+
+ DEBUGASSERT(mqdes != NULL && group != NULL);
+
+ /* Verify the inputs */
+
+ if (mqdes)
+ {
+ sched_lock();
+
+ /* Find the message queue associated with the message descriptor */
+
+ msgq = mqdes->msgq;
+ DEBUGASSERT(msgq && msgq->inode);
+
+ /* Close/free the message descriptor */
+
+ mq_desclose_group(mqdes, group);
+
+ /* Get the inode from the message queue structure */
+
+ inode = msgq->inode;
+ DEBUGASSERT(inode->u.i_mqueue == msgq);
+
+ /* Decrement the reference count on the inode, possibly freeing it */
+
+ mq_inode_release(inode);
+ sched_unlock();
+ }
+
+ return OK;
+}
+
/****************************************************************************
* Name: mq_close
*
@@ -103,38 +139,24 @@
int mq_close(mqd_t mqdes)
{
- FAR struct mqueue_inode_s *msgq;
- FAR struct inode *inode;
+ FAR struct tcb_s *rtcb = (FAR struct tcb_s *)sched_self();
+ int ret;
- /* Verify the inputs */
+ /* Lock the scheduler to prevent any asynchrounous task delete operation
+ * (unlikely).
+ */
- if (mqdes)
- {
- sched_lock();
+ sched_lock();
- /* Find the message queue associated with the message descriptor */
+ rtcb = (FAR struct tcb_s *)sched_self();
+ DEBUGASSERT(mqdes != NULL && rtcb != NULL && rtcb->group != NULL);
- msgq = mqdes->msgq;
- DEBUGASSERT(msgq && msgq->inode);
-
- /* Close/free the message descriptor */
-
- mq_desclose(mqdes);
-
- /* Get the inode from the message queue structure */
-
- inode = msgq->inode;
- DEBUGASSERT(inode->u.i_mqueue == msgq);
-
- /* Decrement the reference count on the inode, possibly freeing it */
-
- mq_inode_release(inode);
- sched_unlock();
- }
-
- return OK;
+ ret = mq_close_group(mqdes, rtcb->group);
+ sched_unlock();
+ return ret;
}
+
/****************************************************************************
* Name: mq_inode_release
*
diff --git a/fs/mqueue/mq_open.c b/fs/mqueue/mq_open.c
index ca4ef46bdd1..23258f9338f 100644
--- a/fs/mqueue/mq_open.c
+++ b/fs/mqueue/mq_open.c
@@ -52,26 +52,6 @@
#include "inode/inode.h"
#include "mqueue/mqueue.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/mqueue/mq_unlink.c b/fs/mqueue/mq_unlink.c
index e9cce12c89b..85360f797d7 100644
--- a/fs/mqueue/mq_unlink.c
+++ b/fs/mqueue/mq_unlink.c
@@ -49,26 +49,6 @@
#include "inode/inode.h"
#include "mqueue/mqueue.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/mqueue/mqueue.h b/fs/mqueue/mqueue.h
index 4392412ddff..4edc08ece18 100644
--- a/fs/mqueue/mqueue.h
+++ b/fs/mqueue/mqueue.h
@@ -55,10 +55,6 @@
#define MAX_MQUEUE_PATH 64
-/****************************************************************************
- * Public Type Declarations
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/nfs/nfs.h b/fs/nfs/nfs.h
index edcfb676cea..f0db29389cf 100644
--- a/fs/nfs/nfs.h
+++ b/fs/nfs/nfs.h
@@ -104,10 +104,6 @@ struct nfsstats
uint64_t rpccnt[NFS_NPROCS];
};
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
diff --git a/fs/nfs/nfs_util.c b/fs/nfs/nfs_util.c
index eb339cee697..6e5d8e45263 100644
--- a/fs/nfs/nfs_util.c
+++ b/fs/nfs/nfs_util.c
@@ -60,22 +60,6 @@
#include "nfs_node.h"
#include "xdr_subs.h"
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
@@ -131,6 +115,7 @@ static inline int nfs_pathsegment(FAR const char **path, FAR char *buffer,
}
}
}
+
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nfs/nfs_vfsops.c b/fs/nfs/nfs_vfsops.c
index 934cea664bf..6d71a044572 100644
--- a/fs/nfs/nfs_vfsops.c
+++ b/fs/nfs/nfs_vfsops.c
@@ -115,10 +115,6 @@ uint32_t nfs_xdrneg1;
struct nfsstats nfsstats;
#endif
-/****************************************************************************
- * Private Type Definitions
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -189,10 +185,6 @@ const struct mountpt_operations nfs_operations =
nfs_stat /* stat */
};
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nfs/rpc_clnt.c b/fs/nfs/rpc_clnt.c
index 030d9bafb29..0af2b470c73 100644
--- a/fs/nfs/rpc_clnt.c
+++ b/fs/nfs/rpc_clnt.c
@@ -107,10 +107,6 @@
# define rpc_statistics(n)
#endif
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
diff --git a/fs/nxffs/nxffs_block.c b/fs/nxffs/nxffs_block.c
index 8dd6a47ee8d..490f3025378 100644
--- a/fs/nxffs/nxffs_block.c
+++ b/fs/nxffs/nxffs_block.c
@@ -50,22 +50,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_blockstats.c b/fs/nxffs/nxffs_blockstats.c
index 4ff1bd8b3a1..797cae2d4cd 100644
--- a/fs/nxffs/nxffs_blockstats.c
+++ b/fs/nxffs/nxffs_blockstats.c
@@ -49,22 +49,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_dirent.c b/fs/nxffs/nxffs_dirent.c
index 34d8654bf58..39150b9369d 100644
--- a/fs/nxffs/nxffs_dirent.c
+++ b/fs/nxffs/nxffs_dirent.c
@@ -53,22 +53,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_initialize.c b/fs/nxffs/nxffs_initialize.c
index b453b38b9b0..5701d316379 100644
--- a/fs/nxffs/nxffs_initialize.c
+++ b/fs/nxffs/nxffs_initialize.c
@@ -53,18 +53,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
@@ -139,10 +127,6 @@ const uint8_t g_datamagic[NXFFS_MAGICSIZE] =
struct nxffs_volume_s g_volume;
#endif
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_inode.c b/fs/nxffs/nxffs_inode.c
index 63ba8cbb466..bf4c7f59570 100644
--- a/fs/nxffs/nxffs_inode.c
+++ b/fs/nxffs/nxffs_inode.c
@@ -52,18 +52,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_ioctl.c b/fs/nxffs/nxffs_ioctl.c
index ec2cd041de8..da0752320a3 100644
--- a/fs/nxffs/nxffs_ioctl.c
+++ b/fs/nxffs/nxffs_ioctl.c
@@ -52,22 +52,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_open.c b/fs/nxffs/nxffs_open.c
index f665623a063..2ac1249e06a 100644
--- a/fs/nxffs/nxffs_open.c
+++ b/fs/nxffs/nxffs_open.c
@@ -55,14 +55,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
@@ -75,10 +67,6 @@
static struct nxffs_wrfile_s g_wrfile;
#endif
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_pack.c b/fs/nxffs/nxffs_pack.c
index 14c9e8d8f1e..0e816b359d2 100644
--- a/fs/nxffs/nxffs_pack.c
+++ b/fs/nxffs/nxffs_pack.c
@@ -88,10 +88,6 @@ struct nxffs_pack_s
uint16_t iooffset; /* I/O block offset */
};
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_read.c b/fs/nxffs/nxffs_read.c
index 6bd09374f91..c327013d829 100644
--- a/fs/nxffs/nxffs_read.c
+++ b/fs/nxffs/nxffs_read.c
@@ -53,18 +53,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_reformat.c b/fs/nxffs/nxffs_reformat.c
index ba151f4cc9c..cf2639a0478 100644
--- a/fs/nxffs/nxffs_reformat.c
+++ b/fs/nxffs/nxffs_reformat.c
@@ -49,18 +49,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_stat.c b/fs/nxffs/nxffs_stat.c
index f4a16a2117a..b1dbdcbaf9b 100644
--- a/fs/nxffs/nxffs_stat.c
+++ b/fs/nxffs/nxffs_stat.c
@@ -54,22 +54,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_unlink.c b/fs/nxffs/nxffs_unlink.c
index 8422616057d..bc42b5a3174 100644
--- a/fs/nxffs/nxffs_unlink.c
+++ b/fs/nxffs/nxffs_unlink.c
@@ -51,22 +51,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_util.c b/fs/nxffs/nxffs_util.c
index 52354d33f94..ac51140fa35 100644
--- a/fs/nxffs/nxffs_util.c
+++ b/fs/nxffs/nxffs_util.c
@@ -45,22 +45,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/nxffs/nxffs_write.c b/fs/nxffs/nxffs_write.c
index 561fb58bea0..423c61c9f6e 100644
--- a/fs/nxffs/nxffs_write.c
+++ b/fs/nxffs/nxffs_write.c
@@ -53,22 +53,6 @@
#include "nxffs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/procfs/fs_procfscpuload.c b/fs/procfs/fs_procfscpuload.c
index f33986d7160..2f54ab841fe 100644
--- a/fs/procfs/fs_procfscpuload.c
+++ b/fs/procfs/fs_procfscpuload.c
@@ -99,10 +99,6 @@ static int cpuload_dup(FAR const struct file *oldp,
FAR struct file *newp);
static int cpuload_stat(FAR const char *relpath, FAR struct stat *buf);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/procfs/fs_procfsuptime.c b/fs/procfs/fs_procfsuptime.c
index 3e725c1473f..a1b9b070da7 100644
--- a/fs/procfs/fs_procfsuptime.c
+++ b/fs/procfs/fs_procfsuptime.c
@@ -101,10 +101,6 @@ static int uptime_dup(FAR const struct file *oldp,
static int uptime_stat(FAR const char *relpath, FAR struct stat *buf);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/procfs/fs_procfsutil.c b/fs/procfs/fs_procfsutil.c
index ea483e18045..7a71ff18540 100644
--- a/fs/procfs/fs_procfsutil.c
+++ b/fs/procfs/fs_procfsutil.c
@@ -58,22 +58,6 @@
# define MAX(a,b) ((a > b) ? a : b)
#endif
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/romfs/fs_romfs.c b/fs/romfs/fs_romfs.c
index 84c786671c1..804fbb7ed46 100644
--- a/fs/romfs/fs_romfs.c
+++ b/fs/romfs/fs_romfs.c
@@ -63,10 +63,6 @@
#include "fs_romfs.h"
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
@@ -100,10 +96,6 @@ static int romfs_statfs(FAR struct inode *mountpt,
static int romfs_stat(FAR struct inode *mountpt, FAR const char *relpath,
FAR struct stat *buf);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/romfs/fs_romfsutil.c b/fs/romfs/fs_romfsutil.c
index 9e19b7a4473..ade749ffcb5 100644
--- a/fs/romfs/fs_romfsutil.c
+++ b/fs/romfs/fs_romfsutil.c
@@ -57,22 +57,6 @@
#include "fs_romfs.h"
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/
diff --git a/fs/semaphore/sem_close.c b/fs/semaphore/sem_close.c
index 3576cba2157..61763d3bb99 100644
--- a/fs/semaphore/sem_close.c
+++ b/fs/semaphore/sem_close.c
@@ -51,26 +51,6 @@
#ifdef CONFIG_FS_NAMED_SEMAPHORES
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
@@ -150,3 +130,4 @@ int sem_close(FAR sem_t *sem)
}
#endif /* CONFIG_FS_NAMED_SEMAPHORES */
+
diff --git a/fs/semaphore/sem_open.c b/fs/semaphore/sem_open.c
index 6b3d6e0d3e4..8e42cb47175 100644
--- a/fs/semaphore/sem_open.c
+++ b/fs/semaphore/sem_open.c
@@ -57,26 +57,6 @@
#ifdef CONFIG_FS_NAMED_SEMAPHORES
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
@@ -272,4 +252,4 @@ errout_with_lock:
return (FAR sem_t *)ERROR;
}
-#endif /* CONFIG_FS_NAMED_SEMAPHORES */
\ No newline at end of file
+#endif /* CONFIG_FS_NAMED_SEMAPHORES */
diff --git a/fs/semaphore/sem_unlink.c b/fs/semaphore/sem_unlink.c
index 636c7930853..19f758f0935 100644
--- a/fs/semaphore/sem_unlink.c
+++ b/fs/semaphore/sem_unlink.c
@@ -51,26 +51,6 @@
#include "inode/inode.h"
#include "semaphore/semaphore.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/semaphore/semaphore.h b/fs/semaphore/semaphore.h
index 5ef28b3aac0..6a1784b335b 100644
--- a/fs/semaphore/semaphore.h
+++ b/fs/semaphore/semaphore.h
@@ -48,10 +48,6 @@
#define MAX_SEMPATH 64
-/****************************************************************************
- * Public Type Declarations
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/smartfs/smartfs_smart.c b/fs/smartfs/smartfs_smart.c
index 122d6dca874..df65d2bdd04 100644
--- a/fs/smartfs/smartfs_smart.c
+++ b/fs/smartfs/smartfs_smart.c
@@ -62,14 +62,6 @@
#include "smartfs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
diff --git a/fs/smartfs/smartfs_utils.c b/fs/smartfs/smartfs_utils.c
index dba35882bcc..4970c51d8fb 100644
--- a/fs/smartfs/smartfs_utils.c
+++ b/fs/smartfs/smartfs_utils.c
@@ -56,18 +56,6 @@
#include "smartfs.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
@@ -77,14 +65,6 @@
static struct smartfs_mountpt_s *g_mounthead = NULL;
#endif
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/tmpfs/fs_tmpfs.c b/fs/tmpfs/fs_tmpfs.c
index 529cdd5ee71..09aa6bec704 100644
--- a/fs/tmpfs/fs_tmpfs.c
+++ b/fs/tmpfs/fs_tmpfs.c
@@ -80,10 +80,6 @@
#define tmpfs_unlock_directory(tdo) \
(tmpfs_unlock_object((FAR struct tmpfs_object_s *)tdo))
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
diff --git a/fs/unionfs/fs_unionfs.c b/fs/unionfs/fs_unionfs.c
index 491d71f74a7..3ebc6d2fdb0 100644
--- a/fs/unionfs/fs_unionfs.c
+++ b/fs/unionfs/fs_unionfs.c
@@ -195,10 +195,6 @@ static int unionfs_stat(FAR struct inode *mountpt,
static int unionfs_getmount(FAR const char *path,
FAR struct inode **inode);
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
/****************************************************************************
* Public Data
****************************************************************************/
diff --git a/fs/vfs/fs_fsync.c b/fs/vfs/fs_fsync.c
index 167daafa217..a2d58825eb4 100644
--- a/fs/vfs/fs_fsync.c
+++ b/fs/vfs/fs_fsync.c
@@ -51,22 +51,6 @@
#ifndef CONFIG_DISABLE_MOUNTPOINT
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/vfs/fs_getfilep.c b/fs/vfs/fs_getfilep.c
index 165d00434ce..79daf09b65f 100644
--- a/fs/vfs/fs_getfilep.c
+++ b/fs/vfs/fs_getfilep.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs/vfs/fs_getfilep.c
*
- * Copyright (C) 2014 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -91,12 +91,14 @@ FAR struct file *fs_getfilep(int fd)
list = sched_getfiles();
- /* The file list can be NULL under one obscure cornercase: When memory
- * management debug output is enabled. Then there may be attempts to
- * write to stdout from malloc before the group data has been allocated.
+ /* The file list can be NULL under two cases: (1) One is an obscure
+ * cornercase: When memory management debug output is enabled. Then
+ * there may be attempts to write to stdout from malloc before the group
+ * data has been allocated. The other other is (2) if this is a kernel
+ * thread. Kernel threads have no allocated file descriptors.
*/
- if (!list)
+ if (list == NULL)
{
errcode = EAGAIN;
goto errout;
diff --git a/fs/vfs/fs_mkdir.c b/fs/vfs/fs_mkdir.c
index 886b4114a11..57b0d1be088 100644
--- a/fs/vfs/fs_mkdir.c
+++ b/fs/vfs/fs_mkdir.c
@@ -67,18 +67,6 @@
#ifdef FS_HAVE_MKDIR
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/vfs/fs_rename.c b/fs/vfs/fs_rename.c
index 785898f2536..a23d7769d4b 100644
--- a/fs/vfs/fs_rename.c
+++ b/fs/vfs/fs_rename.c
@@ -67,18 +67,6 @@
#ifdef FS_HAVE_RENAME
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/vfs/fs_rmdir.c b/fs/vfs/fs_rmdir.c
index ba46b25ee94..ecef33558e3 100644
--- a/fs/vfs/fs_rmdir.c
+++ b/fs/vfs/fs_rmdir.c
@@ -67,18 +67,6 @@
#ifdef FS_HAVE_RMDIR
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/vfs/fs_sendfile.c b/fs/vfs/fs_sendfile.c
index cf05b888687..c1a4703601b 100644
--- a/fs/vfs/fs_sendfile.c
+++ b/fs/vfs/fs_sendfile.c
@@ -51,22 +51,6 @@
#if CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NET_SENDFILE
-/****************************************************************************
- * Private types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/fs/vfs/fs_unlink.c b/fs/vfs/fs_unlink.c
index 4c884c421bf..9de8ea2f2f7 100644
--- a/fs/vfs/fs_unlink.c
+++ b/fs/vfs/fs_unlink.c
@@ -67,18 +67,6 @@
#ifdef FS_HAVE_UNLINK
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/graphics/Makefile b/graphics/Makefile
index d2fbef52de2..a8111002329 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -1,7 +1,7 @@
############################################################################
# graphics/Makefile
#
-# Copyright (C) 2008-2009, 2011-2012 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008-2009, 2011-2012, 2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt
#
# Redistribution and use in source and binary forms, with or without
@@ -35,54 +35,31 @@
-include $(TOPDIR)/Make.defs
-DEPPATH = --dep-path .
+DEPPATH = --dep-path .
ifeq ($(WINTOOL),y)
-INCDIROPT = -w
+INCDIROPT = -w
endif
+ASRCS =
+CSRCS =
+VPATH =
+
include nxglib/Make.defs
-DEPPATH += --dep-path nxglib
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxglib}
-
include nxbe/Make.defs
-DEPPATH += --dep-path nxbe
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxbe}
-
-ifeq ($(CONFIG_NX_MULTIUSER),y)
include nxmu/Make.defs
-DEPPATH += --dep-path nxmu
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxmu}
-else
include nxsu/Make.defs
-DEPPATH += --dep-path nxsu
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxsu}
-endif
-
-ifeq ($(CONFIG_NXTERM),y)
include nxterm/Make.defs
-DEPPATH += --dep-path nxterm
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxterm}
-endif
-ASRCS = $(NXGLIB_ASRCS) $(NXBE_ASRCS) $(NX_ASRCS) $(NXTK_ASRCS) $(NXTERM_ASRCS)
-AOBJS = $(ASRCS:.S=$(OBJEXT))
+AOBJS = $(ASRCS:.S=$(OBJEXT))
+COBJS = $(CSRCS:.c=$(OBJEXT))
-CSRCS = $(NXGLIB_CSRCS) $(NXBE_CSRCS) $(NX_CSRCS) $(NXTK_CSRCS) $(NXTERM_CSRCS)
-COBJS = $(CSRCS:.c=$(OBJEXT))
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
+BIN = libgraphics$(LIBEXT)
-BIN = libgraphics$(LIBEXT)
-
-ifeq ($(CONFIG_NX_MULTIUSER),y)
-VPATH = nxglib:nxbe:nxmu:nxterm
-else
-VPATH = nxglib:nxbe:nxsu:nxterm
-endif
-
-all: mklibgraphics
+all: mklibgraphics
.PHONY : context depend clean distclean mklibgraphics gensources gen1bppsources \
gen2bppsource gen4bppsource gen8bppsource gen16bppsource gen24bppsource \
gen32bppsources
diff --git a/graphics/nxbe/Make.defs b/graphics/nxbe/Make.defs
index 53fdf966400..d052c7e6f8d 100644
--- a/graphics/nxbe/Make.defs
+++ b/graphics/nxbe/Make.defs
@@ -1,7 +1,7 @@
############################################################################
# graphics/nxbe/Make.defs
#
-# Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2011, 2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt
#
# Redistribution and use in source and binary forms, with or without
@@ -33,9 +33,12 @@
#
############################################################################
-NXBE_ASRCS =
-NXBE_CSRCS = nxbe_bitmap.c nxbe_configure.c nxbe_colormap.c nxbe_clipper.c \
- nxbe_closewindow.c nxbe_fill.c nxbe_filltrapezoid.c \
- nxbe_getrectangle.c nxbe_lower.c nxbe_move.c nxbe_raise.c \
- nxbe_redraw.c nxbe_redrawbelow.c nxbe_setpixel.c nxbe_setposition.c \
- nxbe_setsize.c nxbe_visible.c
+CSRCS += nxbe_bitmap.c nxbe_configure.c nxbe_colormap.c nxbe_clipper.c
+CSRCS += nxbe_closewindow.c nxbe_fill.c nxbe_filltrapezoid.c
+CSRCS += nxbe_getrectangle.c nxbe_lower.c nxbe_move.c nxbe_raise.c
+CSRCS += nxbe_redraw.c nxbe_redrawbelow.c nxbe_setpixel.c nxbe_setposition.c
+CSRCS += nxbe_setsize.c nxbe_visible.c
+
+DEPPATH += --dep-path nxbe
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxbe}
+VPATH += :nxbe
diff --git a/graphics/nxbe/nxbe.h b/graphics/nxbe/nxbe.h
index 5c48e756a85..5b0743c0d80 100644
--- a/graphics/nxbe/nxbe.h
+++ b/graphics/nxbe/nxbe.h
@@ -1,7 +1,7 @@
/****************************************************************************
* graphics/nxbe/nxbe.h
*
- * Copyright (C) 2008-2011, 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2008-2011, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -75,27 +75,27 @@ struct nxbe_plane_s
{
/* Raster operation callbacks for this bits-per-pixel value */
- void (*setpixel)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_point_s *pos,
- nxgl_mxpixel_t color);
- void (*fillrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_rect_s *rect,
+ CODE void (*setpixel)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_point_s *pos,
nxgl_mxpixel_t color);
- void (*getrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_rect_s *rect,
- FAR void *dest, unsigned int deststride);
- void (*filltrapezoid)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_trapezoid_s *trap,
- FAR const struct nxgl_rect_s *bounds,
- nxgl_mxpixel_t color);
- void (*moverectangle)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_rect_s *rect,
- FAR struct nxgl_point_s *offset);
- void (*copyrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
- FAR const struct nxgl_rect_s *dest,
- FAR const void *src,
- FAR const struct nxgl_point_s *origin,
- unsigned int srcstride);
+ CODE void (*fillrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_rect_s *rect,
+ nxgl_mxpixel_t color);
+ CODE void (*getrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_rect_s *rect,
+ FAR void *dest, unsigned int deststride);
+ CODE void (*filltrapezoid)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_trapezoid_s *trap,
+ FAR const struct nxgl_rect_s *bounds,
+ nxgl_mxpixel_t color);
+ CODE void (*moverectangle)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_rect_s *rect,
+ FAR struct nxgl_point_s *offset);
+ CODE void (*copyrectangle)(FAR NX_PLANEINFOTYPE *pinfo,
+ FAR const struct nxgl_rect_s *dest,
+ FAR const void *src,
+ FAR const struct nxgl_point_s *origin,
+ unsigned int srcstride);
/* Framebuffer plane info describing destination video plane */
diff --git a/graphics/nxbe/nxbe_configure.c b/graphics/nxbe/nxbe_configure.c
index b8e90f93ab9..5dc9b49c19c 100644
--- a/graphics/nxbe/nxbe_configure.c
+++ b/graphics/nxbe/nxbe_configure.c
@@ -53,10 +53,6 @@
# define CONFIG_NX_BGCOLOR 0
#endif
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
/****************************************************************************
* Private Data
****************************************************************************/
@@ -70,14 +66,6 @@ static const nxgl_mxpixel_t g_bgcolor[CONFIG_NX_NPLANES] =
#endif
};
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
/****************************************************************************
* Public Functions
****************************************************************************/
diff --git a/graphics/nxglib/Make.defs b/graphics/nxglib/Make.defs
index 124b053f6b8..b8f064c49e1 100644
--- a/graphics/nxglib/Make.defs
+++ b/graphics/nxglib/Make.defs
@@ -1,7 +1,7 @@
############################################################################
# graphics/nxglib/Make.defs
#
-# Copyright (C) 2008, 2010-2011, 2013 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2010-2011, 2013, 2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt
#
# Redistribution and use in source and binary forms, with or without
@@ -33,37 +33,37 @@
#
############################################################################
-NXGLIB_ASRCS =
+CSRCS += nxglib_setpixel_1bpp.c nxglib_setpixel_2bpp.c
+CSRCS += nxglib_setpixel_4bpp.c nxglib_setpixel_8bpp.c
+CSRCS += nxglib_setpixel_16bpp.c nxglib_setpixel_24bpp.c
+CSRCS += nxglib_setpixel_32bpp.c
-SETP_CSRCS = nxglib_setpixel_1bpp.c nxglib_setpixel_2bpp.c
-SETP_CSRCS += nxglib_setpixel_4bpp.c nxglib_setpixel_8bpp.c
-SETP_CSRCS += nxglib_setpixel_16bpp.c nxglib_setpixel_24bpp.c
-SETP_CSRCS += nxglib_setpixel_32bpp.c
+CSRCS += nxglib_fillrectangle_1bpp.c nxglib_fillrectangle_2bpp.c
+CSRCS += nxglib_fillrectangle_4bpp.c nxglib_fillrectangle_8bpp.c
+CSRCS += nxglib_fillrectangle_16bpp.c nxglib_fillrectangle_24bpp.c
+CSRCS += nxglib_fillrectangle_32bpp.c
-RFILL_CSRCS = nxglib_fillrectangle_1bpp.c nxglib_fillrectangle_2bpp.c
-RFILL_CSRCS += nxglib_fillrectangle_4bpp.c nxglib_fillrectangle_8bpp.c
-RFILL_CSRCS += nxglib_fillrectangle_16bpp.c nxglib_fillrectangle_24bpp.c
-RFILL_CSRCS += nxglib_fillrectangle_32bpp.c
+CSRCS += nxglib_getrectangle_1bpp.c nxglib_getrectangle_2bpp.c
+CSRCS += nxglib_getrectangle_4bpp.c nxglib_getrectangle_8bpp.c
+CSRCS += nxglib_getrectangle_16bpp.c nxglib_getrectangle_24bpp.c
+CSRCS += nxglib_getrectangle_32bpp.c
-RGET_CSRCS = nxglib_getrectangle_1bpp.c nxglib_getrectangle_2bpp.c
-RGET_CSRCS += nxglib_getrectangle_4bpp.c nxglib_getrectangle_8bpp.c
-RGET_CSRCS += nxglib_getrectangle_16bpp.c nxglib_getrectangle_24bpp.c
-RGET_CSRCS += nxglib_getrectangle_32bpp.c
+CSRCS += nxglib_filltrapezoid_1bpp.c nxglib_filltrapezoid_2bpp.c
+CSRCS += nxglib_filltrapezoid_4bpp.c nxglib_filltrapezoid_8bpp.c
+CSRCS += nxglib_filltrapezoid_16bpp.c nxglib_filltrapezoid_24bpp.c
+CSRCS += nxglib_filltrapezoid_32bpp.c
-TFILL_CSRCS = nxglib_filltrapezoid_1bpp.c nxglib_filltrapezoid_2bpp.c
-TFILL_CSRCS += nxglib_filltrapezoid_4bpp.c nxglib_filltrapezoid_8bpp.c
-TFILL_CSRCS += nxglib_filltrapezoid_16bpp.c nxglib_filltrapezoid_24bpp.c
-TFILL_CSRCS += nxglib_filltrapezoid_32bpp.c
+CSRCS += nxglib_moverectangle_1bpp.c nxglib_moverectangle_2bpp.c
+CSRCS += nxglib_moverectangle_4bpp.c nxglib_moverectangle_8bpp.c
+CSRCS += nxglib_moverectangle_16bpp.c nxglib_moverectangle_24bpp.c
+CSRCS += nxglib_moverectangle_32bpp.c
-RMOVE_CSRCS = nxglib_moverectangle_1bpp.c nxglib_moverectangle_2bpp.c
-RMOVE_CSRCS += nxglib_moverectangle_4bpp.c nxglib_moverectangle_8bpp.c
-RMOVE_CSRCS += nxglib_moverectangle_16bpp.c nxglib_moverectangle_24bpp.c
-RMOVE_CSRCS += nxglib_moverectangle_32bpp.c
+CSRCS += nxglib_copyrectangle_1bpp.c nxglib_copyrectangle_2bpp.c
+CSRCS += nxglib_copyrectangle_4bpp.c nxglib_copyrectangle_8bpp.c
+CSRCS += nxglib_copyrectangle_16bpp.c nxglib_copyrectangle_24bpp.c
+CSRCS += nxglib_copyrectangle_32bpp.c
-RCOPY_CSRCS = nxglib_copyrectangle_1bpp.c nxglib_copyrectangle_2bpp.c
-RCOPY_CSRCS += nxglib_copyrectangle_4bpp.c nxglib_copyrectangle_8bpp.c
-RCOPY_CSRCS += nxglib_copyrectangle_16bpp.c nxglib_copyrectangle_24bpp.c
-RCOPY_CSRCS += nxglib_copyrectangle_32bpp.c
-
-NXGLIB_CSRCS = $(SETP_CSRCS) $(RFILL_CSRCS) $(RGET_CSRCS) $(TFILL_CSRCS)
-NXGLIB_CSRCS += $(RMOVE_CSRCS) $(RCOPY_CSRCS)
+DEPPATH += --dep-path nxglib
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxglib}
+#VPATH += :nxglib
+VPATH = nxglib
diff --git a/graphics/nxmu/Make.defs b/graphics/nxmu/Make.defs
index 2832f034eaf..61016426c4d 100644
--- a/graphics/nxmu/Make.defs
+++ b/graphics/nxmu/Make.defs
@@ -1,7 +1,7 @@
############################################################################
# graphics/nxmu/Make.defs
#
-# Copyright (C) 2008, 2011-2013 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2011-2013, 2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt
#
# Redistribution and use in source and binary forms, with or without
@@ -33,12 +33,18 @@
#
############################################################################
-NX_ASRCS =
+ifeq ($(CONFIG_NX_MULTIUSER),y)
-NX_CSRCS += nxmu_kbdin.c nxmu_mouse.c nxmu_openwindow.c nxmu_redrawreq.c
-NX_CSRCS += nxmu_releasebkgd.c nxmu_requestbkgd.c nxmu_reportposition.c
-NX_CSRCS += nxmu_sendclient.c nxmu_sendclientwindow.c nxmu_server.c
+CSRCS += nxmu_kbdin.c nxmu_mouse.c nxmu_openwindow.c nxmu_redrawreq.c
+CSRCS += nxmu_releasebkgd.c nxmu_requestbkgd.c nxmu_reportposition.c
+CSRCS += nxmu_sendclient.c nxmu_sendclientwindow.c nxmu_server.c
ifeq ($(CONFIG_NX_NXSTART),y)
-NX_CSRCS += nx_start.c
+CSRCS += nx_start.c
+endif
+
+DEPPATH += --dep-path nxmu
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxmu}
+VPATH += :nxmu
+
endif
diff --git a/graphics/nxmu/nx_start.c b/graphics/nxmu/nx_start.c
index 197f3ac5f5e..78e98132ee6 100644
--- a/graphics/nxmu/nx_start.c
+++ b/graphics/nxmu/nx_start.c
@@ -1,7 +1,7 @@
/****************************************************************************
* graphics/nxmu/nx_start.c
*
- * Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -128,16 +128,18 @@ int nx_server(int argc, char *argv[])
(void)dev->setpower(dev, ((3*CONFIG_LCD_MAXPOWER + 3)/4));
#else /* CONFIG_NX_LCDDRIVER */
- /* Initialize the frame buffer device */
+ /* Initialize the frame buffer device.
+ * REVISIT: display == 0 is assumed.
+ */
- ret = up_fbinitialize();
+ ret = up_fbinitialize(0);
if (ret < 0)
{
gdbg("ERROR: up_fbinitialize failed: %d\n", ret);
return EXIT_FAILURE;
}
- dev = up_fbgetvplane(CONFIG_NXSTART_VPLANE);
+ dev = up_fbgetvplane(0, CONFIG_NXSTART_VPLANE);
if (!dev)
{
gdbg("ERROR: up_fbgetvplane failed, vplane=%d\n", CONFIG_NXSTART_VPLANE);
diff --git a/graphics/nxsu/Make.defs b/graphics/nxsu/Make.defs
index 26e2f090c0c..4b3a2c948ed 100644
--- a/graphics/nxsu/Make.defs
+++ b/graphics/nxsu/Make.defs
@@ -1,7 +1,7 @@
############################################################################
# graphics/nxsu/Make.defs
#
-# Copyright (C) 2008, 2011, 2013 Gregory Nutt. All rights reserved.
+# Copyright (C) 2008, 2011, 2013, 2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt
#
# Redistribution and use in source and binary forms, with or without
@@ -33,12 +33,18 @@
#
############################################################################
-NX_ASRCS =
+ifneq ($(CONFIG_NX_MULTIUSER),y)
-NX_CSRCS = nx_bitmap.c nx_close.c nx_closewindow.c nx_fill.c
-NX_CSRCS += nx_filltrapezoid.c nx_getposition.c nx_getrectangle.c nx_kbdchin.c
-NX_CSRCS += nx_kbdin.c nx_lower.c nx_mousein.c nx_move.c nx_open.c
-NX_CSRCS += nx_openwindow.c nx_raise.c nx_redrawreq.c nx_releasebkgd.c
-NX_CSRCS += nx_requestbkgd.c nx_setpixel.c nx_setsize.c nx_setbgcolor.c
-NX_CSRCS += nx_setposition.c nx_constructwindow.c nxsu_redrawreq.c
-NX_CSRCS += nxsu_reportposition.c
+CSRCS += nx_bitmap.c nx_close.c nx_closewindow.c nx_fill.c
+CSRCS += nx_filltrapezoid.c nx_getposition.c nx_getrectangle.c nx_kbdchin.c
+CSRCS += nx_kbdin.c nx_lower.c nx_mousein.c nx_move.c nx_open.c
+CSRCS += nx_openwindow.c nx_raise.c nx_redrawreq.c nx_releasebkgd.c
+CSRCS += nx_requestbkgd.c nx_setpixel.c nx_setsize.c nx_setbgcolor.c
+CSRCS += nx_setposition.c nx_constructwindow.c nxsu_redrawreq.c
+CSRCS += nxsu_reportposition.c
+
+DEPPATH += --dep-path nxsu
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxsu}
+VPATH += :nxsu
+
+endif
\ No newline at end of file
diff --git a/graphics/nxterm/Make.defs b/graphics/nxterm/Make.defs
index a6d5e7e14e6..5a02507313f 100644
--- a/graphics/nxterm/Make.defs
+++ b/graphics/nxterm/Make.defs
@@ -33,16 +33,23 @@
#
############################################################################
-NXTERM_ASRCS =
-NXTERM_CSRCS = nx_register.c nxterm_driver.c nxterm_font.c nxterm_putc.c
-NXTERM_CSRCS += nxterm_redraw.c nxterm_register.c nxterm_scroll.c
-NXTERM_CSRCS += nxterm_vt100.c nxterm_unregister.c nxtk_register.c
-NXTERM_CSRCS += nxtool_register.c
+ifeq ($(CONFIG_NXTERM),y)
+
+CSRCS += nx_register.c nxterm_driver.c nxterm_font.c nxterm_putc.c
+CSRCS += nxterm_redraw.c nxterm_register.c nxterm_scroll.c
+CSRCS += nxterm_vt100.c nxterm_unregister.c nxtk_register.c
+CSRCS += nxtool_register.c
ifeq ($(CONFIG_NXTERM_NXKBDIN),y)
-NXTERM_CSRCS += nxterm_kbdin.c
+CSRCS += nxterm_kbdin.c
endif
ifeq ($(CONFIG_DEBUG),y)
-NXTERM_CSRCS += nxterm_sem.c
+CSRCS += nxterm_sem.c
+endif
+
+DEPPATH += --dep-path nxterm
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)/graphics/nxterm}
+VPATH += :nxterm
+
endif
diff --git a/include/nuttx/ascii.h b/include/nuttx/ascii.h
index 0261481c827..9cb05e13075 100644
--- a/include/nuttx/ascii.h
+++ b/include/nuttx/ascii.h
@@ -90,7 +90,7 @@
#define ASCII_DOLLAR 0x24 /* Dollar sign ($) */
#define ASCII_PERCENT 0x25 /* Percent sign (%) */
#define ASCII_AMPERSAND 0x26 /* Ampersand (&) */
-#define ASCII_RSQUOTE 0x27 /* Closing single quote (') */
+#define ASCII_SQUOTE 0x27 /* Single quote (') */
#define ASCII_APOSTROPHE 0x27 /* Apostrophe (') */
#define ASCII_LPAREN 0x28 /* Opening parenthesis (() */
#define ASCII_RPAREN 0x29 /* Closing parenthesis ()) */
@@ -156,7 +156,7 @@
#define ASCII_CIRCUMFLEX 0x5e /* Circumflex (^) */
#define ASCII_UNDERSCORE 0x5f /* Underscore (_) */
-#define ASCII_RSQUOT 0x60 /* Closing single quote */
+#define ASCII_RSQUOTE 0x60 /* Closing single quote */
#define ASCII_a 0x61 /* Lower case letters */
#define ASCII_b 0x62 /* " " " " " " */
#define ASCII_c 0x63 /* " " " " " " */
diff --git a/include/nuttx/input/x11_keysymdef.h b/include/nuttx/input/x11_keysymdef.h
new file mode 100644
index 00000000000..ac696eb897a
--- /dev/null
+++ b/include/nuttx/input/x11_keysymdef.h
@@ -0,0 +1,2020 @@
+/****************************************************************************
+ * include/nuttx/input/x11_keysymdef.h
+ *
+ * Copyright 1987, 1994, 1998 The Open Group
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name of The Open Group shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization
+ * from The Open Group.
+ *
+ * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts
+ *
+ * All Rights Reserved
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted,
+ * provided that the above copyright notice appear in all copies and that
+ * both that copyright notice and this permission notice appear in
+ * supporting documentation, and that the name of Digital not be
+ * used in advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ *
+ * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+ * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H
+# define __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H
+
+/* The "X11 Window System Protocol" standard defines in Appendix A the
+ * keysym codes. These 29-bit integer values identify characters or
+ * functions associated with each key (e.g., via the visible
+ * engraving) of a keyboard layout. This file assigns mnemonic macro
+ * names for these keysyms.
+ *
+ * This file is also compiled (by xc/lib/X11/util/makekeys.c) into
+ * hash tables that can be accessed with X11 library functions such as
+ * XStringToKeysym() and XKeysymToString().
+ *
+ * Where a keysym corresponds one-to-one to an ISO 10646 / Unicode
+ * character, this is noted in a comment that provides both the U+xxxx
+ * Unicode position, as well as the official Unicode name of the
+ * character.
+ *
+ * Where the correspondence is either not one-to-one or semantically
+ * unclear, the Unicode position and name are enclosed in
+ * parentheses. Such legacy keysyms should be considered deprecated
+ * and are not recommended for use in future keyboard mappings.
+ *
+ * For any future extension of the keysyms with characters already
+ * found in ISO 10646 / Unicode, the following algorithm shall be
+ * used. The new keysym code position will simply be the character's
+ * Unicode number plus 0x01000000. The keysym values in the range
+ * 0x01000100 to 0x0110ffff are reserved to represent Unicode
+ * characters in the range U+0100 to U+10FFFF.
+ *
+ * While most newer Unicode-based X11 clients do already accept
+ * Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it
+ * will remain necessary for clients -- in the interest of
+ * compatibility with existing servers -- to also understand the
+ * existing legacy keysym values in the range 0x0100 to 0x20ff.
+ *
+ * Where several mnemonic names are defined for the same keysym in this
+ * file, all but the first one listed should be considered deprecated.
+ *
+ * Mnemonic names for keysyms are defined in this file with lines
+ * that match one of these Perl regular expressions:
+ *
+ * /^\# define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/
+ * /^\# define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/
+ * /^\# define XK_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/
+ *
+ * When adding new keysyms to this file, do not forget to also update the
+ * mappings in xc/lib/X11/KeyBind.c and the protocol specification in
+ * xc/doc/specs/XProtocol/X11.keysyms.
+ */
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#define XK_VoidSymbol 0xffffff /* Void symbol */
+
+#ifdef XK_MISCELLANY
+
+/* TTY function keys, cleverly chosen to map to ASCII, for convenience of
+ * programming, but could have been arbitrary (at the cost of lookup
+ * tables in client code).
+ */
+
+# define XK_BackSpace 0xff08 /* Back space, back char */
+# define XK_Tab 0xff09
+# define XK_Linefeed 0xff0a /* Linefeed, LF */
+# define XK_Clear 0xff0b
+# define XK_Return 0xff0d /* Return, enter */
+# define XK_Pause 0xff13 /* Pause, hold */
+# define XK_Scroll_Lock 0xff14
+# define XK_Sys_Req 0xff15
+# define XK_Escape 0xff1b
+# define XK_Delete 0xffff /* Delete, rubout */
+
+/* International & multi-key character composition */
+
+# define XK_Multi_key 0xff20 /* Multi-key character compose */
+# define XK_Codeinput 0xff37
+# define XK_SingleCandidate 0xff3c
+# define XK_MultipleCandidate 0xff3d
+# define XK_PreviousCandidate 0xff3e
+
+/* Japanese keyboard support */
+
+# define XK_Kanji 0xff21 /* Kanji, Kanji convert */
+# define XK_Muhenkan 0xff22 /* Cancel Conversion */
+# define XK_Henkan_Mode 0xff23 /* Start/Stop Conversion */
+# define XK_Henkan 0xff23 /* Alias for Henkan_Mode */
+# define XK_Romaji 0xff24 /* to Romaji */
+# define XK_Hiragana 0xff25 /* to Hiragana */
+# define XK_Katakana 0xff26 /* to Katakana */
+# define XK_Hiragana_Katakana 0xff27 /* Hiragana/Katakana toggle */
+# define XK_Zenkaku 0xff28 /* to Zenkaku */
+# define XK_Hankaku 0xff29 /* to Hankaku */
+# define XK_Zenkaku_Hankaku 0xff2a /* Zenkaku/Hankaku toggle */
+# define XK_Touroku 0xff2b /* Add to Dictionary */
+# define XK_Massyo 0xff2c /* Delete from Dictionary */
+# define XK_Kana_Lock 0xff2d /* Kana Lock */
+# define XK_Kana_Shift 0xff2e /* Kana Shift */
+# define XK_Eisu_Shift 0xff2f /* Alphanumeric Shift */
+# define XK_Eisu_toggle 0xff30 /* Alphanumeric toggle */
+# define XK_Kanji_Bangou 0xff37 /* Codeinput */
+# define XK_Zen_Koho 0xff3d /* Multiple/All Candidate(s) */
+# define XK_Mae_Koho 0xff3e /* Previous Candidate */
+
+/* 0xff31 thru 0xff3f are under XK_KOREAN */
+
+/* Cursor control & motion */
+
+# define XK_Home 0xff50
+# define XK_Left 0xff51 /* Move left, left arrow */
+# define XK_Up 0xff52 /* Move up, up arrow */
+# define XK_Right 0xff53 /* Move right, right arrow */
+# define XK_Down 0xff54 /* Move down, down arrow */
+# define XK_Prior 0xff55 /* Prior, previous */
+# define XK_Page_Up 0xff55
+# define XK_Next 0xff56 /* Next */
+# define XK_Page_Down 0xff56
+# define XK_End 0xff57 /* EOL */
+# define XK_Begin 0xff58 /* BOL */
+
+/* Misc functions */
+
+# define XK_Select 0xff60 /* Select, mark */
+# define XK_Print 0xff61
+# define XK_Execute 0xff62 /* Execute, run, do */
+# define XK_Insert 0xff63 /* Insert, insert here */
+# define XK_Undo 0xff65
+# define XK_Redo 0xff66 /* Redo, again */
+# define XK_Menu 0xff67
+# define XK_Find 0xff68 /* Find, search */
+# define XK_Cancel 0xff69 /* Cancel, stop, abort, exit */
+# define XK_Help 0xff6a /* Help */
+# define XK_Break 0xff6b
+# define XK_Mode_switch 0xff7e /* Character set switch */
+# define XK_script_switch 0xff7e /* Alias for mode_switch */
+# define XK_Num_Lock 0xff7f
+
+/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */
+
+# define XK_KP_Space 0xff80 /* Space */
+# define XK_KP_Tab 0xff89
+# define XK_KP_Enter 0xff8d /* Enter */
+# define XK_KP_F1 0xff91 /* PF1, KP_A, ... */
+# define XK_KP_F2 0xff92
+# define XK_KP_F3 0xff93
+# define XK_KP_F4 0xff94
+# define XK_KP_Home 0xff95
+# define XK_KP_Left 0xff96
+# define XK_KP_Up 0xff97
+# define XK_KP_Right 0xff98
+# define XK_KP_Down 0xff99
+# define XK_KP_Prior 0xff9a
+# define XK_KP_Page_Up 0xff9a
+# define XK_KP_Next 0xff9b
+# define XK_KP_Page_Down 0xff9b
+# define XK_KP_End 0xff9c
+# define XK_KP_Begin 0xff9d
+# define XK_KP_Insert 0xff9e
+# define XK_KP_Delete 0xff9f
+# define XK_KP_Equal 0xffbd /* Equals */
+# define XK_KP_Multiply 0xffaa
+# define XK_KP_Add 0xffab
+# define XK_KP_Separator 0xffac /* Separator, often comma */
+# define XK_KP_Subtract 0xffad
+# define XK_KP_Decimal 0xffae
+# define XK_KP_Divide 0xffaf
+
+# define XK_KP_0 0xffb0
+# define XK_KP_1 0xffb1
+# define XK_KP_2 0xffb2
+# define XK_KP_3 0xffb3
+# define XK_KP_4 0xffb4
+# define XK_KP_5 0xffb5
+# define XK_KP_6 0xffb6
+# define XK_KP_7 0xffb7
+# define XK_KP_8 0xffb8
+# define XK_KP_9 0xffb9
+
+/* Auxilliary functions; note the duplicate definitions for left and right
+ * function keys; Sun keyboards and a few other manufactures have such
+ * function key groups on the left and/or right sides of the keyboard.
+ * We've not found a keyboard with more than 35 function keys total.
+ */
+
+# define XK_F1 0xffbe
+# define XK_F2 0xffbf
+# define XK_F3 0xffc0
+# define XK_F4 0xffc1
+# define XK_F5 0xffc2
+# define XK_F6 0xffc3
+# define XK_F7 0xffc4
+# define XK_F8 0xffc5
+# define XK_F9 0xffc6
+# define XK_F10 0xffc7
+# define XK_F11 0xffc8
+# define XK_L1 0xffc8
+# define XK_F12 0xffc9
+# define XK_L2 0xffc9
+# define XK_F13 0xffca
+# define XK_L3 0xffca
+# define XK_F14 0xffcb
+# define XK_L4 0xffcb
+# define XK_F15 0xffcc
+# define XK_L5 0xffcc
+# define XK_F16 0xffcd
+# define XK_L6 0xffcd
+# define XK_F17 0xffce
+# define XK_L7 0xffce
+# define XK_F18 0xffcf
+# define XK_L8 0xffcf
+# define XK_F19 0xffd0
+# define XK_L9 0xffd0
+# define XK_F20 0xffd1
+# define XK_L10 0xffd1
+# define XK_F21 0xffd2
+# define XK_R1 0xffd2
+# define XK_F22 0xffd3
+# define XK_R2 0xffd3
+# define XK_F23 0xffd4
+# define XK_R3 0xffd4
+# define XK_F24 0xffd5
+# define XK_R4 0xffd5
+# define XK_F25 0xffd6
+# define XK_R5 0xffd6
+# define XK_F26 0xffd7
+# define XK_R6 0xffd7
+# define XK_F27 0xffd8
+# define XK_R7 0xffd8
+# define XK_F28 0xffd9
+# define XK_R8 0xffd9
+# define XK_F29 0xffda
+# define XK_R9 0xffda
+# define XK_F30 0xffdb
+# define XK_R10 0xffdb
+# define XK_F31 0xffdc
+# define XK_R11 0xffdc
+# define XK_F32 0xffdd
+# define XK_R12 0xffdd
+# define XK_F33 0xffde
+# define XK_R13 0xffde
+# define XK_F34 0xffdf
+# define XK_R14 0xffdf
+# define XK_F35 0xffe0
+# define XK_R15 0xffe0
+
+/* Modifiers */
+
+# define XK_Shift_L 0xffe1 /* Left shift */
+# define XK_Shift_R 0xffe2 /* Right shift */
+# define XK_Control_L 0xffe3 /* Left control */
+# define XK_Control_R 0xffe4 /* Right control */
+# define XK_Caps_Lock 0xffe5 /* Caps lock */
+# define XK_Shift_Lock 0xffe6 /* Shift lock */
+
+# define XK_Meta_L 0xffe7 /* Left meta */
+# define XK_Meta_R 0xffe8 /* Right meta */
+# define XK_Alt_L 0xffe9 /* Left alt */
+# define XK_Alt_R 0xffea /* Right alt */
+# define XK_Super_L 0xffeb /* Left super */
+# define XK_Super_R 0xffec /* Right super */
+# define XK_Hyper_L 0xffed /* Left hyper */
+# define XK_Hyper_R 0xffee /* Right hyper */
+#endif /* XK_MISCELLANY */
+
+/* Keyboard (XKB) Extension function and modifier keys
+ * (from Appendix C of "The X Keyboard Extension: Protocol Specification")
+ * Byte 3 = 0xfe
+ */
+
+#ifdef XK_XKB_KEYS
+# define XK_ISO_Lock 0xfe01
+# define XK_ISO_Level2_Latch 0xfe02
+# define XK_ISO_Level3_Shift 0xfe03
+# define XK_ISO_Level3_Latch 0xfe04
+# define XK_ISO_Level3_Lock 0xfe05
+# define XK_ISO_Group_Shift 0xff7e /* Alias for mode_switch */
+# define XK_ISO_Group_Latch 0xfe06
+# define XK_ISO_Group_Lock 0xfe07
+# define XK_ISO_Next_Group 0xfe08
+# define XK_ISO_Next_Group_Lock 0xfe09
+# define XK_ISO_Prev_Group 0xfe0a
+# define XK_ISO_Prev_Group_Lock 0xfe0b
+# define XK_ISO_First_Group 0xfe0c
+# define XK_ISO_First_Group_Lock 0xfe0d
+# define XK_ISO_Last_Group 0xfe0e
+# define XK_ISO_Last_Group_Lock 0xfe0f
+
+# define XK_ISO_Left_Tab 0xfe20
+# define XK_ISO_Move_Line_Up 0xfe21
+# define XK_ISO_Move_Line_Down 0xfe22
+# define XK_ISO_Partial_Line_Up 0xfe23
+# define XK_ISO_Partial_Line_Down 0xfe24
+# define XK_ISO_Partial_Space_Left 0xfe25
+# define XK_ISO_Partial_Space_Right 0xfe26
+# define XK_ISO_Set_Margin_Left 0xfe27
+# define XK_ISO_Set_Margin_Right 0xfe28
+# define XK_ISO_Release_Margin_Left 0xfe29
+# define XK_ISO_Release_Margin_Right 0xfe2a
+# define XK_ISO_Release_Both_Margins 0xfe2b
+# define XK_ISO_Fast_Cursor_Left 0xfe2c
+# define XK_ISO_Fast_Cursor_Right 0xfe2d
+# define XK_ISO_Fast_Cursor_Up 0xfe2e
+# define XK_ISO_Fast_Cursor_Down 0xfe2f
+# define XK_ISO_Continuous_Underline 0xfe30
+# define XK_ISO_Discontinuous_Underline 0xfe31
+# define XK_ISO_Emphasize 0xfe32
+# define XK_ISO_Center_Object 0xfe33
+# define XK_ISO_Enter 0xfe34
+
+# define XK_dead_grave 0xfe50
+# define XK_dead_acute 0xfe51
+# define XK_dead_circumflex 0xfe52
+# define XK_dead_tilde 0xfe53
+# define XK_dead_macron 0xfe54
+# define XK_dead_breve 0xfe55
+# define XK_dead_abovedot 0xfe56
+# define XK_dead_diaeresis 0xfe57
+# define XK_dead_abovering 0xfe58
+# define XK_dead_doubleacute 0xfe59
+# define XK_dead_caron 0xfe5a
+# define XK_dead_cedilla 0xfe5b
+# define XK_dead_ogonek 0xfe5c
+# define XK_dead_iota 0xfe5d
+# define XK_dead_voiced_sound 0xfe5e
+# define XK_dead_semivoiced_sound 0xfe5f
+# define XK_dead_belowdot 0xfe60
+# define XK_dead_hook 0xfe61
+# define XK_dead_horn 0xfe62
+
+# define XK_First_Virtual_Screen 0xfed0
+# define XK_Prev_Virtual_Screen 0xfed1
+# define XK_Next_Virtual_Screen 0xfed2
+# define XK_Last_Virtual_Screen 0xfed4
+# define XK_Terminate_Server 0xfed5
+
+# define XK_AccessX_Enable 0xfe70
+# define XK_AccessX_Feedback_Enable 0xfe71
+# define XK_RepeatKeys_Enable 0xfe72
+# define XK_SlowKeys_Enable 0xfe73
+# define XK_BounceKeys_Enable 0xfe74
+# define XK_StickyKeys_Enable 0xfe75
+# define XK_MouseKeys_Enable 0xfe76
+# define XK_MouseKeys_Accel_Enable 0xfe77
+# define XK_Overlay1_Enable 0xfe78
+# define XK_Overlay2_Enable 0xfe79
+# define XK_AudibleBell_Enable 0xfe7a
+
+# define XK_Pointer_Left 0xfee0
+# define XK_Pointer_Right 0xfee1
+# define XK_Pointer_Up 0xfee2
+# define XK_Pointer_Down 0xfee3
+# define XK_Pointer_UpLeft 0xfee4
+# define XK_Pointer_UpRight 0xfee5
+# define XK_Pointer_DownLeft 0xfee6
+# define XK_Pointer_DownRight 0xfee7
+# define XK_Pointer_Button_Dflt 0xfee8
+# define XK_Pointer_Button1 0xfee9
+# define XK_Pointer_Button2 0xfeea
+# define XK_Pointer_Button3 0xfeeb
+# define XK_Pointer_Button4 0xfeec
+# define XK_Pointer_Button5 0xfeed
+# define XK_Pointer_DblClick_Dflt 0xfeee
+# define XK_Pointer_DblClick1 0xfeef
+# define XK_Pointer_DblClick2 0xfef0
+# define XK_Pointer_DblClick3 0xfef1
+# define XK_Pointer_DblClick4 0xfef2
+# define XK_Pointer_DblClick5 0xfef3
+# define XK_Pointer_Drag_Dflt 0xfef4
+# define XK_Pointer_Drag1 0xfef5
+# define XK_Pointer_Drag2 0xfef6
+# define XK_Pointer_Drag3 0xfef7
+# define XK_Pointer_Drag4 0xfef8
+# define XK_Pointer_Drag5 0xfefd
+
+# define XK_Pointer_EnableKeys 0xfef9
+# define XK_Pointer_Accelerate 0xfefa
+# define XK_Pointer_DfltBtnNext 0xfefb
+# define XK_Pointer_DfltBtnPrev 0xfefc
+#endif /* XK_XKB_KEYS */
+
+/* 3270 Terminal Keys
+ * Byte 3 = 0xfd
+ */
+
+#ifdef XK_3270
+# define XK_3270_Duplicate 0xfd01
+# define XK_3270_FieldMark 0xfd02
+# define XK_3270_Right2 0xfd03
+# define XK_3270_Left2 0xfd04
+# define XK_3270_BackTab 0xfd05
+# define XK_3270_EraseEOF 0xfd06
+# define XK_3270_EraseInput 0xfd07
+# define XK_3270_Reset 0xfd08
+# define XK_3270_Quit 0xfd09
+# define XK_3270_PA1 0xfd0a
+# define XK_3270_PA2 0xfd0b
+# define XK_3270_PA3 0xfd0c
+# define XK_3270_Test 0xfd0d
+# define XK_3270_Attn 0xfd0e
+# define XK_3270_CursorBlink 0xfd0f
+# define XK_3270_AltCursor 0xfd10
+# define XK_3270_KeyClick 0xfd11
+# define XK_3270_Jump 0xfd12
+# define XK_3270_Ident 0xfd13
+# define XK_3270_Rule 0xfd14
+# define XK_3270_Copy 0xfd15
+# define XK_3270_Play 0xfd16
+# define XK_3270_Setup 0xfd17
+# define XK_3270_Record 0xfd18
+# define XK_3270_ChangeScreen 0xfd19
+# define XK_3270_DeleteWord 0xfd1a
+# define XK_3270_ExSelect 0xfd1b
+# define XK_3270_CursorSelect 0xfd1c
+# define XK_3270_PrintScreen 0xfd1d
+# define XK_3270_Enter 0xfd1e
+#endif /* XK_3270 */
+
+/* Latin 1
+ * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF)
+ * Byte 3 = 0
+ */
+
+#ifdef XK_LATIN1
+# define XK_space 0x0020 /* U+0020 SPACE */
+# define XK_exclam 0x0021 /* U+0021 EXCLAMATION MARK */
+# define XK_quotedbl 0x0022 /* U+0022 QUOTATION MARK */
+# define XK_numbersign 0x0023 /* U+0023 NUMBER SIGN */
+# define XK_dollar 0x0024 /* U+0024 DOLLAR SIGN */
+# define XK_percent 0x0025 /* U+0025 PERCENT SIGN */
+# define XK_ampersand 0x0026 /* U+0026 AMPERSAND */
+# define XK_apostrophe 0x0027 /* U+0027 APOSTROPHE */
+# define XK_quoteright 0x0027 /* deprecated */
+# define XK_parenleft 0x0028 /* U+0028 LEFT PARENTHESIS */
+# define XK_parenright 0x0029 /* U+0029 RIGHT PARENTHESIS */
+# define XK_asterisk 0x002a /* U+002A ASTERISK */
+# define XK_plus 0x002b /* U+002B PLUS SIGN */
+# define XK_comma 0x002c /* U+002C COMMA */
+# define XK_minus 0x002d /* U+002D HYPHEN-MINUS */
+# define XK_period 0x002e /* U+002E FULL STOP */
+# define XK_slash 0x002f /* U+002F SOLIDUS */
+# define XK_0 0x0030 /* U+0030 DIGIT ZERO */
+# define XK_1 0x0031 /* U+0031 DIGIT ONE */
+# define XK_2 0x0032 /* U+0032 DIGIT TWO */
+# define XK_3 0x0033 /* U+0033 DIGIT THREE */
+# define XK_4 0x0034 /* U+0034 DIGIT FOUR */
+# define XK_5 0x0035 /* U+0035 DIGIT FIVE */
+# define XK_6 0x0036 /* U+0036 DIGIT SIX */
+# define XK_7 0x0037 /* U+0037 DIGIT SEVEN */
+# define XK_8 0x0038 /* U+0038 DIGIT EIGHT */
+# define XK_9 0x0039 /* U+0039 DIGIT NINE */
+# define XK_colon 0x003a /* U+003A COLON */
+# define XK_semicolon 0x003b /* U+003B SEMICOLON */
+# define XK_less 0x003c /* U+003C LESS-THAN SIGN */
+# define XK_equal 0x003d /* U+003D EQUALS SIGN */
+# define XK_greater 0x003e /* U+003E GREATER-THAN SIGN */
+# define XK_question 0x003f /* U+003F QUESTION MARK */
+# define XK_at 0x0040 /* U+0040 COMMERCIAL AT */
+# define XK_A 0x0041 /* U+0041 LATIN CAPITAL LETTER A */
+# define XK_B 0x0042 /* U+0042 LATIN CAPITAL LETTER B */
+# define XK_C 0x0043 /* U+0043 LATIN CAPITAL LETTER C */
+# define XK_D 0x0044 /* U+0044 LATIN CAPITAL LETTER D */
+# define XK_E 0x0045 /* U+0045 LATIN CAPITAL LETTER E */
+# define XK_F 0x0046 /* U+0046 LATIN CAPITAL LETTER F */
+# define XK_G 0x0047 /* U+0047 LATIN CAPITAL LETTER G */
+# define XK_H 0x0048 /* U+0048 LATIN CAPITAL LETTER H */
+# define XK_I 0x0049 /* U+0049 LATIN CAPITAL LETTER I */
+# define XK_J 0x004a /* U+004A LATIN CAPITAL LETTER J */
+# define XK_K 0x004b /* U+004B LATIN CAPITAL LETTER K */
+# define XK_L 0x004c /* U+004C LATIN CAPITAL LETTER L */
+# define XK_M 0x004d /* U+004D LATIN CAPITAL LETTER M */
+# define XK_N 0x004e /* U+004E LATIN CAPITAL LETTER N */
+# define XK_O 0x004f /* U+004F LATIN CAPITAL LETTER O */
+# define XK_P 0x0050 /* U+0050 LATIN CAPITAL LETTER P */
+# define XK_Q 0x0051 /* U+0051 LATIN CAPITAL LETTER Q */
+# define XK_R 0x0052 /* U+0052 LATIN CAPITAL LETTER R */
+# define XK_S 0x0053 /* U+0053 LATIN CAPITAL LETTER S */
+# define XK_T 0x0054 /* U+0054 LATIN CAPITAL LETTER T */
+# define XK_U 0x0055 /* U+0055 LATIN CAPITAL LETTER U */
+# define XK_V 0x0056 /* U+0056 LATIN CAPITAL LETTER V */
+# define XK_W 0x0057 /* U+0057 LATIN CAPITAL LETTER W */
+# define XK_X 0x0058 /* U+0058 LATIN CAPITAL LETTER X */
+# define XK_Y 0x0059 /* U+0059 LATIN CAPITAL LETTER Y */
+# define XK_Z 0x005a /* U+005A LATIN CAPITAL LETTER Z */
+# define XK_bracketleft 0x005b /* U+005B LEFT SQUARE BRACKET */
+# define XK_backslash 0x005c /* U+005C REVERSE SOLIDUS */
+# define XK_bracketright 0x005d /* U+005D RIGHT SQUARE BRACKET */
+# define XK_asciicircum 0x005e /* U+005E CIRCUMFLEX ACCENT */
+# define XK_underscore 0x005f /* U+005F LOW LINE */
+# define XK_grave 0x0060 /* U+0060 GRAVE ACCENT */
+# define XK_quoteleft 0x0060 /* deprecated */
+# define XK_a 0x0061 /* U+0061 LATIN SMALL LETTER A */
+# define XK_b 0x0062 /* U+0062 LATIN SMALL LETTER B */
+# define XK_c 0x0063 /* U+0063 LATIN SMALL LETTER C */
+# define XK_d 0x0064 /* U+0064 LATIN SMALL LETTER D */
+# define XK_e 0x0065 /* U+0065 LATIN SMALL LETTER E */
+# define XK_f 0x0066 /* U+0066 LATIN SMALL LETTER F */
+# define XK_g 0x0067 /* U+0067 LATIN SMALL LETTER G */
+# define XK_h 0x0068 /* U+0068 LATIN SMALL LETTER H */
+# define XK_i 0x0069 /* U+0069 LATIN SMALL LETTER I */
+# define XK_j 0x006a /* U+006A LATIN SMALL LETTER J */
+# define XK_k 0x006b /* U+006B LATIN SMALL LETTER K */
+# define XK_l 0x006c /* U+006C LATIN SMALL LETTER L */
+# define XK_m 0x006d /* U+006D LATIN SMALL LETTER M */
+# define XK_n 0x006e /* U+006E LATIN SMALL LETTER N */
+# define XK_o 0x006f /* U+006F LATIN SMALL LETTER O */
+# define XK_p 0x0070 /* U+0070 LATIN SMALL LETTER P */
+# define XK_q 0x0071 /* U+0071 LATIN SMALL LETTER Q */
+# define XK_r 0x0072 /* U+0072 LATIN SMALL LETTER R */
+# define XK_s 0x0073 /* U+0073 LATIN SMALL LETTER S */
+# define XK_t 0x0074 /* U+0074 LATIN SMALL LETTER T */
+# define XK_u 0x0075 /* U+0075 LATIN SMALL LETTER U */
+# define XK_v 0x0076 /* U+0076 LATIN SMALL LETTER V */
+# define XK_w 0x0077 /* U+0077 LATIN SMALL LETTER W */
+# define XK_x 0x0078 /* U+0078 LATIN SMALL LETTER X */
+# define XK_y 0x0079 /* U+0079 LATIN SMALL LETTER Y */
+# define XK_z 0x007a /* U+007A LATIN SMALL LETTER Z */
+# define XK_braceleft 0x007b /* U+007B LEFT CURLY BRACKET */
+# define XK_bar 0x007c /* U+007C VERTICAL LINE */
+# define XK_braceright 0x007d /* U+007D RIGHT CURLY BRACKET */
+# define XK_asciitilde 0x007e /* U+007E TILDE */
+
+# define XK_nobreakspace 0x00a0 /* U+00A0 NO-BREAK SPACE */
+# define XK_exclamdown 0x00a1 /* U+00A1 INVERTED EXCLAMATION MARK */
+# define XK_cent 0x00a2 /* U+00A2 CENT SIGN */
+# define XK_sterling 0x00a3 /* U+00A3 POUND SIGN */
+# define XK_currency 0x00a4 /* U+00A4 CURRENCY SIGN */
+# define XK_yen 0x00a5 /* U+00A5 YEN SIGN */
+# define XK_brokenbar 0x00a6 /* U+00A6 BROKEN BAR */
+# define XK_section 0x00a7 /* U+00A7 SECTION SIGN */
+# define XK_diaeresis 0x00a8 /* U+00A8 DIAERESIS */
+# define XK_copyright 0x00a9 /* U+00A9 COPYRIGHT SIGN */
+# define XK_ordfeminine 0x00aa /* U+00AA FEMININE ORDINAL INDICATOR */
+# define XK_guillemotleft 0x00ab /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */
+# define XK_notsign 0x00ac /* U+00AC NOT SIGN */
+# define XK_hyphen 0x00ad /* U+00AD SOFT HYPHEN */
+# define XK_registered 0x00ae /* U+00AE REGISTERED SIGN */
+# define XK_macron 0x00af /* U+00AF MACRON */
+# define XK_degree 0x00b0 /* U+00B0 DEGREE SIGN */
+# define XK_plusminus 0x00b1 /* U+00B1 PLUS-MINUS SIGN */
+# define XK_twosuperior 0x00b2 /* U+00B2 SUPERSCRIPT TWO */
+# define XK_threesuperior 0x00b3 /* U+00B3 SUPERSCRIPT THREE */
+# define XK_acute 0x00b4 /* U+00B4 ACUTE ACCENT */
+# define XK_mu 0x00b5 /* U+00B5 MICRO SIGN */
+# define XK_paragraph 0x00b6 /* U+00B6 PILCROW SIGN */
+# define XK_periodcentered 0x00b7 /* U+00B7 MIDDLE DOT */
+# define XK_cedilla 0x00b8 /* U+00B8 CEDILLA */
+# define XK_onesuperior 0x00b9 /* U+00B9 SUPERSCRIPT ONE */
+# define XK_masculine 0x00ba /* U+00BA MASCULINE ORDINAL INDICATOR */
+# define XK_guillemotright 0x00bb /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */
+# define XK_onequarter 0x00bc /* U+00BC VULGAR FRACTION ONE QUARTER */
+# define XK_onehalf 0x00bd /* U+00BD VULGAR FRACTION ONE HALF */
+# define XK_threequarters 0x00be /* U+00BE VULGAR FRACTION THREE QUARTERS */
+# define XK_questiondown 0x00bf /* U+00BF INVERTED QUESTION MARK */
+# define XK_Agrave 0x00c0 /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */
+# define XK_Aacute 0x00c1 /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */
+# define XK_Acircumflex 0x00c2 /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
+# define XK_Atilde 0x00c3 /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */
+# define XK_Adiaeresis 0x00c4 /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */
+# define XK_Aring 0x00c5 /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */
+# define XK_AE 0x00c6 /* U+00C6 LATIN CAPITAL LETTER AE */
+# define XK_Ccedilla 0x00c7 /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */
+# define XK_Egrave 0x00c8 /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */
+# define XK_Eacute 0x00c9 /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */
+# define XK_Ecircumflex 0x00ca /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
+# define XK_Ediaeresis 0x00cb /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */
+# define XK_Igrave 0x00cc /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */
+# define XK_Iacute 0x00cd /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */
+# define XK_Icircumflex 0x00ce /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
+# define XK_Idiaeresis 0x00cf /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */
+# define XK_ETH 0x00d0 /* U+00D0 LATIN CAPITAL LETTER ETH */
+# define XK_Eth 0x00d0 /* deprecated */
+# define XK_Ntilde 0x00d1 /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */
+# define XK_Ograve 0x00d2 /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */
+# define XK_Oacute 0x00d3 /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */
+# define XK_Ocircumflex 0x00d4 /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
+# define XK_Otilde 0x00d5 /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */
+# define XK_Odiaeresis 0x00d6 /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */
+# define XK_multiply 0x00d7 /* U+00D7 MULTIPLICATION SIGN */
+# define XK_Oslash 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
+# define XK_Ooblique 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */
+# define XK_Ugrave 0x00d9 /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */
+# define XK_Uacute 0x00da /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */
+# define XK_Ucircumflex 0x00db /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
+# define XK_Udiaeresis 0x00dc /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */
+# define XK_Yacute 0x00dd /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */
+# define XK_THORN 0x00de /* U+00DE LATIN CAPITAL LETTER THORN */
+# define XK_Thorn 0x00de /* deprecated */
+# define XK_ssharp 0x00df /* U+00DF LATIN SMALL LETTER SHARP S */
+# define XK_agrave 0x00e0 /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */
+# define XK_aacute 0x00e1 /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */
+# define XK_acircumflex 0x00e2 /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */
+# define XK_atilde 0x00e3 /* U+00E3 LATIN SMALL LETTER A WITH TILDE */
+# define XK_adiaeresis 0x00e4 /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */
+# define XK_aring 0x00e5 /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */
+# define XK_ae 0x00e6 /* U+00E6 LATIN SMALL LETTER AE */
+# define XK_ccedilla 0x00e7 /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */
+# define XK_egrave 0x00e8 /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */
+# define XK_eacute 0x00e9 /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */
+# define XK_ecircumflex 0x00ea /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */
+# define XK_ediaeresis 0x00eb /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */
+# define XK_igrave 0x00ec /* U+00EC LATIN SMALL LETTER I WITH GRAVE */
+# define XK_iacute 0x00ed /* U+00ED LATIN SMALL LETTER I WITH ACUTE */
+# define XK_icircumflex 0x00ee /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */
+# define XK_idiaeresis 0x00ef /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */
+# define XK_eth 0x00f0 /* U+00F0 LATIN SMALL LETTER ETH */
+# define XK_ntilde 0x00f1 /* U+00F1 LATIN SMALL LETTER N WITH TILDE */
+# define XK_ograve 0x00f2 /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */
+# define XK_oacute 0x00f3 /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */
+# define XK_ocircumflex 0x00f4 /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */
+# define XK_otilde 0x00f5 /* U+00F5 LATIN SMALL LETTER O WITH TILDE */
+# define XK_odiaeresis 0x00f6 /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */
+# define XK_division 0x00f7 /* U+00F7 DIVISION SIGN */
+# define XK_oslash 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
+# define XK_ooblique 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */
+# define XK_ugrave 0x00f9 /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */
+# define XK_uacute 0x00fa /* U+00FA LATIN SMALL LETTER U WITH ACUTE */
+# define XK_ucircumflex 0x00fb /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */
+# define XK_udiaeresis 0x00fc /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */
+# define XK_yacute 0x00fd /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */
+# define XK_thorn 0x00fe /* U+00FE LATIN SMALL LETTER THORN */
+# define XK_ydiaeresis 0x00ff /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */
+#endif /* XK_LATIN1 */
+
+/* Latin 2
+ * Byte 3 = 1
+ */
+
+#ifdef XK_LATIN2
+# define XK_Aogonek 0x01a1 /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */
+# define XK_breve 0x01a2 /* U+02D8 BREVE */
+# define XK_Lstroke 0x01a3 /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */
+# define XK_Lcaron 0x01a5 /* U+013D LATIN CAPITAL LETTER L WITH CARON */
+# define XK_Sacute 0x01a6 /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */
+# define XK_Scaron 0x01a9 /* U+0160 LATIN CAPITAL LETTER S WITH CARON */
+# define XK_Scedilla 0x01aa /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */
+# define XK_Tcaron 0x01ab /* U+0164 LATIN CAPITAL LETTER T WITH CARON */
+# define XK_Zacute 0x01ac /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */
+# define XK_Zcaron 0x01ae /* U+017D LATIN CAPITAL LETTER Z WITH CARON */
+# define XK_Zabovedot 0x01af /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */
+# define XK_aogonek 0x01b1 /* U+0105 LATIN SMALL LETTER A WITH OGONEK */
+# define XK_ogonek 0x01b2 /* U+02DB OGONEK */
+# define XK_lstroke 0x01b3 /* U+0142 LATIN SMALL LETTER L WITH STROKE */
+# define XK_lcaron 0x01b5 /* U+013E LATIN SMALL LETTER L WITH CARON */
+# define XK_sacute 0x01b6 /* U+015B LATIN SMALL LETTER S WITH ACUTE */
+# define XK_caron 0x01b7 /* U+02C7 CARON */
+# define XK_scaron 0x01b9 /* U+0161 LATIN SMALL LETTER S WITH CARON */
+# define XK_scedilla 0x01ba /* U+015F LATIN SMALL LETTER S WITH CEDILLA */
+# define XK_tcaron 0x01bb /* U+0165 LATIN SMALL LETTER T WITH CARON */
+# define XK_zacute 0x01bc /* U+017A LATIN SMALL LETTER Z WITH ACUTE */
+# define XK_doubleacute 0x01bd /* U+02DD DOUBLE ACUTE ACCENT */
+# define XK_zcaron 0x01be /* U+017E LATIN SMALL LETTER Z WITH CARON */
+# define XK_zabovedot 0x01bf /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */
+# define XK_Racute 0x01c0 /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */
+# define XK_Abreve 0x01c3 /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */
+# define XK_Lacute 0x01c5 /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */
+# define XK_Cacute 0x01c6 /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */
+# define XK_Ccaron 0x01c8 /* U+010C LATIN CAPITAL LETTER C WITH CARON */
+# define XK_Eogonek 0x01ca /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */
+# define XK_Ecaron 0x01cc /* U+011A LATIN CAPITAL LETTER E WITH CARON */
+# define XK_Dcaron 0x01cf /* U+010E LATIN CAPITAL LETTER D WITH CARON */
+# define XK_Dstroke 0x01d0 /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */
+# define XK_Nacute 0x01d1 /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */
+# define XK_Ncaron 0x01d2 /* U+0147 LATIN CAPITAL LETTER N WITH CARON */
+# define XK_Odoubleacute 0x01d5 /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */
+# define XK_Rcaron 0x01d8 /* U+0158 LATIN CAPITAL LETTER R WITH CARON */
+# define XK_Uring 0x01d9 /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */
+# define XK_Udoubleacute 0x01db /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
+# define XK_Tcedilla 0x01de /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */
+# define XK_racute 0x01e0 /* U+0155 LATIN SMALL LETTER R WITH ACUTE */
+# define XK_abreve 0x01e3 /* U+0103 LATIN SMALL LETTER A WITH BREVE */
+# define XK_lacute 0x01e5 /* U+013A LATIN SMALL LETTER L WITH ACUTE */
+# define XK_cacute 0x01e6 /* U+0107 LATIN SMALL LETTER C WITH ACUTE */
+# define XK_ccaron 0x01e8 /* U+010D LATIN SMALL LETTER C WITH CARON */
+# define XK_eogonek 0x01ea /* U+0119 LATIN SMALL LETTER E WITH OGONEK */
+# define XK_ecaron 0x01ec /* U+011B LATIN SMALL LETTER E WITH CARON */
+# define XK_dcaron 0x01ef /* U+010F LATIN SMALL LETTER D WITH CARON */
+# define XK_dstroke 0x01f0 /* U+0111 LATIN SMALL LETTER D WITH STROKE */
+# define XK_nacute 0x01f1 /* U+0144 LATIN SMALL LETTER N WITH ACUTE */
+# define XK_ncaron 0x01f2 /* U+0148 LATIN SMALL LETTER N WITH CARON */
+# define XK_odoubleacute 0x01f5 /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */
+# define XK_udoubleacute 0x01fb /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */
+# define XK_rcaron 0x01f8 /* U+0159 LATIN SMALL LETTER R WITH CARON */
+# define XK_uring 0x01f9 /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */
+# define XK_tcedilla 0x01fe /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */
+# define XK_abovedot 0x01ff /* U+02D9 DOT ABOVE */
+#endif /* XK_LATIN2 */
+
+/* Latin 3
+ * Byte 3 = 2
+ */
+
+#ifdef XK_LATIN3
+# define XK_Hstroke 0x02a1 /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */
+# define XK_Hcircumflex 0x02a6 /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
+# define XK_Iabovedot 0x02a9 /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */
+# define XK_Gbreve 0x02ab /* U+011E LATIN CAPITAL LETTER G WITH BREVE */
+# define XK_Jcircumflex 0x02ac /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */
+# define XK_hstroke 0x02b1 /* U+0127 LATIN SMALL LETTER H WITH STROKE */
+# define XK_hcircumflex 0x02b6 /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */
+# define XK_idotless 0x02b9 /* U+0131 LATIN SMALL LETTER DOTLESS I */
+# define XK_gbreve 0x02bb /* U+011F LATIN SMALL LETTER G WITH BREVE */
+# define XK_jcircumflex 0x02bc /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */
+# define XK_Cabovedot 0x02c5 /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */
+# define XK_Ccircumflex 0x02c6 /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
+# define XK_Gabovedot 0x02d5 /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */
+# define XK_Gcircumflex 0x02d8 /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
+# define XK_Ubreve 0x02dd /* U+016C LATIN CAPITAL LETTER U WITH BREVE */
+# define XK_Scircumflex 0x02de /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
+# define XK_cabovedot 0x02e5 /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */
+# define XK_ccircumflex 0x02e6 /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */
+# define XK_gabovedot 0x02f5 /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */
+# define XK_gcircumflex 0x02f8 /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */
+# define XK_ubreve 0x02fd /* U+016D LATIN SMALL LETTER U WITH BREVE */
+# define XK_scircumflex 0x02fe /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */
+#endif /* XK_LATIN3 */
+
+/* Latin 4
+ * Byte 3 = 3
+ */
+
+#ifdef XK_LATIN4
+# define XK_kra 0x03a2 /* U+0138 LATIN SMALL LETTER KRA */
+# define XK_kappa 0x03a2 /* deprecated */
+# define XK_Rcedilla 0x03a3 /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */
+# define XK_Itilde 0x03a5 /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */
+# define XK_Lcedilla 0x03a6 /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */
+# define XK_Emacron 0x03aa /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */
+# define XK_Gcedilla 0x03ab /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */
+# define XK_Tslash 0x03ac /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */
+# define XK_rcedilla 0x03b3 /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */
+# define XK_itilde 0x03b5 /* U+0129 LATIN SMALL LETTER I WITH TILDE */
+# define XK_lcedilla 0x03b6 /* U+013C LATIN SMALL LETTER L WITH CEDILLA */
+# define XK_emacron 0x03ba /* U+0113 LATIN SMALL LETTER E WITH MACRON */
+# define XK_gcedilla 0x03bb /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */
+# define XK_tslash 0x03bc /* U+0167 LATIN SMALL LETTER T WITH STROKE */
+# define XK_ENG 0x03bd /* U+014A LATIN CAPITAL LETTER ENG */
+# define XK_eng 0x03bf /* U+014B LATIN SMALL LETTER ENG */
+# define XK_Amacron 0x03c0 /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */
+# define XK_Iogonek 0x03c7 /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */
+# define XK_Eabovedot 0x03cc /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */
+# define XK_Imacron 0x03cf /* U+012A LATIN CAPITAL LETTER I WITH MACRON */
+# define XK_Ncedilla 0x03d1 /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */
+# define XK_Omacron 0x03d2 /* U+014C LATIN CAPITAL LETTER O WITH MACRON */
+# define XK_Kcedilla 0x03d3 /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */
+# define XK_Uogonek 0x03d9 /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */
+# define XK_Utilde 0x03dd /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */
+# define XK_Umacron 0x03de /* U+016A LATIN CAPITAL LETTER U WITH MACRON */
+# define XK_amacron 0x03e0 /* U+0101 LATIN SMALL LETTER A WITH MACRON */
+# define XK_iogonek 0x03e7 /* U+012F LATIN SMALL LETTER I WITH OGONEK */
+# define XK_eabovedot 0x03ec /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */
+# define XK_imacron 0x03ef /* U+012B LATIN SMALL LETTER I WITH MACRON */
+# define XK_ncedilla 0x03f1 /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */
+# define XK_omacron 0x03f2 /* U+014D LATIN SMALL LETTER O WITH MACRON */
+# define XK_kcedilla 0x03f3 /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */
+# define XK_uogonek 0x03f9 /* U+0173 LATIN SMALL LETTER U WITH OGONEK */
+# define XK_utilde 0x03fd /* U+0169 LATIN SMALL LETTER U WITH TILDE */
+# define XK_umacron 0x03fe /* U+016B LATIN SMALL LETTER U WITH MACRON */
+#endif /* XK_LATIN4 */
+
+/* Latin 8
+ */
+
+#ifdef XK_LATIN8
+# define XK_Babovedot 0x1001e02 /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */
+# define XK_babovedot 0x1001e03 /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */
+# define XK_Dabovedot 0x1001e0a /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */
+# define XK_Wgrave 0x1001e80 /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */
+# define XK_Wacute 0x1001e82 /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */
+# define XK_dabovedot 0x1001e0b /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */
+# define XK_Ygrave 0x1001ef2 /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */
+# define XK_Fabovedot 0x1001e1e /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */
+# define XK_fabovedot 0x1001e1f /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */
+# define XK_Mabovedot 0x1001e40 /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */
+# define XK_mabovedot 0x1001e41 /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */
+# define XK_Pabovedot 0x1001e56 /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */
+# define XK_wgrave 0x1001e81 /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */
+# define XK_pabovedot 0x1001e57 /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */
+# define XK_wacute 0x1001e83 /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */
+# define XK_Sabovedot 0x1001e60 /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */
+# define XK_ygrave 0x1001ef3 /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */
+# define XK_Wdiaeresis 0x1001e84 /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */
+# define XK_wdiaeresis 0x1001e85 /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */
+# define XK_sabovedot 0x1001e61 /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */
+# define XK_Wcircumflex 0x1000174 /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
+# define XK_Tabovedot 0x1001e6a /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */
+# define XK_Ycircumflex 0x1000176 /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
+# define XK_wcircumflex 0x1000175 /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */
+# define XK_tabovedot 0x1001e6b /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */
+# define XK_ycircumflex 0x1000177 /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */
+#endif /* XK_LATIN8 */
+
+/* Latin 9
+ * Byte 3 = 0x13
+ */
+
+#ifdef XK_LATIN9
+# define XK_OE 0x13bc /* U+0152 LATIN CAPITAL LIGATURE OE */
+# define XK_oe 0x13bd /* U+0153 LATIN SMALL LIGATURE OE */
+# define XK_Ydiaeresis 0x13be /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */
+#endif /* XK_LATIN9 */
+
+/* Katakana
+ * Byte 3 = 4
+ */
+
+#ifdef XK_KATAKANA
+# define XK_overline 0x047e /* U+203E OVERLINE */
+# define XK_kana_fullstop 0x04a1 /* U+3002 IDEOGRAPHIC FULL STOP */
+# define XK_kana_openingbracket 0x04a2 /* U+300C LEFT CORNER BRACKET */
+# define XK_kana_closingbracket 0x04a3 /* U+300D RIGHT CORNER BRACKET */
+# define XK_kana_comma 0x04a4 /* U+3001 IDEOGRAPHIC COMMA */
+# define XK_kana_conjunctive 0x04a5 /* U+30FB KATAKANA MIDDLE DOT */
+# define XK_kana_middledot 0x04a5 /* deprecated */
+# define XK_kana_WO 0x04a6 /* U+30F2 KATAKANA LETTER WO */
+# define XK_kana_a 0x04a7 /* U+30A1 KATAKANA LETTER SMALL A */
+# define XK_kana_i 0x04a8 /* U+30A3 KATAKANA LETTER SMALL I */
+# define XK_kana_u 0x04a9 /* U+30A5 KATAKANA LETTER SMALL U */
+# define XK_kana_e 0x04aa /* U+30A7 KATAKANA LETTER SMALL E */
+# define XK_kana_o 0x04ab /* U+30A9 KATAKANA LETTER SMALL O */
+# define XK_kana_ya 0x04ac /* U+30E3 KATAKANA LETTER SMALL YA */
+# define XK_kana_yu 0x04ad /* U+30E5 KATAKANA LETTER SMALL YU */
+# define XK_kana_yo 0x04ae /* U+30E7 KATAKANA LETTER SMALL YO */
+# define XK_kana_tsu 0x04af /* U+30C3 KATAKANA LETTER SMALL TU */
+# define XK_kana_tu 0x04af /* deprecated */
+# define XK_prolongedsound 0x04b0 /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */
+# define XK_kana_A 0x04b1 /* U+30A2 KATAKANA LETTER A */
+# define XK_kana_I 0x04b2 /* U+30A4 KATAKANA LETTER I */
+# define XK_kana_U 0x04b3 /* U+30A6 KATAKANA LETTER U */
+# define XK_kana_E 0x04b4 /* U+30A8 KATAKANA LETTER E */
+# define XK_kana_O 0x04b5 /* U+30AA KATAKANA LETTER O */
+# define XK_kana_KA 0x04b6 /* U+30AB KATAKANA LETTER KA */
+# define XK_kana_KI 0x04b7 /* U+30AD KATAKANA LETTER KI */
+# define XK_kana_KU 0x04b8 /* U+30AF KATAKANA LETTER KU */
+# define XK_kana_KE 0x04b9 /* U+30B1 KATAKANA LETTER KE */
+# define XK_kana_KO 0x04ba /* U+30B3 KATAKANA LETTER KO */
+# define XK_kana_SA 0x04bb /* U+30B5 KATAKANA LETTER SA */
+# define XK_kana_SHI 0x04bc /* U+30B7 KATAKANA LETTER SI */
+# define XK_kana_SU 0x04bd /* U+30B9 KATAKANA LETTER SU */
+# define XK_kana_SE 0x04be /* U+30BB KATAKANA LETTER SE */
+# define XK_kana_SO 0x04bf /* U+30BD KATAKANA LETTER SO */
+# define XK_kana_TA 0x04c0 /* U+30BF KATAKANA LETTER TA */
+# define XK_kana_CHI 0x04c1 /* U+30C1 KATAKANA LETTER TI */
+# define XK_kana_TI 0x04c1 /* deprecated */
+# define XK_kana_TSU 0x04c2 /* U+30C4 KATAKANA LETTER TU */
+# define XK_kana_TU 0x04c2 /* deprecated */
+# define XK_kana_TE 0x04c3 /* U+30C6 KATAKANA LETTER TE */
+# define XK_kana_TO 0x04c4 /* U+30C8 KATAKANA LETTER TO */
+# define XK_kana_NA 0x04c5 /* U+30CA KATAKANA LETTER NA */
+# define XK_kana_NI 0x04c6 /* U+30CB KATAKANA LETTER NI */
+# define XK_kana_NU 0x04c7 /* U+30CC KATAKANA LETTER NU */
+# define XK_kana_NE 0x04c8 /* U+30CD KATAKANA LETTER NE */
+# define XK_kana_NO 0x04c9 /* U+30CE KATAKANA LETTER NO */
+# define XK_kana_HA 0x04ca /* U+30CF KATAKANA LETTER HA */
+# define XK_kana_HI 0x04cb /* U+30D2 KATAKANA LETTER HI */
+# define XK_kana_FU 0x04cc /* U+30D5 KATAKANA LETTER HU */
+# define XK_kana_HU 0x04cc /* deprecated */
+# define XK_kana_HE 0x04cd /* U+30D8 KATAKANA LETTER HE */
+# define XK_kana_HO 0x04ce /* U+30DB KATAKANA LETTER HO */
+# define XK_kana_MA 0x04cf /* U+30DE KATAKANA LETTER MA */
+# define XK_kana_MI 0x04d0 /* U+30DF KATAKANA LETTER MI */
+# define XK_kana_MU 0x04d1 /* U+30E0 KATAKANA LETTER MU */
+# define XK_kana_ME 0x04d2 /* U+30E1 KATAKANA LETTER ME */
+# define XK_kana_MO 0x04d3 /* U+30E2 KATAKANA LETTER MO */
+# define XK_kana_YA 0x04d4 /* U+30E4 KATAKANA LETTER YA */
+# define XK_kana_YU 0x04d5 /* U+30E6 KATAKANA LETTER YU */
+# define XK_kana_YO 0x04d6 /* U+30E8 KATAKANA LETTER YO */
+# define XK_kana_RA 0x04d7 /* U+30E9 KATAKANA LETTER RA */
+# define XK_kana_RI 0x04d8 /* U+30EA KATAKANA LETTER RI */
+# define XK_kana_RU 0x04d9 /* U+30EB KATAKANA LETTER RU */
+# define XK_kana_RE 0x04da /* U+30EC KATAKANA LETTER RE */
+# define XK_kana_RO 0x04db /* U+30ED KATAKANA LETTER RO */
+# define XK_kana_WA 0x04dc /* U+30EF KATAKANA LETTER WA */
+# define XK_kana_N 0x04dd /* U+30F3 KATAKANA LETTER N */
+# define XK_voicedsound 0x04de /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */
+# define XK_semivoicedsound 0x04df /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */
+# define XK_kana_switch 0xff7e /* Alias for mode_switch */
+#endif /* XK_KATAKANA */
+
+/* Arabic
+ * Byte 3 = 5
+ */
+
+#ifdef XK_ARABIC
+# define XK_Farsi_0 0x10006f0 /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */
+# define XK_Farsi_1 0x10006f1 /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */
+# define XK_Farsi_2 0x10006f2 /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */
+# define XK_Farsi_3 0x10006f3 /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */
+# define XK_Farsi_4 0x10006f4 /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */
+# define XK_Farsi_5 0x10006f5 /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */
+# define XK_Farsi_6 0x10006f6 /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */
+# define XK_Farsi_7 0x10006f7 /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */
+# define XK_Farsi_8 0x10006f8 /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */
+# define XK_Farsi_9 0x10006f9 /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */
+# define XK_Arabic_percent 0x100066a /* U+066A ARABIC PERCENT SIGN */
+# define XK_Arabic_superscript_alef 0x1000670 /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */
+# define XK_Arabic_tteh 0x1000679 /* U+0679 ARABIC LETTER TTEH */
+# define XK_Arabic_peh 0x100067e /* U+067E ARABIC LETTER PEH */
+# define XK_Arabic_tcheh 0x1000686 /* U+0686 ARABIC LETTER TCHEH */
+# define XK_Arabic_ddal 0x1000688 /* U+0688 ARABIC LETTER DDAL */
+# define XK_Arabic_rreh 0x1000691 /* U+0691 ARABIC LETTER RREH */
+# define XK_Arabic_comma 0x05ac /* U+060C ARABIC COMMA */
+# define XK_Arabic_fullstop 0x10006d4 /* U+06D4 ARABIC FULL STOP */
+# define XK_Arabic_0 0x1000660 /* U+0660 ARABIC-INDIC DIGIT ZERO */
+# define XK_Arabic_1 0x1000661 /* U+0661 ARABIC-INDIC DIGIT ONE */
+# define XK_Arabic_2 0x1000662 /* U+0662 ARABIC-INDIC DIGIT TWO */
+# define XK_Arabic_3 0x1000663 /* U+0663 ARABIC-INDIC DIGIT THREE */
+# define XK_Arabic_4 0x1000664 /* U+0664 ARABIC-INDIC DIGIT FOUR */
+# define XK_Arabic_5 0x1000665 /* U+0665 ARABIC-INDIC DIGIT FIVE */
+# define XK_Arabic_6 0x1000666 /* U+0666 ARABIC-INDIC DIGIT SIX */
+# define XK_Arabic_7 0x1000667 /* U+0667 ARABIC-INDIC DIGIT SEVEN */
+# define XK_Arabic_8 0x1000668 /* U+0668 ARABIC-INDIC DIGIT EIGHT */
+# define XK_Arabic_9 0x1000669 /* U+0669 ARABIC-INDIC DIGIT NINE */
+# define XK_Arabic_semicolon 0x05bb /* U+061B ARABIC SEMICOLON */
+# define XK_Arabic_question_mark 0x05bf /* U+061F ARABIC QUESTION MARK */
+# define XK_Arabic_hamza 0x05c1 /* U+0621 ARABIC LETTER HAMZA */
+# define XK_Arabic_maddaonalef 0x05c2 /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */
+# define XK_Arabic_hamzaonalef 0x05c3 /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */
+# define XK_Arabic_hamzaonwaw 0x05c4 /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */
+# define XK_Arabic_hamzaunderalef 0x05c5 /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */
+# define XK_Arabic_hamzaonyeh 0x05c6 /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */
+# define XK_Arabic_alef 0x05c7 /* U+0627 ARABIC LETTER ALEF */
+# define XK_Arabic_beh 0x05c8 /* U+0628 ARABIC LETTER BEH */
+# define XK_Arabic_tehmarbuta 0x05c9 /* U+0629 ARABIC LETTER TEH MARBUTA */
+# define XK_Arabic_teh 0x05ca /* U+062A ARABIC LETTER TEH */
+# define XK_Arabic_theh 0x05cb /* U+062B ARABIC LETTER THEH */
+# define XK_Arabic_jeem 0x05cc /* U+062C ARABIC LETTER JEEM */
+# define XK_Arabic_hah 0x05cd /* U+062D ARABIC LETTER HAH */
+# define XK_Arabic_khah 0x05ce /* U+062E ARABIC LETTER KHAH */
+# define XK_Arabic_dal 0x05cf /* U+062F ARABIC LETTER DAL */
+# define XK_Arabic_thal 0x05d0 /* U+0630 ARABIC LETTER THAL */
+# define XK_Arabic_ra 0x05d1 /* U+0631 ARABIC LETTER REH */
+# define XK_Arabic_zain 0x05d2 /* U+0632 ARABIC LETTER ZAIN */
+# define XK_Arabic_seen 0x05d3 /* U+0633 ARABIC LETTER SEEN */
+# define XK_Arabic_sheen 0x05d4 /* U+0634 ARABIC LETTER SHEEN */
+# define XK_Arabic_sad 0x05d5 /* U+0635 ARABIC LETTER SAD */
+# define XK_Arabic_dad 0x05d6 /* U+0636 ARABIC LETTER DAD */
+# define XK_Arabic_tah 0x05d7 /* U+0637 ARABIC LETTER TAH */
+# define XK_Arabic_zah 0x05d8 /* U+0638 ARABIC LETTER ZAH */
+# define XK_Arabic_ain 0x05d9 /* U+0639 ARABIC LETTER AIN */
+# define XK_Arabic_ghain 0x05da /* U+063A ARABIC LETTER GHAIN */
+# define XK_Arabic_tatweel 0x05e0 /* U+0640 ARABIC TATWEEL */
+# define XK_Arabic_feh 0x05e1 /* U+0641 ARABIC LETTER FEH */
+# define XK_Arabic_qaf 0x05e2 /* U+0642 ARABIC LETTER QAF */
+# define XK_Arabic_kaf 0x05e3 /* U+0643 ARABIC LETTER KAF */
+# define XK_Arabic_lam 0x05e4 /* U+0644 ARABIC LETTER LAM */
+# define XK_Arabic_meem 0x05e5 /* U+0645 ARABIC LETTER MEEM */
+# define XK_Arabic_noon 0x05e6 /* U+0646 ARABIC LETTER NOON */
+# define XK_Arabic_ha 0x05e7 /* U+0647 ARABIC LETTER HEH */
+# define XK_Arabic_heh 0x05e7 /* deprecated */
+# define XK_Arabic_waw 0x05e8 /* U+0648 ARABIC LETTER WAW */
+# define XK_Arabic_alefmaksura 0x05e9 /* U+0649 ARABIC LETTER ALEF MAKSURA */
+# define XK_Arabic_yeh 0x05ea /* U+064A ARABIC LETTER YEH */
+# define XK_Arabic_fathatan 0x05eb /* U+064B ARABIC FATHATAN */
+# define XK_Arabic_dammatan 0x05ec /* U+064C ARABIC DAMMATAN */
+# define XK_Arabic_kasratan 0x05ed /* U+064D ARABIC KASRATAN */
+# define XK_Arabic_fatha 0x05ee /* U+064E ARABIC FATHA */
+# define XK_Arabic_damma 0x05ef /* U+064F ARABIC DAMMA */
+# define XK_Arabic_kasra 0x05f0 /* U+0650 ARABIC KASRA */
+# define XK_Arabic_shadda 0x05f1 /* U+0651 ARABIC SHADDA */
+# define XK_Arabic_sukun 0x05f2 /* U+0652 ARABIC SUKUN */
+# define XK_Arabic_madda_above 0x1000653 /* U+0653 ARABIC MADDAH ABOVE */
+# define XK_Arabic_hamza_above 0x1000654 /* U+0654 ARABIC HAMZA ABOVE */
+# define XK_Arabic_hamza_below 0x1000655 /* U+0655 ARABIC HAMZA BELOW */
+# define XK_Arabic_jeh 0x1000698 /* U+0698 ARABIC LETTER JEH */
+# define XK_Arabic_veh 0x10006a4 /* U+06A4 ARABIC LETTER VEH */
+# define XK_Arabic_keheh 0x10006a9 /* U+06A9 ARABIC LETTER KEHEH */
+# define XK_Arabic_gaf 0x10006af /* U+06AF ARABIC LETTER GAF */
+# define XK_Arabic_noon_ghunna 0x10006ba /* U+06BA ARABIC LETTER NOON GHUNNA */
+# define XK_Arabic_heh_doachashmee 0x10006be /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
+# define XK_Farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */
+# define XK_Arabic_farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */
+# define XK_Arabic_yeh_baree 0x10006d2 /* U+06D2 ARABIC LETTER YEH BARREE */
+# define XK_Arabic_heh_goal 0x10006c1 /* U+06C1 ARABIC LETTER HEH GOAL */
+# define XK_Arabic_switch 0xff7e /* Alias for mode_switch */
+#endif /* XK_ARABIC */
+
+/* Cyrillic
+ * Byte 3 = 6
+ */
+
+#ifdef XK_CYRILLIC
+# define XK_Cyrillic_GHE_bar 0x1000492 /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */
+# define XK_Cyrillic_ghe_bar 0x1000493 /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */
+# define XK_Cyrillic_ZHE_descender 0x1000496 /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
+# define XK_Cyrillic_zhe_descender 0x1000497 /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */
+# define XK_Cyrillic_KA_descender 0x100049a /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
+# define XK_Cyrillic_ka_descender 0x100049b /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */
+# define XK_Cyrillic_KA_vertstroke 0x100049c /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
+# define XK_Cyrillic_ka_vertstroke 0x100049d /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */
+# define XK_Cyrillic_EN_descender 0x10004a2 /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
+# define XK_Cyrillic_en_descender 0x10004a3 /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */
+# define XK_Cyrillic_U_straight 0x10004ae /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */
+# define XK_Cyrillic_u_straight 0x10004af /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */
+# define XK_Cyrillic_U_straight_bar 0x10004b0 /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
+# define XK_Cyrillic_u_straight_bar 0x10004b1 /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */
+# define XK_Cyrillic_HA_descender 0x10004b2 /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
+# define XK_Cyrillic_ha_descender 0x10004b3 /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */
+# define XK_Cyrillic_CHE_descender 0x10004b6 /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
+# define XK_Cyrillic_che_descender 0x10004b7 /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */
+# define XK_Cyrillic_CHE_vertstroke 0x10004b8 /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
+# define XK_Cyrillic_che_vertstroke 0x10004b9 /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */
+# define XK_Cyrillic_SHHA 0x10004ba /* U+04BA CYRILLIC CAPITAL LETTER SHHA */
+# define XK_Cyrillic_shha 0x10004bb /* U+04BB CYRILLIC SMALL LETTER SHHA */
+
+# define XK_Cyrillic_SCHWA 0x10004d8 /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */
+# define XK_Cyrillic_schwa 0x10004d9 /* U+04D9 CYRILLIC SMALL LETTER SCHWA */
+# define XK_Cyrillic_I_macron 0x10004e2 /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */
+# define XK_Cyrillic_i_macron 0x10004e3 /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */
+# define XK_Cyrillic_O_bar 0x10004e8 /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */
+# define XK_Cyrillic_o_bar 0x10004e9 /* U+04E9 CYRILLIC SMALL LETTER BARRED O */
+# define XK_Cyrillic_U_macron 0x10004ee /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */
+# define XK_Cyrillic_u_macron 0x10004ef /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */
+
+# define XK_Serbian_dje 0x06a1 /* U+0452 CYRILLIC SMALL LETTER DJE */
+# define XK_Macedonia_gje 0x06a2 /* U+0453 CYRILLIC SMALL LETTER GJE */
+# define XK_Cyrillic_io 0x06a3 /* U+0451 CYRILLIC SMALL LETTER IO */
+# define XK_Ukrainian_ie 0x06a4 /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */
+# define XK_Ukranian_je 0x06a4 /* deprecated */
+# define XK_Macedonia_dse 0x06a5 /* U+0455 CYRILLIC SMALL LETTER DZE */
+# define XK_Ukrainian_i 0x06a6 /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */
+# define XK_Ukranian_i 0x06a6 /* deprecated */
+# define XK_Ukrainian_yi 0x06a7 /* U+0457 CYRILLIC SMALL LETTER YI */
+# define XK_Ukranian_yi 0x06a7 /* deprecated */
+# define XK_Cyrillic_je 0x06a8 /* U+0458 CYRILLIC SMALL LETTER JE */
+# define XK_Serbian_je 0x06a8 /* deprecated */
+# define XK_Cyrillic_lje 0x06a9 /* U+0459 CYRILLIC SMALL LETTER LJE */
+# define XK_Serbian_lje 0x06a9 /* deprecated */
+# define XK_Cyrillic_nje 0x06aa /* U+045A CYRILLIC SMALL LETTER NJE */
+# define XK_Serbian_nje 0x06aa /* deprecated */
+# define XK_Serbian_tshe 0x06ab /* U+045B CYRILLIC SMALL LETTER TSHE */
+# define XK_Macedonia_kje 0x06ac /* U+045C CYRILLIC SMALL LETTER KJE */
+# define XK_Ukrainian_ghe_with_upturn 0x06ad /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */
+# define XK_Byelorussian_shortu 0x06ae /* U+045E CYRILLIC SMALL LETTER SHORT U */
+# define XK_Cyrillic_dzhe 0x06af /* U+045F CYRILLIC SMALL LETTER DZHE */
+# define XK_Serbian_dze 0x06af /* deprecated */
+# define XK_numerosign 0x06b0 /* U+2116 NUMERO SIGN */
+# define XK_Serbian_DJE 0x06b1 /* U+0402 CYRILLIC CAPITAL LETTER DJE */
+# define XK_Macedonia_GJE 0x06b2 /* U+0403 CYRILLIC CAPITAL LETTER GJE */
+# define XK_Cyrillic_IO 0x06b3 /* U+0401 CYRILLIC CAPITAL LETTER IO */
+# define XK_Ukrainian_IE 0x06b4 /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */
+# define XK_Ukranian_JE 0x06b4 /* deprecated */
+# define XK_Macedonia_DSE 0x06b5 /* U+0405 CYRILLIC CAPITAL LETTER DZE */
+# define XK_Ukrainian_I 0x06b6 /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */
+# define XK_Ukranian_I 0x06b6 /* deprecated */
+# define XK_Ukrainian_YI 0x06b7 /* U+0407 CYRILLIC CAPITAL LETTER YI */
+# define XK_Ukranian_YI 0x06b7 /* deprecated */
+# define XK_Cyrillic_JE 0x06b8 /* U+0408 CYRILLIC CAPITAL LETTER JE */
+# define XK_Serbian_JE 0x06b8 /* deprecated */
+# define XK_Cyrillic_LJE 0x06b9 /* U+0409 CYRILLIC CAPITAL LETTER LJE */
+# define XK_Serbian_LJE 0x06b9 /* deprecated */
+# define XK_Cyrillic_NJE 0x06ba /* U+040A CYRILLIC CAPITAL LETTER NJE */
+# define XK_Serbian_NJE 0x06ba /* deprecated */
+# define XK_Serbian_TSHE 0x06bb /* U+040B CYRILLIC CAPITAL LETTER TSHE */
+# define XK_Macedonia_KJE 0x06bc /* U+040C CYRILLIC CAPITAL LETTER KJE */
+# define XK_Ukrainian_GHE_WITH_UPTURN 0x06bd /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
+# define XK_Byelorussian_SHORTU 0x06be /* U+040E CYRILLIC CAPITAL LETTER SHORT U */
+# define XK_Cyrillic_DZHE 0x06bf /* U+040F CYRILLIC CAPITAL LETTER DZHE */
+# define XK_Serbian_DZE 0x06bf /* deprecated */
+# define XK_Cyrillic_yu 0x06c0 /* U+044E CYRILLIC SMALL LETTER YU */
+# define XK_Cyrillic_a 0x06c1 /* U+0430 CYRILLIC SMALL LETTER A */
+# define XK_Cyrillic_be 0x06c2 /* U+0431 CYRILLIC SMALL LETTER BE */
+# define XK_Cyrillic_tse 0x06c3 /* U+0446 CYRILLIC SMALL LETTER TSE */
+# define XK_Cyrillic_de 0x06c4 /* U+0434 CYRILLIC SMALL LETTER DE */
+# define XK_Cyrillic_ie 0x06c5 /* U+0435 CYRILLIC SMALL LETTER IE */
+# define XK_Cyrillic_ef 0x06c6 /* U+0444 CYRILLIC SMALL LETTER EF */
+# define XK_Cyrillic_ghe 0x06c7 /* U+0433 CYRILLIC SMALL LETTER GHE */
+# define XK_Cyrillic_ha 0x06c8 /* U+0445 CYRILLIC SMALL LETTER HA */
+# define XK_Cyrillic_i 0x06c9 /* U+0438 CYRILLIC SMALL LETTER I */
+# define XK_Cyrillic_shorti 0x06ca /* U+0439 CYRILLIC SMALL LETTER SHORT I */
+# define XK_Cyrillic_ka 0x06cb /* U+043A CYRILLIC SMALL LETTER KA */
+# define XK_Cyrillic_el 0x06cc /* U+043B CYRILLIC SMALL LETTER EL */
+# define XK_Cyrillic_em 0x06cd /* U+043C CYRILLIC SMALL LETTER EM */
+# define XK_Cyrillic_en 0x06ce /* U+043D CYRILLIC SMALL LETTER EN */
+# define XK_Cyrillic_o 0x06cf /* U+043E CYRILLIC SMALL LETTER O */
+# define XK_Cyrillic_pe 0x06d0 /* U+043F CYRILLIC SMALL LETTER PE */
+# define XK_Cyrillic_ya 0x06d1 /* U+044F CYRILLIC SMALL LETTER YA */
+# define XK_Cyrillic_er 0x06d2 /* U+0440 CYRILLIC SMALL LETTER ER */
+# define XK_Cyrillic_es 0x06d3 /* U+0441 CYRILLIC SMALL LETTER ES */
+# define XK_Cyrillic_te 0x06d4 /* U+0442 CYRILLIC SMALL LETTER TE */
+# define XK_Cyrillic_u 0x06d5 /* U+0443 CYRILLIC SMALL LETTER U */
+# define XK_Cyrillic_zhe 0x06d6 /* U+0436 CYRILLIC SMALL LETTER ZHE */
+# define XK_Cyrillic_ve 0x06d7 /* U+0432 CYRILLIC SMALL LETTER VE */
+# define XK_Cyrillic_softsign 0x06d8 /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */
+# define XK_Cyrillic_yeru 0x06d9 /* U+044B CYRILLIC SMALL LETTER YERU */
+# define XK_Cyrillic_ze 0x06da /* U+0437 CYRILLIC SMALL LETTER ZE */
+# define XK_Cyrillic_sha 0x06db /* U+0448 CYRILLIC SMALL LETTER SHA */
+# define XK_Cyrillic_e 0x06dc /* U+044D CYRILLIC SMALL LETTER E */
+# define XK_Cyrillic_shcha 0x06dd /* U+0449 CYRILLIC SMALL LETTER SHCHA */
+# define XK_Cyrillic_che 0x06de /* U+0447 CYRILLIC SMALL LETTER CHE */
+# define XK_Cyrillic_hardsign 0x06df /* U+044A CYRILLIC SMALL LETTER HARD SIGN */
+# define XK_Cyrillic_YU 0x06e0 /* U+042E CYRILLIC CAPITAL LETTER YU */
+# define XK_Cyrillic_A 0x06e1 /* U+0410 CYRILLIC CAPITAL LETTER A */
+# define XK_Cyrillic_BE 0x06e2 /* U+0411 CYRILLIC CAPITAL LETTER BE */
+# define XK_Cyrillic_TSE 0x06e3 /* U+0426 CYRILLIC CAPITAL LETTER TSE */
+# define XK_Cyrillic_DE 0x06e4 /* U+0414 CYRILLIC CAPITAL LETTER DE */
+# define XK_Cyrillic_IE 0x06e5 /* U+0415 CYRILLIC CAPITAL LETTER IE */
+# define XK_Cyrillic_EF 0x06e6 /* U+0424 CYRILLIC CAPITAL LETTER EF */
+# define XK_Cyrillic_GHE 0x06e7 /* U+0413 CYRILLIC CAPITAL LETTER GHE */
+# define XK_Cyrillic_HA 0x06e8 /* U+0425 CYRILLIC CAPITAL LETTER HA */
+# define XK_Cyrillic_I 0x06e9 /* U+0418 CYRILLIC CAPITAL LETTER I */
+# define XK_Cyrillic_SHORTI 0x06ea /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */
+# define XK_Cyrillic_KA 0x06eb /* U+041A CYRILLIC CAPITAL LETTER KA */
+# define XK_Cyrillic_EL 0x06ec /* U+041B CYRILLIC CAPITAL LETTER EL */
+# define XK_Cyrillic_EM 0x06ed /* U+041C CYRILLIC CAPITAL LETTER EM */
+# define XK_Cyrillic_EN 0x06ee /* U+041D CYRILLIC CAPITAL LETTER EN */
+# define XK_Cyrillic_O 0x06ef /* U+041E CYRILLIC CAPITAL LETTER O */
+# define XK_Cyrillic_PE 0x06f0 /* U+041F CYRILLIC CAPITAL LETTER PE */
+# define XK_Cyrillic_YA 0x06f1 /* U+042F CYRILLIC CAPITAL LETTER YA */
+# define XK_Cyrillic_ER 0x06f2 /* U+0420 CYRILLIC CAPITAL LETTER ER */
+# define XK_Cyrillic_ES 0x06f3 /* U+0421 CYRILLIC CAPITAL LETTER ES */
+# define XK_Cyrillic_TE 0x06f4 /* U+0422 CYRILLIC CAPITAL LETTER TE */
+# define XK_Cyrillic_U 0x06f5 /* U+0423 CYRILLIC CAPITAL LETTER U */
+# define XK_Cyrillic_ZHE 0x06f6 /* U+0416 CYRILLIC CAPITAL LETTER ZHE */
+# define XK_Cyrillic_VE 0x06f7 /* U+0412 CYRILLIC CAPITAL LETTER VE */
+# define XK_Cyrillic_SOFTSIGN 0x06f8 /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */
+# define XK_Cyrillic_YERU 0x06f9 /* U+042B CYRILLIC CAPITAL LETTER YERU */
+# define XK_Cyrillic_ZE 0x06fa /* U+0417 CYRILLIC CAPITAL LETTER ZE */
+# define XK_Cyrillic_SHA 0x06fb /* U+0428 CYRILLIC CAPITAL LETTER SHA */
+# define XK_Cyrillic_E 0x06fc /* U+042D CYRILLIC CAPITAL LETTER E */
+# define XK_Cyrillic_SHCHA 0x06fd /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */
+# define XK_Cyrillic_CHE 0x06fe /* U+0427 CYRILLIC CAPITAL LETTER CHE */
+# define XK_Cyrillic_HARDSIGN 0x06ff /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */
+#endif /* XK_CYRILLIC */
+
+/* Greek
+ * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7)
+ * Byte 3 = 7
+ */
+
+#ifdef XK_GREEK
+# define XK_Greek_ALPHAaccent 0x07a1 /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */
+# define XK_Greek_EPSILONaccent 0x07a2 /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */
+# define XK_Greek_ETAaccent 0x07a3 /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */
+# define XK_Greek_IOTAaccent 0x07a4 /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */
+# define XK_Greek_IOTAdieresis 0x07a5 /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */
+# define XK_Greek_IOTAdiaeresis 0x07a5 /* old typo */
+# define XK_Greek_OMICRONaccent 0x07a7 /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */
+# define XK_Greek_UPSILONaccent 0x07a8 /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */
+# define XK_Greek_UPSILONdieresis 0x07a9 /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
+# define XK_Greek_OMEGAaccent 0x07ab /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */
+# define XK_Greek_accentdieresis 0x07ae /* U+0385 GREEK DIALYTIKA TONOS */
+# define XK_Greek_horizbar 0x07af /* U+2015 HORIZONTAL BAR */
+# define XK_Greek_alphaaccent 0x07b1 /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */
+# define XK_Greek_epsilonaccent 0x07b2 /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */
+# define XK_Greek_etaaccent 0x07b3 /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */
+# define XK_Greek_iotaaccent 0x07b4 /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */
+# define XK_Greek_iotadieresis 0x07b5 /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */
+# define XK_Greek_iotaaccentdieresis 0x07b6 /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */
+# define XK_Greek_omicronaccent 0x07b7 /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */
+# define XK_Greek_upsilonaccent 0x07b8 /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */
+# define XK_Greek_upsilondieresis 0x07b9 /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
+# define XK_Greek_upsilonaccentdieresis 0x07ba /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */
+# define XK_Greek_omegaaccent 0x07bb /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */
+# define XK_Greek_ALPHA 0x07c1 /* U+0391 GREEK CAPITAL LETTER ALPHA */
+# define XK_Greek_BETA 0x07c2 /* U+0392 GREEK CAPITAL LETTER BETA */
+# define XK_Greek_GAMMA 0x07c3 /* U+0393 GREEK CAPITAL LETTER GAMMA */
+# define XK_Greek_DELTA 0x07c4 /* U+0394 GREEK CAPITAL LETTER DELTA */
+# define XK_Greek_EPSILON 0x07c5 /* U+0395 GREEK CAPITAL LETTER EPSILON */
+# define XK_Greek_ZETA 0x07c6 /* U+0396 GREEK CAPITAL LETTER ZETA */
+# define XK_Greek_ETA 0x07c7 /* U+0397 GREEK CAPITAL LETTER ETA */
+# define XK_Greek_THETA 0x07c8 /* U+0398 GREEK CAPITAL LETTER THETA */
+# define XK_Greek_IOTA 0x07c9 /* U+0399 GREEK CAPITAL LETTER IOTA */
+# define XK_Greek_KAPPA 0x07ca /* U+039A GREEK CAPITAL LETTER KAPPA */
+# define XK_Greek_LAMDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */
+# define XK_Greek_LAMBDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */
+# define XK_Greek_MU 0x07cc /* U+039C GREEK CAPITAL LETTER MU */
+# define XK_Greek_NU 0x07cd /* U+039D GREEK CAPITAL LETTER NU */
+# define XK_Greek_XI 0x07ce /* U+039E GREEK CAPITAL LETTER XI */
+# define XK_Greek_OMICRON 0x07cf /* U+039F GREEK CAPITAL LETTER OMICRON */
+# define XK_Greek_PI 0x07d0 /* U+03A0 GREEK CAPITAL LETTER PI */
+# define XK_Greek_RHO 0x07d1 /* U+03A1 GREEK CAPITAL LETTER RHO */
+# define XK_Greek_SIGMA 0x07d2 /* U+03A3 GREEK CAPITAL LETTER SIGMA */
+# define XK_Greek_TAU 0x07d4 /* U+03A4 GREEK CAPITAL LETTER TAU */
+# define XK_Greek_UPSILON 0x07d5 /* U+03A5 GREEK CAPITAL LETTER UPSILON */
+# define XK_Greek_PHI 0x07d6 /* U+03A6 GREEK CAPITAL LETTER PHI */
+# define XK_Greek_CHI 0x07d7 /* U+03A7 GREEK CAPITAL LETTER CHI */
+# define XK_Greek_PSI 0x07d8 /* U+03A8 GREEK CAPITAL LETTER PSI */
+# define XK_Greek_OMEGA 0x07d9 /* U+03A9 GREEK CAPITAL LETTER OMEGA */
+# define XK_Greek_alpha 0x07e1 /* U+03B1 GREEK SMALL LETTER ALPHA */
+# define XK_Greek_beta 0x07e2 /* U+03B2 GREEK SMALL LETTER BETA */
+# define XK_Greek_gamma 0x07e3 /* U+03B3 GREEK SMALL LETTER GAMMA */
+# define XK_Greek_delta 0x07e4 /* U+03B4 GREEK SMALL LETTER DELTA */
+# define XK_Greek_epsilon 0x07e5 /* U+03B5 GREEK SMALL LETTER EPSILON */
+# define XK_Greek_zeta 0x07e6 /* U+03B6 GREEK SMALL LETTER ZETA */
+# define XK_Greek_eta 0x07e7 /* U+03B7 GREEK SMALL LETTER ETA */
+# define XK_Greek_theta 0x07e8 /* U+03B8 GREEK SMALL LETTER THETA */
+# define XK_Greek_iota 0x07e9 /* U+03B9 GREEK SMALL LETTER IOTA */
+# define XK_Greek_kappa 0x07ea /* U+03BA GREEK SMALL LETTER KAPPA */
+# define XK_Greek_lamda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */
+# define XK_Greek_lambda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */
+# define XK_Greek_mu 0x07ec /* U+03BC GREEK SMALL LETTER MU */
+# define XK_Greek_nu 0x07ed /* U+03BD GREEK SMALL LETTER NU */
+# define XK_Greek_xi 0x07ee /* U+03BE GREEK SMALL LETTER XI */
+# define XK_Greek_omicron 0x07ef /* U+03BF GREEK SMALL LETTER OMICRON */
+# define XK_Greek_pi 0x07f0 /* U+03C0 GREEK SMALL LETTER PI */
+# define XK_Greek_rho 0x07f1 /* U+03C1 GREEK SMALL LETTER RHO */
+# define XK_Greek_sigma 0x07f2 /* U+03C3 GREEK SMALL LETTER SIGMA */
+# define XK_Greek_finalsmallsigma 0x07f3 /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */
+# define XK_Greek_tau 0x07f4 /* U+03C4 GREEK SMALL LETTER TAU */
+# define XK_Greek_upsilon 0x07f5 /* U+03C5 GREEK SMALL LETTER UPSILON */
+# define XK_Greek_phi 0x07f6 /* U+03C6 GREEK SMALL LETTER PHI */
+# define XK_Greek_chi 0x07f7 /* U+03C7 GREEK SMALL LETTER CHI */
+# define XK_Greek_psi 0x07f8 /* U+03C8 GREEK SMALL LETTER PSI */
+# define XK_Greek_omega 0x07f9 /* U+03C9 GREEK SMALL LETTER OMEGA */
+# define XK_Greek_switch 0xff7e /* Alias for mode_switch */
+#endif /* XK_GREEK */
+
+/* Technical
+ * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html)
+ * Byte 3 = 8
+ */
+
+#ifdef XK_TECHNICAL
+# define XK_leftradical 0x08a1 /* U+23B7 RADICAL SYMBOL BOTTOM */
+# define XK_topleftradical 0x08a2 /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/
+# define XK_horizconnector 0x08a3 /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/
+# define XK_topintegral 0x08a4 /* U+2320 TOP HALF INTEGRAL */
+# define XK_botintegral 0x08a5 /* U+2321 BOTTOM HALF INTEGRAL */
+# define XK_vertconnector 0x08a6 /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/
+# define XK_topleftsqbracket 0x08a7 /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */
+# define XK_botleftsqbracket 0x08a8 /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */
+# define XK_toprightsqbracket 0x08a9 /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */
+# define XK_botrightsqbracket 0x08aa /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */
+# define XK_topleftparens 0x08ab /* U+239B LEFT PARENTHESIS UPPER HOOK */
+# define XK_botleftparens 0x08ac /* U+239D LEFT PARENTHESIS LOWER HOOK */
+# define XK_toprightparens 0x08ad /* U+239E RIGHT PARENTHESIS UPPER HOOK */
+# define XK_botrightparens 0x08ae /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */
+# define XK_leftmiddlecurlybrace 0x08af /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */
+# define XK_rightmiddlecurlybrace 0x08b0 /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */
+# define XK_topleftsummation 0x08b1
+# define XK_botleftsummation 0x08b2
+# define XK_topvertsummationconnector 0x08b3
+# define XK_botvertsummationconnector 0x08b4
+# define XK_toprightsummation 0x08b5
+# define XK_botrightsummation 0x08b6
+# define XK_rightmiddlesummation 0x08b7
+# define XK_lessthanequal 0x08bc /* U+2264 LESS-THAN OR EQUAL TO */
+# define XK_notequal 0x08bd /* U+2260 NOT EQUAL TO */
+# define XK_greaterthanequal 0x08be /* U+2265 GREATER-THAN OR EQUAL TO */
+# define XK_integral 0x08bf /* U+222B INTEGRAL */
+# define XK_therefore 0x08c0 /* U+2234 THEREFORE */
+# define XK_variation 0x08c1 /* U+221D PROPORTIONAL TO */
+# define XK_infinity 0x08c2 /* U+221E INFINITY */
+# define XK_nabla 0x08c5 /* U+2207 NABLA */
+# define XK_approximate 0x08c8 /* U+223C TILDE OPERATOR */
+# define XK_similarequal 0x08c9 /* U+2243 ASYMPTOTICALLY EQUAL TO */
+# define XK_ifonlyif 0x08cd /* U+21D4 LEFT RIGHT DOUBLE ARROW */
+# define XK_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */
+# define XK_identical 0x08cf /* U+2261 IDENTICAL TO */
+# define XK_radical 0x08d6 /* U+221A SQUARE ROOT */
+# define XK_includedin 0x08da /* U+2282 SUBSET OF */
+# define XK_includes 0x08db /* U+2283 SUPERSET OF */
+# define XK_intersection 0x08dc /* U+2229 INTERSECTION */
+# define XK_union 0x08dd /* U+222A UNION */
+# define XK_logicaland 0x08de /* U+2227 LOGICAL AND */
+# define XK_logicalor 0x08df /* U+2228 LOGICAL OR */
+# define XK_partialderivative 0x08ef /* U+2202 PARTIAL DIFFERENTIAL */
+# define XK_function 0x08f6 /* U+0192 LATIN SMALL LETTER F WITH HOOK */
+# define XK_leftarrow 0x08fb /* U+2190 LEFTWARDS ARROW */
+# define XK_uparrow 0x08fc /* U+2191 UPWARDS ARROW */
+# define XK_rightarrow 0x08fd /* U+2192 RIGHTWARDS ARROW */
+# define XK_downarrow 0x08fe /* U+2193 DOWNWARDS ARROW */
+#endif /* XK_TECHNICAL */
+
+/* Special
+ * (from the DEC VT100 Special Graphics Character Set)
+ * Byte 3 = 9
+ */
+
+#ifdef XK_SPECIAL
+# define XK_blank 0x09df
+# define XK_soliddiamond 0x09e0 /* U+25C6 BLACK DIAMOND */
+# define XK_checkerboard 0x09e1 /* U+2592 MEDIUM SHADE */
+# define XK_ht 0x09e2 /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */
+# define XK_ff 0x09e3 /* U+240C SYMBOL FOR FORM FEED */
+# define XK_cr 0x09e4 /* U+240D SYMBOL FOR CARRIAGE RETURN */
+# define XK_lf 0x09e5 /* U+240A SYMBOL FOR LINE FEED */
+# define XK_nl 0x09e8 /* U+2424 SYMBOL FOR NEWLINE */
+# define XK_vt 0x09e9 /* U+240B SYMBOL FOR VERTICAL TABULATION */
+# define XK_lowrightcorner 0x09ea /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */
+# define XK_uprightcorner 0x09eb /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */
+# define XK_upleftcorner 0x09ec /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */
+# define XK_lowleftcorner 0x09ed /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */
+# define XK_crossinglines 0x09ee /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
+# define XK_horizlinescan1 0x09ef /* U+23BA HORIZONTAL SCAN LINE-1 */
+# define XK_horizlinescan3 0x09f0 /* U+23BB HORIZONTAL SCAN LINE-3 */
+# define XK_horizlinescan5 0x09f1 /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */
+# define XK_horizlinescan7 0x09f2 /* U+23BC HORIZONTAL SCAN LINE-7 */
+# define XK_horizlinescan9 0x09f3 /* U+23BD HORIZONTAL SCAN LINE-9 */
+# define XK_leftt 0x09f4 /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
+# define XK_rightt 0x09f5 /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */
+# define XK_bott 0x09f6 /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */
+# define XK_topt 0x09f7 /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */
+# define XK_vertbar 0x09f8 /* U+2502 BOX DRAWINGS LIGHT VERTICAL */
+#endif /* XK_SPECIAL */
+
+/* Publishing
+ * (these are probably from a long forgotten DEC Publishing
+ * font that once shipped with DECwrite)
+ * Byte 3 = 0x0a
+ */
+
+#ifdef XK_PUBLISHING
+# define XK_emspace 0x0aa1 /* U+2003 EM SPACE */
+# define XK_enspace 0x0aa2 /* U+2002 EN SPACE */
+# define XK_em3space 0x0aa3 /* U+2004 THREE-PER-EM SPACE */
+# define XK_em4space 0x0aa4 /* U+2005 FOUR-PER-EM SPACE */
+# define XK_digitspace 0x0aa5 /* U+2007 FIGURE SPACE */
+# define XK_punctspace 0x0aa6 /* U+2008 PUNCTUATION SPACE */
+# define XK_thinspace 0x0aa7 /* U+2009 THIN SPACE */
+# define XK_hairspace 0x0aa8 /* U+200A HAIR SPACE */
+# define XK_emdash 0x0aa9 /* U+2014 EM DASH */
+# define XK_endash 0x0aaa /* U+2013 EN DASH */
+# define XK_signifblank 0x0aac /*(U+2423 OPEN BOX)*/
+# define XK_ellipsis 0x0aae /* U+2026 HORIZONTAL ELLIPSIS */
+# define XK_doubbaselinedot 0x0aaf /* U+2025 TWO DOT LEADER */
+# define XK_onethird 0x0ab0 /* U+2153 VULGAR FRACTION ONE THIRD */
+# define XK_twothirds 0x0ab1 /* U+2154 VULGAR FRACTION TWO THIRDS */
+# define XK_onefifth 0x0ab2 /* U+2155 VULGAR FRACTION ONE FIFTH */
+# define XK_twofifths 0x0ab3 /* U+2156 VULGAR FRACTION TWO FIFTHS */
+# define XK_threefifths 0x0ab4 /* U+2157 VULGAR FRACTION THREE FIFTHS */
+# define XK_fourfifths 0x0ab5 /* U+2158 VULGAR FRACTION FOUR FIFTHS */
+# define XK_onesixth 0x0ab6 /* U+2159 VULGAR FRACTION ONE SIXTH */
+# define XK_fivesixths 0x0ab7 /* U+215A VULGAR FRACTION FIVE SIXTHS */
+# define XK_careof 0x0ab8 /* U+2105 CARE OF */
+# define XK_figdash 0x0abb /* U+2012 FIGURE DASH */
+# define XK_leftanglebracket 0x0abc /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/
+# define XK_decimalpoint 0x0abd /*(U+002E FULL STOP)*/
+# define XK_rightanglebracket 0x0abe /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/
+# define XK_marker 0x0abf
+# define XK_oneeighth 0x0ac3 /* U+215B VULGAR FRACTION ONE EIGHTH */
+# define XK_threeeighths 0x0ac4 /* U+215C VULGAR FRACTION THREE EIGHTHS */
+# define XK_fiveeighths 0x0ac5 /* U+215D VULGAR FRACTION FIVE EIGHTHS */
+# define XK_seveneighths 0x0ac6 /* U+215E VULGAR FRACTION SEVEN EIGHTHS */
+# define XK_trademark 0x0ac9 /* U+2122 TRADE MARK SIGN */
+# define XK_signaturemark 0x0aca /*(U+2613 SALTIRE)*/
+# define XK_trademarkincircle 0x0acb
+# define XK_leftopentriangle 0x0acc /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/
+# define XK_rightopentriangle 0x0acd /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/
+# define XK_emopencircle 0x0ace /*(U+25CB WHITE CIRCLE)*/
+# define XK_emopenrectangle 0x0acf /*(U+25AF WHITE VERTICAL RECTANGLE)*/
+# define XK_leftsinglequotemark 0x0ad0 /* U+2018 LEFT SINGLE QUOTATION MARK */
+# define XK_rightsinglequotemark 0x0ad1 /* U+2019 RIGHT SINGLE QUOTATION MARK */
+# define XK_leftdoublequotemark 0x0ad2 /* U+201C LEFT DOUBLE QUOTATION MARK */
+# define XK_rightdoublequotemark 0x0ad3 /* U+201D RIGHT DOUBLE QUOTATION MARK */
+# define XK_prescription 0x0ad4 /* U+211E PRESCRIPTION TAKE */
+# define XK_minutes 0x0ad6 /* U+2032 PRIME */
+# define XK_seconds 0x0ad7 /* U+2033 DOUBLE PRIME */
+# define XK_latincross 0x0ad9 /* U+271D LATIN CROSS */
+# define XK_hexagram 0x0ada
+# define XK_filledrectbullet 0x0adb /*(U+25AC BLACK RECTANGLE)*/
+# define XK_filledlefttribullet 0x0adc /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/
+# define XK_filledrighttribullet 0x0add /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/
+# define XK_emfilledcircle 0x0ade /*(U+25CF BLACK CIRCLE)*/
+# define XK_emfilledrect 0x0adf /*(U+25AE BLACK VERTICAL RECTANGLE)*/
+# define XK_enopencircbullet 0x0ae0 /*(U+25E6 WHITE BULLET)*/
+# define XK_enopensquarebullet 0x0ae1 /*(U+25AB WHITE SMALL SQUARE)*/
+# define XK_openrectbullet 0x0ae2 /*(U+25AD WHITE RECTANGLE)*/
+# define XK_opentribulletup 0x0ae3 /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/
+# define XK_opentribulletdown 0x0ae4 /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/
+# define XK_openstar 0x0ae5 /*(U+2606 WHITE STAR)*/
+# define XK_enfilledcircbullet 0x0ae6 /*(U+2022 BULLET)*/
+# define XK_enfilledsqbullet 0x0ae7 /*(U+25AA BLACK SMALL SQUARE)*/
+# define XK_filledtribulletup 0x0ae8 /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/
+# define XK_filledtribulletdown 0x0ae9 /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/
+# define XK_leftpointer 0x0aea /*(U+261C WHITE LEFT POINTING INDEX)*/
+# define XK_rightpointer 0x0aeb /*(U+261E WHITE RIGHT POINTING INDEX)*/
+# define XK_club 0x0aec /* U+2663 BLACK CLUB SUIT */
+# define XK_diamond 0x0aed /* U+2666 BLACK DIAMOND SUIT */
+# define XK_heart 0x0aee /* U+2665 BLACK HEART SUIT */
+# define XK_maltesecross 0x0af0 /* U+2720 MALTESE CROSS */
+# define XK_dagger 0x0af1 /* U+2020 DAGGER */
+# define XK_doubledagger 0x0af2 /* U+2021 DOUBLE DAGGER */
+# define XK_checkmark 0x0af3 /* U+2713 CHECK MARK */
+# define XK_ballotcross 0x0af4 /* U+2717 BALLOT X */
+# define XK_musicalsharp 0x0af5 /* U+266F MUSIC SHARP SIGN */
+# define XK_musicalflat 0x0af6 /* U+266D MUSIC FLAT SIGN */
+# define XK_malesymbol 0x0af7 /* U+2642 MALE SIGN */
+# define XK_femalesymbol 0x0af8 /* U+2640 FEMALE SIGN */
+# define XK_telephone 0x0af9 /* U+260E BLACK TELEPHONE */
+# define XK_telephonerecorder 0x0afa /* U+2315 TELEPHONE RECORDER */
+# define XK_phonographcopyright 0x0afb /* U+2117 SOUND RECORDING COPYRIGHT */
+# define XK_caret 0x0afc /* U+2038 CARET */
+# define XK_singlelowquotemark 0x0afd /* U+201A SINGLE LOW-9 QUOTATION MARK */
+# define XK_doublelowquotemark 0x0afe /* U+201E DOUBLE LOW-9 QUOTATION MARK */
+# define XK_cursor 0x0aff
+#endif /* XK_PUBLISHING */
+
+/* APL
+ * Byte 3 = 0x0b
+ */
+
+#ifdef XK_APL
+# define XK_leftcaret 0x0ba3 /*(U+003C LESS-THAN SIGN)*/
+# define XK_rightcaret 0x0ba6 /*(U+003E GREATER-THAN SIGN)*/
+# define XK_downcaret 0x0ba8 /*(U+2228 LOGICAL OR)*/
+# define XK_upcaret 0x0ba9 /*(U+2227 LOGICAL AND)*/
+# define XK_overbar 0x0bc0 /*(U+00AF MACRON)*/
+# define XK_downtack 0x0bc2 /* U+22A5 UP TACK */
+# define XK_upshoe 0x0bc3 /*(U+2229 INTERSECTION)*/
+# define XK_downstile 0x0bc4 /* U+230A LEFT FLOOR */
+# define XK_underbar 0x0bc6 /*(U+005F LOW LINE)*/
+# define XK_jot 0x0bca /* U+2218 RING OPERATOR */
+# define XK_quad 0x0bcc /* U+2395 APL FUNCTIONAL SYMBOL QUAD */
+# define XK_uptack 0x0bce /* U+22A4 DOWN TACK */
+# define XK_circle 0x0bcf /* U+25CB WHITE CIRCLE */
+# define XK_upstile 0x0bd3 /* U+2308 LEFT CEILING */
+# define XK_downshoe 0x0bd6 /*(U+222A UNION)*/
+# define XK_rightshoe 0x0bd8 /*(U+2283 SUPERSET OF)*/
+# define XK_leftshoe 0x0bda /*(U+2282 SUBSET OF)*/
+# define XK_lefttack 0x0bdc /* U+22A2 RIGHT TACK */
+# define XK_righttack 0x0bfc /* U+22A3 LEFT TACK */
+#endif /* XK_APL */
+
+/* Hebrew
+ * Byte 3 = 0x0c
+ */
+
+#ifdef XK_HEBREW
+# define XK_hebrew_doublelowline 0x0cdf /* U+2017 DOUBLE LOW LINE */
+# define XK_hebrew_aleph 0x0ce0 /* U+05D0 HEBREW LETTER ALEF */
+# define XK_hebrew_bet 0x0ce1 /* U+05D1 HEBREW LETTER BET */
+# define XK_hebrew_beth 0x0ce1 /* deprecated */
+# define XK_hebrew_gimel 0x0ce2 /* U+05D2 HEBREW LETTER GIMEL */
+# define XK_hebrew_gimmel 0x0ce2 /* deprecated */
+# define XK_hebrew_dalet 0x0ce3 /* U+05D3 HEBREW LETTER DALET */
+# define XK_hebrew_daleth 0x0ce3 /* deprecated */
+# define XK_hebrew_he 0x0ce4 /* U+05D4 HEBREW LETTER HE */
+# define XK_hebrew_waw 0x0ce5 /* U+05D5 HEBREW LETTER VAV */
+# define XK_hebrew_zain 0x0ce6 /* U+05D6 HEBREW LETTER ZAYIN */
+# define XK_hebrew_zayin 0x0ce6 /* deprecated */
+# define XK_hebrew_chet 0x0ce7 /* U+05D7 HEBREW LETTER HET */
+# define XK_hebrew_het 0x0ce7 /* deprecated */
+# define XK_hebrew_tet 0x0ce8 /* U+05D8 HEBREW LETTER TET */
+# define XK_hebrew_teth 0x0ce8 /* deprecated */
+# define XK_hebrew_yod 0x0ce9 /* U+05D9 HEBREW LETTER YOD */
+# define XK_hebrew_finalkaph 0x0cea /* U+05DA HEBREW LETTER FINAL KAF */
+# define XK_hebrew_kaph 0x0ceb /* U+05DB HEBREW LETTER KAF */
+# define XK_hebrew_lamed 0x0cec /* U+05DC HEBREW LETTER LAMED */
+# define XK_hebrew_finalmem 0x0ced /* U+05DD HEBREW LETTER FINAL MEM */
+# define XK_hebrew_mem 0x0cee /* U+05DE HEBREW LETTER MEM */
+# define XK_hebrew_finalnun 0x0cef /* U+05DF HEBREW LETTER FINAL NUN */
+# define XK_hebrew_nun 0x0cf0 /* U+05E0 HEBREW LETTER NUN */
+# define XK_hebrew_samech 0x0cf1 /* U+05E1 HEBREW LETTER SAMEKH */
+# define XK_hebrew_samekh 0x0cf1 /* deprecated */
+# define XK_hebrew_ayin 0x0cf2 /* U+05E2 HEBREW LETTER AYIN */
+# define XK_hebrew_finalpe 0x0cf3 /* U+05E3 HEBREW LETTER FINAL PE */
+# define XK_hebrew_pe 0x0cf4 /* U+05E4 HEBREW LETTER PE */
+# define XK_hebrew_finalzade 0x0cf5 /* U+05E5 HEBREW LETTER FINAL TSADI */
+# define XK_hebrew_finalzadi 0x0cf5 /* deprecated */
+# define XK_hebrew_zade 0x0cf6 /* U+05E6 HEBREW LETTER TSADI */
+# define XK_hebrew_zadi 0x0cf6 /* deprecated */
+# define XK_hebrew_qoph 0x0cf7 /* U+05E7 HEBREW LETTER QOF */
+# define XK_hebrew_kuf 0x0cf7 /* deprecated */
+# define XK_hebrew_resh 0x0cf8 /* U+05E8 HEBREW LETTER RESH */
+# define XK_hebrew_shin 0x0cf9 /* U+05E9 HEBREW LETTER SHIN */
+# define XK_hebrew_taw 0x0cfa /* U+05EA HEBREW LETTER TAV */
+# define XK_hebrew_taf 0x0cfa /* deprecated */
+# define XK_Hebrew_switch 0xff7e /* Alias for mode_switch */
+#endif /* XK_HEBREW */
+
+/* Thai
+ * Byte 3 = 0x0d
+ */
+
+#ifdef XK_THAI
+# define XK_Thai_kokai 0x0da1 /* U+0E01 THAI CHARACTER KO KAI */
+# define XK_Thai_khokhai 0x0da2 /* U+0E02 THAI CHARACTER KHO KHAI */
+# define XK_Thai_khokhuat 0x0da3 /* U+0E03 THAI CHARACTER KHO KHUAT */
+# define XK_Thai_khokhwai 0x0da4 /* U+0E04 THAI CHARACTER KHO KHWAI */
+# define XK_Thai_khokhon 0x0da5 /* U+0E05 THAI CHARACTER KHO KHON */
+# define XK_Thai_khorakhang 0x0da6 /* U+0E06 THAI CHARACTER KHO RAKHANG */
+# define XK_Thai_ngongu 0x0da7 /* U+0E07 THAI CHARACTER NGO NGU */
+# define XK_Thai_chochan 0x0da8 /* U+0E08 THAI CHARACTER CHO CHAN */
+# define XK_Thai_choching 0x0da9 /* U+0E09 THAI CHARACTER CHO CHING */
+# define XK_Thai_chochang 0x0daa /* U+0E0A THAI CHARACTER CHO CHANG */
+# define XK_Thai_soso 0x0dab /* U+0E0B THAI CHARACTER SO SO */
+# define XK_Thai_chochoe 0x0dac /* U+0E0C THAI CHARACTER CHO CHOE */
+# define XK_Thai_yoying 0x0dad /* U+0E0D THAI CHARACTER YO YING */
+# define XK_Thai_dochada 0x0dae /* U+0E0E THAI CHARACTER DO CHADA */
+# define XK_Thai_topatak 0x0daf /* U+0E0F THAI CHARACTER TO PATAK */
+# define XK_Thai_thothan 0x0db0 /* U+0E10 THAI CHARACTER THO THAN */
+# define XK_Thai_thonangmontho 0x0db1 /* U+0E11 THAI CHARACTER THO NANGMONTHO */
+# define XK_Thai_thophuthao 0x0db2 /* U+0E12 THAI CHARACTER THO PHUTHAO */
+# define XK_Thai_nonen 0x0db3 /* U+0E13 THAI CHARACTER NO NEN */
+# define XK_Thai_dodek 0x0db4 /* U+0E14 THAI CHARACTER DO DEK */
+# define XK_Thai_totao 0x0db5 /* U+0E15 THAI CHARACTER TO TAO */
+# define XK_Thai_thothung 0x0db6 /* U+0E16 THAI CHARACTER THO THUNG */
+# define XK_Thai_thothahan 0x0db7 /* U+0E17 THAI CHARACTER THO THAHAN */
+# define XK_Thai_thothong 0x0db8 /* U+0E18 THAI CHARACTER THO THONG */
+# define XK_Thai_nonu 0x0db9 /* U+0E19 THAI CHARACTER NO NU */
+# define XK_Thai_bobaimai 0x0dba /* U+0E1A THAI CHARACTER BO BAIMAI */
+# define XK_Thai_popla 0x0dbb /* U+0E1B THAI CHARACTER PO PLA */
+# define XK_Thai_phophung 0x0dbc /* U+0E1C THAI CHARACTER PHO PHUNG */
+# define XK_Thai_fofa 0x0dbd /* U+0E1D THAI CHARACTER FO FA */
+# define XK_Thai_phophan 0x0dbe /* U+0E1E THAI CHARACTER PHO PHAN */
+# define XK_Thai_fofan 0x0dbf /* U+0E1F THAI CHARACTER FO FAN */
+# define XK_Thai_phosamphao 0x0dc0 /* U+0E20 THAI CHARACTER PHO SAMPHAO */
+# define XK_Thai_moma 0x0dc1 /* U+0E21 THAI CHARACTER MO MA */
+# define XK_Thai_yoyak 0x0dc2 /* U+0E22 THAI CHARACTER YO YAK */
+# define XK_Thai_rorua 0x0dc3 /* U+0E23 THAI CHARACTER RO RUA */
+# define XK_Thai_ru 0x0dc4 /* U+0E24 THAI CHARACTER RU */
+# define XK_Thai_loling 0x0dc5 /* U+0E25 THAI CHARACTER LO LING */
+# define XK_Thai_lu 0x0dc6 /* U+0E26 THAI CHARACTER LU */
+# define XK_Thai_wowaen 0x0dc7 /* U+0E27 THAI CHARACTER WO WAEN */
+# define XK_Thai_sosala 0x0dc8 /* U+0E28 THAI CHARACTER SO SALA */
+# define XK_Thai_sorusi 0x0dc9 /* U+0E29 THAI CHARACTER SO RUSI */
+# define XK_Thai_sosua 0x0dca /* U+0E2A THAI CHARACTER SO SUA */
+# define XK_Thai_hohip 0x0dcb /* U+0E2B THAI CHARACTER HO HIP */
+# define XK_Thai_lochula 0x0dcc /* U+0E2C THAI CHARACTER LO CHULA */
+# define XK_Thai_oang 0x0dcd /* U+0E2D THAI CHARACTER O ANG */
+# define XK_Thai_honokhuk 0x0dce /* U+0E2E THAI CHARACTER HO NOKHUK */
+# define XK_Thai_paiyannoi 0x0dcf /* U+0E2F THAI CHARACTER PAIYANNOI */
+# define XK_Thai_saraa 0x0dd0 /* U+0E30 THAI CHARACTER SARA A */
+# define XK_Thai_maihanakat 0x0dd1 /* U+0E31 THAI CHARACTER MAI HAN-AKAT */
+# define XK_Thai_saraaa 0x0dd2 /* U+0E32 THAI CHARACTER SARA AA */
+# define XK_Thai_saraam 0x0dd3 /* U+0E33 THAI CHARACTER SARA AM */
+# define XK_Thai_sarai 0x0dd4 /* U+0E34 THAI CHARACTER SARA I */
+# define XK_Thai_saraii 0x0dd5 /* U+0E35 THAI CHARACTER SARA II */
+# define XK_Thai_saraue 0x0dd6 /* U+0E36 THAI CHARACTER SARA UE */
+# define XK_Thai_sarauee 0x0dd7 /* U+0E37 THAI CHARACTER SARA UEE */
+# define XK_Thai_sarau 0x0dd8 /* U+0E38 THAI CHARACTER SARA U */
+# define XK_Thai_sarauu 0x0dd9 /* U+0E39 THAI CHARACTER SARA UU */
+# define XK_Thai_phinthu 0x0dda /* U+0E3A THAI CHARACTER PHINTHU */
+# define XK_Thai_maihanakat_maitho 0x0dde
+# define XK_Thai_baht 0x0ddf /* U+0E3F THAI CURRENCY SYMBOL BAHT */
+# define XK_Thai_sarae 0x0de0 /* U+0E40 THAI CHARACTER SARA E */
+# define XK_Thai_saraae 0x0de1 /* U+0E41 THAI CHARACTER SARA AE */
+# define XK_Thai_sarao 0x0de2 /* U+0E42 THAI CHARACTER SARA O */
+# define XK_Thai_saraaimaimuan 0x0de3 /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */
+# define XK_Thai_saraaimaimalai 0x0de4 /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */
+# define XK_Thai_lakkhangyao 0x0de5 /* U+0E45 THAI CHARACTER LAKKHANGYAO */
+# define XK_Thai_maiyamok 0x0de6 /* U+0E46 THAI CHARACTER MAIYAMOK */
+# define XK_Thai_maitaikhu 0x0de7 /* U+0E47 THAI CHARACTER MAITAIKHU */
+# define XK_Thai_maiek 0x0de8 /* U+0E48 THAI CHARACTER MAI EK */
+# define XK_Thai_maitho 0x0de9 /* U+0E49 THAI CHARACTER MAI THO */
+# define XK_Thai_maitri 0x0dea /* U+0E4A THAI CHARACTER MAI TRI */
+# define XK_Thai_maichattawa 0x0deb /* U+0E4B THAI CHARACTER MAI CHATTAWA */
+# define XK_Thai_thanthakhat 0x0dec /* U+0E4C THAI CHARACTER THANTHAKHAT */
+# define XK_Thai_nikhahit 0x0ded /* U+0E4D THAI CHARACTER NIKHAHIT */
+# define XK_Thai_leksun 0x0df0 /* U+0E50 THAI DIGIT ZERO */
+# define XK_Thai_leknung 0x0df1 /* U+0E51 THAI DIGIT ONE */
+# define XK_Thai_leksong 0x0df2 /* U+0E52 THAI DIGIT TWO */
+# define XK_Thai_leksam 0x0df3 /* U+0E53 THAI DIGIT THREE */
+# define XK_Thai_leksi 0x0df4 /* U+0E54 THAI DIGIT FOUR */
+# define XK_Thai_lekha 0x0df5 /* U+0E55 THAI DIGIT FIVE */
+# define XK_Thai_lekhok 0x0df6 /* U+0E56 THAI DIGIT SIX */
+# define XK_Thai_lekchet 0x0df7 /* U+0E57 THAI DIGIT SEVEN */
+# define XK_Thai_lekpaet 0x0df8 /* U+0E58 THAI DIGIT EIGHT */
+# define XK_Thai_lekkao 0x0df9 /* U+0E59 THAI DIGIT NINE */
+#endif /* XK_THAI */
+
+/* Korean
+ * Byte 3 = 0x0e
+ */
+
+#ifdef XK_KOREAN
+
+# define XK_Hangul 0xff31 /* Hangul start/stop(toggle) */
+# define XK_Hangul_Start 0xff32 /* Hangul start */
+# define XK_Hangul_End 0xff33 /* Hangul end, English start */
+# define XK_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */
+# define XK_Hangul_Jamo 0xff35 /* Hangul Jamo mode */
+# define XK_Hangul_Romaja 0xff36 /* Hangul Romaja mode */
+# define XK_Hangul_Codeinput 0xff37 /* Hangul code input mode */
+# define XK_Hangul_Jeonja 0xff38 /* Jeonja mode */
+# define XK_Hangul_Banja 0xff39 /* Banja mode */
+# define XK_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */
+# define XK_Hangul_PostHanja 0xff3b /* Post Hanja conversion */
+# define XK_Hangul_SingleCandidate 0xff3c /* Single candidate */
+# define XK_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */
+# define XK_Hangul_PreviousCandidate 0xff3e /* Previous candidate */
+# define XK_Hangul_Special 0xff3f /* Special symbols */
+# define XK_Hangul_switch 0xff7e /* Alias for mode_switch */
+
+/* Hangul Consonant Characters */
+
+# define XK_Hangul_Kiyeog 0x0ea1
+# define XK_Hangul_SsangKiyeog 0x0ea2
+# define XK_Hangul_KiyeogSios 0x0ea3
+# define XK_Hangul_Nieun 0x0ea4
+# define XK_Hangul_NieunJieuj 0x0ea5
+# define XK_Hangul_NieunHieuh 0x0ea6
+# define XK_Hangul_Dikeud 0x0ea7
+# define XK_Hangul_SsangDikeud 0x0ea8
+# define XK_Hangul_Rieul 0x0ea9
+# define XK_Hangul_RieulKiyeog 0x0eaa
+# define XK_Hangul_RieulMieum 0x0eab
+# define XK_Hangul_RieulPieub 0x0eac
+# define XK_Hangul_RieulSios 0x0ead
+# define XK_Hangul_RieulTieut 0x0eae
+# define XK_Hangul_RieulPhieuf 0x0eaf
+# define XK_Hangul_RieulHieuh 0x0eb0
+# define XK_Hangul_Mieum 0x0eb1
+# define XK_Hangul_Pieub 0x0eb2
+# define XK_Hangul_SsangPieub 0x0eb3
+# define XK_Hangul_PieubSios 0x0eb4
+# define XK_Hangul_Sios 0x0eb5
+# define XK_Hangul_SsangSios 0x0eb6
+# define XK_Hangul_Ieung 0x0eb7
+# define XK_Hangul_Jieuj 0x0eb8
+# define XK_Hangul_SsangJieuj 0x0eb9
+# define XK_Hangul_Cieuc 0x0eba
+# define XK_Hangul_Khieuq 0x0ebb
+# define XK_Hangul_Tieut 0x0ebc
+# define XK_Hangul_Phieuf 0x0ebd
+# define XK_Hangul_Hieuh 0x0ebe
+
+/* Hangul Vowel Characters */
+
+# define XK_Hangul_A 0x0ebf
+# define XK_Hangul_AE 0x0ec0
+# define XK_Hangul_YA 0x0ec1
+# define XK_Hangul_YAE 0x0ec2
+# define XK_Hangul_EO 0x0ec3
+# define XK_Hangul_E 0x0ec4
+# define XK_Hangul_YEO 0x0ec5
+# define XK_Hangul_YE 0x0ec6
+# define XK_Hangul_O 0x0ec7
+# define XK_Hangul_WA 0x0ec8
+# define XK_Hangul_WAE 0x0ec9
+# define XK_Hangul_OE 0x0eca
+# define XK_Hangul_YO 0x0ecb
+# define XK_Hangul_U 0x0ecc
+# define XK_Hangul_WEO 0x0ecd
+# define XK_Hangul_WE 0x0ece
+# define XK_Hangul_WI 0x0ecf
+# define XK_Hangul_YU 0x0ed0
+# define XK_Hangul_EU 0x0ed1
+# define XK_Hangul_YI 0x0ed2
+# define XK_Hangul_I 0x0ed3
+
+/* Hangul syllable-final (JongSeong) Characters */
+
+# define XK_Hangul_J_Kiyeog 0x0ed4
+# define XK_Hangul_J_SsangKiyeog 0x0ed5
+# define XK_Hangul_J_KiyeogSios 0x0ed6
+# define XK_Hangul_J_Nieun 0x0ed7
+# define XK_Hangul_J_NieunJieuj 0x0ed8
+# define XK_Hangul_J_NieunHieuh 0x0ed9
+# define XK_Hangul_J_Dikeud 0x0eda
+# define XK_Hangul_J_Rieul 0x0edb
+# define XK_Hangul_J_RieulKiyeog 0x0edc
+# define XK_Hangul_J_RieulMieum 0x0edd
+# define XK_Hangul_J_RieulPieub 0x0ede
+# define XK_Hangul_J_RieulSios 0x0edf
+# define XK_Hangul_J_RieulTieut 0x0ee0
+# define XK_Hangul_J_RieulPhieuf 0x0ee1
+# define XK_Hangul_J_RieulHieuh 0x0ee2
+# define XK_Hangul_J_Mieum 0x0ee3
+# define XK_Hangul_J_Pieub 0x0ee4
+# define XK_Hangul_J_PieubSios 0x0ee5
+# define XK_Hangul_J_Sios 0x0ee6
+# define XK_Hangul_J_SsangSios 0x0ee7
+# define XK_Hangul_J_Ieung 0x0ee8
+# define XK_Hangul_J_Jieuj 0x0ee9
+# define XK_Hangul_J_Cieuc 0x0eea
+# define XK_Hangul_J_Khieuq 0x0eeb
+# define XK_Hangul_J_Tieut 0x0eec
+# define XK_Hangul_J_Phieuf 0x0eed
+# define XK_Hangul_J_Hieuh 0x0eee
+
+/* Ancient Hangul Consonant Characters */
+
+# define XK_Hangul_RieulYeorinHieuh 0x0eef
+# define XK_Hangul_SunkyeongeumMieum 0x0ef0
+# define XK_Hangul_SunkyeongeumPieub 0x0ef1
+# define XK_Hangul_PanSios 0x0ef2
+# define XK_Hangul_KkogjiDalrinIeung 0x0ef3
+# define XK_Hangul_SunkyeongeumPhieuf 0x0ef4
+# define XK_Hangul_YeorinHieuh 0x0ef5
+
+/* Ancient Hangul Vowel Characters */
+
+# define XK_Hangul_AraeA 0x0ef6
+# define XK_Hangul_AraeAE 0x0ef7
+
+/* Ancient Hangul syllable-final (JongSeong) Characters */
+
+# define XK_Hangul_J_PanSios 0x0ef8
+# define XK_Hangul_J_KkogjiDalrinIeung 0x0ef9
+# define XK_Hangul_J_YeorinHieuh 0x0efa
+
+/* Korean currency symbol */
+
+# define XK_Korean_Won 0x0eff /*(U+20A9 WON SIGN)*/
+
+#endif /* XK_KOREAN */
+
+/* Armenian */
+
+#ifdef XK_ARMENIAN
+# define XK_Armenian_ligature_ew 0x1000587 /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
+# define XK_Armenian_full_stop 0x1000589 /* U+0589 ARMENIAN FULL STOP */
+# define XK_Armenian_verjaket 0x1000589 /* U+0589 ARMENIAN FULL STOP */
+# define XK_Armenian_separation_mark 0x100055d /* U+055D ARMENIAN COMMA */
+# define XK_Armenian_but 0x100055d /* U+055D ARMENIAN COMMA */
+# define XK_Armenian_hyphen 0x100058a /* U+058A ARMENIAN HYPHEN */
+# define XK_Armenian_yentamna 0x100058a /* U+058A ARMENIAN HYPHEN */
+# define XK_Armenian_exclam 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */
+# define XK_Armenian_amanak 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */
+# define XK_Armenian_accent 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */
+# define XK_Armenian_shesht 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */
+# define XK_Armenian_question 0x100055e /* U+055E ARMENIAN QUESTION MARK */
+# define XK_Armenian_paruyk 0x100055e /* U+055E ARMENIAN QUESTION MARK */
+# define XK_Armenian_AYB 0x1000531 /* U+0531 ARMENIAN CAPITAL LETTER AYB */
+# define XK_Armenian_ayb 0x1000561 /* U+0561 ARMENIAN SMALL LETTER AYB */
+# define XK_Armenian_BEN 0x1000532 /* U+0532 ARMENIAN CAPITAL LETTER BEN */
+# define XK_Armenian_ben 0x1000562 /* U+0562 ARMENIAN SMALL LETTER BEN */
+# define XK_Armenian_GIM 0x1000533 /* U+0533 ARMENIAN CAPITAL LETTER GIM */
+# define XK_Armenian_gim 0x1000563 /* U+0563 ARMENIAN SMALL LETTER GIM */
+# define XK_Armenian_DA 0x1000534 /* U+0534 ARMENIAN CAPITAL LETTER DA */
+# define XK_Armenian_da 0x1000564 /* U+0564 ARMENIAN SMALL LETTER DA */
+# define XK_Armenian_YECH 0x1000535 /* U+0535 ARMENIAN CAPITAL LETTER ECH */
+# define XK_Armenian_yech 0x1000565 /* U+0565 ARMENIAN SMALL LETTER ECH */
+# define XK_Armenian_ZA 0x1000536 /* U+0536 ARMENIAN CAPITAL LETTER ZA */
+# define XK_Armenian_za 0x1000566 /* U+0566 ARMENIAN SMALL LETTER ZA */
+# define XK_Armenian_E 0x1000537 /* U+0537 ARMENIAN CAPITAL LETTER EH */
+# define XK_Armenian_e 0x1000567 /* U+0567 ARMENIAN SMALL LETTER EH */
+# define XK_Armenian_AT 0x1000538 /* U+0538 ARMENIAN CAPITAL LETTER ET */
+# define XK_Armenian_at 0x1000568 /* U+0568 ARMENIAN SMALL LETTER ET */
+# define XK_Armenian_TO 0x1000539 /* U+0539 ARMENIAN CAPITAL LETTER TO */
+# define XK_Armenian_to 0x1000569 /* U+0569 ARMENIAN SMALL LETTER TO */
+# define XK_Armenian_ZHE 0x100053a /* U+053A ARMENIAN CAPITAL LETTER ZHE */
+# define XK_Armenian_zhe 0x100056a /* U+056A ARMENIAN SMALL LETTER ZHE */
+# define XK_Armenian_INI 0x100053b /* U+053B ARMENIAN CAPITAL LETTER INI */
+# define XK_Armenian_ini 0x100056b /* U+056B ARMENIAN SMALL LETTER INI */
+# define XK_Armenian_LYUN 0x100053c /* U+053C ARMENIAN CAPITAL LETTER LIWN */
+# define XK_Armenian_lyun 0x100056c /* U+056C ARMENIAN SMALL LETTER LIWN */
+# define XK_Armenian_KHE 0x100053d /* U+053D ARMENIAN CAPITAL LETTER XEH */
+# define XK_Armenian_khe 0x100056d /* U+056D ARMENIAN SMALL LETTER XEH */
+# define XK_Armenian_TSA 0x100053e /* U+053E ARMENIAN CAPITAL LETTER CA */
+# define XK_Armenian_tsa 0x100056e /* U+056E ARMENIAN SMALL LETTER CA */
+# define XK_Armenian_KEN 0x100053f /* U+053F ARMENIAN CAPITAL LETTER KEN */
+# define XK_Armenian_ken 0x100056f /* U+056F ARMENIAN SMALL LETTER KEN */
+# define XK_Armenian_HO 0x1000540 /* U+0540 ARMENIAN CAPITAL LETTER HO */
+# define XK_Armenian_ho 0x1000570 /* U+0570 ARMENIAN SMALL LETTER HO */
+# define XK_Armenian_DZA 0x1000541 /* U+0541 ARMENIAN CAPITAL LETTER JA */
+# define XK_Armenian_dza 0x1000571 /* U+0571 ARMENIAN SMALL LETTER JA */
+# define XK_Armenian_GHAT 0x1000542 /* U+0542 ARMENIAN CAPITAL LETTER GHAD */
+# define XK_Armenian_ghat 0x1000572 /* U+0572 ARMENIAN SMALL LETTER GHAD */
+# define XK_Armenian_TCHE 0x1000543 /* U+0543 ARMENIAN CAPITAL LETTER CHEH */
+# define XK_Armenian_tche 0x1000573 /* U+0573 ARMENIAN SMALL LETTER CHEH */
+# define XK_Armenian_MEN 0x1000544 /* U+0544 ARMENIAN CAPITAL LETTER MEN */
+# define XK_Armenian_men 0x1000574 /* U+0574 ARMENIAN SMALL LETTER MEN */
+# define XK_Armenian_HI 0x1000545 /* U+0545 ARMENIAN CAPITAL LETTER YI */
+# define XK_Armenian_hi 0x1000575 /* U+0575 ARMENIAN SMALL LETTER YI */
+# define XK_Armenian_NU 0x1000546 /* U+0546 ARMENIAN CAPITAL LETTER NOW */
+# define XK_Armenian_nu 0x1000576 /* U+0576 ARMENIAN SMALL LETTER NOW */
+# define XK_Armenian_SHA 0x1000547 /* U+0547 ARMENIAN CAPITAL LETTER SHA */
+# define XK_Armenian_sha 0x1000577 /* U+0577 ARMENIAN SMALL LETTER SHA */
+# define XK_Armenian_VO 0x1000548 /* U+0548 ARMENIAN CAPITAL LETTER VO */
+# define XK_Armenian_vo 0x1000578 /* U+0578 ARMENIAN SMALL LETTER VO */
+# define XK_Armenian_CHA 0x1000549 /* U+0549 ARMENIAN CAPITAL LETTER CHA */
+# define XK_Armenian_cha 0x1000579 /* U+0579 ARMENIAN SMALL LETTER CHA */
+# define XK_Armenian_PE 0x100054a /* U+054A ARMENIAN CAPITAL LETTER PEH */
+# define XK_Armenian_pe 0x100057a /* U+057A ARMENIAN SMALL LETTER PEH */
+# define XK_Armenian_JE 0x100054b /* U+054B ARMENIAN CAPITAL LETTER JHEH */
+# define XK_Armenian_je 0x100057b /* U+057B ARMENIAN SMALL LETTER JHEH */
+# define XK_Armenian_RA 0x100054c /* U+054C ARMENIAN CAPITAL LETTER RA */
+# define XK_Armenian_ra 0x100057c /* U+057C ARMENIAN SMALL LETTER RA */
+# define XK_Armenian_SE 0x100054d /* U+054D ARMENIAN CAPITAL LETTER SEH */
+# define XK_Armenian_se 0x100057d /* U+057D ARMENIAN SMALL LETTER SEH */
+# define XK_Armenian_VEV 0x100054e /* U+054E ARMENIAN CAPITAL LETTER VEW */
+# define XK_Armenian_vev 0x100057e /* U+057E ARMENIAN SMALL LETTER VEW */
+# define XK_Armenian_TYUN 0x100054f /* U+054F ARMENIAN CAPITAL LETTER TIWN */
+# define XK_Armenian_tyun 0x100057f /* U+057F ARMENIAN SMALL LETTER TIWN */
+# define XK_Armenian_RE 0x1000550 /* U+0550 ARMENIAN CAPITAL LETTER REH */
+# define XK_Armenian_re 0x1000580 /* U+0580 ARMENIAN SMALL LETTER REH */
+# define XK_Armenian_TSO 0x1000551 /* U+0551 ARMENIAN CAPITAL LETTER CO */
+# define XK_Armenian_tso 0x1000581 /* U+0581 ARMENIAN SMALL LETTER CO */
+# define XK_Armenian_VYUN 0x1000552 /* U+0552 ARMENIAN CAPITAL LETTER YIWN */
+# define XK_Armenian_vyun 0x1000582 /* U+0582 ARMENIAN SMALL LETTER YIWN */
+# define XK_Armenian_PYUR 0x1000553 /* U+0553 ARMENIAN CAPITAL LETTER PIWR */
+# define XK_Armenian_pyur 0x1000583 /* U+0583 ARMENIAN SMALL LETTER PIWR */
+# define XK_Armenian_KE 0x1000554 /* U+0554 ARMENIAN CAPITAL LETTER KEH */
+# define XK_Armenian_ke 0x1000584 /* U+0584 ARMENIAN SMALL LETTER KEH */
+# define XK_Armenian_O 0x1000555 /* U+0555 ARMENIAN CAPITAL LETTER OH */
+# define XK_Armenian_o 0x1000585 /* U+0585 ARMENIAN SMALL LETTER OH */
+# define XK_Armenian_FE 0x1000556 /* U+0556 ARMENIAN CAPITAL LETTER FEH */
+# define XK_Armenian_fe 0x1000586 /* U+0586 ARMENIAN SMALL LETTER FEH */
+# define XK_Armenian_apostrophe 0x100055a /* U+055A ARMENIAN APOSTROPHE */
+#endif /* XK_ARMENIAN */
+
+/* Georgian */
+
+#ifdef XK_GEORGIAN
+# define XK_Georgian_an 0x10010d0 /* U+10D0 GEORGIAN LETTER AN */
+# define XK_Georgian_ban 0x10010d1 /* U+10D1 GEORGIAN LETTER BAN */
+# define XK_Georgian_gan 0x10010d2 /* U+10D2 GEORGIAN LETTER GAN */
+# define XK_Georgian_don 0x10010d3 /* U+10D3 GEORGIAN LETTER DON */
+# define XK_Georgian_en 0x10010d4 /* U+10D4 GEORGIAN LETTER EN */
+# define XK_Georgian_vin 0x10010d5 /* U+10D5 GEORGIAN LETTER VIN */
+# define XK_Georgian_zen 0x10010d6 /* U+10D6 GEORGIAN LETTER ZEN */
+# define XK_Georgian_tan 0x10010d7 /* U+10D7 GEORGIAN LETTER TAN */
+# define XK_Georgian_in 0x10010d8 /* U+10D8 GEORGIAN LETTER IN */
+# define XK_Georgian_kan 0x10010d9 /* U+10D9 GEORGIAN LETTER KAN */
+# define XK_Georgian_las 0x10010da /* U+10DA GEORGIAN LETTER LAS */
+# define XK_Georgian_man 0x10010db /* U+10DB GEORGIAN LETTER MAN */
+# define XK_Georgian_nar 0x10010dc /* U+10DC GEORGIAN LETTER NAR */
+# define XK_Georgian_on 0x10010dd /* U+10DD GEORGIAN LETTER ON */
+# define XK_Georgian_par 0x10010de /* U+10DE GEORGIAN LETTER PAR */
+# define XK_Georgian_zhar 0x10010df /* U+10DF GEORGIAN LETTER ZHAR */
+# define XK_Georgian_rae 0x10010e0 /* U+10E0 GEORGIAN LETTER RAE */
+# define XK_Georgian_san 0x10010e1 /* U+10E1 GEORGIAN LETTER SAN */
+# define XK_Georgian_tar 0x10010e2 /* U+10E2 GEORGIAN LETTER TAR */
+# define XK_Georgian_un 0x10010e3 /* U+10E3 GEORGIAN LETTER UN */
+# define XK_Georgian_phar 0x10010e4 /* U+10E4 GEORGIAN LETTER PHAR */
+# define XK_Georgian_khar 0x10010e5 /* U+10E5 GEORGIAN LETTER KHAR */
+# define XK_Georgian_ghan 0x10010e6 /* U+10E6 GEORGIAN LETTER GHAN */
+# define XK_Georgian_qar 0x10010e7 /* U+10E7 GEORGIAN LETTER QAR */
+# define XK_Georgian_shin 0x10010e8 /* U+10E8 GEORGIAN LETTER SHIN */
+# define XK_Georgian_chin 0x10010e9 /* U+10E9 GEORGIAN LETTER CHIN */
+# define XK_Georgian_can 0x10010ea /* U+10EA GEORGIAN LETTER CAN */
+# define XK_Georgian_jil 0x10010eb /* U+10EB GEORGIAN LETTER JIL */
+# define XK_Georgian_cil 0x10010ec /* U+10EC GEORGIAN LETTER CIL */
+# define XK_Georgian_char 0x10010ed /* U+10ED GEORGIAN LETTER CHAR */
+# define XK_Georgian_xan 0x10010ee /* U+10EE GEORGIAN LETTER XAN */
+# define XK_Georgian_jhan 0x10010ef /* U+10EF GEORGIAN LETTER JHAN */
+# define XK_Georgian_hae 0x10010f0 /* U+10F0 GEORGIAN LETTER HAE */
+# define XK_Georgian_he 0x10010f1 /* U+10F1 GEORGIAN LETTER HE */
+# define XK_Georgian_hie 0x10010f2 /* U+10F2 GEORGIAN LETTER HIE */
+# define XK_Georgian_we 0x10010f3 /* U+10F3 GEORGIAN LETTER WE */
+# define XK_Georgian_har 0x10010f4 /* U+10F4 GEORGIAN LETTER HAR */
+# define XK_Georgian_hoe 0x10010f5 /* U+10F5 GEORGIAN LETTER HOE */
+# define XK_Georgian_fi 0x10010f6 /* U+10F6 GEORGIAN LETTER FI */
+#endif /* XK_GEORGIAN */
+
+/* Azeri (and other Turkic or Caucasian languages) */
+
+#ifdef XK_CAUCASUS
+/* latin */
+
+# define XK_Xabovedot 0x1001e8a /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */
+# define XK_Ibreve 0x100012c /* U+012C LATIN CAPITAL LETTER I WITH BREVE */
+# define XK_Zstroke 0x10001b5 /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */
+# define XK_Gcaron 0x10001e6 /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */
+# define XK_Ocaron 0x10001d1 /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */
+# define XK_Obarred 0x100019f /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
+# define XK_xabovedot 0x1001e8b /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */
+# define XK_ibreve 0x100012d /* U+012D LATIN SMALL LETTER I WITH BREVE */
+# define XK_zstroke 0x10001b6 /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */
+# define XK_gcaron 0x10001e7 /* U+01E7 LATIN SMALL LETTER G WITH CARON */
+# define XK_ocaron 0x10001d2 /* U+01D2 LATIN SMALL LETTER O WITH CARON */
+# define XK_obarred 0x1000275 /* U+0275 LATIN SMALL LETTER BARRED O */
+# define XK_SCHWA 0x100018f /* U+018F LATIN CAPITAL LETTER SCHWA */
+# define XK_schwa 0x1000259 /* U+0259 LATIN SMALL LETTER SCHWA */
+
+/* those are not really Caucasus */
+/* For Inupiak */
+
+# define XK_Lbelowdot 0x1001e36 /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */
+# define XK_lbelowdot 0x1001e37 /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */
+#endif /* XK_CAUCASUS */
+
+/* Vietnamese */
+
+#ifdef XK_VIETNAMESE
+# define XK_Abelowdot 0x1001ea0 /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */
+# define XK_abelowdot 0x1001ea1 /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */
+# define XK_Ahook 0x1001ea2 /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */
+# define XK_ahook 0x1001ea3 /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */
+# define XK_Acircumflexacute 0x1001ea4 /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
+# define XK_acircumflexacute 0x1001ea5 /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */
+# define XK_Acircumflexgrave 0x1001ea6 /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
+# define XK_acircumflexgrave 0x1001ea7 /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */
+# define XK_Acircumflexhook 0x1001ea8 /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_acircumflexhook 0x1001ea9 /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_Acircumflextilde 0x1001eaa /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
+# define XK_acircumflextilde 0x1001eab /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */
+# define XK_Acircumflexbelowdot 0x1001eac /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_acircumflexbelowdot 0x1001ead /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_Abreveacute 0x1001eae /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
+# define XK_abreveacute 0x1001eaf /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */
+# define XK_Abrevegrave 0x1001eb0 /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
+# define XK_abrevegrave 0x1001eb1 /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */
+# define XK_Abrevehook 0x1001eb2 /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
+# define XK_abrevehook 0x1001eb3 /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */
+# define XK_Abrevetilde 0x1001eb4 /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
+# define XK_abrevetilde 0x1001eb5 /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */
+# define XK_Abrevebelowdot 0x1001eb6 /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
+# define XK_abrevebelowdot 0x1001eb7 /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
+# define XK_Ebelowdot 0x1001eb8 /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */
+# define XK_ebelowdot 0x1001eb9 /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */
+# define XK_Ehook 0x1001eba /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */
+# define XK_ehook 0x1001ebb /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */
+# define XK_Etilde 0x1001ebc /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */
+# define XK_etilde 0x1001ebd /* U+1EBD LATIN SMALL LETTER E WITH TILDE */
+# define XK_Ecircumflexacute 0x1001ebe /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
+# define XK_ecircumflexacute 0x1001ebf /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */
+# define XK_Ecircumflexgrave 0x1001ec0 /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
+# define XK_ecircumflexgrave 0x1001ec1 /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */
+# define XK_Ecircumflexhook 0x1001ec2 /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_ecircumflexhook 0x1001ec3 /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_Ecircumflextilde 0x1001ec4 /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
+# define XK_ecircumflextilde 0x1001ec5 /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */
+# define XK_Ecircumflexbelowdot 0x1001ec6 /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_ecircumflexbelowdot 0x1001ec7 /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_Ihook 0x1001ec8 /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */
+# define XK_ihook 0x1001ec9 /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */
+# define XK_Ibelowdot 0x1001eca /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */
+# define XK_ibelowdot 0x1001ecb /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */
+# define XK_Obelowdot 0x1001ecc /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */
+# define XK_obelowdot 0x1001ecd /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */
+# define XK_Ohook 0x1001ece /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */
+# define XK_ohook 0x1001ecf /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */
+# define XK_Ocircumflexacute 0x1001ed0 /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
+# define XK_ocircumflexacute 0x1001ed1 /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */
+# define XK_Ocircumflexgrave 0x1001ed2 /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
+# define XK_ocircumflexgrave 0x1001ed3 /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */
+# define XK_Ocircumflexhook 0x1001ed4 /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_ocircumflexhook 0x1001ed5 /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
+# define XK_Ocircumflextilde 0x1001ed6 /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
+# define XK_ocircumflextilde 0x1001ed7 /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */
+# define XK_Ocircumflexbelowdot 0x1001ed8 /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_ocircumflexbelowdot 0x1001ed9 /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
+# define XK_Ohornacute 0x1001eda /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
+# define XK_ohornacute 0x1001edb /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */
+# define XK_Ohorngrave 0x1001edc /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
+# define XK_ohorngrave 0x1001edd /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */
+# define XK_Ohornhook 0x1001ede /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
+# define XK_ohornhook 0x1001edf /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
+# define XK_Ohorntilde 0x1001ee0 /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */
+# define XK_ohorntilde 0x1001ee1 /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */
+# define XK_Ohornbelowdot 0x1001ee2 /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
+# define XK_ohornbelowdot 0x1001ee3 /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */
+# define XK_Ubelowdot 0x1001ee4 /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */
+# define XK_ubelowdot 0x1001ee5 /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */
+# define XK_Uhook 0x1001ee6 /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */
+# define XK_uhook 0x1001ee7 /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */
+# define XK_Uhornacute 0x1001ee8 /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
+# define XK_uhornacute 0x1001ee9 /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */
+# define XK_Uhorngrave 0x1001eea /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
+# define XK_uhorngrave 0x1001eeb /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */
+# define XK_Uhornhook 0x1001eec /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
+# define XK_uhornhook 0x1001eed /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */
+# define XK_Uhorntilde 0x1001eee /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */
+# define XK_uhorntilde 0x1001eef /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */
+# define XK_Uhornbelowdot 0x1001ef0 /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
+# define XK_uhornbelowdot 0x1001ef1 /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */
+# define XK_Ybelowdot 0x1001ef4 /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */
+# define XK_ybelowdot 0x1001ef5 /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */
+# define XK_Yhook 0x1001ef6 /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
+# define XK_yhook 0x1001ef7 /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */
+# define XK_Ytilde 0x1001ef8 /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */
+# define XK_ytilde 0x1001ef9 /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */
+# define XK_Ohorn 0x10001a0 /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */
+# define XK_ohorn 0x10001a1 /* U+01A1 LATIN SMALL LETTER O WITH HORN */
+# define XK_Uhorn 0x10001af /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
+# define XK_uhorn 0x10001b0 /* U+01B0 LATIN SMALL LETTER U WITH HORN */
+#endif /* XK_VIETNAMESE */
+
+#ifdef XK_CURRENCY
+# define XK_EcuSign 0x10020a0 /* U+20A0 EURO-CURRENCY SIGN */
+# define XK_ColonSign 0x10020a1 /* U+20A1 COLON SIGN */
+# define XK_CruzeiroSign 0x10020a2 /* U+20A2 CRUZEIRO SIGN */
+# define XK_FFrancSign 0x10020a3 /* U+20A3 FRENCH FRANC SIGN */
+# define XK_LiraSign 0x10020a4 /* U+20A4 LIRA SIGN */
+# define XK_MillSign 0x10020a5 /* U+20A5 MILL SIGN */
+# define XK_NairaSign 0x10020a6 /* U+20A6 NAIRA SIGN */
+# define XK_PesetaSign 0x10020a7 /* U+20A7 PESETA SIGN */
+# define XK_RupeeSign 0x10020a8 /* U+20A8 RUPEE SIGN */
+# define XK_WonSign 0x10020a9 /* U+20A9 WON SIGN */
+# define XK_NewSheqelSign 0x10020aa /* U+20AA NEW SHEQEL SIGN */
+# define XK_DongSign 0x10020ab /* U+20AB DONG SIGN */
+# define XK_EuroSign 0x20ac /* U+20AC EURO SIGN */
+#endif /* XK_CURRENCY */
+
+#endif /* __INCLUDE_NUTTX_INPUT_X11_KEYSYMDEF_H */
diff --git a/include/nuttx/mqueue.h b/include/nuttx/mqueue.h
index 53fa3af9f8e..b011435d024 100644
--- a/include/nuttx/mqueue.h
+++ b/include/nuttx/mqueue.h
@@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/mqueue.h
*
- * Copyright (C) 2007, 2009, 2011, 2014-2015 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007, 2009, 2011, 2014-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -111,6 +111,10 @@ extern "C"
#define EXTERN extern
#endif
+struct mq_attr; /* Forward reference */
+struct tcb_s; /* Forward reference */
+struct task_group_s; /* Forward reference */
+
/****************************************************************************
* Name: mq_msgqfree
*
@@ -150,7 +154,6 @@ void mq_msgqfree(FAR struct mqueue_inode_s *msgq);
*
****************************************************************************/
-struct mq_attr;
FAR struct mqueue_inode_s *mq_msgqalloc(mode_t mode,
FAR struct mq_attr *attr);
@@ -171,12 +174,32 @@ FAR struct mqueue_inode_s *mq_msgqalloc(mode_t mode,
*
****************************************************************************/
-struct tcb_s;
-mqd_t mq_descreate(FAR struct tcb_s* mtcb, FAR struct mqueue_inode_s* msgq,
+mqd_t mq_descreate(FAR struct tcb_s *mtcb, FAR struct mqueue_inode_s *msgq,
int oflags);
/****************************************************************************
- * Name: mq_desclose
+ * Name: mq_close_group
+ *
+ * Description:
+ * This function is used to indicate that all threads in the group are
+ * finished with the specified message queue mqdes. The mq_close_group()
+ * deallocates any system resources allocated by the system for use by
+ * this task for its message queue.
+ *
+ * Parameters:
+ * mqdes - Message queue descriptor.
+ * group - Group that has the open descriptor.
+ *
+ * Return Value:
+ * 0 (OK) if the message queue is closed successfully,
+ * otherwise, -1 (ERROR).
+ *
+ ****************************************************************************/
+
+int mq_close_group(mqd_t mqdes, FAR struct task_group_s *group);
+
+/****************************************************************************
+ * Name: mq_desclose_group
*
* Description:
* This function performs the portion of the mq_close operation related
@@ -184,16 +207,17 @@ mqd_t mq_descreate(FAR struct tcb_s* mtcb, FAR struct mqueue_inode_s* msgq,
*
* Parameters:
* mqdes - Message queue descriptor.
+ * group - Group that has the open descriptor.
*
* Return Value:
- * None
+ * None.
*
* Assumptions:
* - Called only from mq_close() with the scheduler locked.
*
****************************************************************************/
-void mq_desclose(mqd_t mqdes);
+void mq_desclose_group(mqd_t mqdes, FAR struct task_group_s *group);
#undef EXTERN
#ifdef __cplusplus
diff --git a/include/nuttx/net/net.h b/include/nuttx/net/net.h
index a11c8bcd2e4..e95c9e82a73 100644
--- a/include/nuttx/net/net.h
+++ b/include/nuttx/net/net.h
@@ -503,6 +503,106 @@ struct sockaddr; /* Forward reference. Defined in nuttx/include/sys/socket.h */
int psock_bind(FAR struct socket *psock, FAR const struct sockaddr *addr,
socklen_t addrlen);
+/****************************************************************************
+ * Function: psock_listen
+ *
+ * Description:
+ * To accept connections, a socket is first created with psock_socket(), a
+ * willingness to accept incoming connections and a queue limit for
+ * incoming connections are specified with psock_listen(), and then the
+ * connections are accepted with psock_accept(). The psock_listen() call
+ * applies only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.
+ *
+ * Parameters:
+ * psock Reference to an internal, boound socket structure.
+ * backlog The maximum length the queue of pending connections may grow.
+ * If a connection request arrives with the queue full, the client
+ * may receive an error with an indication of ECONNREFUSED or,
+ * if the underlying protocol supports retransmission, the request
+ * may be ignored so that retries succeed.
+ *
+ * Returned Value:
+ * On success, zero is returned. On error, -1 is returned, and errno is set
+ * appropriately.
+ *
+ * EADDRINUSE
+ * Another socket is already listening on the same port.
+ * EOPNOTSUPP
+ * The socket is not of a type that supports the listen operation.
+ *
+ ****************************************************************************/
+
+int psock_listen(FAR struct socket *psock, int backlog);
+
+/****************************************************************************
+ * Function: psock_accept
+ *
+ * Description:
+ * The psock_accept function is used with connection-based socket types
+ * (SOCK_STREAM, SOCK_SEQPACKET and SOCK_RDM). It extracts the first
+ * connection request on the queue of pending connections, creates a new
+ * connected socket with mostly the same properties as 'sockfd', and
+ * allocates a new socket descriptor for the socket, which is returned. The
+ * newly created socket is no longer in the listening state. The original
+ * socket 'sockfd' is unaffected by this call. Per file descriptor flags
+ * are not inherited across an psock_accept.
+ *
+ * The 'sockfd' argument is a socket descriptor that has been created with
+ * socket(), bound to a local address with bind(), and is listening for
+ * connections after a call to listen().
+ *
+ * On return, the 'addr' structure is filled in with the address of the
+ * connecting entity. The 'addrlen' argument initially contains the size
+ * of the structure pointed to by 'addr'; on return it will contain the
+ * actual length of the address returned.
+ *
+ * If no pending connections are present on the queue, and the socket is
+ * not marked as non-blocking, psock_accept blocks the caller until a
+ * connection is present. If the socket is marked non-blocking and no
+ * pending connections are present on the queue, psock_accept returns
+ * EAGAIN.
+ *
+ * Parameters:
+ * psock Reference to the listening socket structure
+ * addr Receives the address of the connecting client
+ * addrlen Input: allocated size of 'addr', Return: returned size of 'addr'
+ * newsock Location to return the accepted socket information.
+ *
+ * Returned Value:
+ * Returns 0 (OK) on success. On failure, it returns -1 (ERROR) with the
+ * errno variable set to indicate the nature of the error.
+ *
+ * EAGAIN or EWOULDBLOCK
+ * The socket is marked non-blocking and no connections are present to
+ * be accepted.
+ * EOPNOTSUPP
+ * The referenced socket is not of type SOCK_STREAM.
+ * EINTR
+ * The system call was interrupted by a signal that was caught before
+ * a valid connection arrived.
+ * ECONNABORTED
+ * A connection has been aborted.
+ * EINVAL
+ * Socket is not listening for connections.
+ * EMFILE
+ * The per-process limit of open file descriptors has been reached.
+ * ENFILE
+ * The system maximum for file descriptors has been reached.
+ * EFAULT
+ * The addr parameter is not in a writable part of the user address
+ * space.
+ * ENOBUFS or ENOMEM
+ * Not enough free memory.
+ * EPROTO
+ * Protocol error.
+ * EPERM
+ * Firewall rules forbid connection.
+ *
+ ****************************************************************************/
+
+int psock_accept(FAR struct socket *psock, FAR struct sockaddr *addr,
+ FAR socklen_t *addrlen, FAR struct socket *newsock);
+
/****************************************************************************
* Name: psock_connect
*
diff --git a/include/nuttx/sensors/bh1750fvi.h b/include/nuttx/sensors/bh1750fvi.h
new file mode 100644
index 00000000000..4d5ae017c93
--- /dev/null
+++ b/include/nuttx/sensors/bh1750fvi.h
@@ -0,0 +1,123 @@
+/****************************************************************************
+ * include/nuttx/input/bh1750fvi.h
+ *
+ * Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2016 Alan Carvalho de Assis. All rights reserved.
+ * Author: Alan Carvalho de Assis
+ *
+ * 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_SENSORS_BH1750FVI_H
+#define __INCLUDE_NUTTX_SENSORS_BH1750FVI_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include
+#include
+
+#if defined(CONFIG_BH1750FVI)
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/* IOCTL Commands ***********************************************************/
+
+#define SNIOC_CHRM _SNIOC(0x0001) /* Contin. H-Res Mode Arg: None */
+#define SNIOC_CHRM2 _SNIOC(0x0002) /* Contin. H-Res Mode2 Arg: None */
+#define SNIOC_CLRM _SNIOC(0x0003) /* Contin. L-Res Mode Arg: None */
+#define SNIOC_OTHRM _SNIOC(0x0004) /* One Time H-Res Mode Arg: None */
+#define SNIOC_OTHRM2 _SNIOC(0x0005) /* One Time H-Res Mode2 Arg: None */
+#define SNIOC_OTLRM _SNIOC(0x0006) /* One Time L-Res Mode Arg: None */
+#define SNIOC_CHMEATIME _SNIOC(0x0007) /* Change Meas. Time Arg: uint8_t */
+
+/* Device I2C Address*/
+
+#define BH1750FVI_I2C_ADDR 0x23
+
+/* Instruction Set Architecture */
+
+#define BH1750FVI_POWERDOWN 0x00
+#define BH1750FVI_POWERON 0x01
+#define BH1750FVI_RESET 0x07
+#define BH1750FVI_CONTINUOUS_HRM 0x10 /* Continuously H-Resolution Mode */
+#define BH1750FVI_CONTINUOUS_HRM2 0x11 /* Continuously H-Resolution Mode 2 */
+#define BH1750FVI_CONTINUOUS_LRM 0x12 /* Continuously L-Resolution Mode */
+#define BH1750FVI_ONETIME_HRM 0x20 /* One Time H-Resolution Mode */
+#define BH1750FVI_ONETIME_HRM2 0x21 /* One Time H-Resolution Mode 2 */
+#define BH1750FVI_ONETIME_LRM 0x23 /* One Time L-Resolution Mode */
+#define BH1750FVI_MEASURE_TIMEH 0x40 /* Change Measure Time 01000_MT[7,6,5] */
+#define BH1750FVI_MEASURE_TIMEL 0x60 /* Change Measute Time 011_MT[4,3,2,1,0] */
+
+/****************************************************************************
+ * Public Types
+ ****************************************************************************/
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+/****************************************************************************
+ * Name: bh1750fvi_register
+ *
+ * Description:
+ * Register the BH1750FVI character device as 'devpath'
+ *
+ * Input Parameters:
+ * devpath - The full path to the driver to register. E.g., "/dev/light0"
+ * i2c - An instance of the I2C interface to use to communicate with
+ * BH1750FVI
+ * addr - The I2C address of the BH1750FVI.
+ *
+ * Returned Value:
+ * Zero (OK) on success; a negated errno value on failure.
+ *
+ ****************************************************************************/
+
+int bh1750fvi_register(FAR const char *devpath, FAR struct i2c_master_s *i2c,
+ uint8_t addr);
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CONFIG_BH1750FVI */
+#endif /* __INCLUDE_NUTTX_SENSORS_BH1750FVI_H */
diff --git a/include/nuttx/video/fb.h b/include/nuttx/video/fb.h
index 4046fb546ca..287bddb22a5 100644
--- a/include/nuttx/video/fb.h
+++ b/include/nuttx/video/fb.h
@@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/video/fb.h
*
- * Copyright (C) 2008-2011, 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2008-2011, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -360,23 +360,64 @@ extern "C"
****************************************************************************/
/****************************************************************************
- * Name: up_fbinitialize, up_fbuninitialize, up_fbgetvplane
+ * If an architecture supports a framebuffer, then it must provide the
+ * following APIs to access the framebuffer.
+ ****************************************************************************/
+
+/****************************************************************************
+ * Name: up_fbinitialize
*
* Description:
- * If an architecture supports a framebuffer, then it must provide APIs
- * to access the framebuffer as follows:
+ * Initialize the framebuffer video hardware associated with the display.
*
- * up_fbinitialize - Initialize the framebuffer video hardware
- * up_fbgetvplane - Return a a reference to the framebuffer object for
- * the specified video plane. Most OSDs support
- * multiple planes of video.
- * up_fbuninitialize - Uninitialize the framebuffer support
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * Zero is returned on success; a negated errno value is returned on any
+ * failure.
*
****************************************************************************/
-int up_fbinitialize(void);
-FAR struct fb_vtable_s *up_fbgetvplane(int vplane);
-void fb_uninitialize(void);
+int up_fbinitialize(int display);
+
+/****************************************************************************
+ * Name: up_fbgetvplane
+ *
+ * Description:
+ * Return a a reference to the framebuffer object for the specified video
+ * plane of the specified plane. Many OSDs support multiple planes of video.
+ *
+ * Input parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ * vplane - Identifies the plane being queried.
+ *
+ * Returned Value:
+ * A non-NULL pointer to the frame buffer access structure is returned on
+ * success; NULL is returned on any failure.
+ *
+ ****************************************************************************/
+
+FAR struct fb_vtable_s *up_fbgetvplane(int display, int vplane);
+
+/****************************************************************************
+ * Name: up_fbuninitialize
+ *
+ * Description:
+ * Uninitialize the framebuffer support for the specified display.
+ *
+ * Input Parameters:
+ * display - In the case of hardware with multiple displays, this
+ * specifies the display. Normally this is zero.
+ *
+ * Returned Value:
+ * None
+ *
+ ****************************************************************************/
+
+void up_fbuninitialize(int display);
#undef EXTERN
#ifdef __cplusplus
diff --git a/include/nuttx/video/rfb.h b/include/nuttx/video/rfb.h
new file mode 100644
index 00000000000..9110a6530ff
--- /dev/null
+++ b/include/nuttx/video/rfb.h
@@ -0,0 +1,562 @@
+/****************************************************************************
+ * include/nuttx/video/rfb.h
+ *
+ * Copyright (C) 2016 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt
+ *
+ * Reference:
+ * The RFB Protocol, Tristan Richardson RealVNC Ltd (formerly of Olivetti
+ * Research Ltd / AT&T Labs Cambridge), Version 3.8, Last updated
+ * 26 November 2010
+ *
+ * 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_VIDEO_RFB_H
+#define __INCLUDE_NUTTX_VIDEO_RFB_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include
+
+/****************************************************************************
+ * RFB Protocol
+ ****************************************************************************/
+
+/* 6.1 Hand shaking Messages ************************************************/
+
+/* 6.1.1 ProtocolVersion
+ *
+ * "Handshaking begins by the server sending the client a ProtocolVersion
+ * message. This lets the client know which is the highest RFB protocol
+ * version number supported by the server. The client then replies with a
+ * similar message giving the version number of the protocol which should
+ * actually be used (which may be different to that quoted by the server).
+ * A client should never request a protocol version higher than that
+ * offered by the server. It is intended that both clients and servers may
+ * provide some level of backwards compatibility by this mechanism.
+ *
+ * "The only published protocol versions at this time are 3.3, 3.7, 3.8
+ * (version 3.5 was wrongly reported by some clients, but this should be
+ * interpreted by all servers as 3.3). Addition of a new encoding or
+ * pseudo-encoding type does not require a change in protocol version,
+ * since a server can simply ignore encodings it does not understand.
+ *
+ * "The ProtocolVersion message consists of 12 bytes interpreted as a string
+ * of ASCII characters in the format "RFB xxx.yyy\n" where xxx and yyy are
+ * the major and minor version numbers, padded with zeros."
+ */
+
+#define RFB_PROTOCOL_VERSION_FMT "RFB %03d.%03d\n"
+#define RFB_PROTOCOL_VERSION_3p3 "RFB 003.003\n"
+#define RFB_PROTOCOL_VERSION_3p7 "RFB 003.007\n"
+#define RFB_PROTOCOL_VERSION_3p8 "RFB 003.008\n"
+
+struct rfb_protocolversion_s
+{
+ uint8_t version[12]; /* U8 Version string */
+};
+
+/* 6.1.2 Security
+ *
+ * "Once the protocol version has been decided, the server and client must
+ * agree on the type of security to be used on the connection.
+ */
+
+#define RFB_SECTYPE_INVALID 0 /* Invalid */
+#define RFB_SECTYPE_NONE 1 /* None */
+#define RFB_SECTYPE_VNC 2 /* VNC Authentication */
+#define RFB_SECTYPE_RA2 5 /* RA2 */
+#define RFB_SECTYPE_RA2NE 6 /* RA2ne */
+#define RFB_SECTYPE_TIGHT 16 /* Tight */
+#define RFB_SECTYPE_ULTRA 17 /* Ultra */
+#define RFB_SECTYPE_TLS 18 /* TLS */
+#define RFB_SECTYPE_VENCRYPT 19 /* VeNCrypt */
+#define RFB_SECTYPE_GTK 20 /* GTK-VNC SASL */
+#define RFB_SECTYPE_MD5 21 /* MD5 hash authentication */
+#define RFB_SECTYPE_COLINDEAN 22 /* Colin Dean xvp */
+
+/* "Version 3.7 onwards The server lists the security types which it
+ * supports:"
+ */
+
+struct rfb_supported_sectypes_s
+{
+ uint8_t ntypes; /* U8 Number of security types supported */
+ uint8_t type[1]; /* U8 Security types supported. Actual
+ * size if ntypes. */
+};
+
+#define SIZEOF_RFB_SUPPORTED_SECTYPES_S(n) \
+ (sizeof(struct rfb_supported_sectypes_s) + (n) - 1);
+
+/* "If the server listed at least one valid security type supported by the
+ * client, the client sends back a single byte indicating which security
+ * type is to be used on the connection:"
+ */
+
+struct rfb_selected_sectype_s
+{
+ uint8_t type; /* U8 The selected security type */
+};
+
+/* "If number-of-security-types is zero, then for some reason the connection
+ * failed (e.g. the server cannot support the desired protocol version). This
+ * is followed by a string describing the reason (where a string is specified
+ * as a length followed by that many ASCII characters):
+ */
+
+struct rfb_sectype_connfail_s
+{
+ uint8_t len[4]; /* U32 Reason length */
+ uint8_t str[1]; /* U8 Reason string. Actual length is len. */
+};
+
+#define SIZEOF_RFB_SECTYPE_CONNFAIL_S(n) \
+ (sizeof(struct rfb_sectype_connfail_s) + (n) - 1);
+
+/* "Version 3.3 The server decides the security type and sends a single
+ * word:"
+ */
+
+struct rfb_sectype_s
+{
+ uint8_t type[4]; /* U32 Security type */
+};
+
+/* "Once the security-type has been decided, data specific to that security-
+ * type follows (see section 6.2 for details). At the end of the security
+ * handshaking phase, the protocol normally continues with the SecurityResult
+ * message. Note that after the security handshaking phase, it is possible
+ * that further protocol data is over an encrypted or otherwise altered
+ * channel."
+ */
+
+/* 6.1.3 SecurityResult
+ *
+ * The server sends a word to inform the client whether the security
+ * handshaking was successful.
+ */
+
+#define RFB_SECTYPE_SUCCESS 0
+#define RFB_SECTYPE_FAILE 1
+
+struct rfb_sectype_result_s
+{
+ uint8_t result[4]; /* U32 Security type result */
+};
+
+/* "If successful, the protocol passes to the initialisation phase (section
+ * 6.3)."
+ *
+ * "Version 3.8 onwards If unsuccessful, the server sends a string
+ * describing the reason for the failure, and then closes the connection:
+ */
+
+struct rfb_sectype_fail_s
+{
+ uint8_t len[4]; /* U32 Reason length */
+ uint8_t str[1]; /* U8 Reason string. Actual length is len. */
+};
+
+#define SIZEOF_RFB_SECTYPE_FAIL_S(n) \
+ (sizeof(struct rfb_sectype_fail_s) + (n) - 1);
+
+/* "Version 3.3 and 3.7 If unsuccessful, the server closes the connection." */
+
+/* 6.2 Security Types *******************************************************/
+
+/* 6.2.1 None
+ *
+ * "No authentication is needed and protocol data is to be sent unencrypted.
+ *
+ * "Version 3.8 onwards The protocol continues with the SecurityResult
+ * message."
+ *
+ * "Version 3.3 and 3.7 The protocol passes to the initialisation phase
+ * (section 6.3)."
+ *
+ * 6.2.2 VNC Authentication
+ *
+ * "VNC authentication is to be used and protocol data is to be sent
+ * unencrypted. The server sends a random 16-byte challenge:
+ */
+
+struct rfb_challenge_s
+{
+ uint8_t challenge[16]; /* U8 Random challenge */
+};
+
+/* "The client encrypts the challenge with DES, using a password supplied by
+ * the user as the key, and sends the resulting 16-byte response:
+ */
+
+struct rfb_response_s
+{
+ uint8_t response[16]; /* U8 Encrypted response */
+};
+
+/* The protocol continues with the SecurityResult message. */
+
+/* 6.3 Initialisation Messages **********************************************/
+
+/* 6.3.1 ClientInit
+ *
+ * "Once the client and server are sure that they’re happy to talk to one
+ * another using the agreed security type, the protocol passes to the
+ * initialisation phase. The client sends a ClientInit message followed by
+ * the server sending a ServerInit message.
+ *
+ * "Shared-flag is non-zero (true) if the server should try to share the
+ * desktop by leaving other clients connected, zero (false) if it should
+ * give exclusive access to this client by disconnecting all other clients."
+ */
+
+#defin RFB_FLAG_SHARED 0
+#defin RFB_FLAG_EXCLUSIVE 1
+
+struct rfb_clientinit_s
+{
+ uint8_t shared; /* U8 Shared flag */
+};
+
+/* 6.3.2 ServerInit
+ *
+ * "After receiving the ClientInit message, the server sends a ServerInit
+ * message. This tells the client the width and height of the server’s
+ * framebuffer, its pixel format and the name associated with the desktop:
+ */
+
+struct rfb_pixelfmt_s
+{
+ uint8_t bpp; /* U8 bits-per-pixel */
+ uint8_t depth; /* U8 depth */
+ uint8_t bigendian; /* U8 big-endian-flag */
+ uint8_t truecolor; /* U8 true-colour-flag */
+ uint8_t rmax[2]; /* U16 red-max */
+ uint8_t gmax[2]; /* U16 green-max */
+ uint8_t bmax[2]; /* U16 blue-max */
+ uint8_t rshift; /* U8 red-shift */
+ uint8_t gshift; /* U8 green-shift */
+ uint8_t bshift; /* U8 blue-shift */
+ uint8_t padding[3];
+};
+
+struct rfb_serverinit_s
+{
+ uint8_t width[2]; /* U16 Framebuffer width */
+ uint8_t height[2]; /* U16 Framebuffer height */
+ struct rfb_pixelfmt_s format; /* Pixel format */
+ uint8_t namelen[4]; /* U32 Name length */
+ uint8_t name[1]; /* U8 Name (actual size if namelen) */
+};
+
+#define SIZEOF_RFB_SERVERINIT_S(n) \
+ (sizeof(struct rfb_serverinit_s) + (n) - 1);
+
+/* "Server-pixel-format specifies the server’s natural pixel format. This
+ * pixel format will be used unless the client requests a different format
+ * using the SetPixelFormat message (section 6.4.1).
+ *
+ * "Bits-per-pixel is the number of bits used for each pixel value on the
+ * wire. This must be greater than or equal to the depth which is the number
+ * of useful bits in the pixel value. Currently bits-per-pixel must be 8,
+ * 16 or 32—less than 8-bit pixels are not yet supported. Big-endian-flag is
+ * non-zero (true) if multi-byte pixels are interpreted as big endian. Of
+ * course this is meaningless for 8 bits-per-pixel.
+ *
+ * "If true-colour-flag is non-zero (true) then the last six items specify
+ * how to extract the red, green and blue intensities from the pixel value.
+ * Red-max is the maximum red value (= 2n − 1 where n is the number of bits
+ * used for red). Note this value is always in big endian order. Red-shift
+ * is the number of shifts needed to get the red value in a pixel to the
+ * least significant bit. Green-max, green-shift and blue-max, blue-shift
+ * are similar for green and blue. For example, to find the red value
+ * (between 0 and red-max) from a given pixel, do the following:
+ *
+ * - "Swap the pixel value according to big-endian-flag (e.g. if
+ * big-endian-flag is zero (false) and host byte order is big endian,
+ * then swap).
+ * - "Shift right by red-shift.
+ * - "AND with red-max (in host byte order).
+ *
+ * "If true-colour-flag is zero (false) then the server uses pixel values
+ * which are not directly composed from the red, green and blue intensities,
+ * but which serve as indices into a colour map. Entries in the colour map
+ * are set by the server using the SetColourMapEntries message (section
+ * 6.5.2)."
+ */
+
+/* 6.4 Client to Server Messages ********************************************/
+
+/* "The client to server message types defined in this document are:
+ *
+ * "Number Name
+ * 0 SetPixelFormat
+ * 2 SetEncodings
+ * 3 FramebufferUpdateRequest
+ * 4 KeyEvent
+ * 5 PointerEvent
+ * 6 ClientCutText
+ *
+ * "Other registered message types are:
+ *
+ * "Number Name
+ * 255 Anthony Liguori
+ * 254, 127 VMWare
+ * 253 gii
+ * 252 tight
+ * 251 Pierre Ossman SetDesktopSize
+ * 250 Colin Dean xvp
+ * 249 OLIVE Call Control
+ *
+ * "Note that before sending a message not defined in this document a client
+ * must have determined that the server supports the relevant extension by
+ * receiving some extension-specific confirmation from the server.
+ */
+
+/* 6.4.1 SetPixelFormat
+ *
+ * "Sets the format in which pixel values should be sent in FramebufferUpdate
+ * messages. If the client does not send a SetPixelFormat message then the
+ * server sends pixel values in its natural format as specified in the
+ * ServerInit message (section 6.3.2).
+ *
+ * "If true-colour-flag is zero (false) then this indicates that a "colour
+ * map" is to be used. The server can set any of the entries in the colour
+ * map using the SetColourMapEntries message (section 6.5.2). Immediately
+ * after the client has sent this message the colour map is empty, even if
+ * entries had previously been set by the server.
+ */
+
+struct rfb_setpixelformat_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t padding[3];
+ struct rfb_pixelfmt_s format; /* Pixel format */
+};
+
+/* 6.4.2 SetEncodings
+ *
+ * "Sets the encoding types in which pixel data can be sent by the server.
+ * The order of the encoding types given in this message is a hint by the
+ * client as to its preference (the first encoding specified being most
+ * preferred). The server may or may not choose to make use of this hint.
+ * Pixel data may always be sent in raw encoding even if not specified
+ * explicitly here.
+ *
+ * "In addition to genuine encodings, a client can request 'pseudo-
+ * encodings' to declare to the server that it supports certain extensions
+ * to the protocol. A server which does not support the extension will
+ * simply ignore the pseudo-encoding. Note that this means the client must
+ * assume that the server does not support the extension until it gets
+ * some extension-specific confirmation from the server.
+ *
+ * "See section 6.6 for a description of each encoding and section 6.7 for
+ * the meaning of pseudo-encodings."
+ */
+
+struct rfb_setencodings_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t padding[3];
+ uint8_t nencodings[4]; /* U32 Number of encodings */
+ uint8_t encodings[4]; /* S32 Encoding type, size = 4*nencodings */
+};
+
+#define SIZEOF_RFB_SERVERINIT_S(n) \
+ (sizeof(struct rfb_serverinit_s) + (((n) - 1) << 2));
+
+/* 6.4.3 FramebufferUpdateRequest
+ *
+ * "Notifies the server that the client is interested in the area of the
+ * framebuffer specified by x-position, y-position, width and height. The
+ * server usually responds to a FramebufferUpdateRequest by sending a
+ * FramebufferUpdate. Note however that a single FramebufferUpdate may be
+ * sent in reply to several FramebufferUpdateRequests.
+ *
+ * "The server assumes that the client keeps a copy of all parts of the
+ * framebuffer in which it is interested. This means that normally the
+ * server only needs to send incremental updates to the client.
+ *
+ * "However, if for some reason the client has lost the contents of a
+ * particular area which it needs, then the client sends a
+ * FramebufferUpdateRequest with incremental set to zero (false). This
+ * requests that the server send the entire contents of the specified area
+ * as soon as possible. The area will not be updated using the CopyRect
+ * encoding.
+ *
+ * "If the client has not lost any contents of the area in which it is
+ * interested, then it sends a FramebufferUpdateRequest with incremental
+ * set to non-zero (true). If and when there are changes to the specified
+ * area of the framebuffer, the server will send a FramebufferUpdate. Note
+ * that there may be an indefinite period between the
+ * FramebufferUpdateRequest and the FramebufferUpdate.
+ *
+ * "In the case of a fast client, the client may want to regulate the rate
+ * at which it sends incremental FramebufferUpdateRequests to avoid hogging
+ * the network."
+ */
+
+struct rfb_fbupdatereq_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t incremental; /* U8 Incremental */
+ uint8_t xpos[2]; /* U16 X-position */
+ uint8_t ypos[2]; /* U16 Y-position */
+ uint8_t width[2]; /* U16 Width */
+ uint8_t height[2]; /* U16 Height */
+};
+
+/* 6.4.4 KeyEvent
+ *
+ * "A key press or release. Down-flag is non-zero (true) if the key is now
+ * pressed, zero (false) if it is now released. The key itself is specified
+ * using the 'keysym' values defined by the X Window System.
+ */
+
+struct rfb_keyevent_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t down; /* U8 Down flag */
+ uint8_t padding[2];
+ uint8_t key[2]; /* U16 Key */
+};
+
+/* "The interpretation of keysyms is a complex area. In order to be as
+ * widely interoperable as possible the following guidelines should be
+ * used:
+ *
+ * - "The 'shift state' (i.e. whether either of the Shift keysyms are down)
+ * should only be used as a hint when interpreting a keysym. For
+ * example, on a US keyboard the ’#’ character is shifted, but on a UK
+ * keyboard it is not. A server with a US keyboard receiving a ’#’
+ * character from a client with a UK keyboard will not have been sent
+ * any shift presses. In this case, it is likely that the server will
+ * internally need to 'fake' a shift press on its local system, in order
+ * to get a ’#’ character and not, for example, a ’3’.
+ * - "The difference between upper and lower case keysyms is significant.
+ * This is unlike some of the keyboard processing in the X Window System
+ * which treats them as the same. For example, a server receiving an
+ * uppercase ’A’ keysym without any shift presses should interpret it
+ * as an uppercase ’A’. Again this may involve an internal 'fake' shift
+ * press.
+ * - "Servers should ignore 'lock' keysyms such as CapsLock and NumLock
+ * where possible. Instead they should interpret each character-based
+ * keysym according to its case.
+ * - "Unlike Shift, the state of modifier keys such as Control and Alt
+ * should be taken as modifying the interpretation of other keysyms.
+ * Note that there are no keysyms for ASCII control characters such
+ * as ctrl-a - these should be generated by viewers sending a Control
+ * press followed by an ’a’ press.
+ * - "On a viewer where modifiers like Control and Alt can also be used to
+ * generate character-based keysyms, the viewer may need to send extra
+ * 'release' events in order that the keysym is interpreted correctly.
+ * For example, on a German PC keyboard, ctrl-alt-q generates the ’@’
+ * character. In this case, the viewer needs to send 'fake' release
+ * events for Control and Alt in order that the ’@’ character is
+ * interpreted correctly (ctrl-alt-@is likely to mean something
+ * completely different to the server).
+ * - "There is no universal standard for 'backward tab' in the X Window
+ * System. On some systems shift+tab gives the keysym 'ISO Left Tab',
+ * on others it gives a private 'BackTab' keysym and on others it gives
+ * 'Tab' and applications tell from the shift state that it means
+ * backward-tab rather than forward-tab. In the RFB protocol the latter
+ * approach is preferred. Viewers should generate a shifted Tab rather
+ * than ISO Left Tab. However, to be backwards-compatible with existing
+ * viewers, servers should also recognise ISO Left Tab as meaning a
+ * shifted Tab."
+ */
+
+/* 6.4.5 PointerEvent
+ *
+ * "Indicates either pointer movement or a pointer button press or release.
+ * The pointer is now at (x-position, y-position), and the current state of
+ * buttons 1 to 8 are represented by bits 0 to 7 of button-mask
+ * respectively, 0 meaning up, 1 meaning down (pressed).
+ *
+ * "On a conventional mouse, buttons 1, 2 and 3 correspond to the left,
+ * middle and right buttons on the mouse. On a wheel mouse, each step of
+ * the wheel upwards is represented by a press and release of button 4, and
+ * each step downwards is represented by a press and release of button 5."
+ */
+
+struct rfb_pointerevent_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t buttons; /* U8 Button mask */
+ uint8_t xpos[2]; /* U16 X-position */
+ uint8_t ypos[2]; /* U16 Y-position */
+};
+
+/* 6.4.6 ClientCutText
+ *
+ * "The client has new ISO 8859-1 (Latin-1) text in its cut buffer. Ends of
+ * lines are represented by the linefeed / newline character (value 10)
+ * alone. No carriage-return (value 13) is needed. There is currently no
+ * way to transfer text outside the Latin-1 character set.
+ */
+
+struct rfb_clientcuttext_s
+{
+ uint8_t msgtype; /* U8 Message type */
+ uint8_t padding[3];
+ uint8_t length[2]; /* U8 Length */
+ uint8_t text[1]; /* U8 Text, actual length is Length */
+};
+
+#define SIZEOF_RFB_CLIENTCUTTEXT_S(n) \
+ (sizeof(struct rfb_clientcuttext_s) + (n) - 1);
+
+/* 6.5 Server to Client Messages ********************************************/
+
+/* 6.6 Encodings ************************************************************/
+
+/* 6.7 Pseudo-Encodings *****************************************************/
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
+{
+#else
+#define EXTERN extern
+#endif
+
+#undef EXTERN
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __INCLUDE_NUTTX_VIDEO_RFB_H */
diff --git a/libc/netdb/lib_gethostbynamer.c b/libc/netdb/lib_gethostbynamer.c
index 80109dfe779..86d46d2054e 100644
--- a/libc/netdb/lib_gethostbynamer.c
+++ b/libc/netdb/lib_gethostbynamer.c
@@ -58,10 +58,6 @@
#ifdef CONFIG_LIBC_NETDB
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
/****************************************************************************
* Private Type Definitions
****************************************************************************/
diff --git a/libc/queue/sq_rem.c b/libc/queue/sq_rem.c
index dd513908591..02325db3d3f 100644
--- a/libc/queue/sq_rem.c
+++ b/libc/queue/sq_rem.c
@@ -66,9 +66,10 @@ void sq_rem(FAR sq_entry_t *node, sq_queue_t *queue)
else
{
FAR sq_entry_t *prev;
+
for (prev = (FAR sq_entry_t *)queue->head;
- prev && prev->flink != node;
- prev = prev->flink);
+ prev && prev->flink != node;
+ prev = prev->flink);
if (prev)
{
diff --git a/libc/stdio/lib_meminstream.c b/libc/stdio/lib_meminstream.c
index c975419499e..0fdcd8f92f1 100644
--- a/libc/stdio/lib_meminstream.c
+++ b/libc/stdio/lib_meminstream.c
@@ -100,5 +100,3 @@ void lib_meminstream(FAR struct lib_meminstream_s *instream,
instream->buffer = bufstart; /* Start of buffer */
instream->buflen = buflen; /* Length of the buffer */
}
-
-
diff --git a/net/socket/accept.c b/net/socket/accept.c
index ea1e887bf9a..11c2301ba8b 100644
--- a/net/socket/accept.c
+++ b/net/socket/accept.c
@@ -59,17 +59,17 @@
****************************************************************************/
/****************************************************************************
- * Function: accept
+ * Function: psock_accept
*
* Description:
- * The accept function is used with connection-based socket types
+ * The psock_accept function is used with connection-based socket types
* (SOCK_STREAM, SOCK_SEQPACKET and SOCK_RDM). It extracts the first
* connection request on the queue of pending connections, creates a new
* connected socket with mostly the same properties as 'sockfd', and
* allocates a new socket descriptor for the socket, which is returned. The
* newly created socket is no longer in the listening state. The original
* socket 'sockfd' is unaffected by this call. Per file descriptor flags
- * are not inherited across an accept.
+ * are not inherited across an psock_accept.
*
* The 'sockfd' argument is a socket descriptor that has been created with
* socket(), bound to a local address with bind(), and is listening for
@@ -81,26 +81,24 @@
* actual length of the address returned.
*
* If no pending connections are present on the queue, and the socket is
- * not marked as non-blocking, accept blocks the caller until a connection
- * is present. If the socket is marked non-blocking and no pending
- * connections are present on the queue, accept returns EAGAIN.
+ * not marked as non-blocking, psock_accept blocks the caller until a
+ * connection is present. If the socket is marked non-blocking and no
+ * pending connections are present on the queue, psock_accept returns
+ * EAGAIN.
*
* Parameters:
- * sockfd The listening socket descriptor
+ * psock Reference to the listening socket structure
* addr Receives the address of the connecting client
* addrlen Input: allocated size of 'addr', Return: returned size of 'addr'
+ * newsock Location to return the accepted socket information.
*
* Returned Value:
- * Returns -1 on error. If it succeeds, it returns a non-negative integer
- * that is a descriptor for the accepted socket.
+ * Returns 0 (OK) on success. On failure, it returns -1 (ERROR) with the
+ * errno variable set to indicate the nature of the error.
*
* EAGAIN or EWOULDBLOCK
* The socket is marked non-blocking and no connections are present to
* be accepted.
- * EBADF
- * The descriptor is invalid.
- * ENOTSOCK
- * The descriptor references a file, not a socket.
* EOPNOTSUPP
* The referenced socket is not of type SOCK_STREAM.
* EINTR
@@ -124,42 +122,17 @@
* EPERM
* Firewall rules forbid connection.
*
- * Assumptions:
- *
****************************************************************************/
-int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
+int psock_accept(FAR struct socket *psock, FAR struct sockaddr *addr,
+ FAR socklen_t *addrlen, FAR struct socket *newsock)
{
- FAR struct socket *psock = sockfd_socket(sockfd);
- FAR struct socket *pnewsock;
- int newfd;
int err;
int ret;
- /* Verify that the sockfd corresponds to valid, allocated socket */
+ DEBUGASSERT(psock != NULL);
- if (!psock || psock->s_crefs <= 0)
- {
- /* It is not a valid socket description. Distinguish between the cases
- * where sockfd is a just valid and when it is a valid file descriptor used
- * in the wrong context.
- */
-
-#if CONFIG_NFILE_DESCRIPTORS > 0
- if ((unsigned int)sockfd < CONFIG_NFILE_DESCRIPTORS)
- {
- err = ENOTSOCK;
- }
- else
-#endif
- {
- err = EBADF;
- }
-
- goto errout;
- }
-
- /* We have a socket descriptor, but it is a stream? */
+ /* Is the socket a stream? */
if (psock->s_type != SOCK_STREAM)
{
@@ -232,28 +205,10 @@ int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
}
}
- /* Allocate a socket descriptor for the new connection now (so that it
- * cannot fail later)
- */
-
- newfd = sockfd_allocate(0);
- if (newfd < 0)
- {
- err = ENFILE;
- goto errout;
- }
-
- pnewsock = sockfd_socket(newfd);
- if (!pnewsock)
- {
- err = ENFILE;
- goto errout_with_socket;
- }
-
/* Initialize the socket structure. */
- pnewsock->s_domain = psock->s_domain;
- pnewsock->s_type = SOCK_STREAM;
+ newsock->s_domain = psock->s_domain;
+ newsock->s_type = SOCK_STREAM;
/* Perform the correct accept operation for this address domain */
@@ -264,11 +219,11 @@ int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
{
/* Perform the local accept operation (with the network unlocked) */
- ret = psock_local_accept(psock, addr, addrlen, &pnewsock->s_conn);
+ ret = psock_local_accept(psock, addr, addrlen, &newsock->s_conn);
if (ret < 0)
{
err = -ret;
- goto errout_with_socket;
+ goto errout;
}
}
#endif /* CONFIG_NET_LOCAL_STREAM */
@@ -283,19 +238,19 @@ int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
/* Perform the local accept operation (with the network locked) */
state = net_lock();
- ret = psock_tcp_accept(psock, addr, addrlen, &pnewsock->s_conn);
+ ret = psock_tcp_accept(psock, addr, addrlen, &newsock->s_conn);
if (ret < 0)
{
net_unlock(state);
err = -ret;
- goto errout_with_socket;
+ goto errout;
}
/* Begin monitoring for TCP connection events on the newly connected
* socket
*/
- ret = net_startmonitor(pnewsock);
+ ret = net_startmonitor(newsock);
if (ret < 0)
{
/* net_startmonitor() can only fail on certain race conditions
@@ -314,12 +269,145 @@ int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
/* Mark the new socket as connected. */
- pnewsock->s_flags |= _SF_CONNECTED;
- pnewsock->s_flags &= ~_SF_CLOSED;
- return newfd;
+ newsock->s_flags |= _SF_CONNECTED;
+ newsock->s_flags &= ~_SF_CLOSED;
+ return OK;
errout_after_accept:
- psock_close(pnewsock);
+ psock_close(newsock);
+
+errout:
+ set_errno(err);
+ return ERROR;
+}
+
+/****************************************************************************
+ * Function: accept
+ *
+ * Description:
+ * The accept function is used with connection-based socket types
+ * (SOCK_STREAM, SOCK_SEQPACKET and SOCK_RDM). It extracts the first
+ * connection request on the queue of pending connections, creates a new
+ * connected socket with mostly the same properties as 'sockfd', and
+ * allocates a new socket descriptor for the socket, which is returned. The
+ * newly created socket is no longer in the listening state. The original
+ * socket 'sockfd' is unaffected by this call. Per file descriptor flags
+ * are not inherited across an accept.
+ *
+ * The 'sockfd' argument is a socket descriptor that has been created with
+ * socket(), bound to a local address with bind(), and is listening for
+ * connections after a call to listen().
+ *
+ * On return, the 'addr' structure is filled in with the address of the
+ * connecting entity. The 'addrlen' argument initially contains the size
+ * of the structure pointed to by 'addr'; on return it will contain the
+ * actual length of the address returned.
+ *
+ * If no pending connections are present on the queue, and the socket is
+ * not marked as non-blocking, accept blocks the caller until a connection
+ * is present. If the socket is marked non-blocking and no pending
+ * connections are present on the queue, accept returns EAGAIN.
+ *
+ * Parameters:
+ * sockfd The listening socket descriptor
+ * addr Receives the address of the connecting client
+ * addrlen Input: allocated size of 'addr', Return: returned size of 'addr'
+ *
+ * Returned Value:
+ * Returns -1 on error. If it succeeds, it returns a non-negative integer
+ * that is a descriptor for the accepted socket.
+ *
+ * EAGAIN or EWOULDBLOCK
+ * The socket is marked non-blocking and no connections are present to
+ * be accepted.
+ * EBADF
+ * The descriptor is invalid.
+ * ENOTSOCK
+ * The descriptor references a file, not a socket.
+ * EOPNOTSUPP
+ * The referenced socket is not of type SOCK_STREAM.
+ * EINTR
+ * The system call was interrupted by a signal that was caught before
+ * a valid connection arrived.
+ * ECONNABORTED
+ * A connection has been aborted.
+ * EINVAL
+ * Socket is not listening for connections.
+ * EMFILE
+ * The per-process limit of open file descriptors has been reached.
+ * ENFILE
+ * The system maximum for file descriptors has been reached.
+ * EFAULT
+ * The addr parameter is not in a writable part of the user address
+ * space.
+ * ENOBUFS or ENOMEM
+ * Not enough free memory.
+ * EPROTO
+ * Protocol error.
+ * EPERM
+ * Firewall rules forbid connection.
+ *
+ ****************************************************************************/
+
+int accept(int sockfd, FAR struct sockaddr *addr, FAR socklen_t *addrlen)
+{
+ FAR struct socket *psock = sockfd_socket(sockfd);
+ FAR struct socket *newsock;
+ int newfd;
+ int err;
+ int ret;
+
+ /* Verify that the sockfd corresponds to valid, allocated socket */
+
+ if (psock == NULL || psock->s_crefs <= 0)
+ {
+ /* It is not a valid socket description. Distinguish between the cases
+ * where sockfd is a just valid and when it is a valid file descriptor used
+ * in the wrong context.
+ */
+
+#if CONFIG_NFILE_DESCRIPTORS > 0
+ if ((unsigned int)sockfd < CONFIG_NFILE_DESCRIPTORS)
+ {
+ err = ENOTSOCK;
+ }
+ else
+#endif
+ {
+ err = EBADF;
+ }
+
+ goto errout;
+ }
+
+ /* Allocate a socket descriptor for the new connection now (so that it
+ * cannot fail later)
+ */
+
+ newfd = sockfd_allocate(0);
+ if (newfd < 0)
+ {
+ err = ENFILE;
+ goto errout;
+ }
+
+ newsock = sockfd_socket(newfd);
+ if (newsock == NULL)
+ {
+ err = ENFILE;
+ goto errout_with_socket;
+ }
+
+ ret = psock_accept(psock, addr, addrlen, newsock);
+ if (ret < 0)
+ {
+ /* The errno value has already been set */
+
+ sockfd_release(newfd);
+ return ERROR;
+ }
+
+ return newfd;
errout_with_socket:
sockfd_release(newfd);
diff --git a/net/socket/listen.c b/net/socket/listen.c
index cdfc4d9d877..c552d794023 100644
--- a/net/socket/listen.c
+++ b/net/socket/listen.c
@@ -1,7 +1,7 @@
/****************************************************************************
* net/socket/listen.c
*
- * Copyright (C) 2007-2009, 2015 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 201-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -42,6 +42,7 @@
#include
#include
+#include
#include
#include "tcp/tcp.h"
@@ -53,17 +54,17 @@
****************************************************************************/
/****************************************************************************
- * Function: listen
+ * Function: psock_listen
*
* Description:
- * To accept connections, a socket is first created with socket(), a
- * willingness to accept incoming connections and a queue limit for incoming
- * connections are specified with listen(), and then the connections are
- * accepted with accept(). The listen() call applies only to sockets of
- * type SOCK_STREAM or SOCK_SEQPACKET.
+ * To accept connections, a socket is first created with psock_socket(), a
+ * willingness to accept incoming connections and a queue limit for
+ * incoming connections are specified with psock_listen(), and then the
+ * connections are accepted with psock_accept(). The psock_listen() call
+ * applies only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.
*
* Parameters:
- * sockfd Socket descriptor of the bound socket
+ * psock Reference to an internal, boound socket structure.
* backlog The maximum length the queue of pending connections may grow.
* If a connection request arrives with the queue full, the client
* may receive an error with an indication of ECONNREFUSED or,
@@ -76,44 +77,16 @@
*
* EADDRINUSE
* Another socket is already listening on the same port.
- * EBADF
- * The argument 'sockfd' is not a valid descriptor.
- * ENOTSOCK
- * The argument 'sockfd' is not a socket.
* EOPNOTSUPP
* The socket is not of a type that supports the listen operation.
*
- * Assumptions:
- *
****************************************************************************/
-int listen(int sockfd, int backlog)
+int psock_listen(FAR struct socket *psock, int backlog)
{
- FAR struct socket *psock = sockfd_socket(sockfd);
int err;
- /* Verify that the sockfd corresponds to valid, allocated socket */
-
- if (!psock || psock->s_crefs <= 0)
- {
- /* It is not a valid socket description. Distinguish between the cases
- * where sockfd is a just invalid and when it is a valid file descriptor used
- * in the wrong context.
- */
-
-#if CONFIG_NFILE_DESCRIPTORS > 0
- if ((unsigned int)sockfd < CONFIG_NFILE_DESCRIPTORS)
- {
- err = ENOTSOCK;
- }
- else
-#endif
- {
- err = EBADF;
- }
-
- goto errout;
- }
+ DEBUGASSERT(psock != NULL);
/* Verify that the sockfd corresponds to a connected SOCK_STREAM */
@@ -181,4 +154,73 @@ errout:
return ERROR;
}
+/****************************************************************************
+ * Function: listen
+ *
+ * Description:
+ * To accept connections, a socket is first created with socket(), a
+ * willingness to accept incoming connections and a queue limit for incoming
+ * connections are specified with listen(), and then the connections are
+ * accepted with accept(). The listen() call applies only to sockets of
+ * type SOCK_STREAM or SOCK_SEQPACKET.
+ *
+ * Parameters:
+ * sockfd Socket descriptor of the bound socket
+ * backlog The maximum length the queue of pending connections may grow.
+ * If a connection request arrives with the queue full, the client
+ * may receive an error with an indication of ECONNREFUSED or,
+ * if the underlying protocol supports retransmission, the request
+ * may be ignored so that retries succeed.
+ *
+ * Returned Value:
+ * On success, zero is returned. On error, -1 is returned, and errno is set
+ * appropriately.
+ *
+ * EADDRINUSE
+ * Another socket is already listening on the same port.
+ * EBADF
+ * The argument 'sockfd' is not a valid descriptor.
+ * ENOTSOCK
+ * The argument 'sockfd' is not a socket.
+ * EOPNOTSUPP
+ * The socket is not of a type that supports the listen operation.
+ *
+ ****************************************************************************/
+
+int listen(int sockfd, int backlog)
+{
+ FAR struct socket *psock = sockfd_socket(sockfd);
+ int err;
+
+ /* Verify that the sockfd corresponds to valid, allocated socket */
+
+ if (psock == NULL || psock->s_crefs <= 0)
+ {
+ /* It is not a valid socket description. Distinguish between the
+ * cases where sockfd is a just invalid and when it is a valid file
+ * descriptor used in the wrong context.
+ */
+
+#if CONFIG_NFILE_DESCRIPTORS > 0
+ if ((unsigned int)sockfd < CONFIG_NFILE_DESCRIPTORS)
+ {
+ err = ENOTSOCK;
+ }
+ else
+#endif
+ {
+ err = EBADF;
+ }
+
+ set_errno(err);
+ return ERROR;
+ }
+
+ /* The let psock_listen to the work. If psock_listen() fails, it will have
+ * set the errno variable.
+ */
+
+ return psock_listen(psock, backlog);
+}
+
#endif /* CONFIG_NET && CONFIG_NSOCKET_DESCRIPTORS */
diff --git a/sched/mqueue/mq_desclose.c b/sched/mqueue/mq_desclose.c
index 1de8ae073e7..841c4ade8a2 100644
--- a/sched/mqueue/mq_desclose.c
+++ b/sched/mqueue/mq_desclose.c
@@ -1,7 +1,7 @@
/****************************************************************************
* sched/mqueue/mq_desclose.c
*
- * Copyright (C) 2007, 2009, 2013-2015 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007, 2009, 2013-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -45,6 +45,7 @@
#include
#include
+#include
#include
#include "mqueue/mqueue.h"
@@ -71,7 +72,7 @@
****************************************************************************/
/****************************************************************************
- * Name: mq_close
+ * Name: mq_desclose_group
*
* Description:
* This function performs the portion of the mq_close operation related
@@ -79,6 +80,7 @@
*
* Parameters:
* mqdes - Message queue descriptor.
+ * group - Group that has the open descriptor.
*
* Return Value:
* None.
@@ -88,13 +90,11 @@
*
****************************************************************************/
-void mq_desclose(mqd_t mqdes)
+void mq_desclose_group(mqd_t mqdes, FAR struct task_group_s *group)
{
- FAR struct tcb_s *rtcb = (FAR struct tcb_s *)sched_self();
- FAR struct task_group_s *group = rtcb->group;
FAR struct mqueue_inode_s *msgq;
- DEBUGASSERT(mqdes && group);
+ DEBUGASSERT(mqdes != NULL && group != NULL);
/* Remove the message descriptor from the current task's list of message
* descriptors.
@@ -123,4 +123,3 @@ void mq_desclose(mqd_t mqdes)
mq_desfree(mqdes);
}
-
diff --git a/sched/mqueue/mq_descreate.c b/sched/mqueue/mq_descreate.c
index 211e0846fe9..10e548d7538 100644
--- a/sched/mqueue/mq_descreate.c
+++ b/sched/mqueue/mq_descreate.c
@@ -1,7 +1,7 @@
/****************************************************************************
* sched/mqueue/mq_descreate.c
*
- * Copyright (C) 2007-2009, 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,7 @@
#include
#include
+#include
#include
#include "signal/signal.h"
diff --git a/sched/mqueue/mq_release.c b/sched/mqueue/mq_release.c
index 9f2fbfbbeb9..7a5f25129c2 100644
--- a/sched/mqueue/mq_release.c
+++ b/sched/mqueue/mq_release.c
@@ -1,7 +1,7 @@
/****************************************************************************
* sched/mqueue/mq_release.c
*
- * Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -67,6 +67,6 @@ void mq_release(FAR struct task_group_s *group)
{
while (group->tg_msgdesq.head)
{
- mq_close((mqd_t)group->tg_msgdesq.head);
+ mq_close_group((mqd_t)group->tg_msgdesq.head, group);
}
}
diff --git a/sched/mqueue/mqueue.h b/sched/mqueue/mqueue.h
index 170fcd7a56a..34fc2d91c6c 100644
--- a/sched/mqueue/mqueue.h
+++ b/sched/mqueue/mqueue.h
@@ -136,6 +136,9 @@ EXTERN sq_queue_t g_desfree;
* Public Function Prototypes
****************************************************************************/
+struct tcb_s; /* Forward reference */
+struct task_group_s; /* Forward reference */
+
/* Functions defined in mq_initialize.c ************************************/
void weak_function mq_initialize(void);
@@ -165,7 +168,6 @@ int mq_dosend(mqd_t mqdes, FAR struct mqueue_msg_s *mqmsg,
/* mq_release.c ************************************************************/
-struct task_group_s; /* Forward reference */
void mq_release(FAR struct task_group_s *group);
/* mq_recover.c ************************************************************/
diff --git a/sched/task/task_create.c b/sched/task/task_create.c
index 1ced3b95157..1cc59793ccc 100644
--- a/sched/task/task_create.c
+++ b/sched/task/task_create.c
@@ -1,7 +1,7 @@
/****************************************************************************
* sched/task/task_create.c
*
- * Copyright (C) 2007-2010, 2013-2014 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2010, 2013-2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt
*
* Redistribution and use in source and binary forms, with or without
@@ -85,7 +85,8 @@
****************************************************************************/
static int thread_create(FAR const char *name, uint8_t ttype, int priority,
- int stack_size, main_t entry, FAR char * const argv[])
+ int stack_size, main_t entry,
+ FAR char * const argv[])
{
FAR struct task_tcb_s *tcb;
pid_t pid;
@@ -115,14 +116,20 @@ static int thread_create(FAR const char *name, uint8_t ttype, int priority,
}
#endif
- /* Associate file descriptors with the new task */
-
#if CONFIG_NFILE_DESCRIPTORS > 0 || CONFIG_NSOCKET_DESCRIPTORS > 0
- ret = group_setuptaskfiles(tcb);
- if (ret < OK)
+ /* Associate file descriptors with the new task. Exclude kernel threads;
+ * kernel threads do not have file or socket descriptors. They must use
+ * SYSLOG for output and the low-level psock interfaces for network I/O.
+ */
+
+ if (ttype != TCB_FLAG_TTYPE_KERNEL)
{
- errcode = -ret;
- goto errout_with_tcb;
+ ret = group_setuptaskfiles(tcb);
+ if (ret < OK)
+ {
+ errcode = -ret;
+ goto errout_with_tcb;
+ }
}
#endif
@@ -228,7 +235,8 @@ errout:
int task_create(FAR const char *name, int priority,
int stack_size, main_t entry, FAR char * const argv[])
{
- return thread_create(name, TCB_FLAG_TTYPE_TASK, priority, stack_size, entry, argv);
+ return thread_create(name, TCB_FLAG_TTYPE_TASK, priority, stack_size,
+ entry, argv);
}
#endif
@@ -251,5 +259,6 @@ int task_create(FAR const char *name, int priority,
int kernel_thread(FAR const char *name, int priority,
int stack_size, main_t entry, FAR char * const argv[])
{
- return thread_create(name, TCB_FLAG_TTYPE_KERNEL, priority, stack_size, entry, argv);
+ return thread_create(name, TCB_FLAG_TTYPE_KERNEL, priority, stack_size,
+ entry, argv);
}
diff --git a/sched/task/task_exithook.c b/sched/task/task_exithook.c
index b1210778d6c..aee8dc4242f 100644
--- a/sched/task/task_exithook.c
+++ b/sched/task/task_exithook.c
@@ -53,26 +53,6 @@
#include "signal/signal.h"
#include "task/task.h"
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Type Declarations
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
/****************************************************************************
* Private Functions
****************************************************************************/