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 ****************************************************************************/