summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/ChangeLog1
-rw-r--r--nuttx/Documentation/NXGraphicsSubsystem.html22
-rw-r--r--nuttx/Documentation/NuttX.html24
-rw-r--r--nuttx/Documentation/NuttXNxFlat.html6
-rw-r--r--nuttx/Documentation/NuttxPortingGuide.html174
-rwxr-xr-xnuttx/Documentation/README.html6
-rwxr-xr-xnuttx/Documentation/UsbTrace.html4
-rw-r--r--nuttx/Makefile32
-rw-r--r--nuttx/TODO55
-rw-r--r--nuttx/configs/avr32dev1/nsh/appconfig79
-rwxr-xr-xnuttx/configs/avr32dev1/nsh/defconfig2
-rw-r--r--nuttx/configs/avr32dev1/ostest/appconfig (renamed from nuttx/examples/dhcpd/Makefile.host)31
-rwxr-xr-xnuttx/configs/avr32dev1/ostest/defconfig2
-rw-r--r--nuttx/configs/c5471evm/httpd/appconfig87
-rw-r--r--nuttx/configs/c5471evm/httpd/defconfig2
-rw-r--r--nuttx/configs/c5471evm/nettest/appconfig81
-rw-r--r--nuttx/configs/c5471evm/nettest/defconfig2
-rw-r--r--nuttx/configs/c5471evm/nsh/appconfig102
-rw-r--r--nuttx/configs/c5471evm/nsh/defconfig2
-rw-r--r--nuttx/configs/c5471evm/ostest/appconfig (renamed from nuttx/examples/mm/Makefile)42
-rw-r--r--nuttx/configs/c5471evm/ostest/defconfig2
-rw-r--r--nuttx/configs/demo9s12ne64/ostest/appconfig (renamed from nuttx/examples/hidkbd/Makefile)42
-rwxr-xr-xnuttx/configs/demo9s12ne64/ostest/defconfig2
-rw-r--r--nuttx/configs/detron/hidkbd/appconfig39
-rwxr-xr-xnuttx/configs/detron/hidkbd/defconfig2
-rw-r--r--nuttx/configs/detron/nsh/appconfig102
-rwxr-xr-xnuttx/configs/detron/nsh/defconfig2
-rw-r--r--nuttx/configs/detron/ostest/appconfig39
-rwxr-xr-xnuttx/configs/detron/ostest/defconfig2
-rw-r--r--nuttx/configs/detron/wlan/appconfig39
-rwxr-xr-xnuttx/configs/detron/wlan/defconfig2
-rw-r--r--nuttx/configs/ea3131/nsh/appconfig79
-rwxr-xr-xnuttx/configs/ea3131/nsh/defconfig2
-rw-r--r--nuttx/configs/ea3131/ostest/appconfig39
-rwxr-xr-xnuttx/configs/ea3131/ostest/defconfig2
-rw-r--r--nuttx/configs/ea3131/pgnsh/appconfig (renamed from nuttx/examples/poll/Makefile.host)19
-rwxr-xr-xnuttx/configs/ea3131/pgnsh/defconfig2
-rw-r--r--nuttx/configs/ea3131/usbserial/appconfig39
-rwxr-xr-xnuttx/configs/ea3131/usbserial/defconfig2
-rw-r--r--nuttx/configs/ea3131/usbstorage/appconfig39
-rwxr-xr-xnuttx/configs/ea3131/usbstorage/defconfig2
-rw-r--r--nuttx/configs/eagle100/httpd/appconfig87
-rw-r--r--nuttx/configs/eagle100/httpd/defconfig2
-rw-r--r--nuttx/configs/eagle100/nettest/appconfig81
-rw-r--r--nuttx/configs/eagle100/nettest/defconfig2
-rw-r--r--nuttx/configs/eagle100/nsh/appconfig79
-rw-r--r--nuttx/configs/eagle100/nsh/defconfig2
-rw-r--r--nuttx/configs/eagle100/nxflat/appconfig39
-rw-r--r--nuttx/configs/eagle100/nxflat/defconfig2
-rw-r--r--nuttx/configs/eagle100/ostest/appconfig39
-rw-r--r--nuttx/configs/eagle100/ostest/defconfig2
-rw-r--r--nuttx/configs/eagle100/thttpd/appconfig83
-rw-r--r--nuttx/configs/eagle100/thttpd/defconfig2
-rw-r--r--nuttx/configs/ez80f910200kitg/ostest/appconfig39
-rw-r--r--nuttx/configs/ez80f910200kitg/ostest/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/dhcpd/appconfig83
-rw-r--r--nuttx/configs/ez80f910200zco/dhcpd/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/httpd/appconfig89
-rw-r--r--nuttx/configs/ez80f910200zco/httpd/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/nettest/appconfig81
-rw-r--r--nuttx/configs/ez80f910200zco/nettest/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/nsh/appconfig102
-rw-r--r--nuttx/configs/ez80f910200zco/nsh/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/ostest/appconfig39
-rw-r--r--nuttx/configs/ez80f910200zco/ostest/defconfig2
-rw-r--r--nuttx/configs/ez80f910200zco/poll/appconfig81
-rw-r--r--nuttx/configs/ez80f910200zco/poll/defconfig2
-rw-r--r--nuttx/configs/lm3s6965-ek/nsh/appconfig102
-rwxr-xr-xnuttx/configs/lm3s6965-ek/nsh/defconfig2
-rw-r--r--nuttx/configs/lm3s6965-ek/nx/appconfig39
-rwxr-xr-xnuttx/configs/lm3s6965-ek/nx/defconfig2
-rw-r--r--nuttx/configs/lm3s6965-ek/ostest/appconfig39
-rwxr-xr-xnuttx/configs/lm3s6965-ek/ostest/defconfig2
-rw-r--r--nuttx/configs/lm3s8962-ek/nsh/appconfig102
-rwxr-xr-xnuttx/configs/lm3s8962-ek/nsh/defconfig2
-rw-r--r--nuttx/configs/lm3s8962-ek/nx/appconfig39
-rwxr-xr-xnuttx/configs/lm3s8962-ek/nx/defconfig2
-rw-r--r--nuttx/configs/lm3s8962-ek/ostest/appconfig39
-rwxr-xr-xnuttx/configs/lm3s8962-ek/ostest/defconfig2
-rw-r--r--nuttx/configs/m68332evb/appconfig39
-rw-r--r--nuttx/configs/m68332evb/defconfig2
-rw-r--r--nuttx/configs/mbed/hidkbd/appconfig39
-rw-r--r--nuttx/configs/mbed/hidkbd/defconfig2
-rw-r--r--nuttx/configs/mbed/nsh/appconfig79
-rwxr-xr-xnuttx/configs/mbed/nsh/defconfig2
-rw-r--r--nuttx/configs/mcu123-lpc214x/nsh/appconfig79
-rw-r--r--nuttx/configs/mcu123-lpc214x/nsh/defconfig2
-rw-r--r--nuttx/configs/mcu123-lpc214x/ostest/appconfig39
-rw-r--r--nuttx/configs/mcu123-lpc214x/ostest/defconfig2
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbserial/appconfig39
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbserial/defconfig2
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbstorage/appconfig39
-rw-r--r--nuttx/configs/mcu123-lpc214x/usbstorage/defconfig2
-rw-r--r--nuttx/configs/mx1ads/ostest/appconfig39
-rw-r--r--nuttx/configs/mx1ads/ostest/defconfig2
-rw-r--r--nuttx/configs/ne64badge/ostest/appconfig39
-rwxr-xr-xnuttx/configs/ne64badge/ostest/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/nettest/appconfig81
-rw-r--r--nuttx/configs/ntosd-dm320/nettest/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/nsh/appconfig102
-rw-r--r--nuttx/configs/ntosd-dm320/nsh/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/ostest/appconfig39
-rw-r--r--nuttx/configs/ntosd-dm320/ostest/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/poll/appconfig81
-rw-r--r--nuttx/configs/ntosd-dm320/poll/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/thttpd/appconfig83
-rw-r--r--nuttx/configs/ntosd-dm320/thttpd/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/udp/appconfig81
-rw-r--r--nuttx/configs/ntosd-dm320/udp/defconfig2
-rw-r--r--nuttx/configs/ntosd-dm320/uip/appconfig87
-rw-r--r--nuttx/configs/ntosd-dm320/uip/defconfig2
-rw-r--r--nuttx/configs/nucleus2g/nsh/appconfig79
-rwxr-xr-xnuttx/configs/nucleus2g/nsh/defconfig2
-rw-r--r--nuttx/configs/nucleus2g/ostest/appconfig39
-rwxr-xr-xnuttx/configs/nucleus2g/ostest/defconfig2
-rw-r--r--nuttx/configs/nucleus2g/usbserial/appconfig39
-rwxr-xr-xnuttx/configs/nucleus2g/usbserial/defconfig2
-rw-r--r--nuttx/configs/nucleus2g/usbstorage/appconfig39
-rwxr-xr-xnuttx/configs/nucleus2g/usbstorage/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/hidkbd/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/hidkbd/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/nettest/appconfig81
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/nettest/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/nsh/appconfig102
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/nsh/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/nx/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/nx/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/ostest/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/ostest/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/slip-httpd/appconfig83
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/thttpd/appconfig83
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/thttpd/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/usbserial/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/usbserial/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/usbstorage/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/usbstorage/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc1766stk/wlan/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc1766stk/wlan/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc2378/nsh/appconfig79
-rwxr-xr-xnuttx/configs/olimex-lpc2378/nsh/defconfig2
-rw-r--r--nuttx/configs/olimex-lpc2378/ostest/appconfig39
-rwxr-xr-xnuttx/configs/olimex-lpc2378/ostest/defconfig2
-rw-r--r--nuttx/configs/olimex-strp711/nettest/appconfig81
-rwxr-xr-xnuttx/configs/olimex-strp711/nettest/defconfig2
-rw-r--r--nuttx/configs/olimex-strp711/nsh/appconfig79
-rw-r--r--nuttx/configs/olimex-strp711/nsh/defconfig2
-rw-r--r--nuttx/configs/olimex-strp711/ostest/appconfig39
-rw-r--r--nuttx/configs/olimex-strp711/ostest/defconfig2
-rw-r--r--nuttx/configs/pjrc-8051/appconfig39
-rw-r--r--nuttx/configs/pjrc-8051/defconfig2
-rw-r--r--nuttx/configs/qemu-i486/nsh/appconfig79
-rw-r--r--nuttx/configs/qemu-i486/nsh/defconfig2
-rw-r--r--nuttx/configs/qemu-i486/ostest/appconfig39
-rw-r--r--nuttx/configs/qemu-i486/ostest/defconfig2
-rw-r--r--nuttx/configs/sam3u-ek/nsh/appconfig79
-rwxr-xr-xnuttx/configs/sam3u-ek/nsh/defconfig2
-rw-r--r--nuttx/configs/sam3u-ek/nx/appconfig39
-rwxr-xr-xnuttx/configs/sam3u-ek/nx/defconfig2
-rw-r--r--nuttx/configs/sam3u-ek/ostest/appconfig39
-rwxr-xr-xnuttx/configs/sam3u-ek/ostest/defconfig2
-rw-r--r--nuttx/configs/sim/mount/appconfig39
-rw-r--r--nuttx/configs/sim/mount/defconfig2
-rw-r--r--nuttx/configs/sim/nettest/appconfig81
-rw-r--r--nuttx/configs/sim/nettest/defconfig2
-rw-r--r--nuttx/configs/sim/nsh/appconfig79
-rw-r--r--nuttx/configs/sim/nsh/defconfig2
-rw-r--r--nuttx/configs/sim/nx/appconfig39
-rw-r--r--nuttx/configs/sim/nx/defconfig2
-rw-r--r--nuttx/configs/sim/ostest/appconfig39
-rw-r--r--nuttx/configs/sim/ostest/defconfig2
-rw-r--r--nuttx/configs/sim/pashello/appconfig39
-rw-r--r--nuttx/configs/sim/pashello/defconfig2
-rw-r--r--nuttx/configs/skp16c26/ostest/appconfig39
-rw-r--r--nuttx/configs/skp16c26/ostest/defconfig2
-rw-r--r--nuttx/configs/stm3210e-eval/RIDE/appconfig39
-rwxr-xr-xnuttx/configs/stm3210e-eval/RIDE/defconfig2
-rw-r--r--nuttx/configs/stm3210e-eval/nsh/appconfig77
-rwxr-xr-xnuttx/configs/stm3210e-eval/nsh/defconfig2
-rw-r--r--nuttx/configs/stm3210e-eval/ostest/appconfig39
-rwxr-xr-xnuttx/configs/stm3210e-eval/ostest/defconfig2
-rw-r--r--nuttx/configs/stm3210e-eval/usbserial/appconfig39
-rwxr-xr-xnuttx/configs/stm3210e-eval/usbserial/defconfig2
-rw-r--r--nuttx/configs/stm3210e-eval/usbstorage/appconfig39
-rwxr-xr-xnuttx/configs/stm3210e-eval/usbstorage/defconfig2
-rw-r--r--nuttx/configs/us7032evb1/nsh/appconfig79
-rw-r--r--nuttx/configs/us7032evb1/nsh/defconfig2
-rw-r--r--nuttx/configs/us7032evb1/ostest/appconfig39
-rw-r--r--nuttx/configs/us7032evb1/ostest/defconfig2
-rwxr-xr-xnuttx/configs/vsn/nsh/appconfig21
-rwxr-xr-xnuttx/configs/vsn/nsh/defconfig2
-rw-r--r--nuttx/configs/xtrs/nsh/appconfig79
-rw-r--r--nuttx/configs/xtrs/nsh/defconfig2
-rw-r--r--nuttx/configs/xtrs/ostest/appconfig39
-rw-r--r--nuttx/configs/xtrs/ostest/defconfig2
-rw-r--r--nuttx/configs/xtrs/pashello/appconfig39
-rw-r--r--nuttx/configs/xtrs/pashello/defconfig2
-rw-r--r--nuttx/configs/z16f2800100zcog/ostest/appconfig39
-rw-r--r--nuttx/configs/z16f2800100zcog/ostest/defconfig2
-rw-r--r--nuttx/configs/z16f2800100zcog/pashello/appconfig39
-rw-r--r--nuttx/configs/z16f2800100zcog/pashello/defconfig2
-rw-r--r--nuttx/configs/z80sim/nsh/appconfig79
-rw-r--r--nuttx/configs/z80sim/nsh/defconfig2
-rw-r--r--nuttx/configs/z80sim/ostest/appconfig39
-rw-r--r--nuttx/configs/z80sim/ostest/defconfig2
-rw-r--r--nuttx/configs/z80sim/pashello/appconfig39
-rw-r--r--nuttx/configs/z80sim/pashello/defconfig2
-rw-r--r--nuttx/configs/z8encore000zco/ostest/appconfig39
-rw-r--r--nuttx/configs/z8encore000zco/ostest/defconfig2
-rw-r--r--nuttx/configs/z8f64200100kit/ostest/appconfig39
-rw-r--r--nuttx/configs/z8f64200100kit/ostest/defconfig2
-rw-r--r--nuttx/examples/README.txt636
-rw-r--r--nuttx/examples/dhcpd/Makefile76
-rw-r--r--nuttx/examples/dhcpd/host.c58
-rw-r--r--nuttx/examples/dhcpd/target.c143
-rw-r--r--nuttx/examples/hello/Makefile75
-rw-r--r--nuttx/examples/hello/main.c77
-rwxr-xr-xnuttx/examples/helloxx/Makefile93
-rwxr-xr-xnuttx/examples/helloxx/main.cxx128
-rw-r--r--nuttx/examples/hidkbd/hidkbd_main.c239
-rwxr-xr-xnuttx/examples/igmp/Makefile76
-rwxr-xr-xnuttx/examples/igmp/igmp.c155
-rwxr-xr-xnuttx/examples/igmp/igmp.h61
-rw-r--r--nuttx/examples/mm/mm_main.c308
-rw-r--r--nuttx/examples/mount/Makefile75
-rw-r--r--nuttx/examples/mount/mount.h96
-rw-r--r--nuttx/examples/mount/mount_main.c762
-rw-r--r--nuttx/examples/mount/ramdisk.c141
-rw-r--r--nuttx/examples/nettest/Makefile106
-rw-r--r--nuttx/examples/nettest/host.c63
-rw-r--r--nuttx/examples/nettest/nettest.c122
-rw-r--r--nuttx/examples/nettest/nettest.h95
-rw-r--r--nuttx/examples/nettest/nettest_client.c204
-rw-r--r--nuttx/examples/nettest/nettest_server.c234
-rw-r--r--nuttx/examples/nsh/Makefile76
-rw-r--r--nuttx/examples/nsh/nsh_main.c157
-rw-r--r--nuttx/examples/null/Makefile75
-rw-r--r--nuttx/examples/null/null_main.c75
-rw-r--r--nuttx/examples/nx/Makefile82
-rw-r--r--nuttx/examples/nx/nx_events.c337
-rw-r--r--nuttx/examples/nx/nx_internal.h306
-rw-r--r--nuttx/examples/nx/nx_kbdin.c467
-rw-r--r--nuttx/examples/nx/nx_main.c894
-rw-r--r--nuttx/examples/nx/nx_server.c152
-rw-r--r--nuttx/examples/nxflat/Makefile77
-rw-r--r--nuttx/examples/nxflat/nxflat_main.c232
-rw-r--r--nuttx/examples/nxflat/tests/Makefile103
-rw-r--r--nuttx/examples/nxflat/tests/errno/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/errno/errno.c83
-rw-r--r--nuttx/examples/nxflat/tests/hello++/Makefile180
-rw-r--r--nuttx/examples/nxflat/tests/hello++/hello++1.cpp60
-rw-r--r--nuttx/examples/nxflat/tests/hello++/hello++2.cpp123
-rw-r--r--nuttx/examples/nxflat/tests/hello++/hello++3.cpp132
-rw-r--r--nuttx/examples/nxflat/tests/hello++/hello++4.cpp150
-rw-r--r--nuttx/examples/nxflat/tests/hello/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/hello/hello.c78
-rw-r--r--nuttx/examples/nxflat/tests/longjmp/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/longjmp/longjmp.c128
-rwxr-xr-xnuttx/examples/nxflat/tests/mkdirlist.sh35
-rwxr-xr-xnuttx/examples/nxflat/tests/mksymtab.sh39
-rw-r--r--nuttx/examples/nxflat/tests/mutex/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/mutex/mutex.c149
-rw-r--r--nuttx/examples/nxflat/tests/pthread/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/pthread/pthread.c143
-rw-r--r--nuttx/examples/nxflat/tests/signal/Makefile78
-rw-r--r--nuttx/examples/nxflat/tests/signal/signal.c308
-rw-r--r--nuttx/examples/nxflat/tests/struct/Makefile80
-rw-r--r--nuttx/examples/nxflat/tests/struct/struct.h89
-rw-r--r--nuttx/examples/nxflat/tests/struct/struct_dummy.c65
-rw-r--r--nuttx/examples/nxflat/tests/struct/struct_main.c109
-rw-r--r--nuttx/examples/nxflat/tests/task/Makefile79
-rw-r--r--nuttx/examples/nxflat/tests/task/task.c143
-rw-r--r--nuttx/examples/ostest/Makefile116
-rw-r--r--nuttx/examples/ostest/barrier.c200
-rw-r--r--nuttx/examples/ostest/cancel.c333
-rw-r--r--nuttx/examples/ostest/cond.c294
-rw-r--r--nuttx/examples/ostest/dev_null.c92
-rw-r--r--nuttx/examples/ostest/main.c523
-rw-r--r--nuttx/examples/ostest/mqueue.c394
-rw-r--r--nuttx/examples/ostest/mutex.c142
-rw-r--r--nuttx/examples/ostest/ostest.h162
-rw-r--r--nuttx/examples/ostest/posixtimer.c268
-rw-r--r--nuttx/examples/ostest/prioinherit.c541
-rw-r--r--nuttx/examples/ostest/rmutex.c166
-rw-r--r--nuttx/examples/ostest/roundrobin.c232
-rw-r--r--nuttx/examples/ostest/sem.c246
-rw-r--r--nuttx/examples/ostest/sighand.c279
-rw-r--r--nuttx/examples/ostest/timedmqueue.c393
-rw-r--r--nuttx/examples/ostest/timedwait.c201
-rw-r--r--nuttx/examples/pashello/Makefile82
-rw-r--r--nuttx/examples/pashello/README.txt34
-rw-r--r--nuttx/examples/pashello/device.c110
-rw-r--r--nuttx/examples/pashello/hello.h23
-rw-r--r--nuttx/examples/pashello/hello.pas5
-rw-r--r--nuttx/examples/pashello/hello.pexbin232 -> 0 bytes
-rwxr-xr-xnuttx/examples/pashello/mkhello.sh141
-rw-r--r--nuttx/examples/pashello/pashello.c143
-rw-r--r--nuttx/examples/pashello/pashello.h55
-rw-r--r--nuttx/examples/pipe/Makefile75
-rw-r--r--nuttx/examples/pipe/interlock_test.c224
-rw-r--r--nuttx/examples/pipe/pipe.h74
-rw-r--r--nuttx/examples/pipe/pipe_main.c197
-rw-r--r--nuttx/examples/pipe/redirect_test.c326
-rw-r--r--nuttx/examples/pipe/transfer_test.c242
-rw-r--r--nuttx/examples/poll/Makefile75
-rw-r--r--nuttx/examples/poll/host.c166
-rw-r--r--nuttx/examples/poll/net_listener.c428
-rw-r--r--nuttx/examples/poll/net_reader.c317
-rw-r--r--nuttx/examples/poll/poll_internal.h128
-rw-r--r--nuttx/examples/poll/poll_listener.c262
-rw-r--r--nuttx/examples/poll/poll_main.c229
-rw-r--r--nuttx/examples/poll/select_listener.c193
-rw-r--r--nuttx/examples/romfs/Makefile95
-rw-r--r--nuttx/examples/romfs/romfs_main.c506
-rw-r--r--nuttx/examples/romfs/romfs_testdir.h89
-rw-r--r--nuttx/examples/romfs/testdir.tar.gzbin387 -> 0 bytes
-rw-r--r--nuttx/examples/romfs/testdir.txt105
-rw-r--r--nuttx/examples/sendmail/Makefile76
-rw-r--r--nuttx/examples/sendmail/Makefile.host77
-rw-r--r--nuttx/examples/sendmail/host.c103
-rwxr-xr-xnuttx/examples/sendmail/hostdefs.h69
-rw-r--r--nuttx/examples/sendmail/target.c169
-rw-r--r--nuttx/examples/serloop/Makefile75
-rw-r--r--nuttx/examples/serloop/main.c113
-rw-r--r--nuttx/examples/thttpd/Makefile80
-rw-r--r--nuttx/examples/thttpd/content/Makefile104
-rw-r--r--nuttx/examples/thttpd/content/hello/Makefile78
-rw-r--r--nuttx/examples/thttpd/content/hello/hello.c79
-rw-r--r--nuttx/examples/thttpd/content/index.html30
-rwxr-xr-xnuttx/examples/thttpd/content/mksymtab.sh39
-rw-r--r--nuttx/examples/thttpd/content/netstat/Makefile78
-rwxr-xr-xnuttx/examples/thttpd/content/netstat/netstat.c134
-rw-r--r--nuttx/examples/thttpd/content/style.css80
-rwxr-xr-xnuttx/examples/thttpd/content/tasks/Makefile78
-rwxr-xr-xnuttx/examples/thttpd/content/tasks/tasks.c168
-rw-r--r--nuttx/examples/thttpd/main.c280
-rw-r--r--nuttx/examples/udp/Makefile104
-rw-r--r--nuttx/examples/udp/host.c63
-rw-r--r--nuttx/examples/udp/target.c104
-rw-r--r--nuttx/examples/udp/udp-client.c133
-rw-r--r--nuttx/examples/udp/udp-internal.h90
-rw-r--r--nuttx/examples/udp/udp-server.c173
-rw-r--r--nuttx/examples/uip/Makefile75
-rw-r--r--nuttx/examples/uip/main.c220
-rw-r--r--nuttx/examples/usbserial/Makefile75
-rw-r--r--nuttx/examples/usbserial/Makefile.host63
-rw-r--r--nuttx/examples/usbserial/host.c293
-rw-r--r--nuttx/examples/usbserial/main.c466
-rw-r--r--nuttx/examples/usbstorage/Makefile76
-rw-r--r--nuttx/examples/usbstorage/usbstrg.h119
-rw-r--r--nuttx/examples/usbstorage/usbstrg_main.c404
-rw-r--r--nuttx/examples/wget/Makefile76
-rw-r--r--nuttx/examples/wget/Makefile.host77
-rw-r--r--nuttx/examples/wget/host.c100
-rwxr-xr-xnuttx/examples/wget/hostdefs.h69
-rw-r--r--nuttx/examples/wget/target.c162
-rwxr-xr-xnuttx/examples/wlan/Makefile76
-rwxr-xr-xnuttx/examples/wlan/wlan_main.c240
-rwxr-xr-xnuttx/tools/configure.sh2
359 files changed, 4302 insertions, 25769 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 1904cf0f0..5bec7c5ad 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -1600,5 +1600,6 @@
* apps/Makefile and configs/*/appconfig - Use '=' as the delimiter
instead of '/' so that sub-directories in apps/ can be used.
* apps/vsn - Move all VSN apps to apps/vsn.
+ * nuttx/examples moved to apps/examples
diff --git a/nuttx/Documentation/NXGraphicsSubsystem.html b/nuttx/Documentation/NXGraphicsSubsystem.html
index ac67c9614..4e6e78054 100644
--- a/nuttx/Documentation/NXGraphicsSubsystem.html
+++ b/nuttx/Documentation/NXGraphicsSubsystem.html
@@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec">
<i>NX Graphics Subsystem</i>
</font></big></h1>
- <p>Last Updated: July 27, 2010</p>
+ <p>Last Updated: March 20, 2010</p>
</td>
</tr>
</table>
@@ -212,7 +212,7 @@
</tr>
<tr>
<td><small>Figure 1.
- This scren shot shows the final frame for the NuttX example at <code>examples/nx</code>
+ This scren shot shows the final frame for the NuttX example at <code>apps/examples/nx</code>
running on the simulated, Linux x86 platform with simulated framebuffer output to
an X window.
This picture shows to framed windows with (blank) toolbars.
@@ -2499,9 +2499,9 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
<h2>2.6 <a name="samplecode">Sample Code</a></h2>
-<p><b><code>examples/nx</code></b>.
+<p><b><code>apps/examples/nx</code></b>.
No sample code is provided in this document.
- However, an example can be found in the NuttX source tree at <code>examples/nx</code>.
+ However, an example can be found in the NuttX source tree at <code>apps/examples/nx</code>.
That code is intended to test NX.
Since it is test code, it is designed to exercise functionality and does not necessarily
represent best NX coding practices.
@@ -2514,7 +2514,7 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
be implemented by the NX client code.
</p>
-<p><b>Building <code>examples/nx</code></b>.
+<p><b>Building <code>apps/examples/nx</code></b>.
Testing was performed using the Linux/Cygwin-based NuttX simulator.
Instructions are provided for building that simulation are provided in
<a href="#testcoverage">Appendix C</a> of this document.
@@ -2690,11 +2690,11 @@ int nxf_convert_32bpp(FAR uint32_t *dest, uint16_t height,
</tr>
</table>
-<p><b><code>examples/nx</code></b>.
- The primary test tool for debugging NX resides at <code>examples/nx</code>.
+<p><b><code>apps/examples/nx</code></b>.
+ The primary test tool for debugging NX resides at <code>apps/examples/nx</code>.
</p>
-<p><b>Building <code>examples/nx</code></b>.
- NX testing was performed using <code>examples/nx</code> with the
+<p><b>Building <code>apps/examples/nx</code></b>.
+ NX testing was performed using <code>apps/examples/nx</code> with the
Linux/Cygwin-based NuttX simulator.
Configuration files for building this test can be found in <code>configs/sim/nx</code>.
There are two alternative configurations for building the simulation:
@@ -2761,7 +2761,7 @@ make
</p>
<p><b>Test Coverage</b>.
- At present, <code>examples/nx</code>t only exercises a subset of NX;
+ At present, <code>apps/examples/nx</code>t only exercises a subset of NX;
the remainder is essentially untested.
The following table describes the testing performed on each NX API:
</p>
@@ -2938,7 +2938,7 @@ make
</tr>
<tr>
<td align="left" valign="top"><a href="#nxeventnotify"><code>nx_eventnotify()</code></a></td>
- <td>This is not used in the current version of <code>examples/nx</code>,
+ <td>This is not used in the current version of <code>apps/examples/nx</code>,
was tested in a previous version)</td>
<td align="center" bgcolor="lightgrey">NO</td>
</tr>
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index 37e22a008..6929f54e1 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -8,7 +8,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
- <p>Last Updated: March 19, 2011</p>
+ <p>Last Updated: March 20, 2011</p>
</td>
</tr>
</table>
@@ -948,7 +948,7 @@
<ul>
<p>
<b>STATUS:</b>
- This port boots and passes the OS test (examples/ostest).
+ This port boots and passes the OS test (apps/examples/ostest).
The port is complete and verified. As of NuttX 0.3.17, the port includes:
timer interrupts, serial console, USB driver, and SPI-based MMC/SD card
support. A verified NuttShell (<a href="NuttShell.html">NSH</a>)
@@ -982,7 +982,7 @@
<ul>
<p>
<b>STATUS:</b>
- This port boots and passes the OS test (examples/ostest) and includes a
+ This port boots and passes the OS test (apps/examples/ostest) and includes a
working implementation of the NuttShell (<a href="NuttShell.html">NSH</a>).
The port is complete and verified.
As of NuttX 5.3, the port includes only basic timer interrupts and serial console support.
@@ -1161,7 +1161,7 @@
<b>STATUS:</b>
This port was released in NuttX 5.5.
Features are the same as with the Eagle-100 LM3S6918 described above.
- The examples/ostest configuration has been successfully verified and an
+ The apps/examples/ostest configuration has been successfully verified and an
NSH configuration with telnet support is available.
MMC/SD and Networking support was not been thoroughly verified:
Current development efforts are focused on porting the NuttX window system (NX)
@@ -1357,7 +1357,7 @@
</p>
<p>
That initial, 5.6, basic release included <i>timer</i> interrupts and a <i>serial console</i> and was
- verified using the NuttX OS test (<code>examples/ostest</code>).
+ verified using the NuttX OS test (<code>apps/examples/ostest</code>).
Configurations available include include a verified NuttShell (NSH) configuration
(see the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a>).
The NSH configuration supports the Nucleus2G's microSD slot and additional configurations
@@ -1374,7 +1374,7 @@
</ul>
</p>
<p>
- This port includes a NuttX OS test configuration (see <code>examples/ostest</code>).
+ This port includes a NuttX OS test configuration (see <code>apps/examples/ostest</code>).
</p>
<p>
<b>Olimex LPC1766-STK</b>.
@@ -1524,7 +1524,7 @@
Since then, the basic RTOS port has solidified:
<ul>
<li>
- The port successfully passes the NuttX OS test (examples/ostest).
+ The port successfully passes the NuttX OS test (apps/examples/ostest).
</li>
<li>
A NuttShell (NSH) configuration is in place (see the <a href="http://www.nuttx.org/NuttShell.html">NSH User Guide</a>).
@@ -1534,7 +1534,7 @@
At present, I get nothing coming in the serial RXD line (probably because the pins are configured wrong or I have the MAX232 connected wrong).
</li>
</ul>
- The basic, port (including the verified examples/ostest configuration) was be released in NuttX-5.13.
+ The basic, port (including the verified apps/examples/ostest configuration) was be released in NuttX-5.13.
A complete port will include drivers for additional AVR32 UC3 devices -- like SPI and USB --- and will be available in a later release,
time permitting.
</p>
@@ -1979,7 +1979,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote>
This build for the ARM9 target includes a significant subset of OS
features, a filesystem, Ethernet driver, full TCP/IP, UDP and (minimal)
ICMP stacks (via uIP) and a small network test application: (11/8/07,
- configuration netconfig, examples/nettest)
+ configuration netconfig, apps/examples/nettest)
</p>
<pre>
text data bss dec hex filename
@@ -1988,7 +1988,7 @@ m68k, m68hc11, m68hc12, and SuperH ports.</blockquote>
<p>
Another build for the ARM9 target includes a minimal OS feature
set, Ethernet driver, full TCP/IP and (minimal) ICMP stacks, and
- a small webserver: (11/20/07, configuration uipconfig, examples/uip)
+ a small webserver: (11/20/07, configuration uipconfig, apps/examples/uip)
</p>
<pre>
text data bss dec hex filename
@@ -2224,6 +2224,10 @@ nuttx-5.20 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
* examples/nsh and apps/nshlib - Move the core NuttShell (NSH) logic
out of the exemples directory and into the apps/directory where
it belongs.
+ * apps/Makefile and configs/*/appconfig - Use '=' as the delimiter
+ instead of '/' so that sub-directories in apps/ can be used.
+ * apps/vsn - Move all VSN apps to apps/vsn.
+ * nuttx/examples moved to apps/examples
apps-5.20 2011-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
diff --git a/nuttx/Documentation/NuttXNxFlat.html b/nuttx/Documentation/NuttXNxFlat.html
index b1948f47f..b08b65801 100644
--- a/nuttx/Documentation/NuttXNxFlat.html
+++ b/nuttx/Documentation/NuttXNxFlat.html
@@ -10,7 +10,7 @@
<td>
<h1><big><font color="#3c34ec"><i>NXFLAT</i></font></big></h1>
<h2><font color="#dc143c">&gt;&gt;&gt; Under Construction &lt;&lt;&lt;</font></h2>
- <p>Last Updated: June 26, 2009</p>
+ <p>Last Updated: March 20, 2011</p>
</td>
</tr>
</table>
@@ -253,7 +253,7 @@
<p>
The initial release of NXFLAT was made in NuttX version 0.4.9.
- Testing is limited to the tests found under <code>examples/nxflat</code> in the source tree.
+ Testing is limited to the tests found under <code>apps/examples/nxflat</code> in the source tree.
Some known problems exist
(see the <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/TODO?view=log">TODO</a> list).
As such, NXFLAT is currently in an early alpha phase.
@@ -366,7 +366,7 @@ any following arguments.
<p>
Below is a snippet from an NXFLAT make file (simplified from NuttX
- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/examples/nxflat/tests/hello/Makefile?view=log">
+ <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/examples/nxflat/tests/hello/Makefile?view=log">
Hello, World!</a> example.
<p>
<ul><table width="50%">
diff --git a/nuttx/Documentation/NuttxPortingGuide.html b/nuttx/Documentation/NuttxPortingGuide.html
index 2d77d4ab9..85fc8010d 100644
--- a/nuttx/Documentation/NuttxPortingGuide.html
+++ b/nuttx/Documentation/NuttxPortingGuide.html
@@ -12,7 +12,7 @@
<h1><big><font color="#3c34ec">
<i>NuttX RTOS Porting Guide</i>
</font></big></h1>
- <p>Last Updated: March 19, 2011</p>
+ <p>Last Updated: March 20, 2011</p>
</td>
</tr>
</table>
@@ -37,30 +37,31 @@
<a href="#summaryofarchfiles">2.2.2 Summary of Files</a><br>
<a href="#supportedarchitectures">2.2.3 Supported Architectures</a>
</ul>
- <a href="#DirStructBinFmt">2.2 binfmt/</a><br>
+ <a href="#DirStructBinFmt">2.3 binfmt/</a><br>
<a href="#DirStructConfigs">2.4 configs/</a>
<ul>
- <a href="#configsdirectorystructure">2.3.1 Subdirectory Structure</a><br>
- <a href="#summaryofconfigfiles">2.3.2 Summary of Files</a>
+ <a href="#configsdirectorystructure">2.4.1 Subdirectory Structure</a><br>
+ <a href="#summaryofconfigfiles">2.4.2 Summary of Files</a>
<ul>
<a href="#boardlogic">2.4.2.1 Board Specific Logic</a><br>
- <a href="#boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a>
+ <a href="#boardconfigsubdirs">2.4.2.2 Board Specific Configuration Sub-Directories</a>
</ul>
<a href="#supportedboards">2.4.3 Supported Boards</a>
</ul>
- <a href="#DirStructDrivers">2.5 drivers/</a><br>
- <a href="#DirStructExamples">2.6 examples/</a><br>
- <a href="#DirStructFs">2.7 fs/</a><br>
- <a href="#DirStructGraphics">2.8 graphics/</a><br>
- <a href="#DirStructInclude">2.9 include/</a><br>
- <a href="#DirStructLib">2.10 lib/</a><br>
- <a href="#DirStructLibXX">2.11 libxx/</a><br>
- <a href="#DirStructMm">2.12 mm/</a><br>
- <a href="#DirStructNet">2.13 net</a><br>
- <a href="#DirStructNetUtils">2.14 netutils</a><br>
- <a href="#DirStructSched">2.15 sched/</a><br>
- <a href="#DirStructTools">2.16 tools/</a><br>
- <a href="#topmakefile">2.17 Makefile</a>
+ <a href="#DirStructDrivers">2.5 nuttx/drivers/</a><br>
+ <a href="#DirStructFs">2.6 nuttx/fs/</a><br>
+ <a href="#DirStructGraphics">2.7 nuttx/graphics/</a><br>
+ <a href="#DirStructInclude">2.8 nuttx/include/</a><br>
+ <a href="#DirStructLib">2.9 nuttx/lib/</a><br>
+ <a href="#DirStructLibXX">2.10 nuttx/libxx/</a><br>
+ <a href="#DirStructMm">2.11 nuttx/mm/</a><br>
+ <a href="#DirStructNet">2.12 nuttx/net</a><br>
+ <a href="#DirStructSched">2.13 nuttx/sched/</a><br>
+ <a href="#DirStructTools">2.14 nuttx/tools/</a><br>
+ <a href="#topmakefile">2.15 nuttx/Makefile</a>
+ <a href="#DirStructNetUtils">2.16 apps/netutils</a><br>
+ <a href="#DirStructNshLib">2.17 apps/nshlib</a><br>
+ <a href="#DirStructExamples">2.18 apps/examples/</a><br>
</ul>
<a href="#configandbuild">3.0 Configuring and Building</a>
<ul>
@@ -200,10 +201,6 @@
| | |-- <i>(driver-specific sub-directories)/</i>
| | | `-- <i>(driver-specific source files)</i>
| | `-- <i>(common driver source files)</i>
-| |-- <a href="#DirStructExamples">examples</a>/
-| | `-- <i>(example)</i>/
-| | |-- Makefile
-| | `-- <i>(example source files)</i>
| |-- <a href="#DirStructFs">fs</a>/
| | |-- Makefile
| | |-- <i>(file system-specific sub-directories)</i>/
@@ -245,14 +242,18 @@
| |-- <i>(network feature sub-directories)</i>/
| | `-- <i>(network feature source files)</i>
| `-- <i>(netutils common files)</i>
- |-- nshlib/
+ |-- <a href="#DirStructNshLib">nshlib</a>/
| |-- Makefile
| `-- <i>NuttShell (NSH) files</i>
- `-- <i>(Board-specific applications)</i>/
- |-- Makefile
- |-- <i>(Board-specific application sub-directories)</i>/
- | `-- <i>(Board-specific application source files)</i>
- `-- <i>(Board-specific common files)</i>
+ |-- <i>(Board-specific applications)</i>/
+ | |-- Makefile
+ | |-- <i>(Board-specific application sub-directories)</i>/
+ | | `-- <i>(Board-specific application source files)</i>
+ | `-- <i>(Board-specific common files)</i>
+ `-- <a href="#DirStructExamples">examples</a>/
+ `-- <i>(example)</i>/
+ |-- Makefile
+ `-- <i>(example source files)</i>
</pre></ul>
<p>
@@ -295,7 +296,7 @@
General documentation for the NuttX OS resides in this directory.
</p>
-<h2>2.2 <a name="DirStructArch">arch</a></h2>
+<h2>2.2 <a name="DirStructArch">nuttx/arch</a></h2>
<h3><a name="archdirectorystructure">2.2.1 Subdirectory Structure</a></h3>
<p>
@@ -460,7 +461,7 @@
<li><code>arch/arm/include/lpc214x</code> and <code>arch/arm/src/lpc214x</code>:
These directories provide support for NXP LPC214x family of
processors.
- STATUS: This port boots and passes the OS test (examples/ostest).
+ STATUS: This port boots and passes the OS test (apps/examples/ostest).
The port is complete and verified. As of NuttX 0.3.17, the port includes:
timer interrupts, serial console, USB driver, and SPI-based MMC/SD card
support. A verified NuttShell configuration is also available.
@@ -544,21 +545,21 @@
of progress
</p>
-<h2>2.3 <a name="DirStructBinFmt">binfmt</a></h2>
+<h2>2.3 <a name="DirStructBinFmt">nuttx/binfmt</a></h2>
<p>
The <code>binfmt/</code> subdirectory contains logic for loading binaries in the file
system into memory in a form that can be used to execute them.
</p>
-<h2>2.4 <a name="DirStructConfigs">configs</a></h2>
+<h2>2.4 <a name="DirStructConfigs">nuttx/configs</a></h2>
<p>
The <code>configs/</code> subdirectory contains configuration data for each board.
These board-specific configurations plus the architecture-specific configurations in
the <code>arch/</code> subdirectory complete define a customized port of NuttX.
</p>
-<h3><a name="configsdirectorystructure">2.3.1 Subdirectory Structure</a></h3>
+<h3><a name="configsdirectorystructure">2.4.1 Subdirectory Structure</a></h3>
<p>
The configs directory contains board specific configuration files. Each board must
provide a subdirectory &lt;board-name&gt; under <code>configs/</code> with the following characteristics:
@@ -589,8 +590,8 @@
</small></p>
</ul>
-<h3><a name="summaryofconfigfiles">2.3.2 Summary of Files</a></h3>
-<h4><a name="boardlogic">2.3.2.1 Board Specific Logic</a></h4>
+<h3><a name="summaryofconfigfiles">2.4.2 Summary of Files</a></h3>
+<h4><a name="boardlogic">2.4.2.1 Board Specific Logic</a></h4>
<ul>
<li>
<code>include/</code>:
@@ -612,7 +613,7 @@
It must support the following targets: <code>libext$(LIBEXT)</code>, <code>clean</code>, and <code>distclean</code>.
</li>
</ul>
-<h4><a name="boardconfigsubdirs">2.3.2.2 Board Specific Configuration Sub-Directories</a></h4>
+<h4><a name="boardconfigsubdirs">2.4.2.2 Board Specific Configuration Sub-Directories</a></h4>
<p>
The <code>configs/</code><i>&lt;board-name&gt;</i><code>/</code> sub-directory holds all of the
files that are necessary to configure NuttX for the particular board.
@@ -676,7 +677,7 @@
</li>
</ul>
-<h3><a name="supportedboards">2.3.3 Supported Boards</a></h3>
+<h3><a name="supportedboards">2.4.3 Supported Boards</a></h3>
<p>
All of the specific boards supported by NuttX are identified below.
These are the specific <i>&lt;board-name&gt;</i>'s that may be used to configure NuttX
@@ -790,7 +791,7 @@
is available to build these toolchains under Linux or Cygwin.
</blockquote></small></p>
-<h2>2.5 <a name="DirStructDrivers">drivers</a></h2>
+<h2>2.5 <a name="DirStructDrivers">nuttx/drivers</a></h2>
<p>
This directory holds architecture-independent device drivers.
@@ -816,13 +817,7 @@ drivers/
`-- <i>(common driver source files)</i>
</pre></ul>
-<h2>2.6 <a name="DirStructExamples">examples</a></h2>
-
-<p>
- Example and test programs to build against.
-</p>
-
-<h2>2.7 <a name="DirStructFs">fs</a></h2>
+<h2>2.6 <a name="DirStructFs">nuttx/fs</a></h2>
<p>
This directory contains the NuttX file system.
@@ -840,7 +835,7 @@ fs/
`-- <i>(common file system source files)</i>
</pre></ul>
-<h2>2.8 <a name="DirStructGraphics">graphics</a></h2>
+<h2>2.7 <a name="DirStructGraphics">nuttx/graphics</a></h2>
<p>
This directory contains files for graphics/video support under NuttX.
@@ -857,7 +852,7 @@ graphics/
`-- <i>(common file system source files)</i>
</pre></ul>
-<h2>2.9 <a name="DirStructInclude">include</a></h2>
+<h2>2.8 <a name="DirStructInclude">nuttx/include</a></h2>
<p>
This directory holds NuttX header files.
Standard header files file retained in can be included in the <i>normal</i> fashion:
@@ -886,30 +881,64 @@ include/
`-- <i>(more standard header files)</i>
</per></ul>
-<h2>2.10 <a name="DirStructLib">lib</a></h2>
+<h2>2.9 <a name="DirStructLib">nuttx/lib</a></h2>
<p>
This directory holds a collection of standard libc-like functions with custom
interfaces into NuttX.
</p>
-<h2>2.11 <a name="DirStructLibXX">libxx</a></h2>
+<h2>2.10 <a name="DirStructLibXX">nuttx/libxx</a></h2>
<p>
This directory holds a tiny, minimal standard std C++ that can be used to
build some, simple C++ applications in NuttX.
</p>
-<h2>2.12 <a name="DirStructMm">mm</a></h2>
+<h2>2.11 <a name="DirStructMm">nuttx/mm</a></h2>
<p>
This is the NuttX memory manager.
</p>
-<h2>2.13 <a name="DirStructNet">net</a></h2>
+<h2>2.12 <a name="DirStructNet">nuttx/net</a></h2>
<p>
This directory contains the implementation of the socket APIs.
The subdirectory, <code>uip</code> contains the uIP port.
</P>
-<h2>2.14 <a name="DirStructNetUtils">netutils</a></h2>
+<h2>2.13 <a name="DirStructSched">nuttx/sched</a></h2>
+<p>
+ The files forming core of the NuttX RTOS reside here.
+</p>
+
+<h2>2.14 <a name="DirStructTools">nuttx/tools</a></h2>
+<p>
+ This directory holds a collection of tools and scripts to simplify
+ configuring, building and maintaining NuttX.
+</p>
+<ul><pre>
+tools/
+|-- Makefile.mkconfig
+|-- configure.sh
+|-- incdir.sh
+|-- indent.sh
+|-- link.sh
+|-- mkconfig.c
+|-- mkdeps.sh
+|-- mkimage.sh
+|-- mknulldeps.sh
+|-- mkromfsimg.sh
+|-- unlink.sh
+|-- winlink.sh
+`-- zipme
+</pre></ul>
+
+<h2>2.15 <a name="topmakefile">nuttx/Makefile</a></h2>
+<p>
+ The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control
+ logic to build NuttX.
+ Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>.
+</p>
+
+<h2>2.16 <a name="DirStructNetUtils">apps/netutils</a></h2>
<p>
This directory contains most of the network applications.
Some of these are original with NuttX (like tftpc and dhcpd) and others were leveraged from the uIP-1.0 apps directory.
@@ -951,38 +980,14 @@ netutils/
`-- <i>(netutils common files)</i>
</pre></ul>
-<h2>2.15 <a name="DirStructSched">sched</a></h2>
+<h2>2.17 <a name="DirStructNshLib">apps/nshlib</a></h2>
<p>
- The files forming core of the NuttX RTOS reside here.
+ This directory contains for the core of the NuttShell (NSH) application.
</p>
-<h2>2.16 <a name="DirStructTools">tools</a></h2>
+<h2>2.18 <a name="DirStructExamples">apps/examples</a></h2>
<p>
- This directory holds a collection of tools and scripts to simplify
- configuring, building and maintaining NuttX.
-</p>
-<ul><pre>
-tools/
-|-- Makefile.mkconfig
-|-- configure.sh
-|-- incdir.sh
-|-- indent.sh
-|-- link.sh
-|-- mkconfig.c
-|-- mkdeps.sh
-|-- mkimage.sh
-|-- mknulldeps.sh
-|-- mkromfsimg.sh
-|-- unlink.sh
-|-- winlink.sh
-`-- zipme
-</pre></ul>
-
-<h2>2.17 <a name="topmakefile">Makefile</a></h2>
-<p>
- The top-level <code>Makefile</code> in the <code>${TOPDIR}</code> directory contains all of the top-level control
- logic to build NuttX.
- Use of this <code>Makefile</code> to build NuttX is described <a href="#buildingnuttx">below</a>.
+ Example and test programs to build against.
</p>
<table width ="100%">
@@ -2663,10 +2668,9 @@ extern void up_ledoff(int led);
<ul>
<li>
<p>
- <code>CONFIG_APP_DIR</code>: Ldentifies the directory that builds the application to link with NuttX.
- This symbol must be assigned to the path to the application build directory <i>relative</i> to the NuttX top build direcory.
- As an an example, there are several example applicatins in the NuttX <code>examples/</code> sub-directory.
- To use one of these example applications, say <code>nsh</code>, you would set <code>CONFIG_APP_DIR=examples/nsh</code>.
+ <code>CONFIG_APP_DIR</code>: Identifies the directory that builds the application to link with NuttX.
+ This symbol must be assigned to the path to the application build directory <i>relative</i> to the NuttX top build directory.
+ If the application resides in the top-level <code>apps</code> directory, it is not necessary to define <code>CONFIG_APP_DIR</code>.
If you had an application directory and the NuttX directory both within another directory like this:
<ul><pre>
build
@@ -2874,7 +2878,7 @@ build
<li>
<code>CONFIG_NXFLAT</code>: Enable support for the NXFLAT binary format.
This format will support execution of NuttX binaries located
- in a ROMFS filesystem (see <code>examples/nxflat</code>).
+ in a ROMFS filesystem (see <code>apps/examples/nxflat</code>).
</li>
<li>
<code>CONFIG_SCHED_WORKQUEUE</code>: Create a dedicated "worker" thread to
diff --git a/nuttx/Documentation/README.html b/nuttx/Documentation/README.html
index 63f83166b..eff38044d 100755
--- a/nuttx/Documentation/README.html
+++ b/nuttx/Documentation/README.html
@@ -165,9 +165,6 @@
| | `- <a href="nuttx/configs/README.txt?view=log"><b><i>README.txt</i></b></a>
| |- drivers/
| | `- <a href="nuttx/drivers/README.txt?view=log"><b><i>README.txt</i></b></a>
- | |- examples/
- | | |- <a href="nuttx/examples/pashello/README.txt?view=log">pashello/README.txt</a>
- | | `- <a href="nuttx/examples/README.txt?view=log"><b><i>README.txt</i></b></a>
| |- graphics/
| | `- <a href="nuttx/graphics/README.txt?view=log"><b><i>README.txt</i></b></a>
| |- libxx/
@@ -180,6 +177,9 @@
| `- <a href="apps/netutils/README?view=log"><b><i>README</i></b></a>
|- nshlib/
| |- <a href="apps/nshlib/README.txt?view=log"><b><i>README.txt</i></b></a>
+ |- examples/
+ | |- <a href="apps/examples/pashello/README.txt?view=log">pashello/README.txt</a>
+ | `- <a href="apps/examples/README.txt?view=log"><b><i>README.txt</i></b></a>
`- vsn/
|- <a href="apps/vsn/free/README.txt?view=log">free/README.txt</a>
|- <a href="apps/vsn/hello/README.txt?view=log">hello/README.txt</a>
diff --git a/nuttx/Documentation/UsbTrace.html b/nuttx/Documentation/UsbTrace.html
index ac1a7e750..2f08f9ef2 100755
--- a/nuttx/Documentation/UsbTrace.html
+++ b/nuttx/Documentation/UsbTrace.html
@@ -9,7 +9,7 @@
<tr align="center" bgcolor="#e4e4e4">
<td>
<h1><big><font color="#3c34ec"><i>NuttX USB Device Trace</i></font></big></h1>
- <p>Last Updated: February 25, 2010</p>
+ <p>Last Updated: March 20, 2011</p>
</td>
</tr>
</table>
@@ -134,7 +134,7 @@
Otherwise, the trace data goes to console.
<p>
<p><b>Example</b>.
- Here is an example of USB trace output using <code>examples/usbserial</code> for an LPC1768 platform with the following NuttX configuration settings:
+ Here is an example of USB trace output using <code>apps/examples/usbserial</code> for an LPC1768 platform with the following NuttX configuration settings:
</p>
<ul>
<li><code>CONFIG_DEBUG</code>, <code>CONFIG_DEBUG_VERBOSE</code>, <code>CONFIG_USB</code>
diff --git a/nuttx/Makefile b/nuttx/Makefile
index fef629ee2..22102a91b 100644
--- a/nuttx/Makefile
+++ b/nuttx/Makefile
@@ -62,23 +62,23 @@ BOARD_DIR = configs/$(CONFIG_ARCH_BOARD)
# Add-on directories. These may or may not be in place in the
# NuttX source tree (they must be specifically installed)
#
-# APPS_LOC can be over-ridden from the command line:
+# APPLOC can be over-ridden from the command line or in the .config file:
ifeq ($(CONFIG_BUILTIN_APPS),y)
-ifeq ($(APPS_LOC),)
-APPS_LOC = ../apps
+ifeq ($(APPLOC),)
+APPLOC = ../apps
endif
-APPS_DIR := ${shell if [ -r $(APPS_LOC)/Makefile ]; then echo "$(APPS_LOC)"; fi}
+APPDIR := ${shell if [ -r $(APPLOC)/Makefile ]; then echo "$(APPLOC)"; fi}
endif
PCODE_DIR := ${shell if [ -r pcode/Makefile ]; then echo "pcode"; fi}
-ADDON_DIRS := $(PCODE_DIR) $(NX_DIR) $(APPS_DIR)
+ADDON_DIRS := $(PCODE_DIR) $(NX_DIR) $(APPDIR)
# FSDIRS depend on file descriptor support; NONFSDIRS do not
# (except for parts of FSDIRS). We will exclude FSDIRS
# from the build if file descriptor support is disabled
-NONFSDIRS = sched lib $(ARCH_SRC) mm $(CONFIG_APP_DIR) $(ADDON_DIRS)
+NONFSDIRS = sched lib $(ARCH_SRC) mm $(ADDON_DIRS)
FSDIRS = fs drivers binfmt
CONTEXTDIRS =
@@ -87,6 +87,10 @@ NONFSDIRS += graphics
CONTEXTDIRS += graphics
endif
+ifneq ($(CONFIG_APP_DIR),)
+NONFSDIRS = $(CONFIG_APP_DIR)
+endif
+
# CLEANDIRS are the directories that will clean in. These are
# all directories that we know about.
# MAKEDIRS are the directories in which we will build targets
@@ -99,7 +103,7 @@ ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0)
MAKEDIRS += fs
endif
ifeq ($(CONFIG_NET),y)
-MAKEDIRS += drivers
+MAKEDIRS += net
endif
else
MAKEDIRS += $(FSDIRS)
@@ -123,7 +127,7 @@ endif
# is disabled.
LINKLIBS = sched/libsched$(LIBEXT) $(ARCH_SRC)/libarch$(LIBEXT) mm/libmm$(LIBEXT) \
- lib/liblib$(LIBEXT) $(CONFIG_APP_DIR)/libapp$(LIBEXT)
+ lib/liblib$(LIBEXT)
# Add libraries for network support. CXX, CXXFLAGS, and COMPILEXX must
# be defined in Make.defs for this to work!
@@ -132,12 +136,18 @@ ifeq ($(CONFIG_HAVE_CXX),y)
LINKLIBS += libxx/liblibxx$(LIBEXT)
endif
+# Add application-specific library
+
+ifneq ($(CONFIG_APP_DIR),)
+LINKLIBS = $(CONFIG_APP_DIR)/libapp$(LIBEXT)
+endif
+
# Add library for application support
# Always compile the framework which includes exec_nuttapp if users
# or nuttX applications are to be included.
ifeq ($(CONFIG_BUILTIN_APPS),y)
-LINKLIBS += $(APPS_DIR)/libapps$(LIBEXT)
+LINKLIBS += $(APPDIR)/libapps$(LIBEXT)
endif
# Add libraries for network support
@@ -259,8 +269,8 @@ fs/libfs$(LIBEXT): context
drivers/libdrivers$(LIBEXT): context
@$(MAKE) -C drivers TOPDIR="$(TOPDIR)" libdrivers$(LIBEXT)
-$(APPS_DIR)/libapps$(LIBEXT): context
- @$(MAKE) -C $(APPS_DIR) TOPDIR="$(TOPDIR)" libapps$(LIBEXT)
+$(APPDIR)/libapps$(LIBEXT): context
+ @$(MAKE) -C $(APPDIR) TOPDIR="$(TOPDIR)" libapps$(LIBEXT)
binfmt/libbinfmt$(LIBEXT): context
@$(MAKE) -C binfmt TOPDIR="$(TOPDIR)" libbinfmt$(LIBEXT)
diff --git a/nuttx/TODO b/nuttx/TODO
index 044c42d18..ef73e2e80 100644
--- a/nuttx/TODO
+++ b/nuttx/TODO
@@ -18,7 +18,6 @@ nuttx/
(1) Pascal add-on (pcode/)
(1) Documentation (Documentation/)
(5) Build system / Toolchains
- (3) Other Applications & Tests (examples/)
(7) Linux/Cywgin simulation (arch/sim)
(3) ARM (arch/arm/)
(1) ARM/C5471 (arch/arm/src/c5471/)
@@ -42,6 +41,7 @@ apps/
(5) Network Utilities (apps/netutils/)
(4) NuttShell (NSH) (apps/nshlib)
+ (3) Other Applications & Tests (apps/examples/)
o Task/Scheduler (sched/)
^^^^^^^^^^^^^^^^^^^^^^^
@@ -152,7 +152,7 @@ o C++ Support
o Binary loaders (binfmt/)
^^^^^^^^^^^^^^^^^^^^^^^^
- Description: Not all of the NXFLAT test under examples/nxflat are working.
+ Description: Not all of the NXFLAT test under apps/examples/nxflat are working.
Most simply do not compile yet. tests/mutex runs okay but
outputs garbage on completion.
Status: Open
@@ -454,7 +454,7 @@ o Graphics subystem (graphics/)
Status: Open
Priority: Medium
- Description: The examples/nx test using lcd/p14201.c and the configs/lm3s6965-ek
+ Description: The apps/examples/nx test using lcd/p14201.c and the configs/lm3s6965-ek
configuration shows two single pixel-wide anomalies. One along
column zero is clearly caused by the NX windowing logic. It is
not certain if these are consequences of the 4bpp logic or if these
@@ -516,26 +516,6 @@ o Build system
Priority: High if you are using NX and a newer compiler.
-o Other Applications & Tests (examples/)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
- Description: The redirection test (part of examples/pipe) terminates
- incorrectly on the Cywgin-based simulation platform (but works
- fine on the Linux-based simulation platform).
- Status: Open
- Priority: Low
-
- Description: examples/wget is untested on the target (it has been tested
- on the host, but not in the target using the uIP resolv logic).
- Status: Open
- Priority: Med
-
- Description: examples/sendmail is untested on the target (it has been tested
- on the host, but not on the target.
- Status: Open
- Priority: Med
-
-
o Linux/Cywgin simulation (arch/sim)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -840,7 +820,7 @@ o ARM/STM32 (arch/arm/src/stm32/)
Priority: Low
Description A USB device-side driver is in place but not well tested. At
- present, the examples/usbserial test sometimes fails. The situation
+ present, the apps/examples/usbserial test sometimes fails. The situation
that causes the failure is:
- Host-side of the test started after the target side sends the
@@ -897,8 +877,8 @@ o 8051 / MCS51 (arch/8051/)
sched/gmtime_r.c aroud lines 184 and 185
sched/clock_initialize.c at line 107
sched/pthread_create.c at 330
- examples/ostest/barrier.c around lines 53 and 74
- examples/ostest/sighand.c at 225 and 244
+ apps/examples/ostest/barrier.c around lines 53 and 74
+ apps/examples/ostest/sighand.c at 225 and 244
driver/serial.c in usleep calls around 347 and 354
Status: Open. Update: These were reviewed during the hcs12 port. The
hcs12 also has 16-bit integer types (if -mshort is in the CFLAGS).
@@ -1075,7 +1055,7 @@ o z16 (arch/z16)
interim for system testing.
Description: The system delays do not appear to be correct with the
- examples/ostest/timedmqueue.c test.
+ apps/examples/ostest/timedmqueue.c test.
Status: Open
Priority: Medium-High
@@ -1178,7 +1158,7 @@ o Network Utilities (apps/netutils/)
Description: Not all THTTPD features/options have been verified. In particular, there is no
test case of a CGI program receiving POST input. Only the configuration of
- examples/thttpd has been tested.
+ apps/examples/thttpd has been tested.
Status: Open
Priority: Medium
@@ -1221,4 +1201,23 @@ o NuttShell (NSH) (apps/nshlib)
Status: Open
Priority: Low (enhancement)
+o Other Applications & Tests (apps/examples/)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ Description: The redirection test (part of examples/pipe) terminates
+ incorrectly on the Cywgin-based simulation platform (but works
+ fine on the Linux-based simulation platform).
+ Status: Open
+ Priority: Low
+
+ Description: examples/wget is untested on the target (it has been tested
+ on the host, but not in the target using the uIP resolv logic).
+ Status: Open
+ Priority: Med
+
+ Description: examples/sendmail is untested on the target (it has been tested
+ on the host, but not on the target.
+ Status: Open
+ Priority: Med
+
diff --git a/nuttx/configs/avr32dev1/nsh/appconfig b/nuttx/configs/avr32dev1/nsh/appconfig
index d1701eff2..1dc56fabb 100644
--- a/nuttx/configs/avr32dev1/nsh/appconfig
+++ b/nuttx/configs/avr32dev1/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# avrdev1/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/avr32dev1/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/avr32dev1/nsh/defconfig b/nuttx/configs/avr32dev1/nsh/defconfig
index 27e791eba..4be6e47ee 100755
--- a/nuttx/configs/avr32dev1/nsh/defconfig
+++ b/nuttx/configs/avr32dev1/nsh/defconfig
@@ -305,7 +305,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/examples/dhcpd/Makefile.host b/nuttx/configs/avr32dev1/ostest/appconfig
index 8e89a1594..b81d321fa 100644
--- a/nuttx/examples/dhcpd/Makefile.host
+++ b/nuttx/configs/avr32dev1/ostest/appconfig
@@ -1,7 +1,7 @@
############################################################################
-# examples/dhcpd/Makefile.host
+# configs/avr32dev1/ostest/appconfig
#
-# Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -33,30 +33,7 @@
#
############################################################################
-WD = ${shell pwd}
-TOPDIR = $(WD)/../..
-include $(TOPDIR)/Make.defs
-
-OBJS = host.o1 dhcpd.o1
-BIN = dhcpd
-
-HOSTCFLAGS += -DCONFIG_NETUTILS_DHCPD_HOST=1
-HOSTCFLAGS += -DCONFIG_NETUTILS_DHCPD_INTERFACE=\"eth1\"
-HOSTCFLAGS += -DHAVE_SO_REUSEADDR=1
-HOSTCFLAGS += -DHAVE_SO_BROADCAST=1
-
-VPATH = $(TOPDIR)/netutils/dhcpd:.
-
-all: $(BIN)
-.PHONY: clean context clean_context distclean
-
-$(OBJS): %.o1: %.c
- $(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
-
-$(BIN): $(OBJS)
- $(HOSTCC) $(HOSTLDFLAGS) $^ -o $@
-
-clean:
- @rm -f $(BIN).* *.o1 *~
+# Path to example in apps/examples containing the user_start entry point
+CONFIGURED_APPS += examples/ostest=.built_always
diff --git a/nuttx/configs/avr32dev1/ostest/defconfig b/nuttx/configs/avr32dev1/ostest/defconfig
index 58eb351f7..ae27af68b 100755
--- a/nuttx/configs/avr32dev1/ostest/defconfig
+++ b/nuttx/configs/avr32dev1/ostest/defconfig
@@ -305,7 +305,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/c5471evm/httpd/appconfig b/nuttx/configs/c5471evm/httpd/appconfig
index a4be53aec..fb6909413 100644
--- a/nuttx/configs/c5471evm/httpd/appconfig
+++ b/nuttx/configs/c5471evm/httpd/appconfig
@@ -1,41 +1,46 @@
-############################################################################
-# c5471evm/httpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/webserver=.built_always
+############################################################################
+# configs/c5471evm/httpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/uip=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/webserver=.built_always
diff --git a/nuttx/configs/c5471evm/httpd/defconfig b/nuttx/configs/c5471evm/httpd/defconfig
index 061f784c4..4e94cef97 100644
--- a/nuttx/configs/c5471evm/httpd/defconfig
+++ b/nuttx/configs/c5471evm/httpd/defconfig
@@ -200,7 +200,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/uip
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/c5471evm/nettest/appconfig b/nuttx/configs/c5471evm/nettest/appconfig
index ea921b2f2..351987da6 100644
--- a/nuttx/configs/c5471evm/nettest/appconfig
+++ b/nuttx/configs/c5471evm/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# c5471evm/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/c5471evm/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/c5471evm/nettest/defconfig b/nuttx/configs/c5471evm/nettest/defconfig
index c0baa3a0b..f262d5001 100644
--- a/nuttx/configs/c5471evm/nettest/defconfig
+++ b/nuttx/configs/c5471evm/nettest/defconfig
@@ -200,7 +200,7 @@ CONFIG_NET_C5471_BASET10=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/c5471evm/nsh/appconfig b/nuttx/configs/c5471evm/nsh/appconfig
index ab74c03ad..7cef43dc4 100644
--- a/nuttx/configs/c5471evm/nsh/appconfig
+++ b/nuttx/configs/c5471evm/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# c5471evm/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/c5471evm/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/c5471evm/nsh/defconfig b/nuttx/configs/c5471evm/nsh/defconfig
index 6014b99ff..065f29d68 100644
--- a/nuttx/configs/c5471evm/nsh/defconfig
+++ b/nuttx/configs/c5471evm/nsh/defconfig
@@ -200,7 +200,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/examples/mm/Makefile b/nuttx/configs/c5471evm/ostest/appconfig
index 7ec3d4802..3e025698c 100644
--- a/nuttx/examples/mm/Makefile
+++ b/nuttx/configs/c5471evm/ostest/appconfig
@@ -1,5 +1,5 @@
############################################################################
-# examples/mm/Makefile
+# configs/c5471evm/ostest/appconfig
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
@@ -33,43 +33,7 @@
#
############################################################################
--include $(TOPDIR)/.config
--include $(TOPDIR)/Make.defs
+# Path to example in apps/examples containing the user_start entry point
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = mm_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
+CONFIGURED_APPS += examples/ostest=.built_always
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/configs/c5471evm/ostest/defconfig b/nuttx/configs/c5471evm/ostest/defconfig
index 2b8e54bbe..a0e2d355e 100644
--- a/nuttx/configs/c5471evm/ostest/defconfig
+++ b/nuttx/configs/c5471evm/ostest/defconfig
@@ -200,7 +200,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/examples/hidkbd/Makefile b/nuttx/configs/demo9s12ne64/ostest/appconfig
index 97917b350..a800665c2 100644
--- a/nuttx/examples/hidkbd/Makefile
+++ b/nuttx/configs/demo9s12ne64/ostest/appconfig
@@ -1,5 +1,5 @@
############################################################################
-# examples/hidkbd/Makefile
+# configs/demo9s12ne64/ostest/appconfig
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
@@ -33,43 +33,7 @@
#
############################################################################
--include $(TOPDIR)/.config
--include $(TOPDIR)/Make.defs
+# Path to example in apps/examples containing the user_start entry point
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = hidkbd_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
+CONFIGURED_APPS += examples/ostest=.built_always
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/configs/demo9s12ne64/ostest/defconfig b/nuttx/configs/demo9s12ne64/ostest/defconfig
index c986c1a54..2f5f7cf53 100755
--- a/nuttx/configs/demo9s12ne64/ostest/defconfig
+++ b/nuttx/configs/demo9s12ne64/ostest/defconfig
@@ -283,7 +283,7 @@ CONFIG_PASS1_OBJECT=init.r
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/detron/hidkbd/appconfig b/nuttx/configs/detron/hidkbd/appconfig
new file mode 100644
index 000000000..0379e253e
--- /dev/null
+++ b/nuttx/configs/detron/hidkbd/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/detron/hidkbd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/hidkbd=.built_always
+
diff --git a/nuttx/configs/detron/hidkbd/defconfig b/nuttx/configs/detron/hidkbd/defconfig
index f432dc2ce..d116d1fab 100755
--- a/nuttx/configs/detron/hidkbd/defconfig
+++ b/nuttx/configs/detron/hidkbd/defconfig
@@ -323,7 +323,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/hidkbd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/detron/nsh/appconfig b/nuttx/configs/detron/nsh/appconfig
index a4d5dc64c..f0e6ba334 100644
--- a/nuttx/configs/detron/nsh/appconfig
+++ b/nuttx/configs/detron/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# detron/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/detron/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/detron/nsh/defconfig b/nuttx/configs/detron/nsh/defconfig
index af2e99c27..4ae3f4bd6 100755
--- a/nuttx/configs/detron/nsh/defconfig
+++ b/nuttx/configs/detron/nsh/defconfig
@@ -327,7 +327,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/detron/ostest/appconfig b/nuttx/configs/detron/ostest/appconfig
new file mode 100644
index 000000000..a9566f416
--- /dev/null
+++ b/nuttx/configs/detron/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/detron/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/detron/ostest/defconfig b/nuttx/configs/detron/ostest/defconfig
index 9f45c1c05..b418e996f 100755
--- a/nuttx/configs/detron/ostest/defconfig
+++ b/nuttx/configs/detron/ostest/defconfig
@@ -319,7 +319,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/detron/wlan/appconfig b/nuttx/configs/detron/wlan/appconfig
new file mode 100644
index 000000000..b171bebcb
--- /dev/null
+++ b/nuttx/configs/detron/wlan/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/detron/wlan/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/wlan=.built_always
+
diff --git a/nuttx/configs/detron/wlan/defconfig b/nuttx/configs/detron/wlan/defconfig
index aa298ae0e..ddfcd4443 100755
--- a/nuttx/configs/detron/wlan/defconfig
+++ b/nuttx/configs/detron/wlan/defconfig
@@ -326,7 +326,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/wlan
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ea3131/nsh/appconfig b/nuttx/configs/ea3131/nsh/appconfig
index 85f04b727..5dd67d585 100644
--- a/nuttx/configs/ea3131/nsh/appconfig
+++ b/nuttx/configs/ea3131/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# ea3131/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/ea3131/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/ea3131/nsh/defconfig b/nuttx/configs/ea3131/nsh/defconfig
index a6f47266e..e79f4cee1 100755
--- a/nuttx/configs/ea3131/nsh/defconfig
+++ b/nuttx/configs/ea3131/nsh/defconfig
@@ -290,7 +290,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ea3131/ostest/appconfig b/nuttx/configs/ea3131/ostest/appconfig
new file mode 100644
index 000000000..12382df55
--- /dev/null
+++ b/nuttx/configs/ea3131/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ea3131/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/ea3131/ostest/defconfig b/nuttx/configs/ea3131/ostest/defconfig
index 2f81e3961..7c47da43f 100755
--- a/nuttx/configs/ea3131/ostest/defconfig
+++ b/nuttx/configs/ea3131/ostest/defconfig
@@ -290,7 +290,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/examples/poll/Makefile.host b/nuttx/configs/ea3131/pgnsh/appconfig
index 151400efc..33acab58e 100644
--- a/nuttx/examples/poll/Makefile.host
+++ b/nuttx/configs/ea3131/pgnsh/appconfig
@@ -1,7 +1,7 @@
############################################################################
-# examples/poll/Makefile.host
+# configs/ea3131/pgnsh/appconfig
#
-# Copyright (C) 2008, 2009 Gregory Nutt. All rights reserved.
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
#
# Redistribution and use in source and binary forms, with or without
@@ -33,19 +33,12 @@
#
############################################################################
-include $(TOPDIR)/.config
-include $(TOPDIR)/Make.defs
+# Path to example in apps/examples containing the user_start entry point
-SRC = host.c
-BIN = host
+CONFIGURED_APPS += examples/nsh=.built_always
-DEFINES = -DTARGETIP=\"$(TARGETIP)\"
+# The NSH library
-all: $(BIN)
+CONFIGURED_APPS += nshlib=.built_always
-$(BIN): $(SRC)
- $(HOSTCC) $(HOSTCFLAGS) $(DEFINES) $^ -o $@
-clean:
- @rm -f $(BIN) *~ .*.swp *.o
- $(call CLEAN)
diff --git a/nuttx/configs/ea3131/pgnsh/defconfig b/nuttx/configs/ea3131/pgnsh/defconfig
index 5d4a54ab1..33b378224 100755
--- a/nuttx/configs/ea3131/pgnsh/defconfig
+++ b/nuttx/configs/ea3131/pgnsh/defconfig
@@ -297,7 +297,7 @@ CONFIG_PASS1_OBJECT=locked.r
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ea3131/usbserial/appconfig b/nuttx/configs/ea3131/usbserial/appconfig
new file mode 100644
index 000000000..c0721520c
--- /dev/null
+++ b/nuttx/configs/ea3131/usbserial/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ea3131/usbserial/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbserial=.built_always
+
diff --git a/nuttx/configs/ea3131/usbserial/defconfig b/nuttx/configs/ea3131/usbserial/defconfig
index d4df3b0c5..060e096e1 100755
--- a/nuttx/configs/ea3131/usbserial/defconfig
+++ b/nuttx/configs/ea3131/usbserial/defconfig
@@ -290,7 +290,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbserial
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_FS=n
diff --git a/nuttx/configs/ea3131/usbstorage/appconfig b/nuttx/configs/ea3131/usbstorage/appconfig
new file mode 100644
index 000000000..097d44ced
--- /dev/null
+++ b/nuttx/configs/ea3131/usbstorage/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ea3131/usbstorage/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbstorage=.built_always
+
diff --git a/nuttx/configs/ea3131/usbstorage/defconfig b/nuttx/configs/ea3131/usbstorage/defconfig
index 273510689..34e7609f9 100755
--- a/nuttx/configs/ea3131/usbstorage/defconfig
+++ b/nuttx/configs/ea3131/usbstorage/defconfig
@@ -290,7 +290,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbstorage
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_FS=n
diff --git a/nuttx/configs/eagle100/httpd/appconfig b/nuttx/configs/eagle100/httpd/appconfig
index 879749364..be6817d95 100644
--- a/nuttx/configs/eagle100/httpd/appconfig
+++ b/nuttx/configs/eagle100/httpd/appconfig
@@ -1,41 +1,46 @@
-############################################################################
-# eagle100/httpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/webserver=.built_always
+############################################################################
+# configs/eagle100/httpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/uip=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/webserver=.built_always
diff --git a/nuttx/configs/eagle100/httpd/defconfig b/nuttx/configs/eagle100/httpd/defconfig
index 110b9c0c8..129285cab 100644
--- a/nuttx/configs/eagle100/httpd/defconfig
+++ b/nuttx/configs/eagle100/httpd/defconfig
@@ -268,7 +268,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/uip
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/eagle100/nettest/appconfig b/nuttx/configs/eagle100/nettest/appconfig
index 0ee4fa816..14df91816 100644
--- a/nuttx/configs/eagle100/nettest/appconfig
+++ b/nuttx/configs/eagle100/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# eagle100/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/eagle100/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/eagle100/nettest/defconfig b/nuttx/configs/eagle100/nettest/defconfig
index 07d61b821..05705add5 100644
--- a/nuttx/configs/eagle100/nettest/defconfig
+++ b/nuttx/configs/eagle100/nettest/defconfig
@@ -268,7 +268,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/eagle100/nsh/appconfig b/nuttx/configs/eagle100/nsh/appconfig
index 91ae18de2..8879488da 100644
--- a/nuttx/configs/eagle100/nsh/appconfig
+++ b/nuttx/configs/eagle100/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# eagle100/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/eagle100/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/eagle100/nsh/defconfig b/nuttx/configs/eagle100/nsh/defconfig
index 8f2bdfe65..14b28a5dc 100644
--- a/nuttx/configs/eagle100/nsh/defconfig
+++ b/nuttx/configs/eagle100/nsh/defconfig
@@ -268,7 +268,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/eagle100/nxflat/appconfig b/nuttx/configs/eagle100/nxflat/appconfig
new file mode 100644
index 000000000..fb40ad522
--- /dev/null
+++ b/nuttx/configs/eagle100/nxflat/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/eagle100/nxflat/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nxflat=.built_always
+
diff --git a/nuttx/configs/eagle100/nxflat/defconfig b/nuttx/configs/eagle100/nxflat/defconfig
index 55edb913b..7cf4e2835 100644
--- a/nuttx/configs/eagle100/nxflat/defconfig
+++ b/nuttx/configs/eagle100/nxflat/defconfig
@@ -265,7 +265,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nxflat
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/eagle100/ostest/appconfig b/nuttx/configs/eagle100/ostest/appconfig
new file mode 100644
index 000000000..cfb2f1dab
--- /dev/null
+++ b/nuttx/configs/eagle100/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/eagle100/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/eagle100/ostest/defconfig b/nuttx/configs/eagle100/ostest/defconfig
index e2fb3e6fa..6d9a2a3b5 100644
--- a/nuttx/configs/eagle100/ostest/defconfig
+++ b/nuttx/configs/eagle100/ostest/defconfig
@@ -274,7 +274,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/eagle100/thttpd/appconfig b/nuttx/configs/eagle100/thttpd/appconfig
index 66db0879d..9be24790f 100644
--- a/nuttx/configs/eagle100/thttpd/appconfig
+++ b/nuttx/configs/eagle100/thttpd/appconfig
@@ -1,39 +1,44 @@
-############################################################################
-# eagle100/thttpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/thttpd=.built_always
+############################################################################
+# configs/eagle100/thttpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/thttpd=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/thttpd=.built_always
diff --git a/nuttx/configs/eagle100/thttpd/defconfig b/nuttx/configs/eagle100/thttpd/defconfig
index 09abbd97c..c5ac38827 100644
--- a/nuttx/configs/eagle100/thttpd/defconfig
+++ b/nuttx/configs/eagle100/thttpd/defconfig
@@ -271,7 +271,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/thttpd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200kitg/ostest/appconfig b/nuttx/configs/ez80f910200kitg/ostest/appconfig
new file mode 100644
index 000000000..127a5b4ca
--- /dev/null
+++ b/nuttx/configs/ez80f910200kitg/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ez80f910200kitg/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/ez80f910200kitg/ostest/defconfig b/nuttx/configs/ez80f910200kitg/ostest/defconfig
index a7ac41c99..031dae4cd 100644
--- a/nuttx/configs/ez80f910200kitg/ostest/defconfig
+++ b/nuttx/configs/ez80f910200kitg/ostest/defconfig
@@ -234,7 +234,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/dhcpd/appconfig b/nuttx/configs/ez80f910200zco/dhcpd/appconfig
index de16dcb82..9c35c100d 100644
--- a/nuttx/configs/ez80f910200zco/dhcpd/appconfig
+++ b/nuttx/configs/ez80f910200zco/dhcpd/appconfig
@@ -1,39 +1,44 @@
-############################################################################
-# ez80f910200zco/dhcpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpd=.built_always
+############################################################################
+# configs/ez80f910200zco/dhcpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/dhcpd=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpd=.built_always
diff --git a/nuttx/configs/ez80f910200zco/dhcpd/defconfig b/nuttx/configs/ez80f910200zco/dhcpd/defconfig
index 0b9b60c4c..475d12e25 100644
--- a/nuttx/configs/ez80f910200zco/dhcpd/defconfig
+++ b/nuttx/configs/ez80f910200zco/dhcpd/defconfig
@@ -239,7 +239,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/dhcpd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/httpd/appconfig b/nuttx/configs/ez80f910200zco/httpd/appconfig
index 202a3c93e..15f42ea01 100644
--- a/nuttx/configs/ez80f910200zco/httpd/appconfig
+++ b/nuttx/configs/ez80f910200zco/httpd/appconfig
@@ -1,42 +1,47 @@
-############################################################################
-# ez80f910200zco/httpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/webserver=.built_always
-
+############################################################################
+# configs/ez80f910200zco/httpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/uip=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/webserver=.built_always
+
diff --git a/nuttx/configs/ez80f910200zco/httpd/defconfig b/nuttx/configs/ez80f910200zco/httpd/defconfig
index d12b966f1..ff68c80c3 100644
--- a/nuttx/configs/ez80f910200zco/httpd/defconfig
+++ b/nuttx/configs/ez80f910200zco/httpd/defconfig
@@ -239,7 +239,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/uip
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/nettest/appconfig b/nuttx/configs/ez80f910200zco/nettest/appconfig
index 63c1a122f..32cb840ec 100644
--- a/nuttx/configs/ez80f910200zco/nettest/appconfig
+++ b/nuttx/configs/ez80f910200zco/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# ez80f910200zco/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/ez80f910200zco/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/ez80f910200zco/nettest/defconfig b/nuttx/configs/ez80f910200zco/nettest/defconfig
index 22774b4ec..22713e280 100644
--- a/nuttx/configs/ez80f910200zco/nettest/defconfig
+++ b/nuttx/configs/ez80f910200zco/nettest/defconfig
@@ -239,7 +239,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/nsh/appconfig b/nuttx/configs/ez80f910200zco/nsh/appconfig
index 267f96a57..edc9e3d9c 100644
--- a/nuttx/configs/ez80f910200zco/nsh/appconfig
+++ b/nuttx/configs/ez80f910200zco/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# ez80f910200zco/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/ez80f910200zco/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/ez80f910200zco/nsh/defconfig b/nuttx/configs/ez80f910200zco/nsh/defconfig
index 238f9d985..fda8b9fb0 100644
--- a/nuttx/configs/ez80f910200zco/nsh/defconfig
+++ b/nuttx/configs/ez80f910200zco/nsh/defconfig
@@ -239,7 +239,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/ostest/appconfig b/nuttx/configs/ez80f910200zco/ostest/appconfig
new file mode 100644
index 000000000..e461a8cc2
--- /dev/null
+++ b/nuttx/configs/ez80f910200zco/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ez80f910200zco/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/ez80f910200zco/ostest/defconfig b/nuttx/configs/ez80f910200zco/ostest/defconfig
index 1be716ff8..fd2c7df58 100644
--- a/nuttx/configs/ez80f910200zco/ostest/defconfig
+++ b/nuttx/configs/ez80f910200zco/ostest/defconfig
@@ -237,7 +237,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ez80f910200zco/poll/appconfig b/nuttx/configs/ez80f910200zco/poll/appconfig
index 6968345b2..e01f62cc7 100644
--- a/nuttx/configs/ez80f910200zco/poll/appconfig
+++ b/nuttx/configs/ez80f910200zco/poll/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# ez80f910200zco/poll/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/ez80f910200zco/poll/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/poll=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/ez80f910200zco/poll/defconfig b/nuttx/configs/ez80f910200zco/poll/defconfig
index 755a5c93a..8546f5663 100644
--- a/nuttx/configs/ez80f910200zco/poll/defconfig
+++ b/nuttx/configs/ez80f910200zco/poll/defconfig
@@ -239,7 +239,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/poll
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s6965-ek/nsh/appconfig b/nuttx/configs/lm3s6965-ek/nsh/appconfig
index be88688cf..9e6be6aec 100644
--- a/nuttx/configs/lm3s6965-ek/nsh/appconfig
+++ b/nuttx/configs/lm3s6965-ek/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# lm3s6965-ek/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/lm3s6965-ek/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/lm3s6965-ek/nsh/defconfig b/nuttx/configs/lm3s6965-ek/nsh/defconfig
index 03b6c3534..71d9367ea 100755
--- a/nuttx/configs/lm3s6965-ek/nsh/defconfig
+++ b/nuttx/configs/lm3s6965-ek/nsh/defconfig
@@ -288,7 +288,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s6965-ek/nx/appconfig b/nuttx/configs/lm3s6965-ek/nx/appconfig
new file mode 100644
index 000000000..590dc5e64
--- /dev/null
+++ b/nuttx/configs/lm3s6965-ek/nx/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/lm3s6965-ek/nx/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nx=.built_always
+
diff --git a/nuttx/configs/lm3s6965-ek/nx/defconfig b/nuttx/configs/lm3s6965-ek/nx/defconfig
index f4f7a2353..a0afe732c 100755
--- a/nuttx/configs/lm3s6965-ek/nx/defconfig
+++ b/nuttx/configs/lm3s6965-ek/nx/defconfig
@@ -293,7 +293,7 @@ CONFIG_SPI_CMDDATA=y
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nx
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s6965-ek/ostest/appconfig b/nuttx/configs/lm3s6965-ek/ostest/appconfig
new file mode 100644
index 000000000..4ad0dfdde
--- /dev/null
+++ b/nuttx/configs/lm3s6965-ek/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/lm3s6965-ek/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/lm3s6965-ek/ostest/defconfig b/nuttx/configs/lm3s6965-ek/ostest/defconfig
index 13876f7a3..a51d3aa4a 100755
--- a/nuttx/configs/lm3s6965-ek/ostest/defconfig
+++ b/nuttx/configs/lm3s6965-ek/ostest/defconfig
@@ -288,7 +288,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s8962-ek/nsh/appconfig b/nuttx/configs/lm3s8962-ek/nsh/appconfig
index 4ab3e1ce2..3dd2ecbcc 100644
--- a/nuttx/configs/lm3s8962-ek/nsh/appconfig
+++ b/nuttx/configs/lm3s8962-ek/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# lm3s8962-ek/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/lm3s8962-ek/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/lm3s8962-ek/nsh/defconfig b/nuttx/configs/lm3s8962-ek/nsh/defconfig
index c3718a69a..eade135b6 100755
--- a/nuttx/configs/lm3s8962-ek/nsh/defconfig
+++ b/nuttx/configs/lm3s8962-ek/nsh/defconfig
@@ -288,7 +288,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s8962-ek/nx/appconfig b/nuttx/configs/lm3s8962-ek/nx/appconfig
new file mode 100644
index 000000000..8d1a5fe76
--- /dev/null
+++ b/nuttx/configs/lm3s8962-ek/nx/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/lm3s8962-ek/nx/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nx=.built_always
+
diff --git a/nuttx/configs/lm3s8962-ek/nx/defconfig b/nuttx/configs/lm3s8962-ek/nx/defconfig
index c34d4440d..326a28b49 100755
--- a/nuttx/configs/lm3s8962-ek/nx/defconfig
+++ b/nuttx/configs/lm3s8962-ek/nx/defconfig
@@ -293,7 +293,7 @@ CONFIG_SPI_CMDDATA=y
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nx
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/lm3s8962-ek/ostest/appconfig b/nuttx/configs/lm3s8962-ek/ostest/appconfig
new file mode 100644
index 000000000..4c38cd11c
--- /dev/null
+++ b/nuttx/configs/lm3s8962-ek/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/lm3s8962-ek/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/lm3s8962-ek/ostest/defconfig b/nuttx/configs/lm3s8962-ek/ostest/defconfig
index f434ea835..659b6a442 100755
--- a/nuttx/configs/lm3s8962-ek/ostest/defconfig
+++ b/nuttx/configs/lm3s8962-ek/ostest/defconfig
@@ -288,7 +288,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/m68332evb/appconfig b/nuttx/configs/m68332evb/appconfig
new file mode 100644
index 000000000..7acbc745a
--- /dev/null
+++ b/nuttx/configs/m68332evb/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/m68332evb/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/m68332evb/defconfig b/nuttx/configs/m68332evb/defconfig
index 83e09d881..06c188c85 100644
--- a/nuttx/configs/m68332evb/defconfig
+++ b/nuttx/configs/m68332evb/defconfig
@@ -167,7 +167,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mbed/hidkbd/appconfig b/nuttx/configs/mbed/hidkbd/appconfig
new file mode 100644
index 000000000..10058b079
--- /dev/null
+++ b/nuttx/configs/mbed/hidkbd/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/mbed/hidkbd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/hidkbd=.built_always
+
diff --git a/nuttx/configs/mbed/hidkbd/defconfig b/nuttx/configs/mbed/hidkbd/defconfig
index f66a96fa3..46ae66bdb 100644
--- a/nuttx/configs/mbed/hidkbd/defconfig
+++ b/nuttx/configs/mbed/hidkbd/defconfig
@@ -326,7 +326,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/hidkbd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mbed/nsh/appconfig b/nuttx/configs/mbed/nsh/appconfig
index f06086b59..14ab50989 100644
--- a/nuttx/configs/mbed/nsh/appconfig
+++ b/nuttx/configs/mbed/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# mbed/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/mbed/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/mbed/nsh/defconfig b/nuttx/configs/mbed/nsh/defconfig
index 1de314b2e..3f10cb1b1 100755
--- a/nuttx/configs/mbed/nsh/defconfig
+++ b/nuttx/configs/mbed/nsh/defconfig
@@ -319,7 +319,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mcu123-lpc214x/nsh/appconfig b/nuttx/configs/mcu123-lpc214x/nsh/appconfig
index a0d5aadb2..563f5185d 100644
--- a/nuttx/configs/mcu123-lpc214x/nsh/appconfig
+++ b/nuttx/configs/mcu123-lpc214x/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# mcu123-lpc214x/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/mcu123-lpc214x/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/mcu123-lpc214x/nsh/defconfig b/nuttx/configs/mcu123-lpc214x/nsh/defconfig
index bb064a9c0..605eea0da 100644
--- a/nuttx/configs/mcu123-lpc214x/nsh/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/nsh/defconfig
@@ -204,7 +204,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mcu123-lpc214x/ostest/appconfig b/nuttx/configs/mcu123-lpc214x/ostest/appconfig
new file mode 100644
index 000000000..cc3e248ce
--- /dev/null
+++ b/nuttx/configs/mcu123-lpc214x/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/mcu123-lpc214x/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/mcu123-lpc214x/ostest/defconfig b/nuttx/configs/mcu123-lpc214x/ostest/defconfig
index 6da3ffeec..165658643 100644
--- a/nuttx/configs/mcu123-lpc214x/ostest/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/ostest/defconfig
@@ -204,7 +204,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mcu123-lpc214x/usbserial/appconfig b/nuttx/configs/mcu123-lpc214x/usbserial/appconfig
new file mode 100644
index 000000000..14fba8c4d
--- /dev/null
+++ b/nuttx/configs/mcu123-lpc214x/usbserial/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/mcu123-lpc214x/usbserial/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbserial=.built_always
+
diff --git a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
index 87bc15b24..093ead44e 100644
--- a/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/usbserial/defconfig
@@ -204,7 +204,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/usbserial
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mcu123-lpc214x/usbstorage/appconfig b/nuttx/configs/mcu123-lpc214x/usbstorage/appconfig
new file mode 100644
index 000000000..019d8512d
--- /dev/null
+++ b/nuttx/configs/mcu123-lpc214x/usbstorage/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/mcu123-lpc214x/usbstorage/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbstorage=.built_always
+
diff --git a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
index 24dd6c429..aee5c503c 100644
--- a/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
+++ b/nuttx/configs/mcu123-lpc214x/usbstorage/defconfig
@@ -204,7 +204,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/usbstorage
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/mx1ads/ostest/appconfig b/nuttx/configs/mx1ads/ostest/appconfig
new file mode 100644
index 000000000..d2f334e9d
--- /dev/null
+++ b/nuttx/configs/mx1ads/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/mx1ads/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/mx1ads/ostest/defconfig b/nuttx/configs/mx1ads/ostest/defconfig
index 0c63113cc..47688a22e 100644
--- a/nuttx/configs/mx1ads/ostest/defconfig
+++ b/nuttx/configs/mx1ads/ostest/defconfig
@@ -220,7 +220,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ne64badge/ostest/appconfig b/nuttx/configs/ne64badge/ostest/appconfig
new file mode 100644
index 000000000..e4779070b
--- /dev/null
+++ b/nuttx/configs/ne64badge/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ne64badge/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/ne64badge/ostest/defconfig b/nuttx/configs/ne64badge/ostest/defconfig
index 87a3ae170..57670752c 100755
--- a/nuttx/configs/ne64badge/ostest/defconfig
+++ b/nuttx/configs/ne64badge/ostest/defconfig
@@ -294,7 +294,7 @@ CONFIG_PASS1_OBJECT=init.r
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/nettest/appconfig b/nuttx/configs/ntosd-dm320/nettest/appconfig
index 8c20cb4a2..d3d81d10d 100644
--- a/nuttx/configs/ntosd-dm320/nettest/appconfig
+++ b/nuttx/configs/ntosd-dm320/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# ntosd-dm320/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/ntosd-dm320/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/ntosd-dm320/nettest/defconfig b/nuttx/configs/ntosd-dm320/nettest/defconfig
index d890345b0..c72ba50d1 100644
--- a/nuttx/configs/ntosd-dm320/nettest/defconfig
+++ b/nuttx/configs/ntosd-dm320/nettest/defconfig
@@ -208,7 +208,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/nsh/appconfig b/nuttx/configs/ntosd-dm320/nsh/appconfig
index 3a908a4d1..9265c380e 100644
--- a/nuttx/configs/ntosd-dm320/nsh/appconfig
+++ b/nuttx/configs/ntosd-dm320/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# ntosd-dm320/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/ntosd-dm320/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/ntosd-dm320/nsh/defconfig b/nuttx/configs/ntosd-dm320/nsh/defconfig
index e662ff6aa..bf2a4d8c3 100644
--- a/nuttx/configs/ntosd-dm320/nsh/defconfig
+++ b/nuttx/configs/ntosd-dm320/nsh/defconfig
@@ -207,7 +207,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/ostest/appconfig b/nuttx/configs/ntosd-dm320/ostest/appconfig
new file mode 100644
index 000000000..e5685746a
--- /dev/null
+++ b/nuttx/configs/ntosd-dm320/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/ntosd-dm320/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/ntosd-dm320/ostest/defconfig b/nuttx/configs/ntosd-dm320/ostest/defconfig
index 48508b03b..183000974 100644
--- a/nuttx/configs/ntosd-dm320/ostest/defconfig
+++ b/nuttx/configs/ntosd-dm320/ostest/defconfig
@@ -208,7 +208,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/poll/appconfig b/nuttx/configs/ntosd-dm320/poll/appconfig
index be5cbeb4e..a3f36a6fb 100644
--- a/nuttx/configs/ntosd-dm320/poll/appconfig
+++ b/nuttx/configs/ntosd-dm320/poll/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# ntosd-dm320/poll/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/ntosd-dm320/poll/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/poll=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/ntosd-dm320/poll/defconfig b/nuttx/configs/ntosd-dm320/poll/defconfig
index eb3336715..1e8faf426 100644
--- a/nuttx/configs/ntosd-dm320/poll/defconfig
+++ b/nuttx/configs/ntosd-dm320/poll/defconfig
@@ -208,7 +208,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/poll
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/thttpd/appconfig b/nuttx/configs/ntosd-dm320/thttpd/appconfig
index b81a71c7a..1b6a1f695 100644
--- a/nuttx/configs/ntosd-dm320/thttpd/appconfig
+++ b/nuttx/configs/ntosd-dm320/thttpd/appconfig
@@ -1,39 +1,44 @@
-############################################################################
-# ntosd-dm320/thttpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/thttpd=.built_always
+############################################################################
+# configs/ntosd-dm320/thttpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/thttpd=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/thttpd=.built_always
diff --git a/nuttx/configs/ntosd-dm320/thttpd/defconfig b/nuttx/configs/ntosd-dm320/thttpd/defconfig
index 06b9a177d..a4003ef28 100644
--- a/nuttx/configs/ntosd-dm320/thttpd/defconfig
+++ b/nuttx/configs/ntosd-dm320/thttpd/defconfig
@@ -215,7 +215,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/thttpd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/udp/appconfig b/nuttx/configs/ntosd-dm320/udp/appconfig
index d3c324f7c..4b34f37fd 100644
--- a/nuttx/configs/ntosd-dm320/udp/appconfig
+++ b/nuttx/configs/ntosd-dm320/udp/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# ntosd-dm320/udp/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/ntosd-dm320/udp/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/udp=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/ntosd-dm320/udp/defconfig b/nuttx/configs/ntosd-dm320/udp/defconfig
index 91b582915..3bb8fac40 100644
--- a/nuttx/configs/ntosd-dm320/udp/defconfig
+++ b/nuttx/configs/ntosd-dm320/udp/defconfig
@@ -208,7 +208,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/udp
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/ntosd-dm320/uip/appconfig b/nuttx/configs/ntosd-dm320/uip/appconfig
index b8629c693..4077afd14 100644
--- a/nuttx/configs/ntosd-dm320/uip/appconfig
+++ b/nuttx/configs/ntosd-dm320/uip/appconfig
@@ -1,41 +1,46 @@
-############################################################################
-# ntosd-dm320/uip/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/webserver=.built_always
+############################################################################
+# configs/ntosd-dm320/uip/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/uip=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/webserver=.built_always
diff --git a/nuttx/configs/ntosd-dm320/uip/defconfig b/nuttx/configs/ntosd-dm320/uip/defconfig
index 8ebe89415..61f8641a4 100644
--- a/nuttx/configs/ntosd-dm320/uip/defconfig
+++ b/nuttx/configs/ntosd-dm320/uip/defconfig
@@ -208,7 +208,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/uip
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/nucleus2g/nsh/appconfig b/nuttx/configs/nucleus2g/nsh/appconfig
index 2a369b8ab..d79c94ebb 100644
--- a/nuttx/configs/nucleus2g/nsh/appconfig
+++ b/nuttx/configs/nucleus2g/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# nucleus2g/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/nucleus2g/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/nucleus2g/nsh/defconfig b/nuttx/configs/nucleus2g/nsh/defconfig
index 55e105975..abfd3def3 100755
--- a/nuttx/configs/nucleus2g/nsh/defconfig
+++ b/nuttx/configs/nucleus2g/nsh/defconfig
@@ -322,7 +322,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/nucleus2g/ostest/appconfig b/nuttx/configs/nucleus2g/ostest/appconfig
new file mode 100644
index 000000000..00f6e309b
--- /dev/null
+++ b/nuttx/configs/nucleus2g/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/nucleus2g/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/nucleus2g/ostest/defconfig b/nuttx/configs/nucleus2g/ostest/defconfig
index 537a02607..2539e617e 100755
--- a/nuttx/configs/nucleus2g/ostest/defconfig
+++ b/nuttx/configs/nucleus2g/ostest/defconfig
@@ -319,7 +319,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/nucleus2g/usbserial/appconfig b/nuttx/configs/nucleus2g/usbserial/appconfig
new file mode 100644
index 000000000..6e1c908a5
--- /dev/null
+++ b/nuttx/configs/nucleus2g/usbserial/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/nucleus2g/usbserial/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbserial=.built_always
+
diff --git a/nuttx/configs/nucleus2g/usbserial/defconfig b/nuttx/configs/nucleus2g/usbserial/defconfig
index 2063261a4..502ee3a85 100755
--- a/nuttx/configs/nucleus2g/usbserial/defconfig
+++ b/nuttx/configs/nucleus2g/usbserial/defconfig
@@ -319,7 +319,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbserial
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/nucleus2g/usbstorage/appconfig b/nuttx/configs/nucleus2g/usbstorage/appconfig
new file mode 100644
index 000000000..32a5b2d31
--- /dev/null
+++ b/nuttx/configs/nucleus2g/usbstorage/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/nucleus2g/usbstorage/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbstorage=.built_always
+
diff --git a/nuttx/configs/nucleus2g/usbstorage/defconfig b/nuttx/configs/nucleus2g/usbstorage/defconfig
index f02167251..871634660 100755
--- a/nuttx/configs/nucleus2g/usbstorage/defconfig
+++ b/nuttx/configs/nucleus2g/usbstorage/defconfig
@@ -319,7 +319,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbstorage
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/hidkbd/appconfig b/nuttx/configs/olimex-lpc1766stk/hidkbd/appconfig
new file mode 100644
index 000000000..861d75654
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/hidkbd/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/hidkbd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/hidkbd=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/hidkbd/defconfig b/nuttx/configs/olimex-lpc1766stk/hidkbd/defconfig
index e3267eafe..78f50af03 100755
--- a/nuttx/configs/olimex-lpc1766stk/hidkbd/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/hidkbd/defconfig
@@ -326,7 +326,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/hidkbd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/nettest/appconfig b/nuttx/configs/olimex-lpc1766stk/nettest/appconfig
index 8fb8f8bcf..3c6bb4729 100644
--- a/nuttx/configs/olimex-lpc1766stk/nettest/appconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# olimex-lpc1766stk/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/olimex-lpc1766stk/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/olimex-lpc1766stk/nettest/defconfig b/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
index 0c2c1b0a6..20153e310 100755
--- a/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nettest/defconfig
@@ -326,7 +326,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/nsh/appconfig b/nuttx/configs/olimex-lpc1766stk/nsh/appconfig
index 70363f99a..e8bb51cb8 100644
--- a/nuttx/configs/olimex-lpc1766stk/nsh/appconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nsh/appconfig
@@ -1,48 +1,54 @@
-############################################################################
-# olimex-lpc1766stk/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# NSH library
-
-CONFIGURED_APPS += nshlib=.built_always
-
-# Networking support
-
-ifeq ($(CONFIG_NET),y)
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/dhcpc=.built_always
-CONFIGURED_APPS += netutils/resolv=.built_always
-CONFIGURED_APPS += netutils/tftp=.built_always
-CONFIGURED_APPS += netutils/webclient=.built_always
-endif
+############################################################################
+# configs/olimex-lpc1766stk/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
+# Networking support
+
+ifeq ($(CONFIG_NET),y)
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/dhcpc=.built_always
+CONFIGURED_APPS += netutils/resolv=.built_always
+CONFIGURED_APPS += netutils/tftpc=.built_always
+CONFIGURED_APPS += netutils/webclient=.built_always
+endif
+
+
diff --git a/nuttx/configs/olimex-lpc1766stk/nsh/defconfig b/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
index 1e2c074e8..b16abf38f 100755
--- a/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nsh/defconfig
@@ -326,7 +326,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/nx/appconfig b/nuttx/configs/olimex-lpc1766stk/nx/appconfig
new file mode 100644
index 000000000..7c6a69478
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/nx/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/nx/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nx=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/nx/defconfig b/nuttx/configs/olimex-lpc1766stk/nx/defconfig
index 565337548..d45d7a296 100755
--- a/nuttx/configs/olimex-lpc1766stk/nx/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/nx/defconfig
@@ -325,7 +325,7 @@ CONFIG_SPI_CMDDATA=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nx
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
diff --git a/nuttx/configs/olimex-lpc1766stk/ostest/appconfig b/nuttx/configs/olimex-lpc1766stk/ostest/appconfig
new file mode 100644
index 000000000..b046927b3
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/ostest/defconfig b/nuttx/configs/olimex-lpc1766stk/ostest/defconfig
index 561eba638..f5b46927c 100755
--- a/nuttx/configs/olimex-lpc1766stk/ostest/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/ostest/defconfig
@@ -320,7 +320,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/slip-httpd/appconfig b/nuttx/configs/olimex-lpc1766stk/slip-httpd/appconfig
index ab3406381..9be22e90e 100644
--- a/nuttx/configs/olimex-lpc1766stk/slip-httpd/appconfig
+++ b/nuttx/configs/olimex-lpc1766stk/slip-httpd/appconfig
@@ -1,39 +1,44 @@
-############################################################################
-# olimex-lpc1766stk/slip-httpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/thttpd=.built_always
+############################################################################
+# configs/olimex-lpc1766stk/slip-httpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/thttpd=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/thttpd=.built_always
diff --git a/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig b/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
index 81978e279..b7c6f1731 100755
--- a/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/slip-httpd/defconfig
@@ -322,7 +322,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/thttpd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/thttpd/appconfig b/nuttx/configs/olimex-lpc1766stk/thttpd/appconfig
index 87766510d..6eea7ea59 100644
--- a/nuttx/configs/olimex-lpc1766stk/thttpd/appconfig
+++ b/nuttx/configs/olimex-lpc1766stk/thttpd/appconfig
@@ -1,39 +1,44 @@
-############################################################################
-# olimex-lpc1766stk/thttpd/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
-CONFIGURED_APPS += netutils/thttpd=.built_always
+############################################################################
+# configs/olimex-lpc1766stk/thttpd/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/thttpd=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
+CONFIGURED_APPS += netutils/thttpd=.built_always
diff --git a/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig b/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
index 118444517..a7f8a9f25 100755
--- a/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/thttpd/defconfig
@@ -320,7 +320,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/thttpd
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/usbserial/appconfig b/nuttx/configs/olimex-lpc1766stk/usbserial/appconfig
new file mode 100644
index 000000000..49cc61e03
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/usbserial/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/usbserial/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbserial=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig b/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
index cf7d7cb99..436ca1ea6 100755
--- a/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/usbserial/defconfig
@@ -320,7 +320,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbserial
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/usbstorage/appconfig b/nuttx/configs/olimex-lpc1766stk/usbstorage/appconfig
new file mode 100644
index 000000000..d4f33077e
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/usbstorage/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/usbstorage/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbstorage=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig b/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
index 85918740c..4b56fb1fe 100755
--- a/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/usbstorage/defconfig
@@ -320,7 +320,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbstorage
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc1766stk/wlan/appconfig b/nuttx/configs/olimex-lpc1766stk/wlan/appconfig
new file mode 100644
index 000000000..2a9f4be40
--- /dev/null
+++ b/nuttx/configs/olimex-lpc1766stk/wlan/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc1766stk/wlan/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/wlan=.built_always
+
diff --git a/nuttx/configs/olimex-lpc1766stk/wlan/defconfig b/nuttx/configs/olimex-lpc1766stk/wlan/defconfig
index 43d281570..61cd0085e 100755
--- a/nuttx/configs/olimex-lpc1766stk/wlan/defconfig
+++ b/nuttx/configs/olimex-lpc1766stk/wlan/defconfig
@@ -325,7 +325,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/wlan
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-lpc2378/nsh/appconfig b/nuttx/configs/olimex-lpc2378/nsh/appconfig
index 13b19fd1a..786a7de6a 100644
--- a/nuttx/configs/olimex-lpc2378/nsh/appconfig
+++ b/nuttx/configs/olimex-lpc2378/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# olimex-lpc2378/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/olimex-lpc2378/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/olimex-lpc2378/nsh/defconfig b/nuttx/configs/olimex-lpc2378/nsh/defconfig
index 85c3f3bf0..c2ffdb837 100755
--- a/nuttx/configs/olimex-lpc2378/nsh/defconfig
+++ b/nuttx/configs/olimex-lpc2378/nsh/defconfig
@@ -193,7 +193,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_DEV_LOWCONSOLE - Use the simple, low-level serial console
# driver (minimal support)
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
#CONFIG_DEBUG_MM=y
diff --git a/nuttx/configs/olimex-lpc2378/ostest/appconfig b/nuttx/configs/olimex-lpc2378/ostest/appconfig
new file mode 100644
index 000000000..0ef4b7e33
--- /dev/null
+++ b/nuttx/configs/olimex-lpc2378/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-lpc2378/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/olimex-lpc2378/ostest/defconfig b/nuttx/configs/olimex-lpc2378/ostest/defconfig
index f3938a530..c1bec6554 100755
--- a/nuttx/configs/olimex-lpc2378/ostest/defconfig
+++ b/nuttx/configs/olimex-lpc2378/ostest/defconfig
@@ -193,7 +193,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_DEV_LOWCONSOLE - Use the simple, low-level serial console
# driver (minimal support)
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
#CONFIG_DEBUG_MM=y
diff --git a/nuttx/configs/olimex-strp711/nettest/appconfig b/nuttx/configs/olimex-strp711/nettest/appconfig
index 332a9998c..911f28d76 100644
--- a/nuttx/configs/olimex-strp711/nettest/appconfig
+++ b/nuttx/configs/olimex-strp711/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# olimex-strp711/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/olimex-strp711/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/olimex-strp711/nettest/defconfig b/nuttx/configs/olimex-strp711/nettest/defconfig
index ed34172d1..a91e9af0c 100755
--- a/nuttx/configs/olimex-strp711/nettest/defconfig
+++ b/nuttx/configs/olimex-strp711/nettest/defconfig
@@ -289,7 +289,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-strp711/nsh/appconfig b/nuttx/configs/olimex-strp711/nsh/appconfig
index b988f2098..44287d579 100644
--- a/nuttx/configs/olimex-strp711/nsh/appconfig
+++ b/nuttx/configs/olimex-strp711/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# olimex-strp711/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/olimex-strp711/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/olimex-strp711/nsh/defconfig b/nuttx/configs/olimex-strp711/nsh/defconfig
index 27e58db93..d253aef86 100644
--- a/nuttx/configs/olimex-strp711/nsh/defconfig
+++ b/nuttx/configs/olimex-strp711/nsh/defconfig
@@ -271,7 +271,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/olimex-strp711/ostest/appconfig b/nuttx/configs/olimex-strp711/ostest/appconfig
new file mode 100644
index 000000000..b6eb6f864
--- /dev/null
+++ b/nuttx/configs/olimex-strp711/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/olimex-strp711/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/olimex-strp711/ostest/defconfig b/nuttx/configs/olimex-strp711/ostest/defconfig
index 0add6394e..a625349fc 100644
--- a/nuttx/configs/olimex-strp711/ostest/defconfig
+++ b/nuttx/configs/olimex-strp711/ostest/defconfig
@@ -271,7 +271,7 @@ CONFIG_HAVE_LIBM=n
# This format will support execution of NuttX binaries located
# in a ROMFS filesystem (see examples/nxflat).
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/pjrc-8051/appconfig b/nuttx/configs/pjrc-8051/appconfig
new file mode 100644
index 000000000..80d1dccef
--- /dev/null
+++ b/nuttx/configs/pjrc-8051/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/pjrc-8051/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/pjrc-8051/defconfig b/nuttx/configs/pjrc-8051/defconfig
index 764ebe1ed..b2303d0c7 100644
--- a/nuttx/configs/pjrc-8051/defconfig
+++ b/nuttx/configs/pjrc-8051/defconfig
@@ -165,7 +165,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/qemu-i486/nsh/appconfig b/nuttx/configs/qemu-i486/nsh/appconfig
index 1e0507ce8..3e174024e 100644
--- a/nuttx/configs/qemu-i486/nsh/appconfig
+++ b/nuttx/configs/qemu-i486/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# qemu-i486/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/qemu-i486/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/qemu-i486/nsh/defconfig b/nuttx/configs/qemu-i486/nsh/defconfig
index dfe3fb494..60f60b697 100644
--- a/nuttx/configs/qemu-i486/nsh/defconfig
+++ b/nuttx/configs/qemu-i486/nsh/defconfig
@@ -230,7 +230,7 @@ CONFIG_UART3_2STOP=0
# task_create() when a new task is started. If set, all sockets will appear
# to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/qemu-i486/ostest/appconfig b/nuttx/configs/qemu-i486/ostest/appconfig
new file mode 100644
index 000000000..f469153b6
--- /dev/null
+++ b/nuttx/configs/qemu-i486/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/qemu-i486/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/qemu-i486/ostest/defconfig b/nuttx/configs/qemu-i486/ostest/defconfig
index 9695160cf..9e3f0891c 100644
--- a/nuttx/configs/qemu-i486/ostest/defconfig
+++ b/nuttx/configs/qemu-i486/ostest/defconfig
@@ -146,7 +146,7 @@ CONFIG_ARCH_DMA=n
# task_create() when a new task is started. If set, all sockets will appear
# to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sam3u-ek/nsh/appconfig b/nuttx/configs/sam3u-ek/nsh/appconfig
index 68384b897..67b7d9adf 100644
--- a/nuttx/configs/sam3u-ek/nsh/appconfig
+++ b/nuttx/configs/sam3u-ek/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# sam3u-ek/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/sam3u-ek/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/sam3u-ek/nsh/defconfig b/nuttx/configs/sam3u-ek/nsh/defconfig
index 8b2cf20e3..65a56ff74 100755
--- a/nuttx/configs/sam3u-ek/nsh/defconfig
+++ b/nuttx/configs/sam3u-ek/nsh/defconfig
@@ -292,7 +292,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sam3u-ek/nx/appconfig b/nuttx/configs/sam3u-ek/nx/appconfig
new file mode 100644
index 000000000..2f44523d0
--- /dev/null
+++ b/nuttx/configs/sam3u-ek/nx/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sam3u-ek/nx/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nx=.built_always
+
diff --git a/nuttx/configs/sam3u-ek/nx/defconfig b/nuttx/configs/sam3u-ek/nx/defconfig
index 42d2dc9b2..fce97cd37 100755
--- a/nuttx/configs/sam3u-ek/nx/defconfig
+++ b/nuttx/configs/sam3u-ek/nx/defconfig
@@ -292,7 +292,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nx
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sam3u-ek/ostest/appconfig b/nuttx/configs/sam3u-ek/ostest/appconfig
new file mode 100644
index 000000000..6ffa16baa
--- /dev/null
+++ b/nuttx/configs/sam3u-ek/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sam3u-ek/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/sam3u-ek/ostest/defconfig b/nuttx/configs/sam3u-ek/ostest/defconfig
index 1d5456a9a..900160874 100755
--- a/nuttx/configs/sam3u-ek/ostest/defconfig
+++ b/nuttx/configs/sam3u-ek/ostest/defconfig
@@ -293,7 +293,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/mount/appconfig b/nuttx/configs/sim/mount/appconfig
new file mode 100644
index 000000000..bec676b94
--- /dev/null
+++ b/nuttx/configs/sim/mount/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sim/mount/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/mount=.built_always
+
diff --git a/nuttx/configs/sim/mount/defconfig b/nuttx/configs/sim/mount/defconfig
index d8c9870ab..6682c8a7f 100644
--- a/nuttx/configs/sim/mount/defconfig
+++ b/nuttx/configs/sim/mount/defconfig
@@ -114,7 +114,7 @@ CONFIG_ARCH_BOARD_SIM=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/mount
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/nettest/appconfig b/nuttx/configs/sim/nettest/appconfig
index 599f57ad7..59f0091e9 100644
--- a/nuttx/configs/sim/nettest/appconfig
+++ b/nuttx/configs/sim/nettest/appconfig
@@ -1,38 +1,43 @@
-############################################################################
-# sim/nettest/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Networking support
-
-CONFIGURED_APPS += netutils/uiplib=.built_always
+############################################################################
+# configs/sim/nettest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nettest=.built_always
+
+
+# Networking support
+
+CONFIGURED_APPS += netutils/uiplib=.built_always
diff --git a/nuttx/configs/sim/nettest/defconfig b/nuttx/configs/sim/nettest/defconfig
index 9e19a3b87..d4354238f 100644
--- a/nuttx/configs/sim/nettest/defconfig
+++ b/nuttx/configs/sim/nettest/defconfig
@@ -114,7 +114,7 @@ CONFIG_ARCH_BOARD_SIM=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nettest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/nsh/appconfig b/nuttx/configs/sim/nsh/appconfig
index 01e99d219..888943ed8 100644
--- a/nuttx/configs/sim/nsh/appconfig
+++ b/nuttx/configs/sim/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# sim/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/sim/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/sim/nsh/defconfig b/nuttx/configs/sim/nsh/defconfig
index f7611123b..4cdb88df9 100644
--- a/nuttx/configs/sim/nsh/defconfig
+++ b/nuttx/configs/sim/nsh/defconfig
@@ -114,7 +114,7 @@ CONFIG_ARCH_BOARD_SIM=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/nx/appconfig b/nuttx/configs/sim/nx/appconfig
new file mode 100644
index 000000000..ee581c7b5
--- /dev/null
+++ b/nuttx/configs/sim/nx/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sim/nx/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nx=.built_always
+
diff --git a/nuttx/configs/sim/nx/defconfig b/nuttx/configs/sim/nx/defconfig
index fa6557d74..23edd54dd 100644
--- a/nuttx/configs/sim/nx/defconfig
+++ b/nuttx/configs/sim/nx/defconfig
@@ -121,7 +121,7 @@ CONFIG_SIM_FBBPP=8
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nx
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/ostest/appconfig b/nuttx/configs/sim/ostest/appconfig
new file mode 100644
index 000000000..f622d8958
--- /dev/null
+++ b/nuttx/configs/sim/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sim/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/sim/ostest/defconfig b/nuttx/configs/sim/ostest/defconfig
index 87f3c878b..41da39ce7 100644
--- a/nuttx/configs/sim/ostest/defconfig
+++ b/nuttx/configs/sim/ostest/defconfig
@@ -114,7 +114,7 @@ CONFIG_ARCH_BOARD_SIM=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/sim/pashello/appconfig b/nuttx/configs/sim/pashello/appconfig
new file mode 100644
index 000000000..548c553dc
--- /dev/null
+++ b/nuttx/configs/sim/pashello/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/sim/pashello/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/pashello=.built_always
+
diff --git a/nuttx/configs/sim/pashello/defconfig b/nuttx/configs/sim/pashello/defconfig
index 6fdb006ce..2a31128fe 100644
--- a/nuttx/configs/sim/pashello/defconfig
+++ b/nuttx/configs/sim/pashello/defconfig
@@ -114,7 +114,7 @@ CONFIG_ARCH_BOARD_SIM=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/pashello
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/skp16c26/ostest/appconfig b/nuttx/configs/skp16c26/ostest/appconfig
new file mode 100644
index 000000000..eaaf4ad20
--- /dev/null
+++ b/nuttx/configs/skp16c26/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/skp16c26/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/skp16c26/ostest/defconfig b/nuttx/configs/skp16c26/ostest/defconfig
index 3eacda9ce..d743397cd 100644
--- a/nuttx/configs/skp16c26/ostest/defconfig
+++ b/nuttx/configs/skp16c26/ostest/defconfig
@@ -212,7 +212,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/stm3210e-eval/RIDE/appconfig b/nuttx/configs/stm3210e-eval/RIDE/appconfig
new file mode 100644
index 000000000..3aa7f108b
--- /dev/null
+++ b/nuttx/configs/stm3210e-eval/RIDE/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/stm3210e-eval/RIDE/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/null=.built_always
+
diff --git a/nuttx/configs/stm3210e-eval/RIDE/defconfig b/nuttx/configs/stm3210e-eval/RIDE/defconfig
index ce1687172..83ebe4fe2 100755
--- a/nuttx/configs/stm3210e-eval/RIDE/defconfig
+++ b/nuttx/configs/stm3210e-eval/RIDE/defconfig
@@ -315,7 +315,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/null
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/stm3210e-eval/nsh/appconfig b/nuttx/configs/stm3210e-eval/nsh/appconfig
index d26c51dc7..18fbe696c 100644
--- a/nuttx/configs/stm3210e-eval/nsh/appconfig
+++ b/nuttx/configs/stm3210e-eval/nsh/appconfig
@@ -1,36 +1,41 @@
-############################################################################
-# stm3210e-eval/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/stm3210e-eval/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/stm3210e-eval/nsh/defconfig b/nuttx/configs/stm3210e-eval/nsh/defconfig
index 9f56ba0f8..7a54c879b 100755
--- a/nuttx/configs/stm3210e-eval/nsh/defconfig
+++ b/nuttx/configs/stm3210e-eval/nsh/defconfig
@@ -325,7 +325,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/stm3210e-eval/ostest/appconfig b/nuttx/configs/stm3210e-eval/ostest/appconfig
new file mode 100644
index 000000000..37459a025
--- /dev/null
+++ b/nuttx/configs/stm3210e-eval/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/stm3210e-eval/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/stm3210e-eval/ostest/defconfig b/nuttx/configs/stm3210e-eval/ostest/defconfig
index 955a15e71..075e3f213 100755
--- a/nuttx/configs/stm3210e-eval/ostest/defconfig
+++ b/nuttx/configs/stm3210e-eval/ostest/defconfig
@@ -327,7 +327,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/stm3210e-eval/usbserial/appconfig b/nuttx/configs/stm3210e-eval/usbserial/appconfig
new file mode 100644
index 000000000..11fc30ea5
--- /dev/null
+++ b/nuttx/configs/stm3210e-eval/usbserial/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/stm3210e-eval/usbserial/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbserial=.built_always
+
diff --git a/nuttx/configs/stm3210e-eval/usbserial/defconfig b/nuttx/configs/stm3210e-eval/usbserial/defconfig
index 46646bc41..c469da139 100755
--- a/nuttx/configs/stm3210e-eval/usbserial/defconfig
+++ b/nuttx/configs/stm3210e-eval/usbserial/defconfig
@@ -327,7 +327,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbserial
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_USB=n
diff --git a/nuttx/configs/stm3210e-eval/usbstorage/appconfig b/nuttx/configs/stm3210e-eval/usbstorage/appconfig
new file mode 100644
index 000000000..675da6f07
--- /dev/null
+++ b/nuttx/configs/stm3210e-eval/usbstorage/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/stm3210e-eval/usbstorage/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/usbstorage=.built_always
+
diff --git a/nuttx/configs/stm3210e-eval/usbstorage/defconfig b/nuttx/configs/stm3210e-eval/usbstorage/defconfig
index 688e99f69..ef37ef8d7 100755
--- a/nuttx/configs/stm3210e-eval/usbstorage/defconfig
+++ b/nuttx/configs/stm3210e-eval/usbstorage/defconfig
@@ -325,7 +325,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/usbstorage
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_FS=n
diff --git a/nuttx/configs/us7032evb1/nsh/appconfig b/nuttx/configs/us7032evb1/nsh/appconfig
index ca3b04385..619c94d57 100644
--- a/nuttx/configs/us7032evb1/nsh/appconfig
+++ b/nuttx/configs/us7032evb1/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# us7032evb1/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/us7032evb1/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/us7032evb1/nsh/defconfig b/nuttx/configs/us7032evb1/nsh/defconfig
index 9b4175904..e9ee5805d 100644
--- a/nuttx/configs/us7032evb1/nsh/defconfig
+++ b/nuttx/configs/us7032evb1/nsh/defconfig
@@ -216,7 +216,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/us7032evb1/ostest/appconfig b/nuttx/configs/us7032evb1/ostest/appconfig
new file mode 100644
index 000000000..426122f8b
--- /dev/null
+++ b/nuttx/configs/us7032evb1/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/us7032evb1/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/us7032evb1/ostest/defconfig b/nuttx/configs/us7032evb1/ostest/defconfig
index b93973eea..c87235acc 100644
--- a/nuttx/configs/us7032evb1/ostest/defconfig
+++ b/nuttx/configs/us7032evb1/ostest/defconfig
@@ -216,7 +216,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/vsn/nsh/appconfig b/nuttx/configs/vsn/nsh/appconfig
index 3371dc21a..42f4a9ec8 100755
--- a/nuttx/configs/vsn/nsh/appconfig
+++ b/nuttx/configs/vsn/nsh/appconfig
@@ -1,10 +1,8 @@
############################################################################
-# configs/vsn/nsh/defconfig
+# configs/vsn/nsh/appconfig
#
# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Copyright (c) 2011 Uros Platise. All rights reserved.
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-# Uros Platise <uros.platise@isotel.eu>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -45,6 +43,9 @@
# CONFIG_TASK_NAME_SIZE=16
#
+# Path to example in apps/examples containing the user_start entry point
+CONFIGURED_APPS += examples/nsh=.built_always
+
# Invoke the following application after NuttX starts
#CONFIG_BUILTIN_APP_START="hello"
@@ -57,16 +58,18 @@ CONFIGURED_APPS += nshlib=.built_always
CONFIGURED_APPS += vsn/hello=.built_always
# Provide poweroff command to switch off the board
-CONFIGURED_APPS += vsn/poweroff=.built_always
+CONFIGURED_APPS += vsn/poweroff=.built_always
# Provide SDcard tool
-CONFIGURED_APPS += vsn/sdcard=.built_always
+CONFIGURED_APPS += vsn/sdcard=.built_always
# Provide RAMTRON tool
-CONFIGURED_APPS += vsn/ramtron=.built_always
+CONFIGURED_APPS += vsn/ramtron=.built_always
-# Provide UNIX style free
-CONFIGURED_APPS += vsn/free=.built_always
+# Provide UNIX style free
+CONFIGURED_APPS += vsn/free=.built_always
# Provide JAVA Virtual Machine (the Darjeeling JVM)
-#CONFIGURED_APPS += vsn/jvm=.built_always
+#CONFIGURED_APPS += vsn/jvm=.built_always
+
+
diff --git a/nuttx/configs/vsn/nsh/defconfig b/nuttx/configs/vsn/nsh/defconfig
index 1e5f34c2f..52bea358b 100755
--- a/nuttx/configs/vsn/nsh/defconfig
+++ b/nuttx/configs/vsn/nsh/defconfig
@@ -339,7 +339,7 @@ CONFIG_HAVE_LIBM=n
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=y
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/xtrs/nsh/appconfig b/nuttx/configs/xtrs/nsh/appconfig
index 223d55423..cccf7511e 100644
--- a/nuttx/configs/xtrs/nsh/appconfig
+++ b/nuttx/configs/xtrs/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# xtrs/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/xtrs/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/xtrs/nsh/defconfig b/nuttx/configs/xtrs/nsh/defconfig
index 83c6498ae..18286cefc 100644
--- a/nuttx/configs/xtrs/nsh/defconfig
+++ b/nuttx/configs/xtrs/nsh/defconfig
@@ -160,7 +160,7 @@ CONFIG_LINKER_ROM_AT_0000=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/xtrs/ostest/appconfig b/nuttx/configs/xtrs/ostest/appconfig
new file mode 100644
index 000000000..8ec6d8f09
--- /dev/null
+++ b/nuttx/configs/xtrs/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/xtrs/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/xtrs/ostest/defconfig b/nuttx/configs/xtrs/ostest/defconfig
index aad132b8b..f11088c30 100644
--- a/nuttx/configs/xtrs/ostest/defconfig
+++ b/nuttx/configs/xtrs/ostest/defconfig
@@ -160,7 +160,7 @@ CONFIG_LINKER_ROM_AT_0000=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/xtrs/pashello/appconfig b/nuttx/configs/xtrs/pashello/appconfig
new file mode 100644
index 000000000..6a078b0ae
--- /dev/null
+++ b/nuttx/configs/xtrs/pashello/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/xtrs/pashello/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/pashello=.built_always
+
diff --git a/nuttx/configs/xtrs/pashello/defconfig b/nuttx/configs/xtrs/pashello/defconfig
index 24607207a..932fc2932 100644
--- a/nuttx/configs/xtrs/pashello/defconfig
+++ b/nuttx/configs/xtrs/pashello/defconfig
@@ -160,7 +160,7 @@ CONFIG_LINKER_ROM_AT_0000=y
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/pashello
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z16f2800100zcog/ostest/appconfig b/nuttx/configs/z16f2800100zcog/ostest/appconfig
new file mode 100644
index 000000000..50b3ace70
--- /dev/null
+++ b/nuttx/configs/z16f2800100zcog/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z16f2800100zcog/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/z16f2800100zcog/ostest/defconfig b/nuttx/configs/z16f2800100zcog/ostest/defconfig
index 55617bd85..28dac2c9f 100644
--- a/nuttx/configs/z16f2800100zcog/ostest/defconfig
+++ b/nuttx/configs/z16f2800100zcog/ostest/defconfig
@@ -189,7 +189,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z16f2800100zcog/pashello/appconfig b/nuttx/configs/z16f2800100zcog/pashello/appconfig
new file mode 100644
index 000000000..63244367e
--- /dev/null
+++ b/nuttx/configs/z16f2800100zcog/pashello/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z16f2800100zcog/pashello/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/pashello=.built_always
+
diff --git a/nuttx/configs/z16f2800100zcog/pashello/defconfig b/nuttx/configs/z16f2800100zcog/pashello/defconfig
index cbe0e1fbf..5b9c820b2 100644
--- a/nuttx/configs/z16f2800100zcog/pashello/defconfig
+++ b/nuttx/configs/z16f2800100zcog/pashello/defconfig
@@ -189,7 +189,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/pashello
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z80sim/nsh/appconfig b/nuttx/configs/z80sim/nsh/appconfig
index 229d3a548..304744fb2 100644
--- a/nuttx/configs/z80sim/nsh/appconfig
+++ b/nuttx/configs/z80sim/nsh/appconfig
@@ -1,36 +1,43 @@
-############################################################################
-# z80sim/nsh/appconfig
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-CONFIGURED_APPS += nshlib=.built_always \ No newline at end of file
+############################################################################
+# configs/z80sim/nsh/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/nsh=.built_always
+
+# The NSH Library
+
+CONFIGURED_APPS += nshlib=.built_always
+
diff --git a/nuttx/configs/z80sim/nsh/defconfig b/nuttx/configs/z80sim/nsh/defconfig
index b6af3aa27..40b6ea423 100644
--- a/nuttx/configs/z80sim/nsh/defconfig
+++ b/nuttx/configs/z80sim/nsh/defconfig
@@ -150,7 +150,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/nsh
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z80sim/ostest/appconfig b/nuttx/configs/z80sim/ostest/appconfig
new file mode 100644
index 000000000..25fcf62d3
--- /dev/null
+++ b/nuttx/configs/z80sim/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z80sim/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/z80sim/ostest/defconfig b/nuttx/configs/z80sim/ostest/defconfig
index 78a173af3..660acbfc8 100644
--- a/nuttx/configs/z80sim/ostest/defconfig
+++ b/nuttx/configs/z80sim/ostest/defconfig
@@ -150,7 +150,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z80sim/pashello/appconfig b/nuttx/configs/z80sim/pashello/appconfig
new file mode 100644
index 000000000..b77286730
--- /dev/null
+++ b/nuttx/configs/z80sim/pashello/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z80sim/pashello/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/pashello=.built_always
+
diff --git a/nuttx/configs/z80sim/pashello/defconfig b/nuttx/configs/z80sim/pashello/defconfig
index c8a99c9bf..8e94f33c7 100644
--- a/nuttx/configs/z80sim/pashello/defconfig
+++ b/nuttx/configs/z80sim/pashello/defconfig
@@ -150,7 +150,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/pashello
+#CONFIG_APP_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z8encore000zco/ostest/appconfig b/nuttx/configs/z8encore000zco/ostest/appconfig
new file mode 100644
index 000000000..a8e0ac589
--- /dev/null
+++ b/nuttx/configs/z8encore000zco/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z8encore000zco/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/z8encore000zco/ostest/defconfig b/nuttx/configs/z8encore000zco/ostest/defconfig
index 54cc2a863..6c06006e6 100644
--- a/nuttx/configs/z8encore000zco/ostest/defconfig
+++ b/nuttx/configs/z8encore000zco/ostest/defconfig
@@ -184,7 +184,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/configs/z8f64200100kit/ostest/appconfig b/nuttx/configs/z8f64200100kit/ostest/appconfig
new file mode 100644
index 000000000..b039bee7c
--- /dev/null
+++ b/nuttx/configs/z8f64200100kit/ostest/appconfig
@@ -0,0 +1,39 @@
+############################################################################
+# configs/z8f64200100kit/ostest/appconfig
+#
+# Copyright (C) 2011 Gregory Nutt. All rights reserved.
+# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
+#
+# 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.
+#
+############################################################################
+
+# Path to example in apps/examples containing the user_start entry point
+
+CONFIGURED_APPS += examples/ostest=.built_always
+
diff --git a/nuttx/configs/z8f64200100kit/ostest/defconfig b/nuttx/configs/z8f64200100kit/ostest/defconfig
index b37b81e34..9a02ed8bf 100644
--- a/nuttx/configs/z8f64200100kit/ostest/defconfig
+++ b/nuttx/configs/z8f64200100kit/ostest/defconfig
@@ -184,7 +184,7 @@ CONFIG_HAVE_LIBM=n
# desciptors by task_create() when a new task is started. If
# set, all sockets will appear to be closed in the new task.
#
-CONFIG_APP_DIR=examples/ostest
+#CONFIG_APP_DIR=
CONFIG_DEBUG=y
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
diff --git a/nuttx/examples/README.txt b/nuttx/examples/README.txt
deleted file mode 100644
index 9dc843f90..000000000
--- a/nuttx/examples/README.txt
+++ /dev/null
@@ -1,636 +0,0 @@
-examples
-^^^^^^^^
-
- The examples directory contains several sample applications that
- can be linked with NuttX. The specific example is selected in the
- configs/<board-name>/defconfig file via the CONFIG_APP_DIR setting.
- This setting provides the path to the directory containing the
- application Makefile (this path is a relative to the NuttX top-
- level directory). For example,
-
- CONFIG_APP_DIR=examples/ostest
-
- Selects the examples/ostest example.
-
-examples/dhcpd
-^^^^^^^^^^^^^^
-
- This examples builds a tiny DCHP server for the target system.
-
- NOTE: For test purposes, this example can be built as a
- host-based DHCPD server. This can be built as follows:
-
- cd examples/dhcpd
- make -f Makefile.host
-
- NuttX configuration settings:
-
- CONFIG_NET=y - Of course
- CONFIG_NSOCKET_DESCRIPTORS - And, of course, you must allocate some
- socket descriptors.
- CONFIG_NET_UDP=y - UDP support is required for DHCP
- (as well as various other UDP-related
- configuration settings)
- CONFIG_NET_BROADCAST=y - UDP broadcast support is needed.
-
- CONFIG_EXAMPLE_DHCPD_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLE_DHCPD_IPADDR - Target IP address
- CONFIG_EXAMPLE_DHCPD_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLE_DHCPD_NETMASK - Network mask
-
- See also CONFIG_NETUTILS_DHCPD_* settings described elsewhere
- and used in netutils/dhcpd/dhcpd.c. These settings are required
- to described the behavior of the daemon.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
-
-examples/hello
-^^^^^^^^^^^^^^
-
- This is the mandatory, "Hello, World!!" example. It is little more
- than examples/null with a single printf statement. Again useful only
- for bringing up new NuttX architectures.
-
- NuttX configuration settings:
-
- CONFIG_EXAMPLE_HELLOXX_NOSTATICCONST - Set if system does not support
- static constructors.
- CONFIG_EXAMPLE_HELLOXX_NOSTACKCONST - Set if the systgem does not
- support constructionof objects on the stack.
-
-examples/helloxx
-^^^^^^^^^^^^^^^^
-
- This is C++ version of the "Hello, World!!" example. It is intended
- only to verify that the C++ compiler is function, that basic C++
- library suupport is available, and that class are instantiated
- correctly.
-
-examples/hidkbd
-^^^^^^^^^^^^^^^^
-
- This is a simple test to debug/verify the USB host HID keyboard class
- driver.
-
- CONFIG_EXAMPLES_HIDKBD_DEFPRIO - Priority of "waiter" thread.
- CONFIG_EXAMPLES_HIDKBD_STACKSIZE - Stacksize of "waiter" thread.
-
-examples/igmp
-^^^^^^^^^^^^^
-
- This is a trivial test of the NuttX IGMP capability. It present it
- does not do much of value -- Much more is needed in order to verify
- the IGMP features!
-
- * CONFIG_EXAMPLE_IGMP_NOMAC
- Set if the hardware has no MAC address; one will be assigned
- * CONFIG_EXAMPLE_IGMP_IPADDR
- Target board IP address
- * CONFIG_EXAMPLE_IGMP_DRIPADDR
- Default router address
- * CONFIG_EXAMPLE_IGMP_NETMASK
- Network mask
- * CONFIG_EXAMPLE_IGMP_GRPADDR
- Multicast group address
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
-
-examples/mm
-^^^^^^^^^^^
-
- This is a simplified version of the "built-in" memory manager test of
- mm/mm_test.c. It is simplified because it does not have access to the
- internals of the memory manager as does mm/mm_test.c, but it has the
- advantage that it runs in the actual NuttX tasking environment (the
- mm/mm_test.c only runs in a PC simulation environment).
-
-examples/mount
-^^^^^^^^^^^^^^
-
- This contains a simple test of filesystem mountpoints.
-
- * CONFIG_EXAMPLES_MOUNT_DEVNAME
- The name of the user-provided block device to mount.
- If CONFIG_EXAMPLES_MOUNT_DEVNAME is not provided, then
- a RAM disk will be configured.
-
- * CONFIG_EXAMPLES_MOUNT_NSECTORS
- The number of "sectors" in the RAM disk used when
- CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined.
-
- * CONFIG_EXAMPLES_MOUNT_SECTORSIZE
- The size of each sectors in the RAM disk used when
- CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined.
-
- * CONFIG_EXAMPLES_MOUNT_RAMDEVNO
- The RAM device minor number used to mount the RAM disk used
- when CONFIG_EXAMPLES_MOUNT_DEVNAME is not defined. The
- default is zero (meaning that "/dev/ram0" will be used).
-
-examples/netttest
-^^^^^^^^^^^^^^^^^
-
- This is a simple network test for verifying client- and server-
- functionality in a TCP/IP connection.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
-
-examples/nsh
-^^^^^^^^^^^^
-
- This directory provides an example of how to configure and use
- the NuttShell (NSH) application. NSH is a simple shell
- application. NSH is described in its own README located at
- apps/nshlib/README.txt
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = nshlib=.built_always
-
- And if networking is included:
-
- CONFIGURED_APPS = uiplib=.built_always
- CONFIGURED_APPS = dhcpc=.built_always
- CONFIGURED_APPS = resolv=.built_always
- CONFIGURED_APPS = tftp=.built_always
- CONFIGURED_APPS = webclient=.built_always
-
-examples/nx
-^^^^^^^^^^^
-
- This directory contains a simple test of a subset of the NX APIs
- defined in include/nuttx/nx.h. The following configuration options
- can be selected:
-
- CONFIG_EXAMPLES_NX_VPLANE -- The plane to select from the frame-
- buffer driver for use in the test. Default: 0
- CONFIG_EXAMPLES_NX_DEVNO - The LCD device to select from the LCD
- driver for use in the test: Default: 0
- CONFIG_EXAMPLES_NX_BGCOLOR -- The color of the background. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_COLOR1 -- The color of window 1. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_COLOR2 -- The color of window 2. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_TBCOLOR -- The color of the toolbar. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_FONTCOLOR -- The color of the toolbar. Default depends on
- CONFIG_EXAMPLES_NX_BPP.
- CONFIG_EXAMPLES_NX_BPP -- Pixels per pixel to use. Valid options
- include 2, 4, 8, 16, 24, and 32. Default is 32.
- CONFIG_EXAMPLES_NX_RAWWINDOWS -- Use raw windows; Default is to
- use pretty, framed NXTK windows with toolbars.
- CONFIG_EXAMPLES_NX_EXTERNINIT - The driver for the graphics device on
- this platform requires some unusual initialization. This is the
- for, for example, SPI LCD/OLED devices. If this configuration is
- selected, then the platform code must provide an LCD initialization
- function with a prototype like:
-
- #ifdef CONFIG_NX_LCDDRIVER
- FAR struct lcd_dev_s *up_nxdrvinit(unsigned int devno);
- #else
- FAR struct fb_vtable_s *up_nxdrvinit(unsigned int devno);
- #endif
-
- This test can be performed with either the single-user version of
- NX or with the multiple user version of NX selected with CONFIG_NX_MULTIUSER.
- If CONFIG_NX_MULTIUSER is defined, then the following configuration
- options also apply:
-
- CONFIG_EXAMPLES_NX_STACKSIZE -- The stacksize to use when creating
- the NX server. Default 2048
- CONFIG_EXAMPLES_NX_CLIENTPRIO -- The client priority. Default: 100
- CONFIG_EXAMPLES_NX_SERVERPRIO -- The server priority. Default: 120
- CONFIG_EXAMPLES_NX_LISTENERPRIO -- The priority of the event listener
- thread. Default 80.
- CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with
- nx_eventnotify(). Default: 4
-
- If CONFIG_NX_MULTIUSER is defined, then the example also expects the
- following settings and will generate an error if they are not as expected:
-
- CONFIG_DISABLE_MQUEUE=n
- CONFIG_DISABLE_SIGNALS=n
- CONFIG_DISABLE_PTHREAD=n
- CONFIG_NX_BLOCKING=y
-
-examples/nxflat
-^^^^^^^^^^^^^^^
-
- This example builds a small NXFLAT test case. This includes several
- test programs under examples/nxflat tests. These tests are build using
- the NXFLAT format and installed in a ROMFS file system. At run time,
- each program in the ROMFS file system is executed. Requires CONFIG_NXFLAT.
-
-examples/null
-^^^^^^^^^^^^^
-
- This is the do nothing application. It is only used for bringing
- up new NuttX architectures in the most minimal of environments.
-
-examples/ostest
-^^^^^^^^^^^^^^^
-
- This is the NuttX 'qualification' suite. It attempts to exercise
- a broad set of OS functionality. Its coverage is not very extensive
- as of this writing, but it is used to qualify each NuttX release.
-
- The behavior of the ostest can be modified with the following
- settings in the configs/<board-name>/defconfig file:
-
- * CONFIG_EXAMPLES_OSTEST_LOOPS
- Used to control the number of executions of the test. If
- undefined, the test executes one time. If defined to be
- zero, the test runs forever.
- * CONFIG_EXAMPLES_OSTEST_STACKSIZE
- Used to create the ostest task. Default is 8192.
- * CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS
- Specifies the number of threads to create in the barrier
- test. The default is 8 but a smaller number may be needed on
- systems without sufficient memory to start so many threads.
-
-examples/pashello
-^^^^^^^^^^^^^^^^^
-
- This is "Hello, World" implemented via the Pascal P-Code interpreter
-
-examples/pipe
-^^^^^^^^^^^^^
-
- A test of the mkfifo() and pipe() APIs.
-
- * CONFIG_EXAMPLES_PIPE_STACKSIZE
- Sets the size of the stack to use when creating the child tasks.
- The default size is 1024.
-
-examples/poll
-^^^^^^^^^^^^^
-
- A test of the poll() and select() APIs using FIFOs and, if available,
- stdin, and a TCP/IP socket. In order to build this test, you must the
- following selected in your NuttX configuration file:
-
- CONFIG_NFILE_DESCRIPTORS - Defined to be greater than 0
- CONFIG_DISABLE_POLL - NOT defined
-
- In order to use the TCP/IP select test, you have also the following
- additional things selected in your NuttX configuration file:
-
- CONFIG_NET - Defined for general network support
- CONFIG_NET_TCP - Defined for TCP/IP support
- CONFIG_NSOCKET_DESCRIPTORS - Defined to be greater than 0
- CONFIG_NET_NTCP_READAHEAD_BUFFERS - Defined to be greater than zero
-
- CONFIG_EXAMPLE_POLL_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLE_POLL_IPADDR - Target IP address
- CONFIG_EXAMPLE_POLL_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLE_POLL_NETMASK - Network mask
-
- In order to for select to work with incoming connections, you
- must also select:
-
- CONFIG_NET_TCPBACKLOG - Incoming connections pend in a backlog until accept() is called.
-
- In additional to the target device-side example, there is also
- a host-side application in this directory. It can be compiled under
- Linux or Cygwin as follows:
-
- cd examples/usbserial
- make -f Makefile.host TOPDIR=../../. TARGETIP=<target-ip>
-
- Where <target-ip> is the IP address of your target board.
-
- This will generate a small program called 'host'. Usage:
-
- 1. Build the examples/poll target program with TCP/IP poll support
- and start the target.
-
- 3. Then start the host application:
-
- ./host
-
- The host and target will exchange are variety of small messages. Each
- message sent from the host should cause the select to return in target.
- The target example should read the small message and send it back to
- the host. The host should then receive the echo'ed message.
-
- If networking is enabled, applications using this example will need to
- provide an appconfig file in the configuration driver with instruction
- to build applications like:
-
- CONFIGURED_APPS = uiplib=.built_always
-
-examples/romfs
-^^^^^^^^^^^^^^
-
- This example exercises the romfs filesystem. Configuration options
- include:
-
- * CONFIG_EXAMPLES_ROMFS_RAMDEVNO
- The minor device number to use for the ROM disk. The default is
- 1 (meaning /dev/ram1)
-
- * CONFIG_EXAMPLES_ROMFS_SECTORSIZE
- The ROM disk sector size to use. Default is 64.
-
- * CONFIG_EXAMPLES_ROMFS_MOUNTPOINT
- The location to mount the ROM disk. Deafault: "/usr/local/share"
-
-examples/sendmail
-^^^^^^^^^^^^^^^^^
-
- This examples exercises the uIP SMTP logic by sending a test message
- to a selected recipient. This test can also be built to execute on
- the Cygwin/Linux host environment:
-
- cd examples/sendmail
- make -f Makefile.host
-
- Settings unique to this example include:
-
- CONFIG_EXAMPLE_SENDMAIL_NOMAC - May be defined to use software assigned MAC (optional)
- CONFIG_EXAMPLE_SENDMAIL_IPADDR - Target IP address (required)
- CONFIG_EXAMPLE_SENDMAIL_DRIPADDR - Default router IP addess (required)
- CONFIG_EXAMPLE_SENDMAILT_NETMASK - Network mask (required)
- CONFIG_EXAMPLE_SENDMAIL_RECIPIENT - The recipient of the email (required)
- CONFIG_EXAMPLE_SENDMAIL_SENDER - Optional. Default: "nuttx-testing@example.com"
- CONFIG_EXAMPLE_SENDMAIL_SUBJECT - Optional. Default: "Testing SMTP from NuttX"
- CONFIG_EXAMPLE_SENDMAIL_BODY - Optional. Default: "Test message sent by NuttX"
-
- NOTE: This test has not been verified on the NuttX target environment.
- As of this writing, unit-tested in the Cygwin/Linux host environment.
-
- NOTE 2: This sendmail example only works for the simplest of
- environments. Virus protection software on your host may have
- to be disabled to allow you to send messages. Only very open,
- unprotected recipients can be used. Most will protect themselves
- from this test email because it looks like SPAM.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
- CONFIGURED_APPS = smtp=.built_always
-
-examples/serloop
-^^^^^^^^^^^^^^^^
-
- This is a mindlessly simple loopback test on the console. Useful
- for testing new serial drivers. Configuration options include:
-
- * CONFIG_EXAMPLES_SERLOOP_BUFIO
- Use C buffered I/O (getchar/putchar) vs. raw console I/O
- (read/read).
-
-examples/thttpd
-^^^^^^^^^^^^^^^
-
- An example that builds netutils/thttpd with some simple NXFLAT
- CGI programs. see configs/README.txt for most THTTPD settings.
- In addition to those, this example accepts:
-
- CONFIG_EXAMPLE_THTTPD_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLE_THTTPD_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLE_THTTPD_NETMASK - Network mask
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
- CONFIGURED_APPS = thttpd=.built_always
-
-examples/udp
-^^^^^^^^^^^^
-
- This is a simple network test for verifying client- and server-
- functionality over UDP.
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
-
-examples/uip
-^^^^^^^^^^^^
-
- This is a port of uIP tiny webserver example application. Settings
- specific to this example include:
-
- CONFIG_EXAMPLE_UIP_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLE_UIP_IPADDR - Target IP address
- CONFIG_EXAMPLE_UIP_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLE_UIP_NETMASK - Network mask
- CONFIG_EXAMPLE_UIP_DHCPC - Select to get IP address via DHCP
-
- If you use DHCPC, then some special configuration network options are
- required. These include:
-
- CONFIG_NET=y - Of course
- CONFIG_NSOCKET_DESCRIPTORS - And, of course, you must allocate some
- socket descriptors.
- CONFIG_NET_UDP=y - UDP support is required for DHCP
- (as well as various other UDP-related
- configuration settings).
- CONFIG_NET_BROADCAST=y - UDP broadcast support is needed.
- CONFIG_NET_BUFSIZE=650 - Per RFC2131 (p. 9), the DHCP client must be
- (or larger) prepared to receive DHCP messages of up to
- 576 bytes (excluding Ethernet, IP, or UDP
- headers and FCS).
-
- Other configuration items apply also to the selected webserver net utility.
- Additional relevant settings for the uIP webserver net utility are:
-
- CONFIG_NETUTILS_HTTPDSTACKSIZE
- CONFIG_NETUTILS_HTTPDFILESTATS
- CONFIG_NETUTILS_HTTPDNETSTATS
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
- CONFIGURED_APPS = dhcpc=.built_always
- CONFIGURED_APPS = resolv=.built_always
- CONFIGURED_APPS = webserver=.built_always
-
-examples/usbserial
-^^^^^^^^^^^^^^^^^^
-
- TARGET CONFIGURATION:
-
- This is another implementation of "Hello, World" but this one uses
- a USB serial driver. Configuration options can be used to simply
- the test. These options include:
-
- CONFIG_EXAMPLES_USBSERIAL_INONLY
- Only verify IN (device-to-host) data transfers. Default: both
- CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- Only verify OUT (host-to-device) data transfers. Default: both
- CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL
- Send only small, single packet messages. Default: Send large and small.
- CONFIG_EXAMPLES_USBSERIAL_ONLYBIG
- Send only large, multi-packet messages. Default: Send large and small.
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
- the example code will also manage the USB trace output. The amount of trace output
- can be controlled using:
-
- CONFIG_EXAMPLES_USBSERIAL_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_USBSERIAL_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS
- Show interrupt-related events.
-
- Error results are always shown in the trace output
-
- HOST-SIDE TEST PROGRAM
-
- In additional to the target device-side example, there is also a
- host-side application in this directory. This host side application
- must be executed on a Linux host in order to perform the USBSERIAL
- test. The host application can be compiled under Linux (or Cygwin?)
- as follows:
-
- cd examples/usbserial
- make -f Makefile.host TOPDIR=../../.
-
- RUNNING THE TEST
-
- This will generate a small program called 'host'. Usage:
-
- 1. Build the examples/usbserial target program and start the target.
-
- 2. Wait a bit, then do enter:
-
- dmesg
-
- At the end of the dmesg output, you should see the serial
- device was successfully idenfied and assigned to a tty device,
- probably /dev/ttyUSB0.
-
- 3. Then start the host application:
-
- ./host [<tty-dev>]
-
- Where:
-
- <tty-dev> is the USB TTY device to use. The default is /dev/ttyUSB0.
-
- The host and target will exchange are variety of very small and very large
- serial messages.
-
-examples/usbstorage
-^^^^^^^^^^^^^^^^^^^
-
- This example registers a block device driver, then exports the block
- the device using the USB storage class driver. In order to use this
- example, your board-specific logic must provide the function:
-
- void usbstrg_archinitialize(void);
-
- This function will be called by the example/usbstorage in order to
- do the actual registration of the block device drivers. For examples
- of the implementation of usbstrg_archinitialize() see
- configs/mcu123-lpc124x/src/up_usbstrg.c or
- configs/stm3210e-eval/src/usbstrg.c
-
- Configuration options:
-
- CONFIG_EXAMPLES_USBSTRG_NLUNS
- Defines the number of logical units (LUNs) exported by the USB storage
- driver. Each LUN corresponds to one exported block driver (or partition
- of a block driver). May be 1, 2, or 3. Default is 1.
- CONFIG_EXAMPLES_USBSTRG_DEVMINOR1
- The minor device number of the block driver for the first LUN. For
- example, N in /dev/mmcsdN. Used for registering the block driver. Default
- is zero.
- CONFIG_EXAMPLES_USBSTRG_DEVPATH1
- The full path to the registered block driver. Default is "/dev/mmcsd0"
- CONFIG_EXAMPLES_USBSTRG_DEVMINOR2 and CONFIG_EXAMPLES_USBSTRG_DEVPATH2
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_USBSTRG_NLUNS
- is 2 or 3. No defaults.
- CONFIG_EXAMPLES_USBSTRG_DEVMINOR3 and CONFIG_EXAMPLES_USBSTRG_DEVPATH3
- Similar parameters that would have to be provided if CONFIG_EXAMPLES_USBSTRG_NLUNS
- is 3. No defaults.
-
- If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB), then
- the example code will also manage the USB trace output. The amount of trace output
- can be controlled using:
-
- CONFIG_EXAMPLES_USBSTRG_TRACEINIT
- Show initialization events
- CONFIG_EXAMPLES_USBSTRG_TRACECLASS
- Show class driver events
- CONFIG_EXAMPLES_USBSTRG_TRACETRANSFERS
- Show data transfer events
- CONFIG_EXAMPLES_USBSTRG_TRACECONTROLLER
- Show controller events
- CONFIG_EXAMPLES_USBSTRG_TRACEINTERRUPTS
- Show interrupt-related events.
-
- Error results are always shown in the trace output
-
-examples/wget
-^^^^^^^^^^^^^
-
- A simple web client example. It will obtain a file from a server using the HTTP
- protocol. Settings unique to this example include:
-
- CONFIG_EXAMPLE_WGET_URL - The URL of the file to get
- CONFIG_EXAMPLE_WGET_NOMAC - (May be defined to use software assigned MAC)
- CONFIG_EXAMPLE_WGET_IPADDR - Target IP address
- CONFIG_EXAMPLE_WGET_DRIPADDR - Default router IP addess
- CONFIG_EXAMPLE_WGET_NETMASK - Network mask
-
- This example uses netutils/webclient. Additional configuration settings apply
- to that code as follows (but built-in defaults are probably OK):
-
- CONFIG_WEBCLIENT_GETMIMETYPE, CONFIG_WEBCLIENT_MAXHTTPLINE,
- CONFIG_WEBCLIENT_MAXMIMESIZE, CONFIG_WEBCLIENT_MAXHOSTNAME,
- CONFIG_WEBCLIENT_MAXFILENAME
-
- Of course, the example also requires other settings including CONFIG_NET and
- CONFIG_NET_TCP. The example also uses the uIP resolver which requires CONFIG_UDP.
-
- WARNNG: As of this writing, wget is untested on the target platform. At present
- it has been tested only in the host-based configuration described in the following
- note. The primary difference is that the target version will rely on the also
- untested uIP name resolver.
-
- NOTE: For test purposes, this example can be built as a host-based wget function.
- This can be built as follows:
-
- cd examples/wget
- make -f Makefile.host
-
- Applications using this example will need to provide an appconfig
- file in the configuration driver with instruction to build applications
- like:
-
- CONFIGURED_APPS = uiplib=.built_always
- CONFIGURED_APPS = resolv=.built_always
- CONFIGURED_APPS = webclient=.built_always
-
-
diff --git a/nuttx/examples/dhcpd/Makefile b/nuttx/examples/dhcpd/Makefile
deleted file mode 100644
index 2a154136b..000000000
--- a/nuttx/examples/dhcpd/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/dhcpd/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = target.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
- @make -f Makefile.host clean
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/dhcpd/host.c b/nuttx/examples/dhcpd/host.c
deleted file mode 100644
index 9e654819b..000000000
--- a/nuttx/examples/dhcpd/host.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- * examples/dhcpd/host.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-extern int dhcpd_run(void);
-
-/****************************************************************************
- * main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
- dhcpd_run();
- return 0;
-}
diff --git a/nuttx/examples/dhcpd/target.c b/nuttx/examples/dhcpd/target.c
deleted file mode 100644
index 1878c2bc8..000000000
--- a/nuttx/examples/dhcpd/target.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * examples/dhcpd/target.c
- *
- * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-
-#include <apps/netutils/uiplib.h>
-#include <apps/netutils/dhcpd.h>
-
-/****************************************************************************
- * Preprocessor Definitions
- ****************************************************************************/
-
-/* Configuation Checkes *****************************************************/
-/* BEWARE:
- * There are other configuration settings needed in netutitls/dhcpd/dhcpdc.s,
- * but there are default values for those so we cannot check them here.
- */
-
-#ifndef CONFIG_EXAMPLE_DHCPD_IPADDR
-# error "You must define CONFIG_EXAMPLE_DHCPD_IPADDR"
-#endif
-
-#ifndef CONFIG_EXAMPLE_DHCPD_DRIPADDR
-# error "You must define "
-#endif
-
-#ifndef CONFIG_EXAMPLE_DHCPD_NETMASK
-# error "You must define CONFIG_EXAMPLE_DHCPD_NETMASK"
-#endif
-
-#ifndef CONFIG_NET
-# error "You must define CONFIG_NET"
-#endif
-
-#ifndef CONFIG_NET_UDP
-# error "You must define CONFIG_NET_UDP"
-#endif
-
-#ifndef CONFIG_NET_BROADCAST
-# error "You must define CONFIG_NET_BROADCAST"
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_DHCPD_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_DHCPD_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_DHCPD_NETMASK);
- uip_setnetmask("eth0", &addr);
-
- /* Then start the server */
-
- dhcpd_run();
- return 0;
-}
diff --git a/nuttx/examples/hello/Makefile b/nuttx/examples/hello/Makefile
deleted file mode 100644
index 5fd80c394..000000000
--- a/nuttx/examples/hello/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/hello/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/hello/main.c b/nuttx/examples/hello/main.c
deleted file mode 100644
index 44c8384eb..000000000
--- a/nuttx/examples/hello/main.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- * examples/hello/main.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <stdio.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- printf("Hello, World!!\n");
- return 0;
-}
-
diff --git a/nuttx/examples/helloxx/Makefile b/nuttx/examples/helloxx/Makefile
deleted file mode 100755
index 5a90b03c5..000000000
--- a/nuttx/examples/helloxx/Makefile
+++ /dev/null
@@ -1,93 +0,0 @@
-############################################################################
-# examples/helloxx/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS =
-COBJS = $(CSRCS:.c=$(OBJEXT))
-CXXSRCS = main.cxx
-CXXOBJS = $(CXXSRCS:.cxx=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS) $(CXXSRCS)
-OBJS = $(AOBJS) $(COBJS) $(CXXOBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-.PHONY: clean depend chkcxx
-
-chkcxx:
-ifneq ($(CONFIG_HAVE_CXX),y)
- @echo ""
- @echo "In order to use this example, you toolchain must support must"
- @echo ""
- @echo " (1) Explicitly seelct CONFIG_HAVE_CXX to build in C++ support"
- @echo " (2) Define CXX, CXXFLAGS, and COMPILEXX in the Make.defs file"
- @echo " of the configuration that you are using."
- @echo ""
- @exit 1
-endif
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(CXXOBJS): %$(OBJEXT): %.cxx
- $(call COMPILEXX, $<, $@)
-
-$(BIN): chkcxx $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/helloxx/main.cxx b/nuttx/examples/helloxx/main.cxx
deleted file mode 100755
index df84375a2..000000000
--- a/nuttx/examples/helloxx/main.cxx
+++ /dev/null
@@ -1,128 +0,0 @@
-//***************************************************************************
-// examples/helloxx/main.c
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-//
-// 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 <nuttx/config.h>
-#include <nuttx/init.h>
-#include <cstdio>
-#include <debug.h>
-
-//***************************************************************************
-// Definitions
-//***************************************************************************
-
-//***************************************************************************
-// Private Classes
-//***************************************************************************
-
-class CHelloWorld
-{
- public:
- CHelloWorld(void) : mSecret(42) { lldbg("Constructor\n"); };
- ~CHelloWorld(void) { lldbg("Destructor\n"); };
-
- bool HelloWorld(void)
- {
- if (mSecret != 42)
- {
- printf("CONSTRUCTION FAILED!\n");
- return false;
- }
- else
- {
- printf("Hello, World!!\n");
- return true;
- }
- };
-
- private:
- int mSecret;
-};
-
-//***************************************************************************
-// Private Data
-//***************************************************************************
-
-#ifndef CONFIG_EXAMPLE_HELLOXX_NOSTATICCONST
-static CHelloWorld g_HelloWorld;
-#endif
-
-//***************************************************************************
-// Public Functions
-//***************************************************************************
-
-//***************************************************************************
-// user_initialize
-//***************************************************************************
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- // Stub that must be provided only if the toolchain does not support weak
- // functions.
-}
-#endif
-
-//***************************************************************************
-// user_start
-//***************************************************************************
-
-int user_start(int argc, char *argv[])
-{
-#ifndef CONFIG_EXAMPLE_HELLOXX_NOSTACKCONST
- CHelloWorld HelloWorld;
-#endif
- CHelloWorld *pHelloWorld = new CHelloWorld;
-
- printf("Saying hello from the dynamically constructed instance\n");
- pHelloWorld->HelloWorld();
-
-#ifndef CONFIG_EXAMPLE_HELLOXX_NOSTACKCONST
- printf("Saying hello from the statically constructed instance\n");
- HelloWorld.HelloWorld();
-#endif
-
-#ifndef CONFIG_EXAMPLE_HELLOXX_NOSTATICCONST
- printf("Saying hello from the statically constructed instance\n");
- g_HelloWorld.HelloWorld();
-#endif
-
- delete pHelloWorld;
- return 0;
-}
-
diff --git a/nuttx/examples/hidkbd/hidkbd_main.c b/nuttx/examples/hidkbd/hidkbd_main.c
deleted file mode 100644
index 0a082f67c..000000000
--- a/nuttx/examples/hidkbd/hidkbd_main.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/****************************************************************************
- * examples/hidkbd/null_main.c
- *
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <nuttx/usb/usbhost.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-/* Configuration ************************************************************/
-
-/* Sanity checking */
-
-#ifndef CONFIG_USBHOST
-# error "CONFIG_USBHOST is not defined"
-#endif
-
-#ifdef CONFIG_USBHOST_INT_DISABLE
-# error "Interrupt endpoints are disabled (CONFIG_USBHOST_INT_DISABLE)"
-#endif
-
-#ifndef CONFIG_NFILE_DESCRIPTORS
-# error "CONFIG_NFILE_DESCRIPTORS > 0 needed"
-#endif
-
-/* Provide some default values for other configuration settings */
-
-#ifndef CONFIG_EXAMPLES_HIDKBD_DEFPRIO
-# define CONFIG_EXAMPLES_HIDKBD_DEFPRIO 50
-#endif
-
-#ifndef CONFIG_EXAMPLES_HIDKBD_STACKSIZE
-# define CONFIG_EXAMPLES_HIDKBD_STACKSIZE 1024
-#endif
-
-#ifndef CONFIG_EXAMPLES_HIDKBD_DEVNAME
-# define CONFIG_EXAMPLES_HIDKBD_DEVNAME "/dev/kbda"
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static struct usbhost_driver_s *g_drvr;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: hidkbd_waiter
- *
- * Description:
- * Wait for USB devices to be connected.
- *
- ****************************************************************************/
-
-static int hidkbd_waiter(int argc, char *argv[])
-{
- bool connected = false;
- int ret;
-
- printf("hidkbd_waiter: Running\n");
- for (;;)
- {
- /* Wait for the device to change state */
-
- ret = DRVR_WAIT(g_drvr, connected);
- DEBUGASSERT(ret == OK);
-
- connected = !connected;
- printf("hidkbd_waiter: %s\n", connected ? "connected" : "disconnected");
-
- /* Did we just become connected? */
-
- if (connected)
- {
- /* Yes.. enumerate the newly connected device */
-
- (void)DRVR_ENUMERATE(g_drvr);
- }
- }
-
- /* Keep the compiler from complaining */
-
- return 0;
-}
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- char buffer[256];
- pid_t pid;
- ssize_t nbytes;
- int fd;
- int ret;
-
- /* First, register all of the USB host HID keyboard class driver */
-
- printf("user_start: Register class drivers\n");
- ret = usbhost_kbdinit();
- if (ret != OK)
- {
- printf("user_start: Failed to register the KBD class\n");
- }
-
- /* Then get an instance of the USB host interface */
-
- printf("user_start: Initialize USB host keyboard driver\n");
- g_drvr = usbhost_initialize(0);
- if (g_drvr)
- {
- /* Start a thread to handle device connection. */
-
- printf("user_start: Start hidkbd_waiter\n");
-
-#ifndef CONFIG_CUSTOM_STACK
- pid = task_create("usbhost", CONFIG_EXAMPLES_HIDKBD_DEFPRIO,
- CONFIG_EXAMPLES_HIDKBD_STACKSIZE,
- (main_t)hidkbd_waiter, (const char **)NULL);
-#else
- pid = task_create("usbhost", CONFIG_EXAMPLES_HIDKBD_DEFPRIO,
- (main_t)hidkbd_waiter, (const char **)NULL);
-#endif
-
- /* Now just sleep. Eventually logic here will open the kbd device and
- * perform the HID keyboard test.
- */
-
- for (;;)
- {
- /* Open the keyboard device. Loop until the device is successfully
- * opened.
- */
-
- do
- {
- printf("Opening device %s\n", CONFIG_EXAMPLES_HIDKBD_DEVNAME);
- fd = open(CONFIG_EXAMPLES_HIDKBD_DEVNAME, O_RDONLY);
- if (fd < 0)
- {
- printf("Failed: %d\n", errno);
- fflush(stdout);
- sleep(3);
- }
- }
- while (fd < 0);
-
- printf("Device %s opened\n", CONFIG_EXAMPLES_HIDKBD_DEVNAME);
- fflush(stdout);
-
- /* Loop until there is a read failure */
-
- do
- {
- /* Read a buffer of data */
-
- nbytes = read(fd, buffer, 256);
- if (nbytes > 0)
- {
- /* On success, echo the buffer to stdout */
-
- (void)write(1, buffer, nbytes);
- }
- }
- while (nbytes >= 0);
-
- printf("Closing device %s: %d\n", CONFIG_EXAMPLES_HIDKBD_DEVNAME, (int)nbytes);
- fflush(stdout);
- close(fd);
- }
- }
- return 0;
-}
diff --git a/nuttx/examples/igmp/Makefile b/nuttx/examples/igmp/Makefile
deleted file mode 100755
index b1e92b942..000000000
--- a/nuttx/examples/igmp/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/igmp/Makefile
-#
-# Copyright (C) 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-
-CSRCS = igmp.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) $(HOST_BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/igmp/igmp.c b/nuttx/examples/igmp/igmp.c
deleted file mode 100755
index 734a7e599..000000000
--- a/nuttx/examples/igmp/igmp.c
+++ /dev/null
@@ -1,155 +0,0 @@
-/****************************************************************************
- * examples/igmp/igmp.c
- *
- * Copyright (C) 2010-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <net/uip/uip.h>
-#include <apps/netutils/uiplib.h>
-#include <apps/netutils/ipmsfilter.h>
-
-#include "igmp.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Check if the destination address is a multicast address
- *
- * - IPv4: multicast addresses lie in the class D group -- The address range
- * 224.0.0.0 to 239.255.255.255 (224.0.0.0/4)
- *
- * - IPv6 multicast addresses are have the high-order octet of the
- * addresses=0xff (ff00::/8.)
- */
-
-#if ((CONFIG_EXAMPLE_IGMP_GRPADDR & 0xffff0000) < 0xe0000000ul) || \
- ((CONFIG_EXAMPLE_IGMP_GRPADDR & 0xffff0000) > 0xeffffffful)
-# error "Bad range for IGMP group address"
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does
- * not support weak functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_IGMP_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-
- message("Configuring Ethernet...\n");
-
- /* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_IGMP_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_IGMP_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_IGMP_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_IGMP_NETMASK);
- uip_setnetmask("eth0", &addr);
-
- /* Not much of a test for now */
- /* Join the group */
-
- message("Join group...\n");
- addr.s_addr = HTONL(CONFIG_EXAMPLE_IGMP_GRPADDR);
- ipmsfilter("eth0", &addr, MCAST_INCLUDE);
-
- /* Wait a while */
-
- message("Wait for timeout...\n");
- sleep(5);
-
- /* Leave the group */
-
- message("Leave group...\n");
- ipmsfilter("eth0", &addr, MCAST_EXCLUDE);
-
- /* Wait a while */
-
- sleep(5);
- message("Exiting...\n");
- return 0;
-}
diff --git a/nuttx/examples/igmp/igmp.h b/nuttx/examples/igmp/igmp.h
deleted file mode 100755
index e241467c6..000000000
--- a/nuttx/examples/igmp/igmp.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- * examples/igmp/igmp.h
- *
- * Copyright (C) 2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_IGMP_H
-#define __EXAMPLES_IGMP_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <debug.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Used lib_rawprintf() so that there is no confusion from buffered IO */
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# define message(...) lib_rawprintf(__VA_ARGS__)
-#else
-# define message lib_rawprintf
-#endif
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#endif /* __EXAMPLES_IGMP_H */
diff --git a/nuttx/examples/mm/mm_main.c b/nuttx/examples/mm/mm_main.c
deleted file mode 100644
index 0e23e0cfb..000000000
--- a/nuttx/examples/mm/mm_main.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/****************************************************************************
- * examples/mm/mm_main.c
- *
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define NTEST_ALLOCS 32
-
-/* #define STOP_ON_ERRORS do{}while(0) */
-#define STOP_ON_ERRORS exit(1)
-
-/* All other definitions derive from these two */
-
-#define MM_MIN_SHIFT 4 /* 16 bytes */
-#define MM_MIN_CHUNK (1 << MM_MIN_SHIFT)
-#define MM_GRAN_MASK (MM_MIN_CHUNK-1)
-#define MM_ALIGN_UP(a) (((a) + MM_GRAN_MASK) & ~MM_GRAN_MASK)
-#define MM_ALIGN_DOWN(a) ((a) & ~MM_GRAN_MASK)
-
-#ifdef CONFIG_SMALL_MEMORY
-# define SIZEOF_MM_ALLOCNODE 4
-#else
-# define SIZEOF_MM_ALLOCNODE 8
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-/* Test allocations */
-
-static const int alloc_sizes[NTEST_ALLOCS] =
-{
- 1024, 12, 962, 5692, 10254, 111, 9932, 601,
- 222, 2746, 3, 124321, 68, 776, 6750, 852,
- 4732, 28, 901, 480, 5011, 1536, 2011, 81647,
- 646, 1646, 69179, 194, 2590, 7, 969, 70
-};
-
-static const int realloc_sizes[NTEST_ALLOCS] =
-{
- 18, 3088, 963, 123, 511, 11666, 3723, 42,
- 9374, 1990, 1412, 6, 592, 4088, 11, 5040,
- 8663, 91255, 28, 4346, 9172, 168, 229, 4734,
- 59139, 221, 7830, 30421, 1666, 4, 812, 416
-};
-
-static const int random1[NTEST_ALLOCS] =
-{
- 20, 11, 3, 31, 9, 29, 7, 17,
- 21, 2, 26, 18, 14, 25, 0, 10,
- 27, 19, 22, 28, 8, 30, 12, 15,
- 4, 1, 24, 6, 16, 13, 5, 23
-};
-
-static const int random2[NTEST_ALLOCS] =
-{
- 2, 19, 12, 23, 30, 11, 27, 4,
- 20, 7, 0, 16, 28, 15, 5, 24,
- 10, 17, 25, 31, 8, 29, 3, 26,
- 9, 18, 22, 13, 1, 21, 14, 6
-};
-
-static const int random3[NTEST_ALLOCS] =
-{
- 8, 17, 3, 18, 26, 23, 30, 11,
- 12, 22, 4, 20, 25, 10, 27, 1,
- 29, 14, 19, 21, 0, 31, 7, 24,
- 9, 15, 2, 28, 16, 6, 13, 5
-};
-
-static const int alignment[NTEST_ALLOCS/2] =
-{
- 128, 2048, 131072, 8192, 32, 32768, 16384 , 262144,
- 512, 4096, 65536, 8, 64, 1024, 16, 4
-};
-
-static void *allocs[NTEST_ALLOCS];
-static struct mallinfo alloc_info;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static void mm_showmallinfo(void)
-{
- alloc_info = mallinfo();
- printf(" mallinfo:\n");
- printf(" Total space allocated from system = %ld\n",
- alloc_info.arena);
- printf(" Number of non-inuse chunks = %ld\n",
- alloc_info.ordblks);
- printf(" Largest non-inuse chunk = %ld\n",
- alloc_info.mxordblk);
- printf(" Total allocated space = %ld\n",
- alloc_info.uordblks);
- printf(" Total non-inuse space = %ld\n",
- alloc_info.fordblks);
-}
-
-static void do_mallocs(void **mem, const int *size, const int *seq, int n)
-{
- int i;
- int j;
-
- for (i = 0; i < n; i++)
- {
- j = seq[i];
- if (!mem[j])
- {
- printf("(%d)Allocating %d bytes\n", i, size[j]);
- mem[j] = malloc(size[j]);
- printf("(%d)Memory allocated at %p\n", i, mem[j]);
- if (mem[j] == NULL)
- {
- int allocsize = MM_ALIGN_UP(size[j] + SIZEOF_MM_ALLOCNODE);
- fprintf(stderr, "(%d)malloc failed for allocsize=%d\n", i, allocsize);
- if (allocsize > alloc_info.mxordblk)
- {
- fprintf(stderr, " Normal, largest free block is only %ld\n", alloc_info.mxordblk);
- }
- else
- {
- fprintf(stderr, " ERROR largest free block is %ld\n", alloc_info.mxordblk);
- exit(1);
- }
- }
- else
- {
- memset(mem[j], 0xAA, size[j]);
- }
-
- mm_showmallinfo();
- }
- }
-}
-
-static void do_reallocs(void **mem, const int *oldsize, const int *newsize, const int *seq, int n)
-{
- int i;
- int j;
-
- for (i = 0; i < n; i++)
- {
- j = seq[i];
- printf("(%d)Re-allocating at %p from %d to %d bytes\n",
- i, mem[j], oldsize[j], newsize[j]);
- mem[j] = realloc(mem[j], newsize[j]);
- printf("(%d)Memory re-allocated at %p\n", i, mem[j]);
- if (mem[j] == NULL)
- {
- int allocsize = MM_ALIGN_UP(newsize[j] + SIZEOF_MM_ALLOCNODE);
- fprintf(stderr, "(%d)realloc failed for allocsize=%d\n", i, allocsize);
- if (allocsize > alloc_info.mxordblk)
- {
- fprintf(stderr, " Normal, largest free block is only %ld\n", alloc_info.mxordblk);
- }
- else
- {
- fprintf(stderr, " ERROR largest free block is %ld\n", alloc_info.mxordblk);
- exit(1);
- }
- }
- else
- {
- memset(mem[j], 0x55, newsize[j]);
- }
-
- mm_showmallinfo();
- }
-}
-
-static void do_memaligns(void **mem, const int *size, const int *align, const int *seq, int n)
-{
- int i;
- int j;
-
- for (i = 0; i < n; i++)
- {
- j = seq[i];
- printf("(%d)Allocating %d bytes aligned to 0x%08x\n",
- i, size[j], align[i]);
- mem[j] = memalign(align[i], size[j]);
- printf("(%d)Memory allocated at %p\n", i, mem[j]);
- if (mem[j] == NULL)
- {
- int allocsize = MM_ALIGN_UP(size[j] + SIZEOF_MM_ALLOCNODE) + 2*align[i];
- fprintf(stderr, "(%d)memalign failed for allocsize=%d\n", i, allocsize);
- if (allocsize > alloc_info.mxordblk)
- {
- fprintf(stderr, " Normal, largest free block is only %ld\n", alloc_info.mxordblk);
- }
- else
- {
- fprintf(stderr, " ERROR largest free block is %ld\n", alloc_info.mxordblk);
- exit(1);
- }
- }
- else
- {
- memset(mem[j], 0x33, size[j]);
- }
-
- mm_showmallinfo();
- }
-}
-
-static void do_frees(void **mem, const int *size, const int *seq, int n)
-{
- int i;
- int j;
-
- for (i = 0; i < n; i++)
- {
- j = seq[i];
- printf("(%d)Releasing memory at %p (size=%d bytes)\n",
- i, mem[j], size[j]);
- free(mem[j]);
- mem[j] = NULL;
-
- mm_showmallinfo();
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- mm_showmallinfo();
-
- /* Allocate some memory */
-
- do_mallocs(allocs, alloc_sizes, random1, NTEST_ALLOCS);
-
- /* Re-allocate the memory */
-
- do_reallocs(allocs, alloc_sizes, realloc_sizes, random2, NTEST_ALLOCS);
-
- /* Release the memory */
-
- do_frees(allocs, realloc_sizes, random3, NTEST_ALLOCS);
-
- /* Allocate aligned memory */
-
- do_memaligns(allocs, alloc_sizes, alignment, random2, NTEST_ALLOCS/2);
- do_memaligns(allocs, alloc_sizes, alignment, &random2[NTEST_ALLOCS/2], NTEST_ALLOCS/2);
-
- /* Release aligned memory */
-
- do_frees(allocs, alloc_sizes, random1, NTEST_ALLOCS);
-
- printf("TEST COMPLETE\n");
- return 0;
-}
diff --git a/nuttx/examples/mount/Makefile b/nuttx/examples/mount/Makefile
deleted file mode 100644
index 31067966e..000000000
--- a/nuttx/examples/mount/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# Makefile
-#
-# Copyright (C) 2007-2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = mount_main.c ramdisk.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/mount/mount.h b/nuttx/examples/mount/mount.h
deleted file mode 100644
index 68a03674d..000000000
--- a/nuttx/examples/mount/mount.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/****************************************************************************
- * examples/mount/mount.h
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_MOUNT_MOUNT_H
-#define __EXAMPLES_MOUNT_MOUNT_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Configure the test */
-
-#if defined(CONFIG_EXAMPLES_MOUNT_DEVNAME)
-# if !defined(CONFIG_FS_WRITABLE)
-# error "Writable filesystem required in this configuration"
-# endif
-# undef CONFIG_EXAMPLES_MOUNT_NSECTORS
-# undef CONFIG_EXAMPLES_MOUNT_SECTORSIZE
-# undef CONFIG_EXAMPLES_MOUNT_RAMDEVNO
-# define MOUNT_DEVNAME CONFIG_EXAMPLES_MOUNT_DEVNAME
-#else
-# if !defined(CONFIG_FS_FAT)
-# error "CONFIG_FS_FAT required in this configuration"
-# endif
-# if !defined(CONFIG_EXAMPLES_MOUNT_SECTORSIZE)
-# define CONFIG_EXAMPLES_MOUNT_SECTORSIZE 512
-# endif
-# if !defined(CONFIG_EXAMPLES_MOUNT_NSECTORS)
-# define CONFIG_EXAMPLES_MOUNT_NSECTORS 2048
-# endif
-# if !defined(CONFIG_EXAMPLES_MOUNT_RAMDEVNO)
-# define CONFIG_EXAMPLES_MOUNT_RAMDEVNO 0
-# endif
-# define STR_RAMDEVNO(m) #m
-# define MKMOUNT_DEVNAME(m) "/dev/ram" STR_RAMDEVNO(m)
-# define MOUNT_DEVNAME MKMOUNT_DEVNAME(CONFIG_EXAMPLES_MOUNT_RAMDEVNO)
-#endif
-
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Variables
- ****************************************************************************/
-
-extern const char g_source[]; /* Mount 'source' path */
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_MOUNT_DEVNAME
-extern int create_ramdisk(void);
-#endif
-
-#endif /* __EXAMPLES_MOUNT_MOUNT_H */
diff --git a/nuttx/examples/mount/mount_main.c b/nuttx/examples/mount/mount_main.c
deleted file mode 100644
index 05bda8150..000000000
--- a/nuttx/examples/mount/mount_main.c
+++ /dev/null
@@ -1,762 +0,0 @@
-/****************************************************************************
- * mount_main.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/statfs.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <errno.h>
-
-#include "mount.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define TEST_USE_STAT 1
-#define TEST_SHOW_DIRECTORIES 1
-#define TEST_USE_STATFS 1
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char g_mntdir[] = "/mnt";
-static const char g_target[] = "/mnt/fs";
-static const char g_filesystemtype[] = "vfat";
-
-static const char g_testdir1[] = "/mnt/fs/TestDir";
-static const char g_testdir2[] = "/mnt/fs/NewDir1";
-static const char g_testdir3[] = "/mnt/fs/NewDir2";
-static const char g_testdir4[] = "/mnt/fs/NewDir3";
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
-static const char g_testfile1[] = "/mnt/fs/TestDir/TestFile.txt";
-#endif
-static const char g_testfile2[] = "/mnt/fs/TestDir/WrTest1.txt";
-static const char g_testfile3[] = "/mnt/fs/NewDir1/WrTest2.txt";
-static const char g_testfile4[] = "/mnt/fs/NewDir3/Renamed.txt";
-static const char g_testmsg[] = "This is a write test";
-
-static int g_nerrors = 0;
-
-static char g_namebuffer[256];
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
- const char g_source[] = MOUNT_DEVNAME;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-#ifdef TEST_USE_STAT
-static void show_stat(const char *path, struct stat *ps)
-{
- printf("%s stat:\n", path);
- printf("\tmode : %08x\n", ps->st_mode);
- if (S_ISREG(ps->st_mode))
- {
- printf("\ttype : File\n");
- }
- else if (S_ISDIR(ps->st_mode))
- {
- printf("\ttype : Directory\n");
- }
- else if (S_ISCHR(ps->st_mode))
- {
- printf("\ttype : Character driver\n");
- }
- else if (S_ISBLK(ps->st_mode))
- {
- printf("\ttype : Block driver\n");
- }
- else
- {
- printf("\ttype : Unknown\n");
- }
-
- printf("\tsize : %d (bytes)\n", ps->st_size);
- printf("\tblock size : %d (bytes)\n", ps->st_blksize);
- printf("\tsize : %d (blocks)\n", ps->st_blocks);
- printf("\taccess time : %d\n", ps->st_atime);
- printf("\tmodify time : %d\n", ps->st_mtime);
- printf("\tchange time : %d\n", ps->st_ctime);
-}
-#endif
-
-/****************************************************************************
- * Name: show_statfs
- ****************************************************************************/
-
-#ifdef TEST_USE_STATFS
-static void show_statfs(const char *path)
-{
- struct statfs buf;
- int ret;
-
- /* Try stat() against a file or directory. It should fail with expectederror */
-
- printf("show_statfs: Try statfs(%s)\n", path);
- ret = statfs(path, &buf);
- if (ret == 0)
- {
- printf("show_statfs: statfs(%s) succeeded\n", path);
- printf("\tFS Type : %0x\n", buf.f_type);
- printf("\tBlock size : %d\n", buf.f_bsize);
- printf("\tNumber of blocks : %d\n", buf.f_blocks);
- printf("\tFree blocks : %d\n", buf.f_bfree);
- printf("\tFree user blocks : %d\n", buf.f_bavail);
- printf("\tNumber file nodes : %d\n", buf.f_files);
- printf("\tFree file nodes : %d\n", buf.f_ffree);
- printf("\tFile name length : %d\n", buf.f_namelen);
- }
- else
- {
- printf("show_statfs: ERROR statfs(%s) failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- }
-}
-#else
-# define show_statfs(p)
-#endif
-
-/****************************************************************************
- * Name: show_directories
- ****************************************************************************/
-
-#ifdef TEST_SHOW_DIRECTORIES
-static void show_directories(const char *path, int indent)
-{
- DIR *dirp;
- struct dirent *direntry;
- int i;
-
- dirp = opendir(path);
- if ( !dirp )
- {
- printf("show_directories: ERROR opendir(\"%s\") failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- return;
- }
-
- for (direntry = readdir(dirp); direntry; direntry = readdir(dirp))
- {
- for (i = 0; i < 2*indent; i++)
- {
- putchar(' ');
- }
- if (DIRENT_ISDIRECTORY(direntry->d_type))
- {
- char *subdir;
- printf("%s/\n", direntry->d_name);
- sprintf(g_namebuffer, "%s/%s", path, direntry->d_name);
- subdir = strdup(g_namebuffer);
- show_directories( subdir, indent + 1);
- free(subdir);
- }
- else
- {
- printf("%s\n", direntry->d_name);
- }
- }
-
- closedir(dirp);
-}
-#else
-# define show_directories(p,i)
-#endif
-
-/****************************************************************************
- * Name: fail_read_open
- ****************************************************************************/
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
-static void fail_read_open(const char *path, int expectederror)
-{
- int fd;
-
- printf("fail_read_open: Try open(%s) for reading\n", path);
-
- fd = open(path, O_RDONLY);
- if (fd >= 0)
- {
- printf("fail_read_open: ERROR open(%s) succeeded\n", path);
- g_nerrors++;
- close(fd);
- }
- else if (errno != expectederror)
- {
- printf("fail_read_open: ERROR open(%s) failed with errno=%d (expected %d)\n",
- path, errno, expectederror);
- g_nerrors++;
- }
-}
-#endif
-
-/****************************************************************************
- * Name: read_test_file
- ****************************************************************************/
-
-static void read_test_file(const char *path)
-{
- char buffer[128];
- int nbytes;
- int fd;
-
- /* Read a test file that is already on the test file system image */
-
- printf("read_test_file: opening %s for reading\n", path);
-
- fd = open(path, O_RDONLY);
- if (fd < 0)
- {
- printf("read_test_file: ERROR failed to open %s, errno=%d\n",
- path, errno);
- g_nerrors++;
- }
- else
- {
- memset(buffer, 0, 128);
- nbytes = read(fd, buffer, 128);
- if (nbytes < 0)
- {
- printf("read_test_file: ERROR failed to read from %s, errno=%d\n",
- path, errno);
- g_nerrors++;
- }
- else
- {
- buffer[127]='\0';
- printf("read_test_file: Read \"%s\" from %s\n", buffer, path);
- }
- close(fd);
- }
-}
-
-/****************************************************************************
- * Name: write_test_file
- ****************************************************************************/
-
-static void write_test_file(const char *path)
-{
- int fd;
-
- /* Write a test file into a pre-existing file on the test file system */
-
- printf("write_test_file: opening %s for writing\n", path);
-
- fd = open(path, O_WRONLY|O_CREAT|O_TRUNC, 0644);
- if (fd < 0)
- {
- printf("write_test_file: ERROR failed to open %s for writing, errno=%d\n",
- path, errno);
- g_nerrors++;
- }
- else
- {
- int nbytes = write(fd, g_testmsg, strlen(g_testmsg));
- if (nbytes < 0)
- {
- printf("write_test_file: ERROR failed to write to %s, errno=%d\n",
- path, errno);
- g_nerrors++;
- }
- else
- {
- printf("write_test_file: wrote %d bytes to %s\n", nbytes, path);
- }
- close(fd);
- }
-}
-
-/****************************************************************************
- * Name: fail_mkdir
- ****************************************************************************/
-
-static void fail_mkdir(const char *path, int expectederror)
-{
- int ret;
-
- /* Try mkdir() against a file or directory. It should fail with expectederror */
-
- printf("fail_mkdir: Try mkdir(%s)\n", path);
-
- ret = mkdir(path, 0666);
- if (ret == 0)
- {
- printf("fail_mkdir: ERROR mkdir(%s) succeeded\n", path);
- g_nerrors++;
- }
- else if (errno != expectederror)
- {
- printf("fail_mkdir: ERROR mkdir(%s) failed with errno=%d (expected %d)\n",
- path, errno, expectederror);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: succeed_mkdir
- ****************************************************************************/
-
-static void succeed_mkdir(const char *path)
-{
- int ret;
-
- printf("succeed_mkdir: Try mkdir(%s)\n", path);
-
- ret = mkdir(path, 0666);
- if (ret != 0)
- {
- printf("succeed_mkdir: ERROR mkdir(%s) failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: fail_rmdir
- ****************************************************************************/
-
-static void fail_rmdir(const char *path, int expectederror)
-{
- int ret;
-
- /* Try rmdir() against a file or directory. It should fail with expectederror */
-
- printf("fail_rmdir: Try rmdir(%s)\n", path);
-
- ret = rmdir(path);
- if (ret == 0)
- {
- printf("fail_rmdir: ERROR rmdir(%s) succeeded\n", path);
- g_nerrors++;
- }
- else if (errno != expectederror)
- {
- printf("fail_rmdir: ERROR rmdir(%s) failed with errno=%d (expected %d)\n",
- path, errno, expectederror);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: succeed_rmdir
- ****************************************************************************/
-
-static void succeed_rmdir(const char *path)
-{
- int ret;
-
- printf("succeed_rmdir: Try rmdir(%s)\n", path);
-
- ret = rmdir(path);
- if (ret != 0)
- {
- printf("succeed_rmdir: ERROR rmdir(%s) failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: fail_unlink
- ****************************************************************************/
-
-static void fail_unlink(const char *path, int expectederror)
-{
- int ret;
-
- /* Try unlink() against a file or directory. It should fail with expectederror */
-
- printf("fail_unlink: Try unlink(%s)\n", path);
-
- ret = unlink(path);
- if (ret == 0)
- {
- printf("fail_unlink: ERROR unlink(%s) succeeded\n", path);
- g_nerrors++;
- }
- else if (errno != expectederror)
- {
- printf("fail_unlink: ERROR unlink(%s) failed with errno=%d (expected %d)\n",
- path, errno, expectederror);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: succeed_unlink
- ****************************************************************************/
-
-static void succeed_unlink(const char *path)
-{
- int ret;
-
- /* Try unlink() against the test file. It should succeed. */
-
- printf("succeed_unlink: Try unlink(%s)\n", path);
-
- ret = unlink(path);
- if (ret != 0)
- {
- printf("succeed_unlink: ERROR unlink(%s) failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: fail_rename
- ****************************************************************************/
-
-static void fail_rename(const char *oldpath, const char *newpath, int expectederror)
-{
- int ret;
-
- /* Try rename() against a file or directory. It should fail with expectederror */
-
- printf("fail_rename: Try rename(%s->%s)\n", oldpath, newpath);
-
- ret = rename(oldpath, newpath);
- if (ret == 0)
- {
- printf("fail_rename: ERROR rename(%s->%s) succeeded\n",
- oldpath, newpath);
- g_nerrors++;
- }
- else if (errno != expectederror)
- {
- printf("fail_rename: ERROR rename(%s->%s) failed with errno=%d (expected %d)\n",
- oldpath, newpath, errno, expectederror);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: succeed_rename
- ****************************************************************************/
-
-static void succeed_rename(const char *oldpath, const char *newpath)
-{
- int ret;
-
- printf("succeed_rename: Try rename(%s->%s)\n", oldpath, newpath);
-
- ret = rename(oldpath, newpath);
- if (ret != 0)
- {
- printf("succeed_rename: ERROR rename(%s->%s) failed with errno=%d\n",
- oldpath, newpath, errno);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: fail_stat
- ****************************************************************************/
-
-#ifdef TEST_USE_STAT
-static void fail_stat(const char *path, int expectederror)
-{
- struct stat buf;
- int ret;
-
- /* Try stat() against a file or directory. It should fail with expectederror */
-
- printf("fail_stat: Try stat(%s)\n", path);
-
- ret = stat(path, &buf);
- if (ret == 0)
- {
- printf("fail_stat: ERROR stat(%s) succeeded\n", path);
- show_stat(path, &buf);
- g_nerrors++;
- }
- else if (errno != expectederror)
- {
- printf("fail_stat: ERROR stat(%s) failed with errno=%d (expected %d)\n",
- path, errno, expectederror);
- g_nerrors++;
- }
-}
-#else
-# define fail_stat(p,e);
-#endif
-
-/****************************************************************************
- * Name: succeed_stat
- ****************************************************************************/
-
-#ifdef TEST_USE_STAT
-static void succeed_stat(const char *path)
-{
- struct stat buf;
- int ret;
-
- printf("succeed_stat: Try stat(%s)\n", path);
-
- ret = stat(path, &buf);
- if (ret != 0)
- {
- printf("succeed_stat: ERROR stat(%s) failed with errno=%d\n",
- path, errno);
- g_nerrors++;
- }
- else
- {
- printf("succeed_stat: stat(%s) succeeded\n", path);
- show_stat(path, &buf);
- }
-}
-#else
-#define succeed_stat(p)
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- int ret;
-
-#ifndef CONFIG_EXAMPLES_MOUNT_DEVNAME
- /* Create a RAM disk for the test */
-
- ret = create_ramdisk();
- if (ret < 0)
- {
- printf("user_start: ERROR failed to create RAM disk\n");
- return 1;
- }
-#endif
-
- /* Mount the test file system (see arch/sim/src/up_deviceimage.c */
-
- printf("user_start: mounting %s filesystem at target=%s with source=%s\n",
- g_filesystemtype, g_target, g_source);
-
- ret = mount(g_source, g_target, g_filesystemtype, 0, NULL);
- printf("user_start: mount() returned %d\n", ret);
-
- if (ret == 0)
- {
- show_statfs(g_mntdir);
- show_statfs(g_target);
-
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
- /* Read a test file that is already on the test file system image */
-
- show_directories("", 0);
- succeed_stat(g_testfile1);
- show_statfs(g_testfile1);
- read_test_file(g_testfile1);
-#else
- /* Create the test directory that would have been on the canned filesystem */
-
- succeed_mkdir(g_testdir1);
- show_directories("", 0);
- succeed_stat(g_testdir1);
- show_statfs(g_testdir1);
-#endif
-
- /* Write a test file into a pre-existing directory on the test file system */
-
- fail_stat(g_testfile2, ENOENT);
- write_test_file(g_testfile2);
- show_directories("", 0);
- succeed_stat(g_testfile2);
- show_statfs(g_testfile2);
-
- /* Read the file that we just wrote */
-
- read_test_file(g_testfile2);
-
- /* Try rmdir() against a file on the directory. It should fail with ENOTDIR */
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
- fail_rmdir(g_testfile1, ENOTDIR);
-#endif
-
- /* Try rmdir() against the test directory. It should fail with ENOTEMPTY */
-
- fail_rmdir(g_testdir1, ENOTEMPTY);
-
- /* Try unlink() against the test directory. It should fail with EISDIR */
-
- fail_unlink(g_testdir1, EISDIR);
-
- /* Try unlink() against the test file1. It should succeed. */
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
- succeed_unlink(g_testfile1);
- fail_stat(g_testfile1, ENOENT);
- show_directories("", 0);
-#endif
-
- /* Attempt to open testfile1 should fail with ENOENT */
-#ifdef CONFIG_EXAMPLES_MOUNT_DEVNAME
- fail_read_open(g_testfile1, ENOENT);
-#endif
- /* Try rmdir() against the test directory. It should still fail with ENOTEMPTY */
-
- fail_rmdir(g_testdir1, ENOTEMPTY);
-
- /* Try mkdir() against the test file2. It should fail with EEXIST. */
-
- fail_mkdir(g_testfile2, EEXIST);
-
- /* Try unlink() against the test file2. It should succeed. */
-
- succeed_unlink(g_testfile2);
- show_directories("", 0);
- fail_stat(g_testfile2, ENOENT);
-
- /* Try mkdir() against the test dir1. It should fail with EEXIST. */
-
- fail_mkdir(g_testdir1, EEXIST);
-
- /* Try rmdir() against the test directory. mkdir should now succeed. */
-
- succeed_rmdir(g_testdir1);
- show_directories("", 0);
- fail_stat(g_testdir1, ENOENT);
-
- /* Try mkdir() against the test dir2. It should succeed */
-
- succeed_mkdir(g_testdir2);
- show_directories("", 0);
- succeed_stat(g_testdir2);
- show_statfs(g_testdir2);
-
- /* Try mkdir() against the test dir2. It should fail with EXIST */
-
- fail_mkdir(g_testdir2, EEXIST);
-
- /* Write a test file into a new directory on the test file system */
-
- fail_stat(g_testfile3, ENOENT);
- write_test_file(g_testfile3);
- show_directories("", 0);
- succeed_stat(g_testfile3);
- show_statfs(g_testfile3);
-
- /* Read the file that we just wrote */
-
- read_test_file(g_testfile3);
-
- /* Use mkdir() to create test dir3. It should succeed */
-
- fail_stat(g_testdir3, ENOENT);
- succeed_mkdir(g_testdir3);
- show_directories("", 0);
- succeed_stat(g_testdir3);
- show_statfs(g_testdir3);
-
- /* Try rename() on the root directory. Should fail with EXDEV*/
-
- fail_rename(g_target, g_testdir4, EXDEV);
-
- /* Try rename() to an existing directory. Should fail with EEXIST */
-
- fail_rename(g_testdir2, g_testdir3, EEXIST);
-
- /* Try rename() to a non-existing directory. Should succeed */
-
- fail_stat(g_testdir4, ENOENT);
- succeed_rename(g_testdir3, g_testdir4);
- show_directories("", 0);
- fail_stat(g_testdir3, ENOENT);
- succeed_stat(g_testdir4);
- show_statfs(g_testdir4);
-
- /* Try rename() of file. Should work. */
-
- fail_stat(g_testfile4, ENOENT);
- succeed_rename(g_testfile3, g_testfile4);
- show_directories("", 0);
- fail_stat(g_testfile3, ENOENT);
- succeed_stat(g_testfile4);
- show_statfs(g_testfile4);
-
- /* Make sure that we can still read the renamed file */
-
- read_test_file(g_testfile4);
-
- /* Unmount the file system */
-
- printf("user_start: Try unmount(%s)\n", g_target);
-
- ret = umount(g_target);
- if (ret != 0)
- {
- printf("user_start: ERROR umount() failed, errno %d\n", errno);
- g_nerrors++;
- }
-
- printf("user_start: %d errors reported\n", g_nerrors);
- }
-
- fflush(stdout);
- return 0;
-}
diff --git a/nuttx/examples/mount/ramdisk.c b/nuttx/examples/mount/ramdisk.c
deleted file mode 100644
index f596dae52..000000000
--- a/nuttx/examples/mount/ramdisk.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
- * examples/mount/ramdisk.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#include <nuttx/ramdisk.h>
-#include <nuttx/mkfatfs.h>
-
-#include "mount.h"
-
-#ifndef CONFIG_EXAMPLES_MOUNT_DEVNAME
-
-/****************************************************************************
- * Private Definitions
- ****************************************************************************/
-
-#define BUFFER_SIZE (CONFIG_EXAMPLES_MOUNT_NSECTORS*CONFIG_EXAMPLES_MOUNT_SECTORSIZE)
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static struct fat_format_s g_fmt = FAT_FORMAT_INITIALIZER;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: create_ramdisk
- *
- * Description:
- * Create a RAM disk of the specified size formatting with a FAT file
- * system
- *
- * Input Parameters:
- * None
- *
- * Return:
- * Zero on success, a negated errno on failure.
- *
- ****************************************************************************/
-
-int create_ramdisk(void)
-{
- char *pbuffer;
- int ret;
-
- /* Allocate a buffer to hold the file system image. */
-
- pbuffer = (char*)malloc(BUFFER_SIZE);
- if (!pbuffer)
- {
- printf("create_ramdisk: Failed to allocate ramdisk of size %d\n",
- BUFFER_SIZE);
- return -ENOMEM;
- }
-
- /* Register a RAMDISK device to manage this RAM image */
-
- ret = ramdisk_register(CONFIG_EXAMPLES_MOUNT_RAMDEVNO,
- pbuffer,
- CONFIG_EXAMPLES_MOUNT_NSECTORS,
- CONFIG_EXAMPLES_MOUNT_SECTORSIZE,
- true);
- if (ret < 0)
- {
- printf("create_ramdisk: Failed to register ramdisk at %s: %d\n",
- g_source, -ret);
- free(pbuffer);
- return ret;
- }
-
- /* Create a FAT filesystem on the ramdisk */
-
- ret = mkfatfs(g_source, &g_fmt);
- if (ret < 0)
- {
- printf("create_ramdisk: Failed to create FAT filesystem on ramdisk at %s\n",
- g_source);
- /* free(pbuffer); -- RAM disk is registered */
- return ret;
- }
-
- return 0;
-}
-#endif /* !CONFIG_EXAMPLES_MOUNT_DEVNAME */
diff --git a/nuttx/examples/nettest/Makefile b/nuttx/examples/nettest/Makefile
deleted file mode 100644
index 5fda016fb..000000000
--- a/nuttx/examples/nettest/Makefile
+++ /dev/null
@@ -1,106 +0,0 @@
-############################################################################
-# examples/nettest/Makefile
-#
-# Copyright (C) 2007-2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-TARG_ASRCS =
-TARG_AOBJS = $(TARG_ASRCS:.S=$(OBJEXT))
-
-TARG_CSRCS = nettest.c
-ifeq ($(CONFIG_EXAMPLE_NETTEST_SERVER),y)
-TARG_CSRCS += nettest_server.c
-else
-TARG_CSRCS += nettest_client.c
-endif
-
-TARG_COBJS = $(TARG_CSRCS:.c=$(OBJEXT))
-
-TARG_SRCS = $(TARG_ASRCS) $(TARG_CSRCS)
-TARG_OBJS = $(TARG_AOBJS) $(TARG_COBJS)
-
-TARG_BIN = libapp$(LIBEXT)
-
-HOSTCFLAGS += -DCONFIG_EXAMPLE_NETTEST_HOST=1
-ifeq ($(CONFIG_EXAMPLE_NETTEST_SERVER),y)
-HOSTCFLAGS += -DCONFIG_EXAMPLE_NETTEST_SERVER=1 \
- -DCONFIG_EXAMPLE_NETTEST_CLIENTIP="$(CONFIG_EXAMPLE_NETTEST_CLIENTIP)"
-endif
-
-HOST_SRCS = host.c
-ifeq ($(CONFIG_EXAMPLE_NETTEST_SERVER),y)
-HOST_SRCS += nettest_client.c
-else
-HOST_SRCS += nettest_server.c
-endif
-
-HOST_OBJS = $(HOST_SRCS:.c=.o)
-HOST_BIN = host
-
-all: $(TARG_BIN)
-
-$(TARG_AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(TARG_COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(TARG_BIN): $(TARG_OBJS) $(HOST_BIN)
- @( for obj in $(TARG_OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-$(HOST_OBJS): %.o: %.c
- @echo "CC: $<"
- @$(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
-
-$(HOST_BIN): $(HOST_OBJS)
- @echo "LD: $@"
- @$(HOSTCC) $(HOSTLDFLAGS) $(HOST_OBJS) -o $@
-
-.depend: Makefile $(TARG_SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(TARG_SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(TARG_BIN) $(HOST_BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/nettest/host.c b/nuttx/examples/nettest/host.c
deleted file mode 100644
index 8b0bffd7d..000000000
--- a/nuttx/examples/nettest/host.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * examples/nettest/host.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 "nettest.h"
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
-#ifdef CONFIG_EXAMPLE_NETTEST_SERVER
- send_client();
-#else
- recv_server();
-#endif
-
- return 0;
-}
diff --git a/nuttx/examples/nettest/nettest.c b/nuttx/examples/nettest/nettest.c
deleted file mode 100644
index c7492fff6..000000000
--- a/nuttx/examples/nettest/nettest.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- * examples/nettest/nettest.c
- *
- * Copyright (C) 2007, 2009-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <net/uip/uip.h>
-#include <apps/netutils/uiplib.h>
-
-#include "nettest.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does
- * not support weak functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#ifdef CONFIG_EXAMPLE_NETTEST_NOMAC
- uint8_t mac[IFHWADDRLEN];
-#endif
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_NETTEST_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_NETTEST_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_NETTEST_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_NETTEST_NETMASK);
- uip_setnetmask("eth0", &addr);
-
-#ifdef CONFIG_EXAMPLE_NETTEST_SERVER
- recv_server();
-#else
- send_client();
-#endif
-
- return 0;
-}
diff --git a/nuttx/examples/nettest/nettest.h b/nuttx/examples/nettest/nettest.h
deleted file mode 100644
index b5b619175..000000000
--- a/nuttx/examples/nettest/nettest.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * examples/nettest/nettest.h
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_NETTEST_H
-#define __EXAMPLES_NETTEST_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLE_NETTEST_HOST
-#else
-# include <debug.h>
-#endif
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLE_NETTEST_HOST
- /* HTONS/L macros are unique to uIP */
-
-# define HTONS(a) htons(a)
-# define HTONL(a) htonl(a)
-
- /* Used printf for debug output */
-
-# ifdef CONFIG_CPP_HAVE_VARARGS
-# define message(...) printf(__VA_ARGS__)
-# else
-# define message printf
-# endif
-
- /* Have SO_LINGER */
-
-# define NETTEST_HAVE_SOLINGER 1
-
-#else
-
- /* Used lib_rawprintf() so that there is not confusion from buffered IO */
-
-# ifdef CONFIG_CPP_HAVE_VARARGS
-# define message(...) lib_rawprintf(__VA_ARGS__)
-# else
-# define message lib_rawprintf
-# endif
-
- /* At present, uIP does only abortive disconnects */
-
-# undef NETTEST_HAVE_SOLINGER
-#endif
-
-#define PORTNO 5471
-#define SENDSIZE 4096
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-extern void send_client(void);
-extern void recv_server(void);
-
-#endif /* __EXAMPLES_NETTEST_H */
diff --git a/nuttx/examples/nettest/nettest_client.c b/nuttx/examples/nettest/nettest_client.c
deleted file mode 100644
index b879f8438..000000000
--- a/nuttx/examples/nettest/nettest_client.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
- * examples/nettest/nettest-client.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <sys/socket.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#include "nettest.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-void send_client(void)
-{
- struct sockaddr_in myaddr;
- char *outbuf;
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- char *inbuf;
-#endif
- int sockfd;
- int nbytessent;
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- int nbytesrecvd;
- int totalbytesrecvd;
-#endif
- int ch;
- int i;
-
- /* Allocate buffers */
-
- outbuf = (char*)malloc(SENDSIZE);
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- inbuf = (char*)malloc(SENDSIZE);
- if (!outbuf || !inbuf)
-#else
- if (!outbuf)
-#endif
- {
- message("client: failed to allocate buffers\n");
- exit(1);
- }
-
-
- /* Create a new TCP socket */
-
- sockfd = socket(PF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- {
- message("client socket failure %d\n", errno);
- goto errout_with_buffers;
- }
-
- /* Connect the socket to the server */
-
- myaddr.sin_family = AF_INET;
- myaddr.sin_port = HTONS(PORTNO);
-#if 0
- myaddr.sin_addr.s_addr = HTONL(INADDR_LOOPBACK);
-#else
- myaddr.sin_addr.s_addr = HTONL(CONFIG_EXAMPLE_NETTEST_CLIENTIP);
-#endif
-
- message("client: Connecting...\n");
- if (connect( sockfd, (struct sockaddr*)&myaddr, sizeof(struct sockaddr_in)) < 0)
- {
- message("client: connect failure: %d\n", errno);
- goto errout_with_socket;
- }
- message("client: Connected\n");
-
- /* Initialize the buffer */
-
- ch = 0x20;
- for (i = 0; i < SENDSIZE; i++ )
- {
- outbuf[i] = ch;
- if (++ch > 0x7e)
- {
- ch = 0x20;
- }
- }
-
-#ifdef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- /* Then receive messages forever */
-
- for (;;)
- {
- nbytessent = send(sockfd, outbuf, 512, 0);
- if (nbytessent < 0)
- {
- message("client: send failed: %d\n", errno);
- goto errout_with_socket;
- }
- else if (nbytessent != 512)
- {
- message("client: Bad send length=%d: %d\n", nbytessent);
- goto errout_with_socket;
- }
- }
-#else
- /* Then send and receive one message */
-
- message("client: Sending %d bytes\n", SENDSIZE);
- nbytessent = send(sockfd, outbuf, SENDSIZE, 0);
- message("client: Sent %d bytes\n", nbytessent);
-
- if (nbytessent < 0)
- {
- message("client: send failed: %d\n", errno);
- goto errout_with_socket;
- }
- else if (nbytessent != SENDSIZE)
- {
- message("client: Bad send length: %d Expected: %d\n", nbytessent, SENDSIZE);
- goto errout_with_socket;
- }
-
- totalbytesrecvd = 0;
- do
- {
- message("client: Receiving...\n");
- nbytesrecvd = recv(sockfd, &inbuf[totalbytesrecvd], SENDSIZE - totalbytesrecvd, 0);
-
- if (nbytesrecvd < 0)
- {
- message("client: recv failed: %d\n", errno);
- goto errout_with_socket;
- }
- totalbytesrecvd += nbytesrecvd;
- message("client: Received %d of %d bytes\n", totalbytesrecvd, SENDSIZE);
- }
- while (totalbytesrecvd < SENDSIZE);
-
- if (totalbytesrecvd != SENDSIZE)
- {
- message("client: Bad recv length: %d Expected: %d\n", totalbytesrecvd, SENDSIZE);
- goto errout_with_socket;
- }
- else if (memcmp(inbuf, outbuf, SENDSIZE) != 0)
- {
- message("client: Received buffer does not match sent buffer\n");
- goto errout_with_socket;
- }
-
- close(sockfd);
- free(outbuf);
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- free(inbuf);
-#endif
- return;
-#endif
-
-errout_with_socket:
- close(sockfd);
-
-errout_with_buffers:
- free(outbuf);
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- free(inbuf);
-#endif
- exit(1);
-}
diff --git a/nuttx/examples/nettest/nettest_server.c b/nuttx/examples/nettest/nettest_server.c
deleted file mode 100644
index 6d9ccaeba..000000000
--- a/nuttx/examples/nettest/nettest_server.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/****************************************************************************
- * examples/nettest/nettest-server.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "nettest.h"
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-void recv_server(void)
-{
- struct sockaddr_in myaddr;
-#ifdef NETTEST_HAVE_SOLINGER
- struct linger ling;
-#endif
- char *buffer;
- int listensd;
- int acceptsd;
- socklen_t addrlen;
- int nbytesread;
-#ifndef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- int totalbytesread;
- int nbytessent;
- int ch;
- int i;
-#endif
- int optval;
-
- /* Allocate a BIG buffer */
-
- buffer = (char*)malloc(2*SENDSIZE);
- if (!buffer)
- {
- message("server: failed to allocate buffer\n");
- exit(1);
- }
-
-
- /* Create a new TCP socket */
-
- listensd = socket(PF_INET, SOCK_STREAM, 0);
- if (listensd < 0)
- {
- message("server: socket failure: %d\n", errno);
- goto errout_with_buffer;
- }
-
- /* Set socket to reuse address */
-
- optval = 1;
- if (setsockopt(listensd, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, sizeof(int)) < 0)
- {
- message("server: setsockopt SO_REUSEADDR failure: %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Bind the socket to a local address */
-
- myaddr.sin_family = AF_INET;
- myaddr.sin_port = HTONS(PORTNO);
- myaddr.sin_addr.s_addr = INADDR_ANY;
-
- if (bind(listensd, (struct sockaddr*)&myaddr, sizeof(struct sockaddr_in)) < 0)
- {
- message("server: bind failure: %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Listen for connections on the bound TCP socket */
-
- if (listen(listensd, 5) < 0)
- {
- message("server: listen failure %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Accept only one connection */
-
- message("server: Accepting connections on port %d\n", PORTNO);
- addrlen = sizeof(struct sockaddr_in);
- acceptsd = accept(listensd, (struct sockaddr*)&myaddr, &addrlen);
- if (acceptsd < 0)
- {
- message("server: accept failure: %d\n", errno);
- goto errout_with_listensd;
- }
- message("server: Connection accepted -- receiving\n");
-
- /* Configure to "linger" until all data is sent when the socket is closed */
-
-#ifdef NETTEST_HAVE_SOLINGER
- ling.l_onoff = 1;
- ling.l_linger = 30; /* timeout is seconds */
- if (setsockopt(acceptsd, SOL_SOCKET, SO_LINGER, &ling, sizeof(struct linger)) < 0)
- {
- message("server: setsockopt SO_LINGER failure: %d\n", errno);
- goto errout_with_acceptsd;
- }
-#endif
-
-#ifdef CONFIG_EXAMPLE_NETTEST_PERFORMANCE
- /* Then receive data forever */
-
- for (;;)
- {
- nbytesread = recv(acceptsd, buffer, 2*SENDSIZE, 0);
- if (nbytesread <= 0)
- {
- message("server: recv failed: %d\n", errno);
- goto errout_with_acceptsd;
- }
- }
-#else
- /* Receive canned message */
-
- totalbytesread = 0;
- while (totalbytesread < SENDSIZE)
- {
- message("server: Reading...\n");
- nbytesread = recv(acceptsd, &buffer[totalbytesread], 2*SENDSIZE - totalbytesread, 0);
- if (nbytesread <= 0)
- {
- message("server: recv failed: %d\n", errno);
- goto errout_with_acceptsd;
- }
-
- totalbytesread += nbytesread;
- message("server: Received %d of %d bytes\n", totalbytesread, SENDSIZE);
- }
-
- /* Verify the message */
-
- if (totalbytesread != SENDSIZE)
- {
- message("server: Received %d / Expected %d bytes\n", totalbytesread, SENDSIZE);
- goto errout_with_acceptsd;
- }
-
- ch = 0x20;
- for (i = 0; i < SENDSIZE; i++ )
- {
- if (buffer[i] != ch)
- {
- message("server: Byte %d is %02x / Expected %02x\n", i, buffer[i], ch);
- goto errout_with_acceptsd;
- }
-
- if (++ch > 0x7e)
- {
- ch = 0x20;
- }
- }
-
- /* Then send the same data back to the client */
-
- message("server: Sending %d bytes\n", totalbytesread);
- nbytessent = send(acceptsd, buffer, totalbytesread, 0);
- if (nbytessent <= 0)
- {
- message("server: send failed: %d\n", errno);
- goto errout_with_acceptsd;
- }
- message("server: Sent %d bytes\n", nbytessent);
-
- /* If this platform only does abortive disconnects, then wait a bit to get the
- * client side a change to receive the data.
- */
-
-#if 1 /* Do it for all platforms */
- message("server: Wait before closing\n");
- sleep(60);
-#endif
-
- close(listensd);
- close(acceptsd);
- free(buffer);
- return;
-#endif
-
-errout_with_acceptsd:
- close(acceptsd);
-
-errout_with_listensd:
- close(listensd);
-
-errout_with_buffer:
- free(buffer);
- exit(1);
-}
diff --git a/nuttx/examples/nsh/Makefile b/nuttx/examples/nsh/Makefile
deleted file mode 100644
index 3ef915cb7..000000000
--- a/nuttx/examples/nsh/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/nsh/Makefile
-#
-# Copyright (C) 2007-2008, 2010-2011 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-CSRCS = nsh_main.c
-
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/nsh/nsh_main.c b/nuttx/examples/nsh/nsh_main.c
deleted file mode 100644
index 6f63308b4..000000000
--- a/nuttx/examples/nsh/nsh_main.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/****************************************************************************
- * examples/nsh/nsh_main.c
- *
- * Copyright (C) 2007-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/stat.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <apps/nsh.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#ifndef CONFIG_BUILTIN_APPS
-# warning "This example requires CONFIG_BUILTIN_APPS..."
-# warning " You must have an appconfig file in your config directory to use this example"
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-/* In order to support user_initialize if CONFIG_PAGING is defined, this
- * function (and only this function) would need to get moved to the locked
- * text region.
- */
-
-#ifndef CONFIG_PAGING
-void user_initialize(void)
-{
- /* stub */
-}
-#endif
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- int mid_priority;
-#if defined(CONFIG_NSH_CONSOLE) && defined(CONFIG_NSH_TELNET)
- int ret;
-#endif
-
- /* Initialize the NSH library */
-
- nsh_initialize();
-
- /* Set the priority of this task to something in the middle so that 'nice'
- * can both raise and lower the priority.
- */
-
- mid_priority = (sched_get_priority_max(SCHED_NSH) + sched_get_priority_min(SCHED_NSH)) >> 1;
- {
- struct sched_param param;
-
- param.sched_priority = mid_priority;
- (void)sched_setscheduler(0, SCHED_NSH, &param);
- }
-
- /* If both the console and telnet are selected as front-ends, then run
- * the telnet front end on another thread.
- */
-
-#if defined(CONFIG_NSH_CONSOLE) && defined(CONFIG_NSH_TELNET)
-# ifndef CONFIG_CUSTOM_STACK
- ret = task_create("nsh_telnetmain", mid_priority, CONFIG_NSH_STACKSIZE,
- nsh_telnetmain, NULL);
-# else
- ret = task_create("nsh_telnetmain", mid_priority, nsh_telnetmain, NULL);
-# endif
- if (ret < 0)
- {
- /* The daemon is NOT running. Report the the error then fail...
- * either with the serial console up or just exiting.
- */
-
- fprintf(stderr, "ERROR: Failed to start TELNET daemon: %d\n", errno);
- }
-
- /* If only the telnet front-end is selected, run it on this thread */
-
-#elif defined(CONFIG_NSH_TELNET)
- return nsh_telnetmain(0, NULL);
-#endif
-
-/* If the serial console front end is selected, then run it on this thread */
-
-#ifdef CONFIG_NSH_CONSOLE
- return nsh_consolemain(0, NULL);
-#endif
-}
diff --git a/nuttx/examples/null/Makefile b/nuttx/examples/null/Makefile
deleted file mode 100644
index 53efcbe39..000000000
--- a/nuttx/examples/null/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/null/Makefile
-#
-# Copyright (C) 2007-2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = null_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/null/null_main.c b/nuttx/examples/null/null_main.c
deleted file mode 100644
index fa0a1473d..000000000
--- a/nuttx/examples/null/null_main.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/****************************************************************************
- * examples/null/null_main.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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
- ****************************************************************************/
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- return 0;
-}
diff --git a/nuttx/examples/nx/Makefile b/nuttx/examples/nx/Makefile
deleted file mode 100644
index ea19ebcc5..000000000
--- a/nuttx/examples/nx/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-############################################################################
-# examples/nxflat/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-
-CSRCS = nx_main.c nx_events.c nx_kbdin.c
-ifeq ($(CONFIG_NX_MULTIUSER),y)
-CSRCS += nx_server.c
-endif
-
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
-
diff --git a/nuttx/examples/nx/nx_events.c b/nuttx/examples/nx/nx_events.c
deleted file mode 100644
index d1074b419..000000000
--- a/nuttx/examples/nx/nx_events.c
+++ /dev/null
@@ -1,337 +0,0 @@
-/****************************************************************************
- * examples/nx/nx_events.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <semaphore.h>
-#include <debug.h>
-#include <errno.h>
-
-#include <nuttx/nx.h>
-#include <nuttx/nxtk.h>
-#include "nx_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static void nxeg_redraw(NXEGWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- bool morem, FAR void *arg);
-static void nxeg_position(NXEGWINDOW hwnd, FAR const struct nxgl_size_s *size,
- FAR const struct nxgl_point_s *pos,
- FAR const struct nxgl_rect_s *bounds,
- FAR void *arg);
-#ifdef CONFIG_NX_MOUSE
-static void nxeg_mousein(NXEGWINDOW hwnd, FAR const struct nxgl_point_s *pos,
- uint8_t buttons, FAR void *arg);
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static void nxeg_tbredraw(NXEGWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- bool morem, FAR void *arg);
-static void nxeg_tbposition(NXEGWINDOW hwnd, FAR const struct nxgl_size_s *size,
- FAR const struct nxgl_point_s *pos,
- FAR const struct nxgl_rect_s *bounds,
- FAR void *arg);
-#ifdef CONFIG_NX_MOUSE
-static void nxeg_tbmousein(NXEGWINDOW hwnd, FAR const struct nxgl_point_s *pos,
- uint8_t buttons, FAR void *arg);
-#endif
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-const struct nx_callback_s g_nxcb =
-{
- nxeg_redraw, /* redraw */
- nxeg_position /* position */
-#ifdef CONFIG_NX_MOUSE
- , nxeg_mousein /* mousein */
-#endif
-#ifdef CONFIG_NX_KBD
- , nxeg_kbdin /* my kbdin */
-#endif
-};
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-const struct nx_callback_s g_tbcb =
-{
- nxeg_tbredraw, /* redraw */
- nxeg_tbposition /* position */
-#ifdef CONFIG_NX_MOUSE
- , nxeg_tbmousein /* mousein */
-#endif
-#ifdef CONFIG_NX_KBD
- , nxeg_tbkbdin /* my kbdin */
-#endif
-};
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nxeg_fillwindow
- ****************************************************************************/
-
-static inline void nxeg_fillwindow(NXEGWINDOW hwnd,
- FAR const struct nxgl_rect_s *rect,
- FAR struct nxeg_state_s *st)
-{
- int ret;
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
- ret = nx_fill(hwnd, rect, st->color);
- if (ret < 0)
- {
- message("nxeg_fillwindow: nx_fill failed: %d\n", errno);
- }
-#else
- ret = nxtk_fillwindow(hwnd, rect, st->color);
- if (ret < 0)
- {
- message("nxeg_fillwindow: nxtk_fillwindow failed: %d\n", errno);
- }
-#endif
-#ifdef CONFIG_NX_KBD
- nxeg_filltext(hwnd, rect, st);
-#endif
-}
-
-/****************************************************************************
- * Name: nxeg_fillwindow
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline void nxeg_filltoolbar(NXTKWINDOW htb,
- FAR const struct nxgl_rect_s *rect,
- nxgl_mxpixel_t color[CONFIG_NX_NPLANES])
-{
- int ret;
-
- ret = nxtk_filltoolbar(htb, rect, color);
- if (ret < 0)
- {
- message("nxeg_filltoolbar: nxtk_filltoolbar failed: %d\n", errno);
- }
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_redraw
- ****************************************************************************/
-
-static void nxeg_redraw(NXEGWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- bool more, FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
- message("nxeg_redraw%d: hwnd=%p rect={(%d,%d),(%d,%d)} more=%s\n",
- st->wnum, hwnd,
- rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y,
- more ? "true" : "false");
-
- nxeg_fillwindow(hwnd, rect, st);
-}
-
-/****************************************************************************
- * Name: nxeg_position
- ****************************************************************************/
-
-static void nxeg_position(NXEGWINDOW hwnd, FAR const struct nxgl_size_s *size,
- FAR const struct nxgl_point_s *pos,
- FAR const struct nxgl_rect_s *bounds,
- FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
-
- /* Report the position */
-
- message("nxeg_position%d: hwnd=%p size=(%d,%d) pos=(%d,%d) bounds={(%d,%d),(%d,%d)}\n",
- st->wnum, hwnd, size->w, size->h, pos->x, pos->y,
- bounds->pt1.x, bounds->pt1.y, bounds->pt2.x, bounds->pt2.y);
-
- /* Have we picked off the window bounds yet? */
-
- if (!b_haveresolution)
- {
- /* Save the window limits (these should be the same for all places and all windows */
-
- g_xres = bounds->pt2.x;
- g_yres = bounds->pt2.y;
-
- b_haveresolution = true;
- sem_post(&g_semevent);
- message("nxeg_position2: Have xres=%d yres=%d\n", g_xres, g_yres);
- }
-}
-
-/****************************************************************************
- * Name: nxeg_mousein
- ****************************************************************************/
-
-#ifdef CONFIG_NX_MOUSE
-static void nxeg_mousein(NXEGWINDOW hwnd, FAR const struct nxgl_point_s *pos,
- uint8_t buttons, FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
- message("nxeg_mousein%d: hwnd=%p pos=(%d,%d) button=%02x\n",
- st->wnum, hwnd, pos->x, pos->y, buttons);
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_tbredraw
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static void nxeg_tbredraw(NXEGWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- bool more, FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
- message("nxeg_tbredraw%d: hwnd=%p rect={(%d,%d),(%d,%d)} more=%s\n",
- st->wnum, hwnd,
- rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y,
- more ? "true" : "false");
- nxeg_filltoolbar(hwnd, rect, g_tbcolor);
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_position
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static void nxeg_tbposition(NXEGWINDOW hwnd, FAR const struct nxgl_size_s *size,
- FAR const struct nxgl_point_s *pos,
- FAR const struct nxgl_rect_s *bounds,
- FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
-
- /* Report the position */
-
- message("nxeg_ptbosition%d: hwnd=%p size=(%d,%d) pos=(%d,%d) bounds={(%d,%d),(%d,%d)}\n",
- st->wnum, hwnd, size->w, size->h, pos->x, pos->y,
- bounds->pt1.x, bounds->pt1.y, bounds->pt2.x, bounds->pt2.y);
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_tbmousein
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-#ifdef CONFIG_NX_MOUSE
-static void nxeg_tbmousein(NXEGWINDOW hwnd, FAR const struct nxgl_point_s *pos,
- uint8_t buttons, FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
-
- message("nxeg_tbmousein%d: hwnd=%p pos=(%d,%d) button=%02x\n",
- st->wnum, hwnd, pos->x, pos->y, buttons);
-}
-#endif
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nx_listenerthread
- ****************************************************************************/
-
-#ifdef CONFIG_NX_MULTIUSER
-FAR void *nx_listenerthread(FAR void *arg)
-{
- int ret;
-
- /* Process events forever */
-
- for (;;)
- {
- /* Handle the next event. If we were configured blocking, then
- * we will stay right here until the next event is received. Since
- * we have dedicated a while thread to servicing events, it would
- * be most natural to also select CONFIG_NX_BLOCKING -- if not, the
- * following would be a tight infinite loop (unless we added addition
- * logic with nx_eventnotify and sigwait to pace it).
- */
-
- ret = nx_eventhandler(g_hnx);
- if (ret < 0)
- {
- /* An error occurred... assume that we have lost connection with
- * the server.
- */
-
- message("nx_listenerthread: Lost server connection: %d\n", errno);
- exit(NXEXIT_LOSTSERVERCONN);
- }
-
- /* If we received a message, we must be connected */
-
- if (!g_connected)
- {
- g_connected = true;
- sem_post(&g_semevent);
- message("nx_listenerthread: Connected\n");
- }
- }
-}
-#endif
diff --git a/nuttx/examples/nx/nx_internal.h b/nuttx/examples/nx/nx_internal.h
deleted file mode 100644
index 3af7329a4..000000000
--- a/nuttx/examples/nx/nx_internal.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/****************************************************************************
- * examples/nx/nx_internal.h
- *
- * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_NX_NX_INTERNAL_H
-#define __EXAMPLES_NX_NX_INTERNAL_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <semaphore.h>
-#include <nuttx/nx.h>
-#include <nuttx/nxtk.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-#ifndef CONFIG_NX
-# error "NX is not enabled (CONFIG_NX)"
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_VPLANE
-# define CONFIG_EXAMPLES_NX_VPLANE 0
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_BPP
-# define CONFIG_EXAMPLES_NX_BPP 32
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_BGCOLOR
-# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
-# define CONFIG_EXAMPLES_NX_BGCOLOR 0x007b68ee
-# elif CONFIG_EXAMPLES_NX_BPP == 16
-# define CONFIG_EXAMPLES_NX_BGCOLOR 0x7b5d
-# else
-# define CONFIG_EXAMPLES_NX_BGCOLOR ' '
-# endif
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_COLOR1
-# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
-# define CONFIG_EXAMPLES_NX_COLOR1 0x00e6e6fa
-# elif CONFIG_EXAMPLES_NX_BPP == 16
-# define CONFIG_EXAMPLES_NX_COLOR1 0xe73f
-# else
-# define CONFIG_EXAMPLES_NX_COLOR1 '1'
-# endif
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_COLOR2
-# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
-# define CONFIG_EXAMPLES_NX_COLOR2 0x00dcdcdc
-# elif CONFIG_EXAMPLES_NX_BPP == 16
-# define CONFIG_EXAMPLES_NX_COLOR2 0xdefb
-# else
-# define CONFIG_EXAMPLES_NX_COLOR2 '2'
-# endif
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_TBCOLOR
-# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
-# define CONFIG_EXAMPLES_NX_TBCOLOR 0x00a9a9a9
-# elif CONFIG_EXAMPLES_NX_BPP == 16
-# define CONFIG_EXAMPLES_NX_TBCOLOR 0xad55
-# else
-# define CONFIG_EXAMPLES_NX_TBCOLOR 'T'
-# endif
-#endif
-
-#ifndef CONFIG_EXAMPLES_NX_FONTCOLOR
-# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
-# define CONFIG_EXAMPLES_NX_FONTCOLOR 0x00000000
-# elif CONFIG_EXAMPLES_NX_BPP == 16
-# define CONFIG_EXAMPLES_NX_FONTCOLOR 0x0000
-# else
-# define CONFIG_EXAMPLES_NX_FONTCOLOR 'F'
-# endif
-#endif
-
-#ifndef CONFIG_TOOLBAR_HEIGHT
-# define CONFIG_TOOLBAR_HEIGHT 16
-#endif
-
-#ifdef CONFIG_NX_MULTIUSER
-# ifdef CONFIG_DISABLE_MQUEUE
-# error "The multi-threaded example requires MQ support (CONFIG_DISABLE_MQUEUE=n)"
-# endif
-# ifdef CONFIG_DISABLE_SIGNALS
-# error "This example requires signal support (CONFIG_DISABLE_SIGNALS=n)"
-# endif
-# ifdef CONFIG_DISABLE_PTHREAD
-# error "This example requires pthread support (CONFIG_DISABLE_PTHREAD=n)"
-# endif
-# ifndef CONFIG_NX_BLOCKING
-# error "This example depends on CONFIG_NX_BLOCKING"
-# endif
-# ifndef CONFIG_EXAMPLES_NX_STACKSIZE
-# define CONFIG_EXAMPLES_NX_STACKSIZE 2048
-# endif
-# ifndef CONFIG_EXAMPLES_NX_LISTENERPRIO
-# define CONFIG_EXAMPLES_NX_LISTENERPRIO 100
-# endif
-# ifndef CONFIG_EXAMPLES_NX_CLIENTPRIO
-# define CONFIG_EXAMPLES_NX_CLIENTPRIO 100
-# endif
-# ifndef CONFIG_EXAMPLES_NX_SERVERPRIO
-# define CONFIG_EXAMPLES_NX_SERVERPRIO 120
-# endif
-# ifndef CONFIG_EXAMPLES_NX_NOTIFYSIGNO
-# define CONFIG_EXAMPLES_NX_NOTIFYSIGNO 4
-# endif
-#endif
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-# define NXEGWINDOW NXWINDOW
-#else
-# define NXEGWINDOW NXTKWINDOW
-#endif
-
-#define NXTK_MAXKBDCHARS 16
-
-/* Debug ********************************************************************/
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# define msgflush()
-# else
-# define message(...) printf(__VA_ARGS__)
-# define msgflush() fflush(stdout)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_lowprintf
-# define msgflush()
-# else
-# define message printf
-# define msgflush() fflush(stdout)
-# endif
-#endif
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-enum exitcode_e
-{
- NXEXIT_SUCCESS = 0,
- NXEXIT_SIGPROCMASK,
- NXEXIT_SCHEDSETPARAM,
- NXEXIT_EVENTNOTIFY,
- NXEXIT_TASKCREATE,
- NXEXIT_PTHREADCREATE,
- NXEXIT_EXTINITIALIZE,
- NXEXIT_FBINITIALIZE,
- NXEXIT_FBGETVPLANE,
- NXEXIT_LCDINITIALIZE,
- NXEXIT_LCDGETDEV,
- NXEXIT_NXOPEN,
- NXEXIT_NXOPENTOOLBAR,
- NXEXIT_NXCONNECT,
- NXEXIT_NXSETBGCOLOR,
- NXEXIT_NXOPENWINDOW,
- NXEXIT_NXSETSIZE,
- NXEXIT_NXSETPOSITION,
- NXEXIT_NXLOWER,
- NXEXIT_NXRAISE,
- NXEXIT_NXCLOSEWINDOW,
- NXEXIT_LOSTSERVERCONN
-};
-
-/* Describes one cached glyph bitmap */
-
-struct nxeg_glyph_s
-{
- uint8_t code; /* Character code */
- uint8_t height; /* Height of this glyph (in rows) */
- uint8_t width; /* Width of this glyph (in pixels) */
- uint8_t stride; /* Width of the glyph row (in bytes) */
- FAR uint8_t *bitmap; /* Allocated bitmap memory */
-};
-
-/* Describes on character on the display */
-
-struct nxeg_bitmap_s
-{
- struct nxgl_rect_s bounds; /* Size/position of bitmap */
- FAR const struct nxeg_glyph_s *glyph; /* The cached glyph */
-};
-
-/* Describes the overall state of on one window */
-
-struct nxeg_state_s
-{
- uint8_t wnum; /* Window number */
- nxgl_mxpixel_t color[CONFIG_NX_NPLANES]; /* Window color */
-
-#ifdef CONFIG_NX_KBD
- uint8_t height; /* Max height of a font in pixels */
- uint8_t width; /* Max width of a font in pixels */
- uint8_t spwidth; /* The width of a space */
-
- uint8_t nchars; /* Number of KBD chars received */
- uint8_t nglyphs; /* Number of glyphs cached */
-
- struct nxeg_bitmap_s bm[NXTK_MAXKBDCHARS];
- struct nxeg_glyph_s glyph[NXTK_MAXKBDCHARS];
-#endif
-};
-
-/****************************************************************************
- * Public Variables
- ****************************************************************************/
-
-/* The connecton handler */
-
-extern NXHANDLE g_hnx;
-
-/* NX callback vtables */
-
-extern const struct nx_callback_s g_nxcb;
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-extern const struct nx_callback_s g_tbcb;
-#endif
-
-/* The screen resolution */
-
-nxgl_coord_t g_xres;
-nxgl_coord_t g_yres;
-
-extern bool b_haveresolution;
-#ifdef CONFIG_NX_MULTIUSER
-extern bool g_connected;
-#endif
-extern sem_t g_semevent;
-
-/* Colors used to fill window 1 & 2 */
-
-extern nxgl_mxpixel_t g_color1[CONFIG_NX_NPLANES];
-extern nxgl_mxpixel_t g_color2[CONFIG_NX_NPLANES];
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-extern nxgl_mxpixel_t g_tbcolor[CONFIG_NX_NPLANES];
-#endif
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_EXTERNINIT
-extern FAR NX_DRIVERTYPE *up_nxdrvinit(unsigned int devno);
-#endif
-
-#if defined(CONFIG_NX) && defined(CONFIG_NX_MULTIUSER)
-extern int nx_servertask(int argc, char *argv[]);
-extern FAR void *nx_listenerthread(FAR void *arg);
-#endif
-
-#ifdef CONFIG_NX_KBD
-extern void nxeg_kbdin(NXWINDOW hwnd, uint8_t nch, const uint8_t *ch, FAR void *arg);
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-extern void nxeg_tbkbdin(NXWINDOW hwnd, uint8_t nch, const uint8_t *ch, FAR void *arg);
-#endif
-extern void nxeg_filltext(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- FAR struct nxeg_state_s *st);
-#endif
-
-#endif /* __EXAMPLES_NX_NX_INTERNAL_H */
diff --git a/nuttx/examples/nx/nx_kbdin.c b/nuttx/examples/nx/nx_kbdin.c
deleted file mode 100644
index 3626eded9..000000000
--- a/nuttx/examples/nx/nx_kbdin.c
+++ /dev/null
@@ -1,467 +0,0 @@
-/****************************************************************************
- * examples/nx/nx_kbdin.c
- *
- * Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <debug.h>
-#include <errno.h>
-
-#include <nuttx/nx.h>
-#include <nuttx/nxtk.h>
-#include <nuttx/nxfonts.h>
-
-#include "nx_internal.h"
-
-#ifdef CONFIG_NX_KBD
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Select renderer -- Some additional logic would be required to support
- * pixel depths that are not directly addressable (1,2,4, and 24).
- */
-
-#if CONFIG_EXAMPLES_NX_BPP == 1
-# define RENDERER nxf_convert_1bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 2
-# define RENDERER nxf_convert_2bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 4
-# define RENDERER nxf_convert_4bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 8
-# define RENDERER nxf_convert_8bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 16
-# define RENDERER nxf_convert_16bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 24
-# define RENDERER nxf_convert_24bpp
-#elif CONFIG_EXAMPLES_NX_BPP == 32
-# define RENDERER nxf_convert_32bpp
-#else
-# error "Unsupported CONFIG_EXAMPLES_NX_BPP"
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nxeg_fillchar
- ****************************************************************************/
-
-static void nxeg_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- FAR const struct nxeg_bitmap_s *bm)
-{
- FAR void *src = (FAR void *)bm->glyph->bitmap;
- struct nxgl_rect_s intersection;
- int ret;
-
- /* Handle the special case of spaces which have no glyph bitmap */
-
- if (src)
- {
- /* Get the intersection of the redraw region and the characer bitmap */
-
- nxgl_rectintersect(&intersection, rect, &bm->bounds);
- if (!nxgl_nullrect(&intersection))
- {
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
- ret = nxtk_bitmapwindow((NXTKWINDOW)hwnd, &intersection, &src,
- &bm->bounds.pt1,
- (unsigned int)bm->glyph->stride);
- if (ret < 0)
- {
- message("nxeg_fillchar: nxtk_bitmapwindow failed: %d\n", errno);
- }
-#else
- ret = nx_bitmap((NXWINDOW)hwnd, &intersection, &src,
- &bm->bounds.pt1,
- (unsigned int)bm->glyph->stride);
- if (ret < 0)
- {
- message("nxeg_fillchar: nx_bitmapwindow failed: %d\n", errno);
- }
-#endif
- }
- }
-}
-
-/****************************************************************************
- * Name: nxeg_renderglyph
- ****************************************************************************/
-
-static inline FAR const struct nxeg_glyph_s *
-nxeg_renderglyph(FAR struct nxeg_state_s *st,
- FAR const struct nx_fontbitmap_s *bm, uint8_t ch)
-{
- FAR struct nxeg_glyph_s *glyph = NULL;
- FAR nxgl_mxpixel_t *ptr;
-#if CONFIG_EXAMPLES_NX_BPP < 8
- nxgl_mxpixel_t pixel;
-#endif
- int bmsize;
- int row;
- int col;
- int ret;
-
- /* Make sure that there is room for another glyph */
-
- message("nxeg_renderglyph: ch=%02x\n", ch);
- if (st->nglyphs < NXTK_MAXKBDCHARS)
- {
- /* Allocate the glyph */
-
- glyph = &st->glyph[st->nglyphs];
- glyph->code = ch;
-
- /* Get the dimensions of the glyph */
-
- glyph->width = bm->metric.width + bm->metric.xoffset;
- glyph->height = bm->metric.height + bm->metric.yoffset;
-
- /* Allocate memory to hold the glyph with its offsets */
-
- glyph->stride = (glyph->width * CONFIG_EXAMPLES_NX_BPP + 7) / 8;
- bmsize = glyph->stride * glyph->height;
- glyph->bitmap = (FAR uint8_t *)malloc(bmsize);
-
- if (glyph->bitmap)
- {
- /* Initialize the glyph memory to the background color */
-
-#if CONFIG_EXAMPLES_NX_BPP < 8
- pixel = st->color[0];
-# if CONFIG_EXAMPLES_NX_BPP == 1
- /* Pack 1-bit pixels into a 2-bits */
-
- pixel &= 0x01;
- pixel = (pixel) << 1 |pixel;
-# endif
-# if CONFIG_EXAMPLES_NX_BPP < 4
- /* Pack 2-bit pixels into a nibble */
-
- pixel &= 0x03;
- pixel = (pixel) << 2 |pixel;
-# endif
-
- /* Pack 4-bit nibbles into a byte */
-
- pixel &= 0x0f;
- pixel = (pixel) << 4 | pixel;
-
- ptr = (FAR nxgl_mxpixel_t *)glyph->bitmap;
- for (row = 0; row < glyph->height; row++)
- {
- for (col = 0; col < glyph->stride; col++)
- {
- /* Transfer the packed bytes into the buffer */
-
- *ptr++ = pixel;
- }
- }
-
-#elif CONFIG_EXAMPLES_NX_BPP == 24
-# error "Additional logic is needed here for 24bpp support"
-
-#else /* CONFIG_EXAMPLES_NX_BPP = {8,16,32} */
-
- ptr = (FAR nxgl_mxpixel_t *)glyph->bitmap;
- for (row = 0; row < glyph->height; row++)
- {
- /* Just copy the color value into the glyph memory */
-
- for (col = 0; col < glyph->width; col++)
- {
- *ptr++ = st->color[0];
- }
- }
-#endif
-
- /* Then render the glyph into the allocated memory */
-
- ret = RENDERER((FAR nxgl_mxpixel_t*)glyph->bitmap,
- glyph->height, glyph->width, glyph->stride,
- bm, CONFIG_EXAMPLES_NX_FONTCOLOR);
- if (ret < 0)
- {
- /* Actually, the RENDERER never returns a failure */
-
- message("nxeg_renderglyph: RENDERER failed\n");
- free(glyph->bitmap);
- glyph->bitmap = NULL;
- glyph = NULL;
- }
- else
- {
- /* Make it permanent */
-
- st->nglyphs++;
- }
- }
- }
-
- return glyph;
-}
-
-/****************************************************************************
- * Name: nxeg_addspace
- ****************************************************************************/
-
-static inline FAR const struct nxeg_glyph_s *
-nxeg_addspace(FAR struct nxeg_state_s *st, uint8_t ch)
-{
- FAR struct nxeg_glyph_s *glyph = NULL;
-
- /* Make sure that there is room for another glyph */
-
- if (st->nglyphs < NXTK_MAXKBDCHARS)
- {
- /* Allocate the NULL glyph */
-
- glyph = &st->glyph[st->nglyphs];
- memset(glyph, 0, sizeof(struct nxeg_glyph_s));
-
- glyph->code = ' ';
- glyph->width = st->spwidth;
-
- st->nglyphs++;
- }
- return glyph;
-}
-
-/****************************************************************************
- * Name: nxeg_findglyph
- ****************************************************************************/
-
-static FAR const struct nxeg_glyph_s *
-nxeg_findglyph(FAR struct nxeg_state_s *st, uint8_t ch)
-{
- int i;
-
- /* First, try to find the glyph in the cache of pre-rendered glyphs */
-
- for (i = 0; i < st->nglyphs; i++)
- {
- if (st->glyph[i].code == ch)
- {
- return &st->glyph[i];
- }
- }
- return NULL;
-}
-
-/****************************************************************************
- * Name: nxeg_getglyph
- ****************************************************************************/
-
-static FAR const struct nxeg_glyph_s *
-nxeg_getglyph(FAR struct nxeg_state_s *st, uint8_t ch)
-{
- FAR const struct nxeg_glyph_s *glyph;
- FAR const struct nx_fontbitmap_s *bm;
-
- /* First, try to find the glyph in the cache of pre-rendered glyphs */
-
- glyph = nxeg_findglyph(st, ch);
- if (!glyph)
- {
- /* No, it is not cached... Does the code map to a glyph? */
-
- bm = nxf_getbitmap(ch);
- if (!bm)
- {
- /* No, there is no glyph for this code. Use space */
-
- glyph = nxeg_findglyph(st, ' ');
- if (!glyph)
- {
- /* There isn't fake glyph for ' ' yet... create one */
-
- glyph = nxeg_addspace(st, ' ');
- }
- }
- else
- {
- glyph = nxeg_renderglyph(st, bm, ch);
- }
- }
- return glyph;
-}
-
-/****************************************************************************
- * Name: nxeg_addchar
- ****************************************************************************/
-
-static FAR const struct nxeg_bitmap_s *
-nxeg_addchar(FAR struct nxeg_state_s *st, uint8_t ch)
-{
- FAR struct nxeg_bitmap_s *bm = NULL;
- FAR struct nxeg_bitmap_s *bmleft;
- nxgl_coord_t leftx;
-
- /* Is there space for another character on the display? */
-
- if (st->nchars < NXTK_MAXKBDCHARS)
- {
- /* Yes, setup the bitmap */
-
- bm = &st->bm[st->nchars];
-
- /* Find the matching glyph */
-
- bm->glyph = nxeg_getglyph(st, ch);
- if (!bm->glyph)
- {
- return NULL;
- }
-
- /* Set up the bounds for the bitmap */
-
- if (st->nchars <= 0)
- {
- /* The first character is one space from the left */
-
- leftx = st->spwidth;
- }
- else
- {
- /* Otherwise, it is to the left of the preceding char */
-
- bmleft = &st->bm[st->nchars-1];
- leftx = bmleft->bounds.pt2.x + 1;
- }
-
- bm->bounds.pt1.x = leftx;
- bm->bounds.pt1.y = 2;
- bm->bounds.pt2.x = leftx + bm->glyph->width - 1;
- bm->bounds.pt2.y = 2 + bm->glyph->height - 1;
-
- st->nchars++;
- }
- return bm;
-}
-
-/****************************************************************************
- * Name: nxeg_addchars
- ****************************************************************************/
-
-static inline void nxeg_addchars(NXWINDOW hwnd, FAR struct nxeg_state_s *st,
- uint8_t nch, FAR const uint8_t *ch)
-{
- FAR const struct nxeg_bitmap_s *bm;
-
- while (nch--)
- {
- bm = nxeg_addchar(st, *ch++);
- if (bm)
- {
- nxeg_fillchar(hwnd, &bm->bounds, bm);
- }
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nxeg_kbdin
- ****************************************************************************/
-
-void nxeg_kbdin(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch,
- FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
- message("nxeg_kbdin%d: hwnd=%p nch=%d\n", st->wnum, hwnd, nch);
- nxeg_addchars(hwnd, st, nch, ch);
-}
-
-/****************************************************************************
- * Name: nxeg_tbkbdin
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-void nxeg_tbkbdin(NXWINDOW hwnd, uint8_t nch, const uint8_t *ch, FAR void *arg)
-{
- FAR struct nxeg_state_s *st = (FAR struct nxeg_state_s *)arg;
- message("nxeg_tbkbdin: ERROR -- toolbar should not received keyboard input\n");
- message("nxeg_tbkbdin%d: hwnd=%p nch=%d\n", st->wnum, hwnd, nch);
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_tbkbdin
- ****************************************************************************/
-
-void nxeg_filltext(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
- FAR struct nxeg_state_s *st)
-{
- int i;
-
- /* Fill each character on the display (Only the characters within rect
- * will actually be redrawn).
- */
-
- for (i = 0; i < st->nchars; i++)
- {
- nxeg_fillchar(hwnd, rect, &st->bm[i]);
- }
-}
-
-#endif /* CONFIG_NX_KBD */
diff --git a/nuttx/examples/nx/nx_main.c b/nuttx/examples/nx/nx_main.c
deleted file mode 100644
index d35ea4ff0..000000000
--- a/nuttx/examples/nx/nx_main.c
+++ /dev/null
@@ -1,894 +0,0 @@
-/****************************************************************************
- * examples/nx/nx_main.c
- *
- * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sched.h>
-#include <pthread.h>
-#include <errno.h>
-#include <debug.h>
-
-#ifdef CONFIG_NX_LCDDRIVER
-# include <nuttx/lcd/lcd.h>
-#else
-# include <nuttx/fb.h>
-#endif
-
-#include <nuttx/arch.h>
-#include <nuttx/nx.h>
-#include <nuttx/nxtk.h>
-#include <nuttx/nxfonts.h>
-
-#include "nx_internal.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-/* If not specified, assume that the hardware supports one video plane */
-
-#ifndef CONFIG_EXAMPLES_NX_VPLANE
-# define CONFIG_EXAMPLES_NX_VPLANE 0
-#endif
-
-/* If not specified, assume that the hardware supports one LCD device */
-
-#ifndef CONFIG_EXAMPLES_NX_DEVNO
-# define CONFIG_EXAMPLES_NX_DEVNO 0
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static int g_exitcode = NXEXIT_SUCCESS;
-
-static struct nxeg_state_s g_wstate[2];
-
-#ifdef CONFIG_NX_KBD
-static const uint8_t g_kbdmsg1[] = "NuttX is cool!";
-static const uint8_t g_kbdmsg2[] = "NuttX is fun!";
-#endif
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/* The connecton handler */
-
-NXHANDLE g_hnx = NULL;
-
-/* The screen resolution */
-
-nxgl_coord_t g_xres;
-nxgl_coord_t g_yres;
-
-bool b_haveresolution = false;
-#ifdef CONFIG_NX_MULTIUSER
-bool g_connected = false;
-#endif
-sem_t g_semevent = {0};
-
-/* Colors used to fill window 1 & 2 */
-
-nxgl_mxpixel_t g_color1[CONFIG_NX_NPLANES];
-nxgl_mxpixel_t g_color2[CONFIG_NX_NPLANES];
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-nxgl_mxpixel_t g_tbcolor[CONFIG_NX_NPLANES];
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nxeg_drivemouse
- ****************************************************************************/
-
-#ifdef CONFIG_NX_MOUSE
-static void nxeg_drivemouse(void)
-{
- nxgl_coord_t x;
- nxgl_coord_t y;
- nxgl_coord_t xstep = g_xres / 8;
- nxgl_coord_t ystep = g_yres / 8;
-
- for (x = 0; x < g_xres; x += xstep)
- {
- for (y = 0; y < g_yres; y += ystep)
- {
- message("nxeg_drivemouse: Mouse left button at (%d,%d)\n", x, y);
- (void)nx_mousein(g_hnx, x, y, NX_MOUSE_LEFTBUTTON);
- }
- }
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_initstate
- ****************************************************************************/
-
-static void nxeg_initstate(FAR struct nxeg_state_s *st, int wnum,
- nxgl_mxpixel_t color)
-{
-#ifdef CONFIG_NX_KBD
- FAR const struct nx_font_s *fontset;
-#endif
-
- /* Initialize the window number (used for debug output only) and color
- * (used for redrawing the window)
- */
-
- st->wnum = wnum;
- st->color[0] = color;
-
- /* Get information about the font set being used and save this in the
- * state structure
- */
-
-#ifdef CONFIG_NX_KBD
- fontset = nxf_getfontset();
- st->nchars = 0;
- st->nglyphs = 0;
- st->height = fontset->mxheight;
- st->width = fontset->mxwidth;
- st->spwidth = fontset->spwidth;
-#endif
-}
-
-/****************************************************************************
- * Name: nxeg_freestate
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static void nxeg_freestate(FAR struct nxeg_state_s *st)
-{
-#ifdef CONFIG_NX_KBD
- int i;
-
- if (st)
- {
- for (i = 0; i < st->nglyphs; i++)
- {
- if (st->glyph[i].bitmap)
- {
- free(st->glyph[i].bitmap);
- }
- st->glyph[i].bitmap = NULL;
- }
- st->nchars = 0;
- }
-#endif
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_openwindow
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline NXEGWINDOW nxeg_openwindow(FAR const struct nx_callback_s *cb,
- FAR struct nxeg_state_s *state)
-{
- NXEGWINDOW hwnd;
-
- hwnd = nx_openwindow(g_hnx, cb, (FAR void *)state);
- if (!hwnd)
- {
- message("user_start: nx_openwindow failed: %d\n", errno);
- g_exitcode = NXEXIT_NXOPENWINDOW;
- }
- return hwnd;
-}
-#else
-static inline NXEGWINDOW nxeg_openwindow(FAR const struct nx_callback_s *cb,
- FAR struct nxeg_state_s *state)
-{
- NXEGWINDOW hwnd;
-
- hwnd = nxtk_openwindow(g_hnx, cb, (FAR void *)state);
- if (!hwnd)
- {
- message("user_start: nxtk_openwindow failed: %d\n", errno);
- g_exitcode = NXEXIT_NXOPENWINDOW;
- }
- return hwnd;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_closewindow
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeg_closewindow(NXEGWINDOW hwnd, FAR struct nxeg_state_s *state)
-{
- int ret = nx_closewindow(hwnd);
- if (ret < 0)
- {
- message("user_start: nx_closewindow failed: %d\n", errno);
- g_exitcode = NXEXIT_NXCLOSEWINDOW;
- }
- return ret;
-}
-#else
-static inline int nxeg_closewindow(NXEGWINDOW hwnd, FAR struct nxeg_state_s *state)
-{
- int ret = nxtk_closewindow(hwnd);
- if (ret < 0)
- {
- message("user_start: nxtk_closewindow failed: %d\n", errno);
- g_exitcode = NXEXIT_NXCLOSEWINDOW;
- }
- nxeg_freestate(state);
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_setsize
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeg_setsize(NXEGWINDOW hwnd, FAR struct nxgl_size_s *size)
-{
- int ret = nx_setsize(hwnd, size);
- if (ret < 0)
- {
- message("user_start: nx_setsize failed: %d\n", errno);
- g_exitcode = NXEXIT_NXSETSIZE;
- }
- return ret;
-}
-#else
-static inline int nxeg_setsize(NXEGWINDOW hwnd, FAR struct nxgl_size_s *size)
-{
- int ret = nxtk_setsize(hwnd, size);
- if (ret < 0)
- {
- message("user_start: nxtk_setsize failed: %d\n", errno);
- g_exitcode = NXEXIT_NXSETSIZE;
- }
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_setposition
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeg_setposition(NXEGWINDOW hwnd, FAR struct nxgl_point_s *pos)
-{
- int ret = nx_setposition(hwnd, pos);
- if (ret < 0)
- {
- message("user_start: nx_setposition failed: %d\n", errno);
- g_exitcode = NXEXIT_NXSETPOSITION;
- }
- return ret;
-}
-#else
-static inline int nxeg_setposition(NXEGWINDOW hwnd, FAR struct nxgl_point_s *pos)
-{
- int ret = nxtk_setposition(hwnd, pos);
- if (ret < 0)
- {
- message("user_start: nxtk_setposition failed: %d\n", errno);
- g_exitcode = NXEXIT_NXSETPOSITION;
- }
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeq_opentoolbar
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeq_opentoolbar(NXEGWINDOW hwnd, nxgl_coord_t height,
- FAR const struct nx_callback_s *cb,
- FAR struct nxeg_state_s *state)
-{
- int ret;
- ret = nxtk_opentoolbar(hwnd, height, cb, (FAR void *)state);
- if (ret < 0)
- {
- message("user_start: nxtk_opentoolbar failed: %d\n", errno);
- g_exitcode = NXEXIT_NXOPENTOOLBAR;
- }
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_lower
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeg_lower(NXEGWINDOW hwnd)
-{
- int ret = nx_lower(hwnd);
- if (ret < 0)
- {
- message("user_start: nx_lower failed: %d\n", errno);
- g_exitcode = NXEXIT_NXLOWER;
- }
- return ret;
-}
-#else
-static inline int nxeg_lower(NXEGWINDOW hwnd)
-{
- int ret = nxtk_lower(hwnd);
- if (ret < 0)
- {
- message("user_start: nxtk_lower failed: %d\n", errno);
- g_exitcode = NXEXIT_NXLOWER;
- }
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_raise
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS
-static inline int nxeg_raise(NXEGWINDOW hwnd)
-{
- int ret = nx_raise(hwnd);
- if (ret < 0)
- {
- message("user_start: nx_raise failed: %d\n", errno);
- g_exitcode = NXEXIT_NXRAISE;
- }
- return ret;
-}
-#else
-static inline int nxeg_raise(NXEGWINDOW hwnd)
-{
- int ret = nxtk_raise(hwnd);
- if (ret < 0)
- {
- message("user_start: nxtk_raise failed: %d\n", errno);
- g_exitcode = NXEXIT_NXRAISE;
- }
- return ret;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_suinitialize
- ****************************************************************************/
-
-#ifndef CONFIG_NX_MULTIUSER
-static inline int nxeg_suinitialize(void)
-{
- FAR NX_DRIVERTYPE *dev;
-
-#if defined(CONFIG_EXAMPLES_NX_EXTERNINIT)
- /* Use external graphics driver initialization */
-
- message("nxeg_initialize: Initializing external graphics device\n");
- dev = up_nxdrvinit(CONFIG_EXAMPLES_NX_DEVNO);
- if (!dev)
- {
- message("nxeg_initialize: up_nxdrvinit failed, devno=%d\n", CONFIG_EXAMPLES_NX_DEVNO);
- g_exitcode = NXEXIT_EXTINITIALIZE;
- return ERROR;
- }
-
-#elif defined(CONFIG_NX_LCDDRIVER)
- int ret;
-
- /* Initialize the LCD device */
-
- message("nxeg_initialize: Initializing LCD\n");
- ret = up_lcdinitialize();
- if (ret < 0)
- {
- message("nxeg_initialize: up_lcdinitialize failed: %d\n", -ret);
- g_exitcode = NXEXIT_LCDINITIALIZE;
- return ERROR;
- }
-
- /* Get the device instance */
-
- dev = up_lcdgetdev(CONFIG_EXAMPLES_NX_DEVNO);
- if (!dev)
- {
- message("nxeg_initialize: up_lcdgetdev failed, devno=%d\n", CONFIG_EXAMPLES_NX_DEVNO);
- g_exitcode = NXEXIT_LCDGETDEV;
- return ERROR;
- }
-
- /* Turn the LCD on at 75% power */
-
- (void)dev->setpower(dev, ((3*CONFIG_LCD_MAXPOWER + 3)/4));
-#else
- int ret;
-
- /* Initialize the frame buffer device */
-
- message("nxeg_initialize: Initializing framebuffer\n");
- ret = up_fbinitialize();
- if (ret < 0)
- {
- message("nxeg_initialize: up_fbinitialize failed: %d\n", -ret);
- g_exitcode = NXEXIT_FBINITIALIZE;
- return ERROR;
- }
-
- dev = up_fbgetvplane(CONFIG_EXAMPLES_NX_VPLANE);
- if (!dev)
- {
- message("nxeg_initialize: up_fbgetvplane failed, vplane=%d\n", CONFIG_EXAMPLES_NX_VPLANE);
- g_exitcode = NXEXIT_FBGETVPLANE;
- return ERROR;
- }
-#endif
-
- /* Then open NX */
-
- message("nxeg_initialize: Open NX\n");
- g_hnx = nx_open(dev);
- if (!g_hnx)
- {
- message("user_start: nx_open failed: %d\n", errno);
- g_exitcode = NXEXIT_NXOPEN;
- return ERROR;
- }
- return OK;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_initialize
- ****************************************************************************/
-
-#ifdef CONFIG_NX_MULTIUSER
-static inline int nxeg_muinitialize(void)
-{
- struct sched_param param;
- pthread_t thread;
- pid_t servrid;
- int ret;
-
- /* Set the client task priority */
-
- param.sched_priority = CONFIG_EXAMPLES_NX_CLIENTPRIO;
- ret = sched_setparam(0, &param);
- if (ret < 0)
- {
- message("nxeg_initialize: sched_setparam failed: %d\n" , ret);
- g_exitcode = NXEXIT_SCHEDSETPARAM;
- return ERROR;
- }
-
- /* Start the server task */
-
- message("nxeg_initialize: Starting nx_servertask task\n");
- servrid = task_create("NX Server", CONFIG_EXAMPLES_NX_SERVERPRIO,
- CONFIG_EXAMPLES_NX_STACKSIZE, nx_servertask, NULL);
- if (servrid < 0)
- {
- message("nxeg_initialize: Failed to create nx_servertask task: %d\n", errno);
- g_exitcode = NXEXIT_TASKCREATE;
- return ERROR;
- }
-
- /* Wait a bit to let the server get started */
-
- sleep(1);
-
- /* Connect to the server */
-
- g_hnx = nx_connect();
- if (g_hnx)
- {
- pthread_attr_t attr;
-
- /* Start a separate thread to listen for server events. This is probably
- * the least efficient way to do this, but it makes this example flow more
- * smoothly.
- */
-
- (void)pthread_attr_init(&attr);
- param.sched_priority = CONFIG_EXAMPLES_NX_LISTENERPRIO;
- (void)pthread_attr_setschedparam(&attr, &param);
- (void)pthread_attr_setstacksize(&attr, CONFIG_EXAMPLES_NX_STACKSIZE);
-
- ret = pthread_create(&thread, &attr, nx_listenerthread, NULL);
- if (ret != 0)
- {
- printf("nxeg_initialize: pthread_create failed: %d\n", ret);
- g_exitcode = NXEXIT_PTHREADCREATE;
- return ERROR;
- }
-
- /* Don't return until we are connected to the server */
-
- while (!g_connected)
- {
- /* Wait for the listener thread to wake us up when we really
- * are connected.
- */
-
- (void)sem_wait(&g_semevent);
- }
- }
- else
- {
- message("nxeg_initialize: nx_connect failed: %d\n", errno);
- g_exitcode = NXEXIT_NXCONNECT;
- return ERROR;
- }
- return OK;
-}
-#endif
-
-/****************************************************************************
- * Name: nxeg_initialize
- ****************************************************************************/
-
-static int nxeg_initialize(void)
-{
- int i;
-
- /* Initialize window colors */
-
- for (i = 0; i < CONFIG_NX_NPLANES; i++)
- {
- g_color1[i] = CONFIG_EXAMPLES_NX_COLOR1;
- g_color2[i] = CONFIG_EXAMPLES_NX_COLOR2;
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
- g_tbcolor[i] = CONFIG_EXAMPLES_NX_TBCOLOR;
-#endif
- }
-
-#ifdef CONFIG_NX_MULTIUSER
- return nxeg_muinitialize();
-#else
- return nxeg_suinitialize();
-#endif
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- NXEGWINDOW hwnd1;
- NXEGWINDOW hwnd2;
- struct nxgl_size_s size;
- struct nxgl_point_s pt;
- nxgl_mxpixel_t color;
- int ret;
-
- /* Initialize */
-
- ret = nxeg_initialize();
- message("user_start: NX handle=%p\n", g_hnx);
- if (!g_hnx || ret < 0)
- {
- message("user_start: Failed to get NX handle: %d\n", errno);
- g_exitcode = NXEXIT_NXOPEN;
- goto errout;
- }
-
- /* Set the background to the configured background color */
-
- message("user_start: Set background color=%d\n", CONFIG_EXAMPLES_NX_BGCOLOR);
- color = CONFIG_EXAMPLES_NX_BGCOLOR;
- ret = nx_setbgcolor(g_hnx, &color);
- if (ret < 0)
- {
- message("user_start: nx_setbgcolor failed: %d\n", errno);
- g_exitcode = NXEXIT_NXSETBGCOLOR;
- goto errout_with_nx;
- }
-
- /* Create window #1 */
-
- message("user_start: Create window #1\n");
- nxeg_initstate(&g_wstate[0], 1, CONFIG_EXAMPLES_NX_COLOR1);
- hwnd1 = nxeg_openwindow(&g_nxcb, &g_wstate[0]);
- message("user_start: hwnd1=%p\n", hwnd1);
- if (!hwnd1)
- {
- goto errout_with_nx;
- }
-
- /* Wait until we have the screen resolution */
-
- while (!b_haveresolution)
- {
- (void)sem_wait(&g_semevent);
- }
- message("user_start: Screen resolution (%d,%d)\n", g_xres, g_yres);
-
- /* Set the size of the window 1 */
-
- size.w = g_xres / 2;
- size.h = g_yres / 2;
-
- message("user_start: Set window #1 size to (%d,%d)\n", size.w, size.h);
- ret = nxeg_setsize(hwnd1, &size);
- if (ret < 0)
- {
- goto errout_with_hwnd1;
- }
-
- /* Sleep a bit -- both so that we can see the result of the above operations
- * but also, in the multi-user case, so that the server can get a chance to
- * actually do them!
- */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
- /* Set the position of window #1 */
-
- pt.x = g_xres / 8;
- pt.y = g_yres / 8;
-
- message("user_start: Set window #1 postion to (%d,%d)\n", pt.x, pt.y);
- ret = nxeg_setposition(hwnd1, &pt);
- if (ret < 0)
- {
- goto errout_with_hwnd1;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
- /* Open the toolbar */
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
- message("user_start: Add toolbar to window #1\n");
- ret = nxeq_opentoolbar(hwnd1, CONFIG_TOOLBAR_HEIGHT, &g_tbcb, &g_wstate[0]);
- if (ret < 0)
- {
- goto errout_with_hwnd1;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-#endif
-
- /* Create window #2 */
-
- message("user_start: Create window #2\n");
- nxeg_initstate(&g_wstate[1], 2, CONFIG_EXAMPLES_NX_COLOR2);
- hwnd2 = nxeg_openwindow(&g_nxcb, &g_wstate[1]);
- message("user_start: hwnd2=%p\n", hwnd2);
- if (!hwnd2)
- {
- goto errout_with_hwnd1;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
- /* Set the size of the window 2 == size of window 1*/
-
- message("user_start: Set hwnd2 size to (%d,%d)\n", size.w, size.h);
- ret = nxeg_setsize(hwnd2, &size);
- if (ret < 0)
- {
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
- /* Set the position of window #2 */
-
- pt.x = g_xres - size.w - pt.x;
- pt.y = g_yres - size.h - pt.y;
-
- message("user_start: Set hwnd2 postion to (%d,%d)\n", pt.x, pt.y);
- ret = nxeg_setposition(hwnd2, &pt);
- if (ret < 0)
- {
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
-#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS
- message("user_start: Add toolbar to window #2\n");
- ret = nxeq_opentoolbar(hwnd2, CONFIG_TOOLBAR_HEIGHT, &g_tbcb, &g_wstate[1]);
- if (ret < 0)
- {
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-#endif
-
- /* Give keyboard input to the top window -- should be window #2 */
-
-#ifdef CONFIG_NX_KBD
- message("user_start: Send keyboard input: %s\n", g_kbdmsg1);
- ret = nx_kbdin(g_hnx, strlen((FAR const char *)g_kbdmsg1), g_kbdmsg1);
- if (ret < 0)
- {
- message("user_start: nx_kbdin failed: %d\n", errno);
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-#endif
-
- /* Lower window 2 */
-
- message("user_start: Lower window #2\n");
- ret = nxeg_lower(hwnd2);
- if (ret < 0)
- {
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-
- /* Put mouse left-button clicks all over the screen and see who responds */
-
-#ifdef CONFIG_NX_MOUSE
- nxeg_drivemouse();
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-#endif
-
- /* Give keyboard input to the top window -- should be window #1 */
-
-#ifdef CONFIG_NX_KBD
- message("user_start: Send keyboard input: %s\n", g_kbdmsg2);
- ret = nx_kbdin(g_hnx, strlen((FAR const char *)g_kbdmsg2), g_kbdmsg2);
- if (ret < 0)
- {
- message("user_start: nx_kbdin failed: %d\n", errno);
- goto errout_with_hwnd2;
- }
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(1);
-#endif
-
- /* Raise window 2 */
-
- message("user_start: Raise window #2\n");
- ret = nxeg_raise(hwnd2);
- if (ret < 0)
- {
- goto errout_with_hwnd2;
- }
-
- /* Put mouse left-button clicks all over the screen and see who responds */
-
-#ifdef CONFIG_NX_MOUSE
- nxeg_drivemouse();
-#endif
-
- /* Sleep a bit */
-
- message("user_start: Sleeping\n\n");
- sleep(2);
-
- /* Close the window 2 */
-
-errout_with_hwnd2:
- message("user_start: Close window #2\n");
- (void)nxeg_closewindow(hwnd2, &g_wstate[1]);
-
- /* Close the window1 */
-
-errout_with_hwnd1:
- message("user_start: Close window #1\n");
- (void)nxeg_closewindow(hwnd1, &g_wstate[0]);
-
-errout_with_nx:
-#ifdef CONFIG_NX_MULTIUSER
- /* Disconnect from the server */
-
- message("user_start: Disconnect from the server\n");
- nx_disconnect(g_hnx);
-#else
- /* Close the server */
-
- message("user_start: Close NX\n");
- nx_close(g_hnx);
-#endif
-errout:
- return g_exitcode;
-}
diff --git a/nuttx/examples/nx/nx_server.c b/nuttx/examples/nx/nx_server.c
deleted file mode 100644
index 8677c0008..000000000
--- a/nuttx/examples/nx/nx_server.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/****************************************************************************
- * examples/nx/nx_server.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sched.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <nuttx/arch.h>
-#include <nuttx/nx.h>
-
-#ifdef CONFIG_NX_LCDDRIVER
-# include <nuttx/lcd/lcd.h>
-#else
-# include <nuttx/fb.h>
-#endif
-
-#include "nx_internal.h"
-
-#ifdef CONFIG_NX_MULTIUSER
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: nx_servertask
- ****************************************************************************/
-
-int nx_servertask(int argc, char *argv[])
-{
- FAR NX_DRIVERTYPE *dev;
- int ret;
-
-#if defined(CONFIG_EXAMPLES_NX_EXTERNINIT)
- /* Use external graphics driver initialization */
-
- message("nxeg_initialize: Initializing external graphics device\n");
- dev = up_nxdrvinit(CONFIG_EXAMPLES_NX_DEVNO);
- if (!dev)
- {
- message("nxeg_initialize: up_nxdrvinit failed, devno=%d\n", CONFIG_EXAMPLES_NX_DEVNO);
- g_exitcode = NXEXIT_EXTINITIALIZE;
- return ERROR;
- }
-
-#elif defined(CONFIG_NX_LCDDRIVER)
- /* Initialize the LCD device */
-
- message("nx_servertask: Initializing LCD\n");
- ret = up_lcdinitialize();
- if (ret < 0)
- {
- message("nx_servertask: up_lcdinitialize failed: %d\n", -ret);
- return 1;
- }
-
- /* Get the device instance */
-
- dev = up_lcdgetdev(CONFIG_EXAMPLES_NX_DEVNO);
- if (!dev)
- {
- message("nx_servertask: up_lcdgetdev failed, devno=%d\n", CONFIG_EXAMPLES_NX_DEVNO);
- return 2;
- }
-
- /* Turn the LCD on at 75% power */
-
- (void)dev->setpower(dev, ((3*CONFIG_LCD_MAXPOWER + 3)/4));
-#else
- /* Initialize the frame buffer device */
-
- message("nx_servertask: Initializing framebuffer\n");
- ret = up_fbinitialize();
- if (ret < 0)
- {
- message("nx_servertask: up_fbinitialize failed: %d\n", -ret);
- return 1;
- }
-
- dev = up_fbgetvplane(CONFIG_EXAMPLES_NX_VPLANE);
- if (!dev)
- {
- message("nx_servertask: up_fbgetvplane failed, vplane=%d\n", CONFIG_EXAMPLES_NX_VPLANE);
- return 2;
- }
-#endif
-
- /* Then start the server */
-
- ret = nx_run(dev);
- message("nx_servertask: nx_run returned: %d\n", errno);
- return 3;
-}
-
-#endif /* CONFIG_NX_MULTIUSER */
diff --git a/nuttx/examples/nxflat/Makefile b/nuttx/examples/nxflat/Makefile
deleted file mode 100644
index dae8a4ea7..000000000
--- a/nuttx/examples/nxflat/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-############################################################################
-# examples/nxflat/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = nxflat_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-.PHONY: headers clean distclean
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-headers:
- @$(MAKE) -C tests TOPDIR=$(TOPDIR) CROSSDEV=$(CROSSDEV)
-
-$(BIN): headers $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-# We can't make dependencies in this directory because the required
-# header files may not yet exist.
-
-depend:
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
-
--include Make.dep
diff --git a/nuttx/examples/nxflat/nxflat_main.c b/nuttx/examples/nxflat/nxflat_main.c
deleted file mode 100644
index a710112c3..000000000
--- a/nuttx/examples/nxflat/nxflat_main.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/****************************************************************************
- * examples/nxflat/nxflat_main.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <nuttx/compiler.h>
-
-#include <sys/mount.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <debug.h>
-#include <errno.h>
-
-#include <nuttx/ramdisk.h>
-#include <nuttx/binfmt.h>
-#include <nuttx/nxflat.h>
-
-#include "tests/romfs.h"
-#include "tests/dirlist.h"
-#include "tests/symtab.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Check configuration. This is not all of the configuration settings that
- * are required -- only the more obvious.
- */
-
-#if CONFIG_NFILE_DESCRIPTORS < 1
-# error "You must provide file descriptors via CONFIG_NFILE_DESCRIPTORS in your configuration file"
-#endif
-
-#ifndef CONFIG_NXFLAT
-# error "You must select CONFIG_NXFLAT in your configuration file"
-#endif
-
-#ifndef CONFIG_FS_ROMFS
-# error "You must select CONFIG_FS_ROMFS in your configuration file"
-#endif
-
-#ifdef CONFIG_DISABLE_MOUNTPOINT
-# error "You must not disable mountpoints via CONFIG_DISABLE_MOUNTPOINT in your configuration file"
-#endif
-
-#ifdef CONFIG_BINFMT_DISABLE
-# error "You must not disable loadable modules via CONFIG_BINFMT_DISABLE in your configuration file"
-#endif
-
-/* Describe the ROMFS file system */
-
-#define SECTORSIZE 512
-#define NSECTORS(b) (((b)+SECTORSIZE-1)/SECTORSIZE)
-#define ROMFSDEV "/dev/ram0"
-#define MOUNTPT "/mnt/romfs"
-
-/* If CONFIG_DEBUG is enabled, use dbg instead of printf so that the
- * output will be synchronous with the debug output.
- */
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(format, arg...) dbg(format, ##arg)
-# define err(format, arg...) dbg(format, ##arg)
-# else
-# define message(format, arg...) printf(format, ##arg)
-# define err(format, arg...) fprintf(stderr, format, ##arg)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message dbg
-# define err dbg
-# else
-# define message printf
-# define err printf
-# endif
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char delimiter[] =
- "****************************************************************************";
-
-static char path[128];
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: testheader
- ****************************************************************************/
-
-static inline void testheader(FAR const char *progname)
-{
- message("\n%s\n* Executing %s\n%s\n\n", delimiter, progname, delimiter);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct binary_s bin;
- int ret;
- int i;
-
- /* Initialize the NXFLAT binary loader */
-
- message("Initializing the NXFLAT binary loader\n");
- ret = nxflat_initialize();
- if (ret < 0)
- {
- err("ERROR: Initialization of the NXFLAT loader failed: %d\n", ret);
- exit(1);
- }
-
- /* Create a ROM disk for the ROMFS filesystem */
-
- message("Registering romdisk\n");
- ret = romdisk_register(0, romfs_img, NSECTORS(romfs_img_len), SECTORSIZE);
- if (ret < 0)
- {
- err("ERROR: romdisk_register failed: %d\n", ret);
- nxflat_uninitialize();
- exit(1);
- }
-
- /* Mount the file system */
-
- message("Mounting ROMFS filesystem at target=%s with source=%s\n",
- MOUNTPT, ROMFSDEV);
-
- ret = mount(ROMFSDEV, MOUNTPT, "romfs", MS_RDONLY, NULL);
- if (ret < 0)
- {
- err("ERROR: mount(%s,%s,romfs) failed: %s\n",
- ROMFSDEV, MOUNTPT, errno);
- nxflat_uninitialize();
- }
-
- /* Now excercise every progrm in the ROMFS file system */
-
- for (i = 0; dirlist[i]; i++)
- {
- testheader(dirlist[i]);
-
- memset(&bin, 0, sizeof(struct binary_s));
- snprintf(path, 128, "%s/%s", MOUNTPT, dirlist[i]);
-
- bin.filename = path;
- bin.exports = exports;
- bin.nexports = NEXPORTS;
-
- ret = load_module(&bin);
- if (ret < 0)
- {
- err("ERROR: Failed to load program '%s'\n", dirlist[i]);
- exit(1);
- }
-
- ret = exec_module(&bin, 50);
- if (ret < 0)
- {
- err("ERROR: Failed to execute program '%s'\n", dirlist[i]);
- unload_module(&bin);
- }
-
- message("Wait a bit for test completion\n");
- sleep(4);
- }
-
- message("End-of-Test.. Exit-ing\n");
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/Makefile b/nuttx/examples/nxflat/tests/Makefile
deleted file mode 100644
index 638b2548c..000000000
--- a/nuttx/examples/nxflat/tests/Makefile
+++ /dev/null
@@ -1,103 +0,0 @@
-############################################################################
-# examples/nxflat/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-# Most of these do no build yet
-#SUBDIRS = errno hello hello++ longjmp mutex pthread signal task struct
-SUBDIRS = errno hello mutex pthread task struct
-
-NXFLAT_DIR = $(TOPDIR)/examples/nxflat
-TESTS_DIR = $(NXFLAT_DIR)/tests
-ROMFS_DIR = $(TESTS_DIR)/romfs
-ROMFS_IMG = $(TESTS_DIR)/romfs.img
-ROMFS_HDR = $(TESTS_DIR)/romfs.h
-ROMFS_DIRLIST = $(TESTS_DIR)/dirlist.h
-SYMTAB = $(TESTS_DIR)/symtab.h
-
-define DIR_template
-$(1)_$(2):
- @$(MAKE) -C $(1) $(3) TOPDIR=$(TOPDIR) ROMFS_DIR=$(ROMFS_DIR) CROSSDEV=$(CROSSDEV)
-endef
-
-all: $(ROMFS_HDR) $(ROMFS_DIRLIST) $(SYMTAB)
-.PHONY: all build clean install populate
-
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
-
-# Build program(s) in each sud-directory
-
-build: $(foreach DIR, $(SUBDIRS), $(DIR)_build)
-
-# Install each program in the romfs directory
-
-install: $(foreach DIR, $(SUBDIRS), $(DIR)_install)
-
-# Create the romfs directory
-
-$(ROMFS_DIR):
- @mkdir $(ROMFS_DIR)
-
-# Populate the romfs directory
-
-populate: $(ROMFS_DIR) build install
-
-# Create the romfs.img file from the populated romfs directory
-
-$(ROMFS_IMG): populate
- @genromfs -f $@ -d $(ROMFS_DIR) -V "NXFLATTEST"
-
-# Create the romfs.h header file from the romfs.img file
-
-$(ROMFS_HDR) : $(ROMFS_IMG)
- @(cd $(TESTS_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
-
-# Create the dirlist.h header file from the romfs directory
-
-$(ROMFS_DIRLIST) : populate
- @$(TESTS_DIR)/mkdirlist.sh $(ROMFS_DIR) >$@
-
-# Create the exported symbol table list from the derived *-thunk.S files
-
-$(SYMTAB): build
- @$(TESTS_DIR)/mksymtab.sh $(TESTS_DIR) >$@
-
-# Clean each subdirectory
-
-clean: $(foreach DIR, $(SUBDIRS), $(DIR)_clean)
- @rm -f $(ROMFS_HDR) $(ROMFS_IMG) $(SYMTAB)
- @rm -rf $(ROMFS_DIR)
-
-
diff --git a/nuttx/examples/nxflat/tests/errno/Makefile b/nuttx/examples/nxflat/tests/errno/Makefile
deleted file mode 100644
index 158768b85..000000000
--- a/nuttx/examples/nxflat/tests/errno/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/hello/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = errno
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/errno/errno.c b/nuttx/examples/nxflat/tests/errno/errno.c
deleted file mode 100644
index b06679165..000000000
--- a/nuttx/examples/nxflat/tests/errno/errno.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/errno/errno.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-static const char g_nonexistent[] = "aflav-sautga-ay";
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- FILE *test_stream;
-
- /* Try using stdout and stderr explicitly. These are global variables
- * exported from the base code.
- */
-
- fprintf(stdout, "Hello, World on stdout\n");
- fprintf(stderr, "Hello, World on stderr\n");
-
- /* Try opening a non-existent file using buffered IO. */
-
- test_stream = fopen(g_nonexistent, "r");
- if (test_stream)
- {
- fprintf(stderr, "Hmm... Delete \"%s\" and try this again\n",
- g_nonexistent);
- exit(1);
- }
-
- /* Now print the errno on stderr. Errno is also a global
- * variable exported by the base code.
- */
-
- fprintf(stderr, "We failed to open \"%s!\" errno is %d\n",
- g_nonexistent, errno);
-
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/hello++/Makefile b/nuttx/examples/nxflat/tests/hello++/Makefile
deleted file mode 100644
index 113520da5..000000000
--- a/nuttx/examples/nxflat/tests/hello++/Makefile
+++ /dev/null
@@ -1,180 +0,0 @@
-############################################################################
-# examples/nxflat/tests/hello/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN1 = hello++1
-BIN2 = hello++2
-BIN3 = hello++3
-#BIN4 = hello++4
-ALL_BIN = $(BIN1) $(BIN2) $(BIN3) $(BIN4)
-
-R1SRCS1 = $(BIN1).c
-R1OBJS1 = $(R1SRCS1:.c=.o)
-R2SRC1 = $(BIN1)-thunk.S
-R2OBJ1 = $(R2SRC1:.S=.o)
-
-R1SRCS2 = $(BIN2).c
-R1OBJS2 = $(R1SRCS2:.c=.o)
-R2SRC2 = $(BIN2)-thunk.S
-R2OBJ2 = $(R2SRC2:.S=.o)
-
-R1SRCS3 = $(BIN3).c
-R1OBJS3 = $(R1SRCS3:.c=.o)
-R2SRC3 = $(BIN3)-thunk.S
-R2OBJ3 = $(R2SRC3:.S=.o)
-
-#R1SRCS4 = $(BIN4).c
-#R1OBJS4 = $(R1SRCS4:.c=.o)
-#R2SRC4 = $(BIN4)-thunk.S
-#R2OBJ4 = $(R2SRC4:.S=.o)
-
-DERIVED = $(R2SRC1) $(R2SRC2) $(R2SRC3) $(R2SRC4)
-
-R1CXXOBJS = $(R1OBJS1) $(R1OBJS2) $(R1OBJS3) # $(R1OBJS4)
-R2AOBJS = $(R2OBJ1) $(R2OBJ2) $(R2OBJ3) # $(R2OBJ4)
-
-LIBSTDC_STUBS_DIR = $(TOPDIR)/libxx
-LIBSTDC_STUBS_LIB = $(LIBSTDC_STUBS_DIR)/liblibxx.a
-
-all: $(BIN1) $(BIN2) $(BIN3) # $(BIN4)
-
-$(R1CXXOBJS): %.o: %.cpp
- @echo "CC: $<"
- @$(CXX) -c $(CXXPICFLAGS) $< -o $@
-
-$(R2AOBJS): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-# This contains libstdc++ stubs to that you can build C++ code
-# without actually having libstdc++
-
-$(LIBSTDC_STUBS_LIB):
- @$(MAKE) -C $(LIBSTDC_STUBS_DIR) TOPDIR=$(TOPDIR)
-
-# BIN1 and BIN2 link just like C code because they contain no
-# static constructors. BIN1 is equivalent to a C hello world;
-# BIN2 contains a class that implements hello world, but it is
-# not statically initialized.
-
-$(BIN1).r1: $(R1OBJS1)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC1): $(BIN1).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN1).r2: $(R2OBJ1)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS1) $(R2OBJ1)
-
-$(BIN1): $(BIN1).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-$(BIN2).r1: $(R1OBJS2) $(LIBSTDC_STUBS_LIB)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC2): $(BIN2).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN2).r2: $(R2OBJ2)
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS2) $(R2OBJ2)
-
-$(BIN2): $(BIN2).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-# BIN3 and BIN4 require that we include --cxx in the xflat-ld command.
-# This will instruct xflat-ld that we want it to put together the correct
-# startup files to handle the C++ static initializers.
-#
-# BIN3 is equivalent to BIN2 except that is uses static initializers
-
-$(BIN3).r1: $(R1OBJS3) $(LIBSTDC_STUBS_LIB)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC3): $(BIN3).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN3).r2: $(R2OBJ3)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS3) $(R2OBJ3)
-
-$(BIN3): $(BIN3).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-# BIN4 is similar to BIN3 except that it uses the streams code from libstdc++
-#
-# NOTE: libstdc++ is not available for XFLAT as of this writing
-#
-#$(BIN4).r1: $(R1OBJS4) $(LIBSTDC_STUBS_LIB)
-# @echo "LD: $<"
-# $(LD) $(NXFLATLDFLAGS1) -o $@ $^
-#
-#$(R2SRC4): $(BIN4).r1
-# @echo "MK: $<"
-# $(MKNXFLAT) -o $@ $^
-#
-#$(BIN4).r2: $(R2OBJ4)# @echo "LD: $<"
-# $(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS4) $(R2OBJ4)
-#
-#$(BIN4): $(BIN4).r2
-# @echo "LD: $<"
-# $(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(ALL_BIN) $(DERIVED) *.o *.r1 *.r2 *~ .*.swp core
-
-install: $(ALL_BIN)
- @install -D $(BIN1) $(ROMFS_DIR)/$(BIN1)
- @install -D $(BIN2) $(ROMFS_DIR)/$(BIN2)
- @install -D $(BIN3) $(ROMFS_DIR)/$(BIN3)
-# @install -D $(BIN4) $(ROMFS_DIR)/$(BIN4)
-
-
-
-
-
-
-
diff --git a/nuttx/examples/nxflat/tests/hello++/hello++1.cpp b/nuttx/examples/nxflat/tests/hello++/hello++1.cpp
deleted file mode 100644
index 779f3307a..000000000
--- a/nuttx/examples/nxflat/tests/hello++/hello++1.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// examples/nxflat/tests/hello++/hello++1.c
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-//
-// 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.
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// This is an trivial version of "Hello, World" program. It illustrates
-// that we can build C programs using the C++ compiler.
-//
-// - Building a C++ program to use the C library
-// - No class creation
-// - NO Streams
-// - NO Static constructor and destructors
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// Included Files
-/////////////////////////////////////////////////////////////////////////////
-
-#include <cstdio>
-
-/////////////////////////////////////////////////////////////////////////////
-// Public Functions
-/////////////////////////////////////////////////////////////////////////////
-
-int main(int argc, char **argv)
-{
- printf("Hello, World!\n");
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/hello++/hello++2.cpp b/nuttx/examples/nxflat/tests/hello++/hello++2.cpp
deleted file mode 100644
index 87166f3ab..000000000
--- a/nuttx/examples/nxflat/tests/hello++/hello++2.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// examples/nxflat/tests/hello++/hello++2.c
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-//
-// 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.
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// This is an another trivial version of "Hello, World" design. It illustrates
-//
-// - Building a C++ program to use the C library
-// - Basic class creation
-// - NO Streams
-// - NO Static constructor and destructors
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// Included Files
-/////////////////////////////////////////////////////////////////////////////
-
-#include <cstdio>
-
-/////////////////////////////////////////////////////////////////////////////
-// Classes
-/////////////////////////////////////////////////////////////////////////////
-
-class CThingSayer
-{
- const char *szWhatToSay;
-public:
- CThingSayer(void)
- {
- printf("CThingSayer::CThingSayer: I am!\n");
- szWhatToSay = (const char*)NULL;
- }
-
- ~CThingSayer(void)
- {
- printf("CThingSayer::~CThingSayer: I cease to be\n");
- if (szWhatToSay)
- {
- printf("CThingSayer::~CThingSayer: I will never say '%s' again\n",
- szWhatToSay);
- }
- szWhatToSay = (const char*)NULL;
- }
-
- void Initialize(const char *czSayThis)
- {
- printf("CThingSayer::Initialize: When told, I will say '%s'\n",
- czSayThis);
- szWhatToSay = czSayThis;
- }
-
- void SayThing(void)
- {
- printf("CThingSayer::SayThing: I am now saying '%s'\n", szWhatToSay);
- }
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// Public Functions
-/////////////////////////////////////////////////////////////////////////////
-
-int main(int argc, char **argv)
-{
- CThingSayer *MyThingSayer;
-
- printf("main: Started. Creating MyThingSayer\n");
-
- // Create an instance of the CThingSayer class
- // We should see the message from constructor, CThingSayer::CThingSayer(),
-
- MyThingSayer = new CThingSayer;
- printf("main: Created MyThingSayer=0x%08lx\n", (long)MyThingSayer);
-
- // Tell MyThingSayer that "Hello, World!" is the string to be said
-
- printf("main: Calling MyThingSayer->Initialize\n");;
- MyThingSayer->Initialize("Hello, World!");
-
- // Tell MyThingSayer to say the thing we told it to say
-
- printf("main: Calling MyThingSayer->SayThing\n");;
- MyThingSayer->SayThing();
-
- // We should see the message from the destructor,
- // CThingSayer::~CThingSayer(), AFTER we see the following
-
- printf("main: Destroying MyThingSayer\n");
- delete MyThingSayer;
-
- printf("main: Returning\n");;
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/hello++/hello++3.cpp b/nuttx/examples/nxflat/tests/hello++/hello++3.cpp
deleted file mode 100644
index ed7302fa6..000000000
--- a/nuttx/examples/nxflat/tests/hello++/hello++3.cpp
+++ /dev/null
@@ -1,132 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// examples/nxflat/tests/hello++/hello++3.c
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-//
-// 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.
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// This is an another trivial version of "Hello, World" design. It illustrates
-//
-// - Building a C++ program to use the C library and stdio
-// - Basic class creation with virtual methods.
-// - Static constructor and destructors (in main program only)
-// - NO Streams
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// Included Files
-/////////////////////////////////////////////////////////////////////////////
-
-#include <cstdio>
-
-/////////////////////////////////////////////////////////////////////////////
-// Classes
-/////////////////////////////////////////////////////////////////////////////
-
-class CThingSayer
-{
- const char *szWhatToSay;
-public:
- CThingSayer(void);
- virtual ~CThingSayer(void);
- virtual void Initialize(const char *czSayThis);
- virtual void SayThing(void);
-};
-
-// A static instance of the CThingSayer class. This instance MUST
-// be constructed by the system BEFORE the program is started at
-// main() and must be destructed by the system AFTER the main()
-// returns to the system
-
-static CThingSayer MyThingSayer;
-
-// These are implementations of the methods of the CThingSayer class
-
-CThingSayer::CThingSayer(void)
-{
- printf("CThingSayer::CThingSayer: I am!\n");
- szWhatToSay = (const char*)NULL;
-}
-
-CThingSayer::~CThingSayer(void)
-{
- printf("CThingSayer::~CThingSayer: I cease to be\n");
- if (szWhatToSay)
- {
- printf("CThingSayer::~CThingSayer: I will never say '%s' again\n",
- szWhatToSay);
- }
- szWhatToSay = (const char*)NULL;
-}
-
-void CThingSayer::Initialize(const char *czSayThis)
-{
- printf("CThingSayer::Initialize: When told, I will say '%s'\n",
- czSayThis);
- szWhatToSay = czSayThis;
-}
-
-void CThingSayer::SayThing(void)
-{
- printf("CThingSayer::SayThing: I am now saying '%s'\n", szWhatToSay);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Public Functions
-/////////////////////////////////////////////////////////////////////////////
-
-int main(int argc, char **argv)
-{
- // We should see the message from constructor, CThingSayer::CThingSayer(),
- // BEFORE we see the following messages. That is proof that the
- // C++ static initializer is working
-
- printf("main: Started. MyThingSayer should already exist\n");
-
- // Tell MyThingSayer that "Hello, World!" is the string to be said
-
- printf("main: Calling MyThingSayer.Initialize\n");;
- MyThingSayer.Initialize("Hello, World!");
-
- // Tell MyThingSayer to say the thing we told it to say
-
- printf("main: Calling MyThingSayer.SayThing\n");;
- MyThingSayer.SayThing();
-
- // We are finished, return. We should see the message from the
- // destructor, CThingSayer::~CThingSayer(), AFTER we see the following
- // message. That is proof that the C++ static destructor logic
- // is working
-
- printf("main: Returning. MyThingSayer should be destroyed\n");;
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/hello++/hello++4.cpp b/nuttx/examples/nxflat/tests/hello++/hello++4.cpp
deleted file mode 100644
index 97d026093..000000000
--- a/nuttx/examples/nxflat/tests/hello++/hello++4.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// examples/nxflat/tests/hello++/hello++4.c
-//
-// Copyright (C) 2009 Gregory Nutt. All rights reserved.
-// Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-//
-// 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.
-//
-/////////////////////////////////////////////////////////////////////////////
-//
-// This is an excessively complex version of "Hello, World" design to
-// illustrate some basic properties of C++:
-//
-// - Building a C++ program
-// - Streams / statically linked libstdc++
-// - Static constructor and destructors (in main program only)
-//
-/////////////////////////////////////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// Included Files
-/////////////////////////////////////////////////////////////////////////////
-
-#include <cstdio>
-#include <iostream>
-
-#ifndef NULL
-# define NULL ((void*)0L)
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// Classes
-/////////////////////////////////////////////////////////////////////////////
-
-using namespace std;
-
-// A hello world sayer class
-
-class CThingSayer
-{
- const char *szWhatToSay;
-public:
- CThingSayer(void);
- virtual ~CThingSayer(void);
- virtual void Initialize(const char *czSayThis);
- virtual void SayThing(void);
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// Private Data
-/////////////////////////////////////////////////////////////////////////////
-
-// A static instance of the CThingSayer class. This instance MUST
-// be constructed by the system BEFORE the program is started at
-// main() and must be destructed by the system AFTER the main()
-// returns to the system
-
-static CThingSayer MyThingSayer;
-
-/////////////////////////////////////////////////////////////////////////////
-// Method Implementations
-/////////////////////////////////////////////////////////////////////////////
-
-// These are implementations of the methods of the CThingSayer class
-
-CThingSayer::CThingSayer(void)
-{
- cout << "CThingSayer::CThingSayer: I am!" << endl;
- szWhatToSay = (const char*)NULL;
-}
-
-CThingSayer::~CThingSayer(void)
-{
- cout << "CThingSayer::~CThingSayer: I cease to be" << endl;
- if (szWhatToSay)
- {
- cout << "CThingSayer::~CThingSayer: I will never say '"
- << szWhatToSay << "' again" << endl;
- }
- szWhatToSay = (const char*)NULL;
-}
-
-void CThingSayer::Initialize(const char *czSayThis)
-{
- cout << "CThingSayer::Initialize: When told, I will say '"
- << czSayThis << "'" << endl;
- szWhatToSay = czSayThis;
-}
-
-void CThingSayer::SayThing(void)
-{
- cout << "CThingSayer::SayThing: I am now saying '"
- << szWhatToSay << "'" << endl;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// Public Functions
-/////////////////////////////////////////////////////////////////////////////
-
-int main(int argc, char **argv)
-{
- // We should see the message from constructor, CThingSayer::CThingSayer(),
- // BEFORE we see the following messages. That is proof that the
- // C++ static initializer is working
-
- cout << "main: Started" << endl;
-
- // Tell MyThingSayer that "Hello, World!" is the string to be said
-
- cout << "main: Calling MyThingSayer.Initialize" << endl;
- MyThingSayer.Initialize("Hello, World!");
-
- // Tell MyThingSayer to say the thing we told it to say
-
- cout << "main: Calling MyThingSayer.SayThing" << endl;
- MyThingSayer.SayThing();
-
- // We are finished, return. We should see the message from the
- // destructor, CThingSayer::~CThingSayer(), AFTER we see the following
- // message. That is proof that the C++ static destructor logic
- // is working
-
- cout << "main: Returning" << endl;
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/hello/Makefile b/nuttx/examples/nxflat/tests/hello/Makefile
deleted file mode 100644
index ccde7a98f..000000000
--- a/nuttx/examples/nxflat/tests/hello/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/hello/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = hello
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/hello/hello.c b/nuttx/examples/nxflat/tests/hello/hello.c
deleted file mode 100644
index 028bdfe00..000000000
--- a/nuttx/examples/nxflat/tests/hello/hello.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/hello/hello.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- int i;
-
- /* Mandatory "Hello, world!" */
-
- puts("Getting ready to say \"Hello, world\"\n");
- printf("Hello, world!\n");
- puts("It has been said.\n");
-
- /* Print arguments */
-
- printf("argc\t= %d\n", argc);
- printf("argv\t= 0x%p\n", argv);
-
- for (i = 0; i < argc; i++)
- {
- printf("argv[%d]\t= ", i);
- if (argv[i])
- {
- printf("(0x%p) \"%s\"\n", argv[i], argv[i]);
- }
- else
- {
- printf("NULL?\n");
- }
- }
-
- printf("argv[%d]\t= 0x%p\n", argc, argv[argc]);
- printf("Goodbye, world!\n");
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/longjmp/Makefile b/nuttx/examples/nxflat/tests/longjmp/Makefile
deleted file mode 100644
index d0c93ebbd..000000000
--- a/nuttx/examples/nxflat/tests/longjmp/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/longjmp/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = longjmp
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/longjmp/longjmp.c b/nuttx/examples/nxflat/tests/longjmp/longjmp.c
deleted file mode 100644
index b5b317d99..000000000
--- a/nuttx/examples/nxflat/tests/longjmp/longjmp.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/longjmp/longjmp.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <setjmp.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define MAIN_VAL 47
-#define FUNC_VAL 92
-#define LEAF_VAL 163
-
-#define FUNCTION_ARG MAIN_VAL
-#define LEAF_ARG (FUNCTION_ARG + FUNC_VAL)
-#define SETJMP_RETURN (LEAF_ARG + LEAF_VAL)
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static jmp_buf env;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static int leaf(int *some_arg)
-{
- int some_local_variable = *some_arg + LEAF_VAL;
-
- printf("leaf: received %d\n", *some_arg);
-
- if (*some_arg != LEAF_ARG)
- printf("leaf: ERROR: expected %d\n", LEAF_ARG);
-
- printf("leaf: Calling longjmp() with %d\n", some_local_variable);
-
- longjmp(env, some_local_variable);
-}
-
-static int function(int some_arg)
-{
- int some_local_variable = some_arg + FUNC_VAL;
- int retval;
-
- printf("function: received %d\n", some_arg);
-
- if (some_arg != FUNCTION_ARG)
- printf("function: ERROR: expected %d\n", FUNCTION_ARG);
-
- printf("function: Calling leaf() with %d\n", some_local_variable);
-
- retval = leaf(&some_local_variable);
-
- printf("function: ERROR -- leaf returned!\n");
- return retval;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- int value;
-
- printf("main: Calling setjmp\n");
- value = setjmp(env);
- printf("main: setjmp returned %d\n", value);
-
- if (value == 0)
- {
- printf("main: Normal setjmp return\n");
- printf("main: Calling function with %d\n", MAIN_VAL);
- function(MAIN_VAL);
- printf("main: ERROR -- function returned!\n");
- return 1;
- }
- else if (value != SETJMP_RETURN)
- {
- printf("main: ERROR: Expected %d\n", SETJMP_RETURN);
- return 1;
- }
- else
- {
- printf("main: SUCCESS: setjmp return from longjmp call\n");
- return 0;
- }
-}
-
diff --git a/nuttx/examples/nxflat/tests/mkdirlist.sh b/nuttx/examples/nxflat/tests/mkdirlist.sh
deleted file mode 100755
index cc55ac0b5..000000000
--- a/nuttx/examples/nxflat/tests/mkdirlist.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-usage="Usage: %0 <romfs-dir-path>"
-
-dir=$1
-if [ -z "$dir" ]; then
- echo "ERROR: Missing <romfs-dir-path>"
- echo ""
- echo $usage
- exit 1
-fi
-
-if [ ! -d "$dir" ]; then
- echo "ERROR: Directory $dir does not exist"
- echo ""
- echo $usage
- exit 1
-fi
-
-echo "#ifndef __EXAMPLES_NXFLAT_TESTS_DIRLIST_H"
-echo "#define __EXAMPLES_NXFLAT_TESTS_DIRLIST_H"
-echo ""
-echo "static const char *dirlist[] ="
-echo "{"
-
-for file in `ls $dir`; do
- echo " \"$file\","
-done
-
-echo " NULL"
-echo "};"
-echo ""
-echo "#endif /* __EXAMPLES_NXFLAT_TESTS_DIRLIST_H */"
-
-
diff --git a/nuttx/examples/nxflat/tests/mksymtab.sh b/nuttx/examples/nxflat/tests/mksymtab.sh
deleted file mode 100755
index 611d3a87a..000000000
--- a/nuttx/examples/nxflat/tests/mksymtab.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-usage="Usage: %0 <test-dir-path>"
-
-dir=$1
-if [ -z "$dir" ]; then
- echo "ERROR: Missing <test-dir-path>"
- echo ""
- echo $usage
- exit 1
-fi
-
-if [ ! -d "$dir" ]; then
- echo "ERROR: Directory $dir does not exist"
- echo ""
- echo $usage
- exit 1
-fi
-
-varlist=`find $dir -name "*-thunk.S"| xargs grep -h asciz | cut -f3 | sort | uniq`
-
-echo "#ifndef __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
-echo "#define __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
-echo ""
-echo "#include <nuttx/symtab.h>"
-echo ""
-echo "static const struct symtab_s exports[] = "
-echo "{"
-
-for string in $varlist; do
- var=`echo $string | sed -e "s/\"//g"`
- echo " {$string, $var},"
-done
-
-echo "};"
-echo "#define NEXPORTS (sizeof(exports)/sizeof(struct symtab_s))"
-echo ""
-echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
-
diff --git a/nuttx/examples/nxflat/tests/mutex/Makefile b/nuttx/examples/nxflat/tests/mutex/Makefile
deleted file mode 100644
index 8c9fbb4a3..000000000
--- a/nuttx/examples/nxflat/tests/mutex/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/mutex/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = mutex
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/mutex/mutex.c b/nuttx/examples/nxflat/tests/mutex/mutex.c
deleted file mode 100644
index 78a63306d..000000000
--- a/nuttx/examples/nxflat/tests/mutex/mutex.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/mutex/mutex.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthread.h>
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static pthread_mutex_t mut;
-static volatile int my_mutex = 0;
-static unsigned long nloops[2] = {0, 0};
-static unsigned long nerrors[2] = {0, 0};
-static volatile bool bendoftest;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/* NOTE: it is necessary for functions that are referred to by function pointers
- * pointer to be declared with global scope (at least for ARM). Otherwise,
- * a relocation type that is not supported by NXFLAT is generated by GCC.
- */
-
-void thread_func(void *parameter)
-{
- int my_id = (int)parameter;
- int my_ndx = my_id - 1;
- int i;
-
- /* Loop 20 times. There is a 100 MS delay in the loop so this should
- * take about 2 seconds. The main thread will stop this thread after
- * 2 seconds by setting bendoftest in any event.
- */
-
- for (i = 0; i < 20 && !bendoftest; i++);
- {
- if ((pthread_mutex_lock(&mut)) != 0)
- {
- printf("ERROR thread %d: pthread_mutex_lock failed\n", my_id);
- }
-
- if (my_mutex == 1)
- {
- printf("ERROR thread=%d: "
- "my_mutex should be zero, instead my_mutex=%d\n",
- my_id, my_mutex);
- nerrors[my_ndx]++;
- }
-
- my_mutex = 1;
- usleep(100000);
- my_mutex = 0;
-
- if ((pthread_mutex_unlock(&mut)) != 0)
- {
- printf("ERROR thread %d: pthread_mutex_unlock failed\n", my_id);
- }
-
- nloops[my_ndx]++;
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- pthread_t thread1;
- pthread_t thread2;
-
- /* Initialize the mutex */
-
- pthread_mutex_init(&mut, NULL);
-
- /* Start two thread instances */
-
- printf("Starting thread 1\n");
- bendoftest = false;
- if ((pthread_create(&thread1, NULL, (void*)thread_func, (void*)1)) != 0)
- {
- fprintf(stderr, "Error in thread#1 creation\n");
- }
-
- printf("Starting thread 2\n");
- if ((pthread_create(&thread2, NULL, (void*)thread_func, (void*)2)) != 0)
- {
- fprintf(stderr, "Error in thread#2 creation\n");
- }
-
- /* Wait a bit for the threads to do their thing. */
-
- sleep(2);
-
- /* Then ask them politely to stop running */
-
- printf("Stopping threads\n");
- bendoftest = true;
- pthread_join(thread1, NULL);
- pthread_join(thread2, NULL);
-
- printf("\tThread1\tThread2\n");
- printf("Loops\t%ld\t%ld\n", nloops[0], nloops[1]);
- printf("Errors\t%ld\t%ld\n", nerrors[0], nerrors[1]);
-
- return 0;
-}
-
diff --git a/nuttx/examples/nxflat/tests/pthread/Makefile b/nuttx/examples/nxflat/tests/pthread/Makefile
deleted file mode 100644
index 27da42e7c..000000000
--- a/nuttx/examples/nxflat/tests/pthread/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/pthread/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = pthread
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/pthread/pthread.c b/nuttx/examples/nxflat/tests/pthread/pthread.c
deleted file mode 100644
index 019ec453e..000000000
--- a/nuttx/examples/nxflat/tests/pthread/pthread.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/pthread/pthread.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthread.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define CHILD_ARG ((void*)0x12345678)
-#define CHILD_RET ((void*)0x87654321)
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-enum exit_values_e
-{
- TESTRESULT_SUCCESS = 0,
- TESTRESULT_PTHREAD_ATTR_INIT_FAIL,
- TESTRESULT_PTHREAD_CREATE_FAIL,
- TESTRESULT_PTHREAD_JOIN_FAIL,
- TESTRESULT_CHILD_ARG_FAIL,
- TESTRESULT_CHILD_RETVAL_FAIL,
-};
-
-/****************************************************************************
- * External Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/* NOTE: it is necessary for functions that are referred to by function pointers
- * pointer to be declared with global scope (at least for ARM). Otherwise,
- * a relocation type that is not supported by NXFLAT is generated by GCC.
- */
-
-void *child_start_routine(void *arg)
-{
- printf("CHILD: started with arg=%d\n", (int)arg);
-
- if (arg != CHILD_ARG)
- {
- printf("CHILD: expected arg=%d\n", (int)CHILD_ARG);
- return (void*)TESTRESULT_CHILD_ARG_FAIL;
- }
- sleep(2);
-
- printf("CHILD: returning %d\n", (int)CHILD_RET);
- pthread_exit(CHILD_RET);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- pthread_attr_t attr;
- pthread_t thread;
- void *retval;
- int status;
-
- puts("PARENT: started\n");
-
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("PARENT: pthread_attr_init() returned %d\n", status);
- exit(TESTRESULT_PTHREAD_ATTR_INIT_FAIL);
- }
-
- printf("PARENT: calling pthread_start with arg=%d\n", (int)CHILD_ARG);
- status = pthread_create(&thread, &attr, child_start_routine, CHILD_ARG);
- if (status != 0)
- {
- printf("PARENT: pthread_create() returned %d\n", status);
- exit(TESTRESULT_PTHREAD_CREATE_FAIL);
- }
-
- status = pthread_join(thread, &retval);
- if (status != 0)
- {
- printf("PARENT pthread_join() returned %d\n", status);
-
- exit(TESTRESULT_PTHREAD_JOIN_FAIL);
- }
-
- printf("PARENT child exitted with %d\n", (int)retval);
- if (retval != CHILD_RET)
- {
- printf("PARENT child thread did not exit with %d\n", (int)CHILD_RET);
- exit(TESTRESULT_CHILD_RETVAL_FAIL);
- }
-
- puts("PARENT returning success\n");
- return TESTRESULT_SUCCESS;
-}
diff --git a/nuttx/examples/nxflat/tests/signal/Makefile b/nuttx/examples/nxflat/tests/signal/Makefile
deleted file mode 100644
index d967fbf09..000000000
--- a/nuttx/examples/nxflat/tests/signal/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/nxflat/tests/signal/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = signal
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/signal/signal.c b/nuttx/examples/nxflat/tests/signal/signal.c
deleted file mode 100644
index ff1c58305..000000000
--- a/nuttx/examples/nxflat/tests/signal/signal.c
+++ /dev/null
@@ -1,308 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/signal/signal.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define USEC_PER_MSEC 1000
-#define MSEC_PER_SEC 1000
-#define USEC_PER_SEC (USEC_PER_MSEC * MSEC_PER_SEC)
-#define SHORT_DELAY (USEC_PER_SEC / 3)
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static int sigusr1_rcvd = 0;
-static int sigusr2_rcvd = 0;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: sigusr1_sighandler
- ****************************************************************************/
-
-/* NOTE: it is necessary for functions that are referred to by function pointers
- * pointer to be declared with global scope (at least for ARM). Otherwise,
- * a relocation type that is not supported by NXFLAT is generated by GCC.
- */
-
-void sigusr1_sighandler(int signo)
-{
- printf("sigusr1_sighandler: Received SIGUSR1, signo=%d\n", signo);
- sigusr1_rcvd = 1;
-}
-
-/****************************************************************************
- * Name: sigusr2_sigaction
- ***************************************************************************/
-
-/* NOTE: it is necessary for functions that are referred to by function pointers
- * pointer to be declared with global scope (at least for ARM). Otherwise,
- * a relocation type that is not supported by NXFLAT is generated by GCC.
- */
-
-#ifdef __USE_POSIX199309
-void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
-{
- printf("sigusr2_sigaction: Received SIGUSR2, signo=%d siginfo=%p arg=%p\n",
- signo, siginfo, arg);
-
-#ifdef HAVE_SIGQUEUE
- if (siginfo)
- {
- printf(" si_signo = %d\n", siginfo->si_signo);
- printf(" si_errno = %d\n", siginfo->si_errno);
- printf(" si_code = %d\n", siginfo->si_code);
- printf(" si_pid = %d\n", siginfo->si_pid);
- printf(" si_uid = %d\n", siginfo->si_uid);
- printf(" si_status = %d\n", siginfo->si_status);
- printf(" si_utime = %ld\n", (long)siginfo->si_utime);
- printf(" si_stime = %ld\n", (long)siginfo->si_stime);
- printf(" si_value = %d\n", siginfo->si_value.sival_int);
- printf(" si_int = %d\n", siginfo->si_int);
- printf(" si_ptr = %p\n", siginfo->si_ptr);
- printf(" si_addr = %p\n", siginfo->si_addr);
- printf(" si_band = %ld\n", siginfo->si_band);
- printf(" si_fd = %d\n", siginfo->si_fd);
- }
-#endif
- sigusr2_rcvd = 1;
-}
-#else
-void sigusr2_sigaction(int signo)
-{
- printf("sigusr2_sigaction: Received SIGUSR2, signo=%d\n", signo);
- sigusr2_rcvd = 1;
-}
-
-#endif
-
-/****************************************************************************
- * Name: sigusr2_sighandler
- ****************************************************************************/
-
-static void sigusr2_sighandler(int signo)
-{
- printf("sigusr2_sighandler: Received SIGUSR2, signo=%d\n", signo);
- sigusr2_rcvd = 1;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: main
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- struct sigaction act;
- struct sigaction oact;
- void (*old_sigusr1_sighandler)(int signo);
- void (*old_sigusr2_sighandler)(int signo);
- pid_t mypid = getpid();
-#if defined(__USE_POSIX199309) && defined(HAVE_SIGQUEUE)
- sigval_t sigval;
-#endif
- int status;
-
- printf("Setting up signal handlers from pid=%d\n", mypid);
-
- /* Set up so that sigusr1_sighandler will respond to SIGUSR1 */
-
- old_sigusr1_sighandler = signal(SIGUSR1, sigusr1_sighandler);
- if (old_sigusr1_sighandler == SIG_ERR)
- {
- fprintf(stderr, "Failed to install SIGUSR1 handler, errno=%d\n",
- errno);
- exit(1);
- }
-
- printf("Old SIGUSR1 sighandler at %p\n", old_sigusr1_sighandler);
- printf("New SIGUSR1 sighandler at %p\n", sigusr1_sighandler);
-
- /* Set up so that sigusr2_sigaction will respond to SIGUSR2 */
-
- memset(&act, 0, sizeof(struct sigaction));
- act.sa_sigaction = sigusr2_sigaction;
- act.sa_flags = SA_SIGINFO;
-
- (void)sigemptyset(&act.sa_mask);
-
- status = sigaction(SIGUSR2, &act, &oact);
- if (status != 0)
- {
- fprintf(stderr, "Failed to install SIGUSR2 handler, errno=%d\n",
- errno);
- exit(2);
- }
-
- printf("Old SIGUSR2 sighandler at %p\n", oact.sa_handler);
- printf("New SIGUSR2 sighandler at %p\n", sigusr2_sigaction);
- printf("Raising SIGUSR1 from pid=%d\n", mypid);
-
- fflush(stdout); usleep(SHORT_DELAY);
-
- /* Send SIGUSR1 to ourselves via raise() */
-
- status = raise(SIGUSR1);
- if (status != 0)
- {
- fprintf(stderr, "Failed to raise SIGUSR1, errno=%d\n", errno);
- exit(3);
- }
-
- usleep(SHORT_DELAY);
- printf("SIGUSR1 raised from pid=%d\n", mypid);
-
- /* Verify that we received SIGUSR1 */
-
- if (sigusr1_rcvd == 0)
- {
- fprintf(stderr, "SIGUSR1 not received\n");
- exit(4);
- }
- sigusr1_rcvd = 0;
-
- /* Send SIGUSR2 to ourselves */
-
- printf("Killing SIGUSR2 from pid=%d\n", mypid);
- fflush(stdout); usleep(SHORT_DELAY);
-
-#if defined(__USE_POSIX199309) && defined(HAVE_SIGQUEUE)
- /* Send SIGUSR2 to ourselves via sigqueue() */
-
- sigval.sival_int = 87;
- status = sigqueue(mypid, SIGUSR2, sigval);
- if (status != 0)
- {
- fprintf(stderr, "Failed to queue SIGUSR2, errno=%d\n", errno);
- exit(5);
- }
-
- usleep(SHORT_DELAY);
- printf("SIGUSR2 queued from pid=%d, sigval=97\n", mypid);
-#else
- /* Send SIGUSR2 to ourselves via kill() */
-
- status = kill(mypid, SIGUSR2);
- if (status != 0)
- {
- fprintf(stderr, "Failed to kill SIGUSR2, errno=%d\n", errno);
- exit(5);
- }
-
- usleep(SHORT_DELAY);
- printf("SIGUSR2 killed from pid=%d\n", mypid);
-#endif
- /* Verify that SIGUSR2 was received */
-
- if (sigusr2_rcvd == 0)
- {
- fprintf(stderr, "SIGUSR2 not received\n");
- exit(6);
- }
- sigusr2_rcvd = 0;
-
- /* Remove the sigusr2_sigaction handler and replace the SIGUSR2
- * handler with sigusr2_sighandler.
- */
-
- printf("Resetting SIGUSR2 signal handler from pid=%d\n", mypid);
-
- old_sigusr2_sighandler = signal(SIGUSR2, sigusr2_sighandler);
- if (old_sigusr2_sighandler == SIG_ERR)
- {
- fprintf(stderr, "Failed to install SIGUSR2 handler, errno=%d\n",
- errno);
- exit(7);
- }
-
- printf("Old SIGUSR2 sighandler at %p\n", old_sigusr2_sighandler);
- printf("New SIGUSR2 sighandler at %p\n", sigusr2_sighandler);
-
- /* Verify that the handler that was removed was sigusr2_sigaction */
-
- if ((void*)old_sigusr2_sighandler != (void*)sigusr2_sigaction)
- {
- fprintf(stderr,
- "Old SIGUSR2 signhanlder (%p) is not sigusr2_sigation (%p)\n",
- old_sigusr2_sighandler, sigusr2_sigaction);
- exit(8);
- }
-
- /* Send SIGUSR2 to ourselves via kill() */
-
- printf("Killing SIGUSR2 from pid=%d\n", mypid);
- fflush(stdout); usleep(SHORT_DELAY);
-
- status = kill(mypid, SIGUSR2);
- if (status != 0)
- {
- fprintf(stderr, "Failed to kill SIGUSR2, errno=%d\n", errno);
- exit(9);
- }
-
- usleep(SHORT_DELAY);
- printf("SIGUSR2 killed from pid=%d\n", mypid);
-
- /* Verify that SIGUSR2 was received */
-
- if (sigusr2_rcvd == 0)
- {
- fprintf(stderr, "SIGUSR2 not received\n");
- exit(10);
- }
- sigusr2_rcvd = 0;
-
- return 0;
-}
diff --git a/nuttx/examples/nxflat/tests/struct/Makefile b/nuttx/examples/nxflat/tests/struct/Makefile
deleted file mode 100644
index 7a5f3fb82..000000000
--- a/nuttx/examples/nxflat/tests/struct/Makefile
+++ /dev/null
@@ -1,80 +0,0 @@
-############################################################################
-# examples/nxflat/tests/hello/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-CFLAGS += -I.
-
-BIN = struct
-
-R1SRCS = struct_main.c struct_dummy.c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
diff --git a/nuttx/examples/nxflat/tests/struct/struct.h b/nuttx/examples/nxflat/tests/struct/struct.h
deleted file mode 100644
index 0b1747d8c..000000000
--- a/nuttx/examples/nxflat/tests/struct/struct.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/struct/struct.h
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_NXFLAT_TESTS_STRUCT_STRUCT_H
-#define __EXAMPLES_NXFLAT_TESTS_STRUCT_STRUCT_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#define DUMMY_SCALAR_VALUE1 42
-#define DUMMY_SCALAR_VALUE2 87
-#define DUMMY_SCALAR_VALUE3 117
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-typedef void (*dummy_t)(void);
-
-struct struct_dummy_s
-{
- int n; /* This is a simple scalar value (DUMMY_SCALAR_VALUE3) */
-};
-
-struct struct_s
-{
- int n; /* This is a simple scalar value (DUMMY_SCALAR_VALUE1) */
- const int *pn; /* This is a pointer to a simple scalar value */
- const struct struct_dummy_s *ps; /* This is a pointer to a structure */
- dummy_t pf; /* This is a pointer to a function */
-};
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-extern int dummy_scalar; /* (DUMMY_SCALAR_VALUE2) */
-extern const struct struct_dummy_s dummy_struct;
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-extern void dummyfunc(void);
-extern const struct struct_s *getstruct(void);
-
-#endif /* __EXAMPLES_NXFLAT_TESTS_STRUCT_STRUCT_H */
-
-
diff --git a/nuttx/examples/nxflat/tests/struct/struct_dummy.c b/nuttx/examples/nxflat/tests/struct/struct_dummy.c
deleted file mode 100644
index 7f0be6a1f..000000000
--- a/nuttx/examples/nxflat/tests/struct/struct_dummy.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/struct/struct_dummy.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-
-#include "struct.h"
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-const struct struct_s dummy =
-{
- DUMMY_SCALAR_VALUE1,
- &dummy_scalar,
- &dummy_struct,
- (dummy_t)dummyfunc
-};
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-const struct struct_s *getstruct(void)
-{
- return &dummy;
-}
-
diff --git a/nuttx/examples/nxflat/tests/struct/struct_main.c b/nuttx/examples/nxflat/tests/struct/struct_main.c
deleted file mode 100644
index d82cdd706..000000000
--- a/nuttx/examples/nxflat/tests/struct/struct_main.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/struct/struct_main.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <stdlib.h>
-
-#include "struct.h"
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-const struct struct_dummy_s dummy_struct =
-{
- DUMMY_SCALAR_VALUE3
-};
-
-int dummy_scalar = DUMMY_SCALAR_VALUE2;
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- const struct struct_s *mystruct = getstruct();
-
- printf("Calling getstruct()\n");
- mystruct = getstruct();
- printf("getstruct returned %p\n", mystruct);
- printf(" n = %d (vs %d) %s\n",
- mystruct->n, DUMMY_SCALAR_VALUE1,
- mystruct->n == DUMMY_SCALAR_VALUE1 ? "PASS" : "FAIL");
-
- printf(" pn = %p (vs %p) %s\n",
- mystruct->pn, &dummy_scalar,
- mystruct->pn == &dummy_scalar ? "PASS" : "FAIL");
- if (mystruct->pn == &dummy_scalar)
- {
- printf(" *pn = %d (vs %d) %s\n",
- *mystruct->pn, DUMMY_SCALAR_VALUE2,
- *mystruct->pn == DUMMY_SCALAR_VALUE2 ? "PASS" : "FAIL");
- }
-
- printf(" ps = %p (vs %p) %s\n",
- mystruct->ps, &dummy_struct,
- mystruct->ps == &dummy_struct ? "PASS" : "FAIL");
- if (mystruct->ps == &dummy_struct)
- {
- printf(" ps->n = %d (vs %d) %s\n",
- mystruct->ps->n, DUMMY_SCALAR_VALUE3,
- mystruct->ps->n == DUMMY_SCALAR_VALUE3 ? "PASS" : "FAIL");
- }
-
- printf(" pf = %p (vs %p) %s\n",
- mystruct->pf, dummyfunc,
- mystruct->pf == dummyfunc ? "PASS" : "FAIL");
- if (mystruct->pf == dummyfunc)
- {
- printf("Calling mystruct->pf()\n");
- mystruct->pf();
- }
-
- printf("Exit-ing\n");
- return 0;
-}
-
-void dummyfunc(void)
-{
- printf("In dummyfunc() -- PASS\n");
-}
-
-
diff --git a/nuttx/examples/nxflat/tests/task/Makefile b/nuttx/examples/nxflat/tests/task/Makefile
deleted file mode 100644
index 0881d4717..000000000
--- a/nuttx/examples/nxflat/tests/task/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-############################################################################
-# examples/nxflat/tests/task/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = task
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -D $(BIN) $(ROMFS_DIR)/$(BIN)
-
-
diff --git a/nuttx/examples/nxflat/tests/task/task.c b/nuttx/examples/nxflat/tests/task/task.c
deleted file mode 100644
index 63e8188ed..000000000
--- a/nuttx/examples/nxflat/tests/task/task.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * examples/nxflat/tests/task/parent.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <sys/types.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sched.h>
-#include <semaphore.h>
-#include <errno.h>
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static char child_name[] = "child";
-static char child_arg[] = "Hello from your parent!";
-static sem_t g_sem;
-
-#if CONFIG_TASK_NAME_SIZE == 0
-static char no_name[] = "<noname>";
-#endif
-
-/****************************************************************************
- * Privite Functions
- ****************************************************************************/
-
-/* NOTE: it is necessary for functions that are referred to by function pointers
- * pointer to be declared with global scope (at least for ARM). Otherwise,
- * a relocation type that is not supported by NXFLAT is generated by GCC.
- */
-
- int child_task(int argc, char **argv)
-{
- printf("Child: execv was successful!\n");
- printf("Child: argc=%d\n", argc);
-
- if (argc != 2)
- {
- printf("Child: expected argc to be 2\n");
- printf("Child: Exit-ting with status=2\n");
- exit(2);
- }
- printf("Child: argv[0]=\"%s\"\n", argv[0]);
-
-#if CONFIG_TASK_NAME_SIZE == 0
- if (strcmp(argv[0], no_name) != 0)
- {
- printf("Child: expected argv[0] to be \"%s\"\n", no_name);
- printf("Child: Exit-ting with status=3\n");
- exit(3);
- }
-#else
- if (strncmp(argv[0], child_name, CONFIG_TASK_NAME_SIZE) != 0)
- {
- printf("Child: expected argv[0] to be \"%s\"\n", child_name);
- printf("Child: Exit-ting with status=3\n");
- exit(3);
- }
-#endif
-
- printf("Child: argv[1]=\"%s\"\n", argv[1]);
-
- if (strcmp(argv[1], child_arg) != 0)
- {
- printf("Child: expected argv[1] to be \"%s\"\n", child_arg);
- printf("Child: Exit-ting with status=4\n");
- exit(4);
- }
-
- printf("Child: Exit-ting with status=0\n");
- sem_post(&g_sem);
- return 0;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char **argv)
-{
- pid_t parent_pid = getpid();
- char *child_argv[2];
- pid_t child_pid;
-
- printf("Parent: Started, pid=%d\n", parent_pid);
-
- sem_init(&g_sem, 0, 0);
-
- printf("Parent: Calling task_create()\n");
-
- child_argv[0] = child_arg;
- child_argv[1] = 0;
- child_pid = task_create(child_name, 50, 512, child_task, (const char**)child_argv);
- if (child_pid < 0)
- {
- printf("Parent: task_create failed: %d\n", errno);
- }
-
- printf("Parent: Waiting for child (pid=%d)\n", child_pid);
- sem_wait(&g_sem);
- printf("Parent: Exit-ing\n");
- sem_destroy(&g_sem);
- return 0;
-}
-
diff --git a/nuttx/examples/ostest/Makefile b/nuttx/examples/ostest/Makefile
deleted file mode 100644
index 5fc3cfad9..000000000
--- a/nuttx/examples/ostest/Makefile
+++ /dev/null
@@ -1,116 +0,0 @@
-############################################################################
-# examples/ostest/Makefile
-#
-# Copyright (C) 2007-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c dev_null.c
-
-ifneq ($(CONFIG_DISABLE_PTHREAD),y)
-CSRCS += cancel.c cond.c mutex.c sem.c barrier.c
-ifneq ($(CONFIG_RR_INTERVAL),0)
-CSRCS += roundrobin.c
-endif # CONFIG_RR_INTERVAL
-ifeq ($(CONFIG_MUTEX_TYPES),y)
-CSRCS += rmutex.c
-endif # CONFIG_MUTEX_TYPES
-endif # CONFIG_DISABLE_PTHREAD
-
-ifneq ($(CONFIG_DISABLE_SIGNALS),y)
-CSRCS += sighand.c
-ifneq ($(CONFIG_DISABLE_PTHREAD),y)
-ifneq ($(CONFIG_DISABLE_CLOCK),y)
-CSRCS += timedwait.c
-endif # CONFIG_DISABLE_CLOCK
-endif # CONFIG_DISABLE_PTHREAD
-endif # CONFIG_DISABLE_SIGNALS
-
-ifneq ($(CONFIG_DISABLE_MQUEUE),y)
-ifneq ($(CONFIG_DISABLE_PTHREAD),y)
-CSRCS += mqueue.c
-ifneq ($(CONFIG_DISABLE_CLOCK),y)
-CSRCS += timedmqueue.c
-endif # CONFIG_DISABLE_CLOCK
-endif # CONFIG_DISABLE_PTHREAD
-endif # CONFIG_DISABLE_MQUEUE
-
-ifneq ($(CONFIG_DISABLE_POSIX_TIMERS),y)
-CSRCS += posixtimer.c
-endif
-
-ifneq ($(CONFIG_DISABLE_SIGNALS),y)
-ifneq ($(CONFIG_DISABLE_PTHREAD),y)
-ifeq ($(CONFIG_PRIORITY_INHERITANCE),y)
-CSRCS += prioinherit.c
-endif # CONFIG_PRIORITY_INHERITANCE
-endif # CONFIG_DISABLE_PTHREAD
-endif # CONFIG_DISABLE_SIGNALS
-
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/ostest/barrier.c b/nuttx/examples/ostest/barrier.c
deleted file mode 100644
index c88e1bed1..000000000
--- a/nuttx/examples/ostest/barrier.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/****************************************************************************
- * examples/ostest/barrier.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <unistd.h>
-#include <pthread.h>
-
-#include "ostest.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define HALF_SECOND 500000L
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static pthread_barrier_t barrier;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: barrier_func
- ****************************************************************************/
-
-static void *barrier_func(void *parameter)
-{
- int id = (int)parameter;
- int status;
-
- printf("barrier_func: Thread %d started\n", id);
-#ifndef CONFIG_DISABLE_SIGNALS
- usleep(HALF_SECOND);
-#endif
-
- /* Wait at the barrier until all threads are synchronized. */
-
- printf("barrier_func: Thread %d calling pthread_barrier_wait()\n",
- id);
- status = pthread_barrier_wait(&barrier);
- if (status == 0)
- {
- printf("barrier_func: Thread %d, back with "
- "status=0 (I am not special)\n",
- id, status);
- }
- else if (status == PTHREAD_BARRIER_SERIAL_THREAD)
- {
- printf("barrier_func: Thread %d, back with "
- "status=PTHREAD_BARRIER_SERIAL_THREAD (I AM SPECIAL)\n",
- id, status);
- }
- else
- {
- printf("barrier_func: ERROR thread %d could not get semaphore value\n",
- id);
- }
-
-#ifndef CONFIG_DISABLE_SIGNALS
- usleep(HALF_SECOND);
-#endif
- printf("barrier_func: Thread %d done\n", id);
- return NULL;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: barrier_test
- ****************************************************************************/
-
-void barrier_test(void)
-{
- pthread_t barrier_thread[CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS];
- pthread_addr_t result;
- pthread_attr_t attr;
- pthread_barrierattr_t barrierattr;
- int status;
- int i;
-
- printf("barrier_test: Initializing barrier\n");
-
- status = pthread_barrierattr_init(&barrierattr);
- if (status != OK)
- {
- printf("barrier_test: pthread_barrierattr_init failed, status=%d\n",
- status);
- }
-
- status = pthread_barrier_init(&barrier, &barrierattr,
- CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS);
- if (status != OK)
- {
- printf("barrier_test: pthread_barrierattr_init failed, status=%d\n",
- status);
- }
-
- /* Create the barrier */
-
- status = pthread_barrierattr_init(&barrierattr);
-
- /* Start CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS thread instances */
-
- status = pthread_attr_init(&attr);
- if (status != OK)
- {
- printf("barrier_test: pthread_attr_init failed, status=%d\n",
- status);
- }
-
- for (i = 0; i < CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS; i++)
- {
- status = pthread_create(&barrier_thread[i], &attr, barrier_func,
- (pthread_addr_t)i);
- if (status != 0)
- {
- printf("barrier_test: Error in thread %d create, status=%d\n",
- i, status);
- }
- else
- {
- printf("barrier_test: Thread %d created\n", i);
- }
- }
-
- /* Wait for all thread instances to complete */
-
- for (i = 0; i < CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS; i++)
- {
- status = pthread_join(barrier_thread[i], &result);
- if (status != 0)
- {
- printf("barrier_test: Error in thread %d join, status=%d\n",
- i, status);
- }
- else
- {
- printf("barrier_test: Thread %d completed with result=%p\n",
- i, result);
- }
- }
-
- /* Destroy the barrier */
-
- status = pthread_barrier_destroy(&barrier);
- if (status != OK)
- {
- printf("barrier_test: pthread_barrier_destroy failed, status=%d\n",
- status);
- }
-
- status = pthread_barrierattr_destroy(&barrierattr);
- if (status != OK)
- {
- printf("barrier_test: pthread_barrierattr_destroy failed, status=%d\n",
- status);
- }
-}
diff --git a/nuttx/examples/ostest/cancel.c b/nuttx/examples/ostest/cancel.c
deleted file mode 100644
index bf2d03615..000000000
--- a/nuttx/examples/ostest/cancel.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/***********************************************************************
- * examples/ostest/cancel.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <time.h>
-#include <pthread.h>
-#include <errno.h>
-#include "ostest.h"
-
-static pthread_mutex_t mutex;
-static pthread_cond_t cond;
-
-static void *thread_waiter(void *parameter)
-{
- int status;
-
- /* Take the mutex */
-
- printf("thread_waiter: Taking mutex\n");
- status = pthread_mutex_lock(&mutex);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_mutex_lock failed, status=%d\n", status);
- }
-
- printf("thread_waiter: Starting wait for condition\n");
-
- /* Are we a non-cancelable thread? Yes, set the non-cancelable state */
-
- if (!parameter)
- {
- printf("thread_waiter: Setting non-cancelable\n");
- status = pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, NULL);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_setcancelstate failed, status=%d\n", status);
- }
- }
-
- /* The wait -- we will never awaken from this. */
-
- status = pthread_cond_wait(&cond, &mutex);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_cond_wait failed, status=%d\n", status);
- }
-
- /* Release the mutex */
-
- printf("thread_waiter: Releasing mutex\n");
- status = pthread_mutex_unlock(&mutex);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_mutex_unlock failed, status=%d\n", status);
- }
-
- /* Set the cancelable state */
-
- printf("thread_waiter: Setting cancelable\n");
- status = pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_setcancelstate failed, status=%d\n", status);
- }
-
- printf("thread_waiter: Exit with status 0x12345678\n");
- pthread_exit((pthread_addr_t)0x12345678);
- return NULL;
-}
-
-static void start_thread(pthread_t *waiter, int cancelable)
-{
- pthread_attr_t attr;
- int status;
-
- /* Initialize the mutex */
-
- printf("start_thread: Initializing mutex\n");
- status = pthread_mutex_init(&mutex, NULL);
- if (status != 0)
- {
- printf("start_thread: ERROR pthread_mutex_init failed, status=%d\n", status);
- }
-
- /* Initialize the condition variable */
-
- printf("start_thread: Initializing cond\n");
- status = pthread_cond_init(&cond, NULL);
- if (status != 0)
- {
- printf("start_thread: ERROR pthread_cond_init failed, status=%d\n", status);
- }
-
- /* Set up attributes */
-
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("start_thread: pthread_attr_init failed, status=%d\n", status);
- }
-
- status = pthread_attr_setstacksize(&attr, STACKSIZE);
- if (status != 0)
- {
- printf("start_thread: pthread_attr_setstacksize failed, status=%d\n", status);
- }
-
- /* Start the waiter thread */
-
- printf("start_thread: Starting thread\n");
- status = pthread_create(waiter, &attr, thread_waiter, (pthread_addr_t)cancelable);
- if (status != 0)
- {
- printf("start_thread: ERROR pthread_create failed, status=%d\n", status);
- }
-
- /* Make sure that the waiter thread gets a chance to run */
-
- printf("start_thread: Yielding\n");
- pthread_yield();
-}
-
-static void restart_thread(pthread_t *waiter, int cancelable)
-{
- int status;
-
- /* Destroy the condition variable */
-
- printf("restart_thread: Destroying cond\n");
- status = pthread_cond_destroy(&cond);
- if (status != 0)
- {
- printf("restart_thread: ERROR pthread_cond_destroy failed, status=%d\n", status);
- }
-
- /* Destroy the mutex */
-
- printf("restart_thread: Destroying mutex\n");
- status = pthread_cond_destroy(&cond);
- if (status != 0)
- {
- printf("restart_thread: ERROR pthread_mutex_destroy failed, status=%d\n", status);
- }
-
- /* Then restart the thread */
-
- printf("restart_thread: Re-starting thread\n");
- start_thread(waiter, cancelable);
-}
-
-void cancel_test(void)
-{
- pthread_t waiter;
- void *result;
- int status;
-
- /* Test 1: Normal Cancel *********************************************/
- /* Start the waiter thread */
-
- printf("cancel_test: Test 1: Normal Cancelation\n");
- printf("cancel_test: Starting thread\n");
- start_thread(&waiter, 1);
-
- /* Then cancel it. It should be in the pthread_cond_wait now */
-
- printf("cancel_test: Canceling thread\n");
- status = pthread_cancel(waiter);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_cancel failed, status=%d\n", status);
- }
-
- /* Then join to the thread to pick up the result (if we don't do
- * we will have a memory leak!)
- */
-
- printf("cancel_test: Joining\n");
- status = pthread_join(waiter, &result);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_join failed, status=%d\n", status);
- }
- else
- {
- printf("cancel_test: waiter exited with result=%p\n", result);
- if (result != PTHREAD_CANCELED)
- {
- printf("cancel_test: ERROR expected result=%p\n", PTHREAD_CANCELED);
- }
- else
- {
- printf("cancel_test: PASS thread terminated with PTHREAD_CANCELED\n");
- }
- }
-
- /* Test 2: Cancel Detached Thread ************************************/
-
- printf("cancel_test: Test 2: Cancelation of detached thread\n");
- printf("cancel_test: Re-starting thread\n");
- restart_thread(&waiter, 1);
-
- /* Detach the thread */
-
- status = pthread_detach(waiter);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_detach, status=%d\n", status);
- }
-
- /* Then cancel it. It should be in the pthread_cond_wait now */
-
- printf("cancel_test: Canceling thread\n");
- status = pthread_cancel(waiter);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_cancel failed, status=%d\n", status);
- }
-
- /* Join should now fail */
-
- printf("cancel_test: Joining\n");
- status = pthread_join(waiter, &result);
- if (status == 0)
- {
- printf("cancel_test: ERROR pthread_join succeeded\n");
- }
- else if (status != ESRCH)
- {
- printf("cancel_test: ERROR pthread_join failed but with wrong status=%d\n", status);
- }
- else
- {
- printf("cancel_test: PASS pthread_join failed with status=ESRCH\n");
- }
-
- /* Test 3: Non-cancelable threads ************************************/
-
- printf("cancel_test: Test 3: Non-cancelable threads\n");
- printf("cancel_test: Re-starting thread (non-cancelable)\n");
- restart_thread(&waiter, 0);
-
- /* Then cancel it. It should be in the pthread_cond_wait now. The
- * behavior here is non-standard: when the thread is at a cancelation
- * point, it should be cancelable, even when cancelation is disable.
- *
- * The cancelation should succeed, because the cancelation is pending.
- */
-
- printf("cancel_test: Canceling thread\n");
- status = pthread_cancel(waiter);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_cancel failed, status=%d\n", status);
- }
-
- /* Signal the thread. It should wake up and restore the cancelable state.
- * When the cancelable state is re-enabled, the thread should be canceled.
- */
-
- status = pthread_mutex_lock(&mutex);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_mutex_lock failed, status=%d\n", status);
- }
-
- status = pthread_cond_signal(&cond);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_cond_signal failed, status=%d\n", status);
- }
-
- status = pthread_mutex_unlock(&mutex);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_mutex_unlock failed, status=%d\n", status);
- }
-
- /* Then join to the thread to pick up the result (if we don't do
- * we will have a memory leak!)
- */
-
- printf("cancel_test: Joining\n");
- status = pthread_join(waiter, &result);
- if (status != 0)
- {
- printf("cancel_test: ERROR pthread_join failed, status=%d\n", status);
- }
- else
- {
- printf("cancel_test: waiter exited with result=%p\n", result);
- if (result != PTHREAD_CANCELED)
- {
- printf("cancel_test: ERROR expected result=%p\n", PTHREAD_CANCELED);
- }
- else
- {
- printf("cancel_test: PASS thread terminated with PTHREAD_CANCELED\n");
- }
- }
-
-}
diff --git a/nuttx/examples/ostest/cond.c b/nuttx/examples/ostest/cond.c
deleted file mode 100644
index 11191b7d5..000000000
--- a/nuttx/examples/ostest/cond.c
+++ /dev/null
@@ -1,294 +0,0 @@
-/***********************************************************************
- * cond.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <pthread.h>
-#include <unistd.h>
-#include "ostest.h"
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-static volatile enum { RUNNING, MUTEX_WAIT, COND_WAIT} waiter_state;
-
-static pthread_mutex_t mutex;
-static pthread_cond_t cond;
-static volatile int data_available = 0;
-static int waiter_nloops = 0;
-static int waiter_waits = 0;
-static int waiter_nerrors = 0;
-static int signaler_nloops = 0;
-static int signaler_already = 0;
-static int signaler_state = 0;
-static int signaler_nerrors = 0;
-
-static void *thread_waiter(void *parameter)
-{
- int status;
-
- printf("waiter_thread: Started\n");
-
- for(;;)
- {
- /* Take the mutex */
-
- waiter_state = MUTEX_WAIT;
- status = pthread_mutex_lock(&mutex);
- waiter_state = RUNNING;
-
- if (status != 0)
- {
- printf("waiter_thread: ERROR pthread_mutex_lock failed, status=%d\n", status);
- waiter_nerrors++;
- }
-
- /* Check if data is available -- if data is not available then
- * wait for it
- */
-
- if (!data_available)
- {
- /* We are higher priority than the signaler thread so the
- * only time that the signaler thread will have a chance to run is when
- * we are waiting for the condition variable. In this case, pthread_cond_wait
- * will automatically release the mutex for the signaler (then re-acquire
- * the mutex before returning.
- */
-
- waiter_state = COND_WAIT;
- status = pthread_cond_wait(&cond, &mutex);
- waiter_state = RUNNING;
-
- if (status != 0)
- {
- printf("waiter_thread: ERROR pthread_cond_wait failed, status=%d\n", status);
- waiter_nerrors++;
- }
- waiter_waits++;
- }
-
- /* Now data should be available */
-
- if (!data_available)
- {
- printf("waiter_thread: ERROR data not available after wait\n");
- waiter_nerrors++;
- }
-
- /* Clear data available */
-
- data_available = 0;
-
- /* Release the mutex */
-
- status = pthread_mutex_unlock(&mutex);
- if (status != 0)
- {
- printf("waiter_thread: ERROR waiter: pthread_mutex_unlock failed, status=%d\n", status);
- waiter_nerrors++;
- }
-
- waiter_nloops++;
- }
- return NULL;
-}
-
-static void *thread_signaler(void *parameter)
-{
- int status;
- int i;
-
- printf("thread_signaler: Started\n");
- for (i = 0; i < 32; i++)
- {
- /* Take the mutex. The waiter is higher priority and should
- * run until it waits for the condition. So, at this point
- * signaler should be waiting for the condition.
- */
-
- status = pthread_mutex_lock(&mutex);
- if (status != 0)
- {
- printf("thread_signaler: ERROR pthread_mutex_lock failed, status=%d\n", status);
- signaler_nerrors++;
- }
-
- /* Verify the state */
-
- if (waiter_state != COND_WAIT)
- {
- printf("thread_signaler: ERROR waiter state = %d != COND_WAITING\n", waiter_state);
- signaler_state++;
- }
-
- if (data_available)
- {
- printf("thread_signaler: ERROR data already available, waiter_state=%d\n", waiter_state);
- signaler_already++;
- }
-
- /* Set data available and signal the waiter */
-
- data_available = 1;
- status = pthread_cond_signal(&cond);
- if (status != 0)
- {
- printf("thread_signaler: ERROR pthread_cond_signal failed, status=%d\n", status);
- signaler_nerrors++;
- }
-
- /* Release the mutex */
-
- status = pthread_mutex_unlock(&mutex);
- if (status != 0)
- {
- printf("thread_signaler: ERROR pthread_mutex_unlock failed, status=%d\n", status);
- signaler_nerrors++;
- }
-
- signaler_nloops++;
- }
-
- printf("thread_signaler: Terminating\n");
- pthread_exit(NULL);
- return NULL; /* Non-reachable -- needed for some compilers */
-}
-
-void cond_test(void)
-{
- pthread_t waiter;
- pthread_t signaler;
- pthread_attr_t attr;
-#ifdef SDCC
- pthread_addr_t result;
-#endif
- struct sched_param sparam;
- int prio_min;
- int prio_max;
- int prio_mid;
- int status;
-
- /* Initialize the mutex */
-
- printf("cond_test: Initializing mutex\n");
- status = pthread_mutex_init(&mutex, NULL);
- if (status != 0)
- {
- printf("cond_test: ERROR pthread_mutex_init failed, status=%d\n", status);
- }
-
- /* Initialize the condition variable */
-
- printf("cond_test: Initializing cond\n");
- status = pthread_cond_init(&cond, NULL);
- if (status != 0)
- {
- printf("cond_test: ERROR pthread_condinit failed, status=%d\n", status);
- }
-
- /* Start the waiter thread at higher priority */
-
- printf("cond_test: Starting waiter\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("cond_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- prio_min = sched_get_priority_min(SCHED_FIFO);
- prio_max = sched_get_priority_max(SCHED_FIFO);
- prio_mid = (prio_min + prio_max) / 2;
-
- sparam.sched_priority = prio_mid;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("cond_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("cond_test: Set thread 1 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&waiter, &attr, thread_waiter, NULL);
- if (status != 0)
- {
- printf("cond_test: pthread_create failed, status=%d\n", status);
- }
-
- printf("cond_test: Starting signaler\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("cond_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = (prio_min + prio_mid) / 2;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("cond_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("cond_test: Set thread 2 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&signaler, &attr, thread_signaler, NULL);
- if (status != 0)
- {
- printf("cond_test: pthread_create failed, status=%d\n", status);
- }
-
- /* Wait for the threads to stop */
-
-#ifdef SDCC
- pthread_join(signaler, &result);
-#else
- pthread_join(signaler, NULL);
-#endif
- printf("cond_test: signaler terminated, now cancel the waiter\n");
- pthread_detach(waiter);
- pthread_cancel(waiter);
-
- printf("cond_test: \tWaiter\tSignaler\n");
- printf("cond_test: Loops\t%d\t%d\n", waiter_nloops, signaler_nloops);
- printf("cond_test: Errors\t%d\t%d\n", waiter_nerrors, signaler_nerrors);
- printf("cond_test:\n");
- printf("cond_test: %d times, waiter did not have to wait for data\n", waiter_nloops - waiter_waits);
- printf("cond_test: %d times, data was already available when the signaler run\n", signaler_already);
- printf("cond_test: %d times, the waiter was in an unexpected state when the signaler ran\n", signaler_state);
-}
diff --git a/nuttx/examples/ostest/dev_null.c b/nuttx/examples/ostest/dev_null.c
deleted file mode 100644
index e8fc6cf3f..000000000
--- a/nuttx/examples/ostest/dev_null.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * examples/ostest/dev_null.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include "ostest.h"
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-#if CONFIG_NFILE_DESCRIPTORS > 0
-
-static FAR char buffer[1024];
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int dev_null(void)
-{
- int nbytes;
- int fd;
-
- fd = open("/dev/null", O_RDWR);
- if (fd < 0)
- {
- printf("dev_null: ERROR Failed to open /dev/null\n");
- return -1;
- }
-
- nbytes = read(fd, buffer, 1024);
- if (nbytes < 0)
- {
- printf("dev_null: ERROR Failed to read from /dev/null\n");
- close(fd);
- return -1;
- }
- printf("dev_null: Read %d bytes from /dev/null\n", nbytes);
-
- nbytes = write(fd, buffer, 1024);
- if (nbytes < 0)
- {
- printf("dev_null: ERROR Failed to write to /dev/null\n");
- close(fd);
- return -1;
- }
- printf("dev_null: Wrote %d bytes to /dev/null\n", nbytes);
-
- close(fd);
- return 0;
-}
-
-#endif /*CONFIG_NFILE_DESCRIPTORS */
diff --git a/nuttx/examples/ostest/main.c b/nuttx/examples/ostest/main.c
deleted file mode 100644
index 53be10764..000000000
--- a/nuttx/examples/ostest/main.c
+++ /dev/null
@@ -1,523 +0,0 @@
-/****************************************************************************
- * examples/ostest/main.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <sched.h>
-#include <nuttx/init.h>
-
-#include "ostest.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define PRIORITY 100
-#define NARGS 4
-#define HALF_SECOND_USEC 500000L
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char arg1[] = "Arg1";
-static const char arg2[] = "Arg2";
-static const char arg3[] = "Arg3";
-static const char arg4[] = "Arg4";
-
-#if CONFIG_NFILE_DESCRIPTORS > 0
-static const char write_data1[] = "stdio_test: write fd=1\n";
-static const char write_data2[] = "stdio_test: write fd=2\n";
-#endif
-
-#ifdef SDCC
-/* I am not yet certain why SDCC does not like the following
- * initializer. It involves some issues with 2- vs 3-byte
- * pointer types.
- */
-
-static const char *g_argv[NARGS+1];
-#else
-static const char *g_argv[NARGS+1] = { arg1, arg2, arg3, arg4, NULL };
-#endif
-
-#ifndef CONFIG_DISABLE_SIGNALS
-static struct mallinfo g_mmbefore;
-static struct mallinfo g_mmprevious;
-static struct mallinfo g_mmafter;
-#endif
-
-#ifndef CONFIG_DISABLE_ENVIRON
-const char g_var1_name[] = "Variable1";
-const char g_var1_value[] = "GoodValue1";
-const char g_var2_name[] = "Variable2";
-const char g_var2_value[] = "GoodValue2";
-const char g_var3_name[] = "Variable3";
-const char g_var3_value[] = "GoodValue3";
-
-const char g_bad_value1[] = "BadValue1";
-const char g_bad_value2[] = "BadValue2";
-
-const char g_putenv_value[] = "Variable1=BadValue3";
-
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: show_memory_usage
- ****************************************************************************/
-
-#ifndef CONFIG_DISABLE_SIGNALS
-static void show_memory_usage(struct mallinfo *mmbefore,
- struct mallinfo *mmafter)
-{
- printf("VARIABLE BEFORE AFTER\n");
- printf("======== ======== ========\n");
- printf("arena %8x %8x\n", mmbefore->arena, mmafter->arena);
- printf("ordblks %8d %8d\n", mmbefore->ordblks, mmafter->ordblks);
- printf("mxordblk %8x %8x\n", mmbefore->mxordblk, mmafter->mxordblk);
- printf("uordblks %8x %8x\n", mmbefore->uordblks, mmafter->uordblks);
- printf("fordblks %8x %8x\n", mmbefore->fordblks, mmafter->fordblks);
-}
-#else
-# define show_memory_usage(mm1, mm2)
-#endif
-
-/****************************************************************************
- * Name: check_test_memory_usage
- ****************************************************************************/
-
-#ifndef CONFIG_DISABLE_SIGNALS
-static void check_test_memory_usage(void)
-{
- /* Wait a little bit to let any threads terminate */
-
- usleep(HALF_SECOND_USEC);
-
- /* Get the current memory usage */
-
-#ifdef CONFIG_CAN_PASS_STRUCTS
- g_mmafter = mallinfo();
-#else
- (void)mallinfo(&g_mmafter);
-#endif
-
- /* Show the change from the previous time */
-
- printf("\nEnd of test memory usage:\n");
- show_memory_usage(&g_mmprevious, &g_mmafter);
-
- /* Set up for the next test */
-
-#ifdef CONFIG_CAN_PASS_STRUCTS
- g_mmprevious = g_mmafter;
-#else
- memcpy(&g_mmprevious, &g_mmafter, sizeof(struct mallinfo));
-#endif
-
- /* If so enabled, show the use of priority inheritance resources */
-
- dump_nfreeholders("user_main:");
-}
-#else
-# define check_test_memory_usage()
-#endif
-
-/****************************************************************************
- * Name: show_variable
- ****************************************************************************/
-
-#ifndef CONFIG_DISABLE_ENVIRON
-static void show_variable(const char *var_name, const char *exptd_value, bool var_valid)
-{
- char *actual_value = getenv(var_name);
- if (actual_value)
- {
- if (var_valid)
- {
- if (strcmp(actual_value, exptd_value) == 0)
- {
- printf("show_variable: Variable=%s has value=%s\n", var_name, exptd_value);
- }
- else
- {
- printf("show_variable: ERROR Variable=%s has the wrong value\n", var_name);
- printf("show_variable: found=%s expected=%s\n", actual_value, exptd_value);
- }
- }
- else
- {
- printf("show_variable: ERROR Variable=%s has a value when it should not\n", var_name);
- printf("show_variable: value=%s\n", actual_value);
- }
- }
- else if (var_valid)
- {
- printf("show_variable: ERROR Variable=%s has no value\n", var_name);
- printf("show_variable: Should have had value=%s\n", exptd_value);
- }
- else
- {
- printf("show_variable: Variable=%s has no value\n", var_name);
- }
-}
-
-static void show_environment(bool var1_valid, bool var2_valid, bool var3_valid)
-{
- show_variable(g_var1_name, g_var1_value, var1_valid);
- show_variable(g_var2_name, g_var2_value, var2_valid);
- show_variable(g_var3_name, g_var3_value, var3_valid);
-}
-#else
-# define show_environment()
-#endif
-
-/****************************************************************************
- * Name: user_main
- ****************************************************************************/
-
-static int user_main(int argc, char *argv[])
-{
- int i;
-
- /* Sample the memory usage now */
-
-#ifndef CONFIG_DISABLE_SIGNALS
- usleep(HALF_SECOND_USEC);
-
-#ifdef CONFIG_CAN_PASS_STRUCTS
- g_mmbefore = mallinfo();
- g_mmprevious = g_mmbefore;
-#else
- (void)mallinfo(&g_mmbefore);
- memcpy(&g_mmprevious, &g_mmbefore, sizeof(struct mallinfo));
-#endif
-#endif
-
- printf("\nuser_main: Begin argument test\n");
- printf("user_main: Started with argc=%d\n", argc);
-
- /* Verify passed arguments */
-
- if (argc != NARGS + 1)
- {
- printf("user_main: Error expected argc=%d got argc=%d\n",
- NARGS+1, argc);
- }
-
- for (i = 0; i <= NARGS; i++)
- {
- printf("user_main: argv[%d]=\"%s\"\n", i, argv[i]);
- }
-
- for (i = 1; i <= NARGS; i++)
- {
- if (strcmp(argv[i], g_argv[i-1]) != 0)
- {
- printf("user_main: ERROR argv[%d]: Expected \"%s\" found \"%s\"\n",
- i, g_argv[i-1], argv[i]);
- }
- }
- check_test_memory_usage();
-
- /* Check environment variables */
-#ifndef CONFIG_DISABLE_ENVIRON
- show_environment(true, true, true);
-
- unsetenv(g_var1_name);
- show_environment(false, true, true);
- check_test_memory_usage();
-
- clearenv();
- show_environment(false, false, false);
- check_test_memory_usage();
-#endif
-
- /* Top of test loop */
-
-#if CONFIG_EXAMPLES_OSTEST_LOOPS > 1
- for (i = 0; i < CONFIG_EXAMPLES_OSTEST_LOOPS; i++)
-#elif CONFIG_EXAMPLES_OSTEST_LOOPS == 0
- for (;;)
-#endif
- {
-#if CONFIG_NFILE_DESCRIPTORS > 0
- /* Checkout /dev/null */
-
- printf("\nuser_main: /dev/null test\n");
- dev_null();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_PTHREAD
- /* Verify pthreads and pthread mutex */
-
- printf("\nuser_main: mutex test\n");
- mutex_test();
- check_test_memory_usage();
-#endif
-
-#if !defined(CONFIG_DISABLE_PTHREAD) && defined(CONFIG_MUTEX_TYPES)
- /* Verify recursive mutexes */
-
- printf("\nuser_main: recursive mutex test\n");
- recursive_mutex_test();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_PTHREAD
- /* Verify pthread cancellation */
-
- printf("\nuser_main: cancel test\n");
- cancel_test();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_PTHREAD
- /* Verify pthreads and semaphores */
-
- printf("\nuser_main: semaphore test\n");
- sem_test();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_PTHREAD
- /* Verify pthreads and condition variables */
-
- printf("\nuser_main: condition variable test\n");
-#ifdef CONFIG_PRIORITY_INHERITANCE
- printf("\n Skipping, Test logic incompatible with priority inheritance\n");
-#else
- cond_test();
- check_test_memory_usage();
-#endif
-#endif
-
-#if !defined(CONFIG_DISABLE_SIGNALS) && !defined(CONFIG_DISABLE_PTHREAD) && !defined(CONFIG_DISABLE_CLOCK)
- /* Verify pthreads and condition variable timed waits */
-
- printf("\nuser_main: timed wait test\n");
- timedwait_test();
- check_test_memory_usage();
-#endif
-
-#if !defined(CONFIG_DISABLE_MQUEUE) && !defined(CONFIG_DISABLE_PTHREAD)
- /* Verify pthreads and message queues */
-
- printf("\nuser_main: message queue test\n");
- mqueue_test();
- check_test_memory_usage();
-#endif
-
-#if !defined(CONFIG_DISABLE_MQUEUE) && !defined(CONFIG_DISABLE_PTHREAD) && !defined(CONFIG_DISABLE_CLOCK)
- /* Verify pthreads and message queues */
-
- printf("\nuser_main: timed message queue test\n");
- timedmqueue_test();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_SIGNALS
- /* Verify signal handlers */
-
- printf("\nuser_main: signal handler test\n");
- sighand_test();
- check_test_memory_usage();
-#endif
-
-#if !defined(CONFIG_DISABLE_POSIX_TIMERS) && !defined(CONFIG_DISABLE_SIGNALS)
- /* Verify posix timers */
-
- printf("\nuser_main: POSIX timer test\n");
- timer_test();
- check_test_memory_usage();
-#endif
-
-#if !defined(CONFIG_DISABLE_PTHREAD) && CONFIG_RR_INTERVAL > 0
- /* Verify round robin scheduling */
-
- printf("\nuser_main: round-robin scheduler test\n");
- rr_test();
- check_test_memory_usage();
-#endif
-
-#ifndef CONFIG_DISABLE_PTHREAD
- /* Verify pthread barriers */
-
- printf("\nuser_main: barrier test\n");
- barrier_test();
- check_test_memory_usage();
-#endif
-
-#if defined(CONFIG_PRIORITY_INHERITANCE) && !defined(CONFIG_DISABLE_SIGNALS) && !defined(CONFIG_DISABLE_PTHREAD)
- /* Verify priority inheritance */
-
- printf("\nuser_main: priority inheritance test\n");
- priority_inheritance();
- check_test_memory_usage();
-#endif /* CONFIG_PRIORITY_INHERITANCE && !CONFIG_DISABLE_SIGNALS && !CONFIG_DISABLE_PTHREAD */
-
- /* Compare memory usage at time user_start started until
- * user_main exits. These should not be identical, but should
- * be similar enough that we can detect any serious OS memory
- * leaks.
- */
-
-#ifndef CONFIG_DISABLE_SIGNALS
- usleep(HALF_SECOND_USEC);
-
-#ifdef CONFIG_CAN_PASS_STRUCTS
- g_mmafter = mallinfo();
-#else
- (void)mallinfo(&g_mmafter);
-#endif
-
- printf("\nFinal memory usage:\n");
- show_memory_usage(&g_mmbefore, &g_mmafter);
-#endif
- }
- printf("user_main: Exitting\n");
- return 0;
-}
-
-/****************************************************************************
- * Name: stdio_test
- ****************************************************************************/
-
-static void stdio_test(void)
-{
- /* Verify that we can communicate */
-
-#if CONFIG_NFILE_DESCRIPTORS > 0
- write(1, write_data1, sizeof(write_data1)-1);
-#endif
- printf("stdio_test: Standard I/O Check: printf\n");
-
-#if CONFIG_NFILE_DESCRIPTORS > 1
- write(2, write_data2, sizeof(write_data2)-1);
-#endif
-#if CONFIG_NFILE_STREAMS > 0
- fprintf(stderr, "stdio_test: Standard I/O Check: fprintf to stderr\n");
-#endif
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
- /* stub */
-}
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- int result;
-
- /* Verify that stdio works first */
-
- stdio_test();
-
-#ifdef SDCC
- /* I am not yet certain why SDCC does not like the following initilizers.
- * It involves some issues with 2- vs 3-byte pointer types.
- */
-
- g_argv[0] = arg1;
- g_argv[1] = arg2;
- g_argv[2] = arg3;
- g_argv[3] = arg4;
- g_argv[4] = NULL;
-#endif
-
- /* Set up some environment variables */
-
-#ifndef CONFIG_DISABLE_ENVIRON
- printf("user_start: putenv(%s)\n", g_putenv_value);
- putenv(g_putenv_value); /* Varaible1=BadValue3 */
- printf("user_start: setenv(%s, %s, TRUE)\n", g_var1_name, g_var1_value);
- setenv(g_var1_name, g_var1_value, TRUE); /* Variable1=GoodValue1 */
-
- printf("user_start: setenv(%s, %s, FALSE)\n", g_var2_name, g_bad_value1);
- setenv(g_var2_name, g_bad_value1, FALSE); /* Variable2=BadValue1 */
- printf("user_start: setenv(%s, %s, TRUE)\n", g_var2_name, g_var2_value);
- setenv(g_var2_name, g_var2_value, TRUE); /* Variable2=GoodValue2 */
-
- printf("user_start: setenv(%s, %s, FALSE)\n", g_var3_name, g_var3_name);
- setenv(g_var3_name, g_var3_value, FALSE); /* Variable3=GoodValue3 */
- printf("user_start: setenv(%s, %s, FALSE)\n", g_var3_name, g_var3_name);
- setenv(g_var3_name, g_bad_value2, FALSE); /* Variable3=GoodValue3 */
- show_environment(true, true, true);
-#endif
-
- /* Verify that we can spawn a new task */
-
-#ifndef CONFIG_CUSTOM_STACK
- result = task_create("ostest", PRIORITY, STACKSIZE, user_main, g_argv);
-#else
- result = task_create("ostest", PRIORITY, user_main, g_argv);
-#endif
- if (result == ERROR)
- {
- printf("user_start: ERROR Failed to start user_main\n");
- }
- else
- {
- printf("user_start: Started user_main at PID=%d\n", result);
- }
-
- printf("user_start: Exitting\n");
- return 0;
-}
diff --git a/nuttx/examples/ostest/mqueue.c b/nuttx/examples/ostest/mqueue.c
deleted file mode 100644
index e68cfc012..000000000
--- a/nuttx/examples/ostest/mqueue.c
+++ /dev/null
@@ -1,394 +0,0 @@
-/**************************************************************************
- * mqueue.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <mqueue.h>
-#include <sched.h>
-#include <errno.h>
-
-#include "ostest.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-#define TEST_MESSAGE "This is a test and only a test"
-#if defined(SDCC) || defined(__ZILOG__)
- /* Cannot use strlen in array size */
-
-# define TEST_MSGLEN (31)
-#else
- /* Message lenght is the size of the message plus the null terminator */
-
-# define TEST_MSGLEN (strlen(TEST_MESSAGE)+1)
-#endif
-
-#define TEST_SEND_NMSGS (10)
-#ifndef CONFIG_DISABLE_SIGNALS
-# define TEST_RECEIVE_NMSGS (11)
-#else
-# define TEST_RECEIVE_NMSGS (10)
-#endif
-
-#define HALF_SECOND_USEC_USEC 500000L
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-static void *sender_thread(void *arg)
-{
- mqd_t mqfd;
- char msg_buffer[TEST_MSGLEN];
- struct mq_attr attr;
- int status = 0;
- int nerrors = 0;
- int i;
-
- printf("sender_thread: Starting\n");
-
- /* Fill in attributes for message queue */
-
- attr.mq_maxmsg = 20;
- attr.mq_msgsize = TEST_MSGLEN;
- attr.mq_flags = 0;
-
- /* Set the flags for the open of the queue.
- * Make it a blocking open on the queue, meaning it will block if
- * this process tries to send to the queue and the queue is full.
- *
- * O_CREAT - the queue will get created if it does not already exist.
- * O_WRONLY - we are only planning to write to the queue.
- *
- * Open the queue, and create it if the receiving process hasn't
- * already created it.
- */
-
- mqfd = mq_open("testmq", O_WRONLY|O_CREAT, 0666, &attr);
- if (mqfd < 0)
- {
- printf("sender_thread: ERROR mq_open failed\n");
- pthread_exit((pthread_addr_t)1);
- }
-
- /* Fill in a test message buffer to send */
-
- memcpy(msg_buffer, TEST_MESSAGE, TEST_MSGLEN);
-
- /* Perform the send TEST_SEND_NMSGS times */
-
- for (i = 0; i < TEST_SEND_NMSGS; i++)
- {
- status = mq_send(mqfd, msg_buffer, TEST_MSGLEN, 42);
- if (status < 0)
- {
- printf("sender_thread: ERROR mq_send failure=%d on msg %d\n", status, i);
- nerrors++;
- }
- else
- {
- printf("sender_thread: mq_send succeeded on msg %d\n", i);
- }
- }
-
- /* Close the queue and return success */
-
- if (mq_close(mqfd) < 0)
- {
- printf("sender_thread: ERROR mq_close failed\n");
- }
-
- printf("sender_thread: returning nerrors=%d\n", nerrors);
- return (pthread_addr_t)nerrors;
-}
-
-static void *receiver_thread(void *arg)
-{
- mqd_t mqfd;
- char msg_buffer[TEST_MSGLEN];
- struct mq_attr attr;
- int nbytes;
- int nerrors = 0;
- int i;
-
- printf("receiver_thread: Starting\n");
-
- /* Fill in attributes for message queue */
-
- attr.mq_maxmsg = 20;
- attr.mq_msgsize = TEST_MSGLEN;
- attr.mq_flags = 0;
-
- /* Set the flags for the open of the queue.
- * Make it a blocking open on the queue, meaning it will block if
- * this task tries to read from the queue when the queue is empty
- *
- * O_CREAT - the queue will get created if it does not already exist.
- * O_RDONLY - we are only planning to read from the queue.
- *
- * Open the queue, and create it if the sending process hasn't
- * already created it.
- */
-
- mqfd = mq_open("testmq", O_RDONLY|O_CREAT, 0666, &attr);
- if (mqfd < 0)
- {
- printf("receiver_thread: ERROR mq_open failed\n");
- pthread_exit((pthread_addr_t)1);
- }
-
- /* Perform the receive TEST_RECEIVE_NMSGS times */
-
- for (i = 0; i < TEST_RECEIVE_NMSGS; i++)
- {
- memset(msg_buffer, 0xaa, TEST_MSGLEN);
- nbytes = mq_receive(mqfd, msg_buffer, TEST_MSGLEN, 0);
- if (nbytes < 0)
- {
- /* mq_receive failed. If the error is because of EINTR then
- * it is not a failure.
- */
-
- if (*get_errno_ptr() != EINTR)
- {
- printf("receiver_thread: ERROR mq_receive failure on msg %d, errno=%d\n", i, *get_errno_ptr());
- nerrors++;
- }
- else
- {
- printf("receiver_thread: mq_receive interrupted!\n", i);
- }
- }
- else if (nbytes != TEST_MSGLEN)
- {
- printf("receiver_thread: mq_receive return bad size %d on msg %d\n", nbytes, i);
- nerrors++;
- }
- else if (memcmp(TEST_MESSAGE, msg_buffer, nbytes) != 0)
- {
- int j;
-
- printf("receiver_thread: mq_receive returned corrupt message on msg %d\n", i);
- printf("receiver_thread: i Expected Received\n");
-
- for (j = 0; j < TEST_MSGLEN-1; j++)
- {
- if (isprint(msg_buffer[j]))
- {
- printf("receiver_thread: %2d %02x (%c) %02x (%c)\n",
- j, TEST_MESSAGE[j], TEST_MESSAGE[j], msg_buffer[j], msg_buffer[j]);
- }
- else
- {
- printf("receiver_thread: %2d %02x (%c) %02x\n",
- j, TEST_MESSAGE[j], TEST_MESSAGE[j], msg_buffer[j]);
- }
- }
- printf("receiver_thread: %2d 00 %02x\n",
- j, msg_buffer[j]);
- }
- else
- {
- printf("receiver_thread: mq_receive succeeded on msg %d\n", i);
- }
- }
-
- /* Close the queue and return success */
-
- if (mq_close(mqfd) < 0)
- {
- printf("receiver_thread: ERROR mq_close failed\n");
- nerrors++;
- }
-
- /* Destroy the queue */
-
- if (mq_unlink("testmq") < 0)
- {
- printf("receiver_thread: ERROR mq_close failed\n");
- nerrors++;
- }
-
- printf("receiver_thread: returning nerrors=%d\n", nerrors);
- pthread_exit((pthread_addr_t)nerrors);
- return (pthread_addr_t)nerrors;
-}
-
-void mqueue_test(void)
-{
- pthread_t sender;
- pthread_t receiver;
- void *result;
- pthread_attr_t attr;
- struct sched_param sparam;
- int prio_min;
- int prio_max;
- int prio_mid;
- int status;
-
- /* Start the sending thread at higher priority */
-
- printf("mqueue_test: Starting receiver\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("mqueue_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- status = pthread_attr_setstacksize(&attr, STACKSIZE);
- if (status != 0)
- {
- printf("mqueue_test: pthread_attr_setstacksize failed, status=%d\n", status);
- }
-
- prio_min = sched_get_priority_min(SCHED_FIFO);
- prio_max = sched_get_priority_max(SCHED_FIFO);
- prio_mid = (prio_min + prio_max) / 2;
-
- sparam.sched_priority = prio_mid;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("mqueue_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("mqueue_test: Set receiver priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&receiver, &attr, receiver_thread, NULL);
- if (status != 0)
- {
- printf("mqueue_test: pthread_create failed, status=%d\n", status);
- }
-
- /* Start the sending thread at lower priority */
-
- printf("mqueue_test: Starting sender\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("mqueue_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- status = pthread_attr_setstacksize(&attr, STACKSIZE);
- if (status != 0)
- {
- printf("mqueue_test: pthread_attr_setstacksize failed, status=%d\n", status);
- }
-
- sparam.sched_priority = (prio_min + prio_mid) / 2;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("mqueue_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("mqueue_test: Set sender thread priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&sender, &attr, sender_thread, NULL);
- if (status != 0)
- {
- printf("mqueue_test: pthread_create failed, status=%d\n", status);
- }
-
- printf("mqueue_test: Waiting for sender to complete\n");
- pthread_join(sender, &result);
- if (result != (void*)0)
- {
- printf("mqueue_test: ERROR sender thread exited with %d errors\n", (int)result);
- }
-
-#ifndef CONFIG_DISABLE_SIGNALS
- /* Wake up the receiver thread with a signal */
-
- printf("mqueue_test: Killing receiver\n");
- pthread_kill(receiver, 9);
-
- /* Wait a bit to see if the thread exits on its own */
-
- usleep(HALF_SECOND_USEC_USEC);
-#endif
-
- /* Then cancel the thread and see if it did */
-
- printf("mqueue_test: Canceling receiver\n");
- status = pthread_cancel(receiver);
- if (status == ESRCH)
- {
- printf("mqueue_test: receiver has already terminated\n");
- }
-
- pthread_join(receiver, &result);
- if (result != (void*)0)
- {
- printf("mqueue_test: ERROR receiver thread exited with %d errors\n", (int)result);
- }
-}
-
-
diff --git a/nuttx/examples/ostest/mutex.c b/nuttx/examples/ostest/mutex.c
deleted file mode 100644
index 752f833f2..000000000
--- a/nuttx/examples/ostest/mutex.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/***********************************************************************
- * mutex.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <pthread.h>
-#include "ostest.h"
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-#define NLOOPS 32
-
-static pthread_mutex_t mut;
-static volatile int my_mutex = 0;
-static unsigned long nloops[2] = {0, 0};
-static unsigned long nerrors[2] = {0, 0};
-
-static void *thread_func(void *parameter)
-{
- int id = (int)parameter;
- int ndx = id - 1;
- int i;
-
- for (nloops[ndx] = 0; nloops[ndx] < NLOOPS; nloops[ndx]++)
- {
- int status = pthread_mutex_lock(&mut);
- if (status != 0)
- {
- printf("ERROR thread %d: pthread_mutex_lock failed, status=%d\n",
- id, status);
- }
-
- if (my_mutex == 1)
- {
- printf("ERROR thread=%d: "
- "my_mutex should be zero, instead my_mutex=%d\n",
- id, my_mutex);
- nerrors[ndx]++;
- }
-
- my_mutex = 1;
- for (i = 0; i < 10; i++)
- {
- pthread_yield();
- }
- my_mutex = 0;
-
- status = pthread_mutex_unlock(&mut);
- if (status != 0)
- {
- printf("ERROR thread %d: pthread_mutex_unlock failed, status=%d\n",
- id, status);
- }
- }
- pthread_exit(NULL);
- return NULL; /* Non-reachable -- needed for some compilers */
-}
-
-void mutex_test(void)
-{
- pthread_t thread1, thread2;
-#ifdef SDCC
- pthread_addr_t result1, result2;
- pthread_attr_t attr;
-#endif
- int status;
-
- /* Initialize the mutex */
-
- printf("Initializing mutex\n");
- pthread_mutex_init(&mut, NULL);
-
- /* Start two thread instances */
-
- printf("Starting thread 1\n");
-#ifdef SDCC
- (void)pthread_attr_init(&attr);
- status = pthread_create(&thread1, &attr, thread_func, (pthread_addr_t)1);
-#else
- status = pthread_create(&thread1, NULL, thread_func, (pthread_addr_t)1);
-#endif
- if (status != 0)
- {
- printf("Error in thread#1 creation\n");
- }
-
- printf("Starting thread 2\n");
-#ifdef SDCC
- status = pthread_create(&thread2, &attr, thread_func, (pthread_addr_t)2);
-#else
- status = pthread_create(&thread2, NULL, thread_func, (pthread_addr_t)2);
-#endif
- if (status != 0)
- {
- printf("Error in thread#2 creation\n");
- }
-
-#ifdef SDCC
- pthread_join(thread1, &result1);
- pthread_join(thread2, &result2);
-#else
- pthread_join(thread1, NULL);
- pthread_join(thread2, NULL);
-#endif
-
- printf("\t\tThread1\tThread2\n");
- printf("\tLoops\t%ld\t%ld\n", nloops[0], nloops[1]);
- printf("\tErrors\t%ld\t%ld\n", nerrors[0], nerrors[1]);
-}
diff --git a/nuttx/examples/ostest/ostest.h b/nuttx/examples/ostest/ostest.h
deleted file mode 100644
index 1cd705898..000000000
--- a/nuttx/examples/ostest/ostest.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
- * examples/ostest/ostest.h
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __OSTEST_H
-#define __OSTEST_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* The task_create task size can be specified in the defconfig file */
-
-#ifdef CONFIG_EXAMPLES_OSTEST_STACKSIZE
-# define STACKSIZE CONFIG_EXAMPLES_OSTEST_STACKSIZE
-#else
-# define STACKSIZE 8192
-#endif
-
-/* The number of times to execute the test can be specified in the defconfig
- * file.
- */
-
-#ifndef CONFIG_EXAMPLES_OSTEST_LOOPS
-# define CONFIG_EXAMPLES_OSTEST_LOOPS 1
-#endif
-
-/* This is the number of threads that are created in the barrier test.
- * A smaller number should be selected on systems without sufficient memory
- * to start so many threads.
- */
-
-#ifndef CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS
-# define CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS 8
-#endif
-
-/* Priority inheritance */
-
-#if defined(CONFIG_DEBUG) && defined(CONFIG_PRIORITY_INHERITANCE) && defined(CONFIG_SEM_PHDEBUG)
-# define dump_nfreeholders(s) printf(s " nfreeholders: %d\n", sem_nfreeholders())
-#else
-# define dump_nfreeholders(s)
-#endif
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Variables
- ****************************************************************************/
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-/* dev_null.c ***************************************************************/
-
-extern int dev_null(void);
-
-/* mutex.c ******************************************************************/
-
-extern void mutex_test(void);
-
-/* rmutex.c ******************************************************************/
-
-extern void recursive_mutex_test(void);
-
-/* sem.c ********************************************************************/
-
-extern void sem_test(void);
-
-/* cond.c *******************************************************************/
-
-extern void cond_test(void);
-
-/* mqueue.c *****************************************************************/
-
-extern void mqueue_test(void);
-
-/* timedmqueue.c ************************************************************/
-
-extern void timedmqueue_test(void);
-
-/* cancel.c *****************************************************************/
-
-extern void cancel_test(void);
-
-/* timedwait.c **************************************************************/
-
-extern void timedwait_test(void);
-
-/* sighand.c ****************************************************************/
-
-extern void sighand_test(void);
-
-/* posixtimers.c ************************************************************/
-
-extern void timer_test(void);
-
-/* roundrobin.c *************************************************************/
-
-extern void rr_test(void);
-
-/* barrier.c ****************************************************************/
-
-extern void barrier_test(void);
-
-/* prioinherit.c ************************************************************/
-
-extern void priority_inheritance(void);
-
-/* APIs exported (conditionally) by the OS specifically for testing of
- * priority inheritance
- */
-
-#if defined(CONFIG_DEBUG) && defined(CONFIG_PRIORITY_INHERITANCE) && defined(CONFIG_SEM_PHDEBUG)
-extern void sem_enumholders(FAR sem_t *sem);
-extern int sem_nfreeholders(void);
-#else
-# define sem_enumholders(sem)
-# define sem_nfreeholders()
-#endif
-
-#endif /* __OSTEST_H */
diff --git a/nuttx/examples/ostest/posixtimer.c b/nuttx/examples/ostest/posixtimer.c
deleted file mode 100644
index 457b4c1a2..000000000
--- a/nuttx/examples/ostest/posixtimer.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/***********************************************************************
- * examples/ostest/posixtimer.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <sched.h>
-#include <errno.h>
-#include "ostest.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-#define MY_TIMER_SIGNAL 17
-#define SIGVALUE_INT 42
-
-#if CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0
-# define FFLUSH() fflush(stdout)
-#else
-# define FFLUSH()
-#endif
-
-/**************************************************************************
- * Private Data
- **************************************************************************/
-
-static sem_t sem;
-static int g_nsigreceived = 0;
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-static void timer_expiration(int signo, siginfo_t *info, void *ucontext)
-{
- sigset_t oldset;
- sigset_t allsigs;
- int status;
-
- printf("timer_expiration: Received signal %d\n" , signo);
-
- g_nsigreceived++;
-
- /* Check signo */
-
- if (signo != MY_TIMER_SIGNAL)
- {
- printf("timer_expiration: ERROR expected signo=%d\n" , MY_TIMER_SIGNAL);
- }
-
- /* Check siginfo */
-
- if (info->si_value.sival_int != SIGVALUE_INT)
- {
- printf("timer_expiration: ERROR sival_int=%d expected %d\n",
- info->si_value.sival_int, SIGVALUE_INT);
- }
- else
- {
- printf("timer_expiration: sival_int=%d\n" , info->si_value.sival_int);
- }
-
- if (info->si_signo != MY_TIMER_SIGNAL)
- {
- printf("timer_expiration: ERROR expected si_signo=%d, got=%d\n",
- MY_TIMER_SIGNAL, info->si_signo);
- }
-
- if (info->si_code == SI_TIMER)
- {
- printf("timer_expiration: si_code=%d (SI_TIMER)\n" , info->si_code);
- }
- else
- {
- printf("timer_expiration: ERROR si_code=%d, expected SI_TIMER=%d\n",
- info->si_code, SI_TIMER);
- }
-
- /* Check ucontext_t */
-
- printf("timer_expiration: ucontext=%p\n" , ucontext);
-
- /* Check sigprocmask */
-
- (void)sigfillset(&allsigs);
- status = sigprocmask(SIG_SETMASK, NULL, &oldset);
- if (status != OK)
- {
- printf("timer_expiration: ERROR sigprocmask failed, status=%d\n",
- status);
- }
-
- if (oldset != allsigs)
- {
- printf("timer_expiration: ERROR sigprocmask=%x expected=%x\n",
- oldset, allsigs);
- }
-
-}
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-void timer_test(void)
-{
- sigset_t sigset;
- struct sigaction act;
- struct sigaction oact;
- struct sigevent notify;
- struct itimerspec timer;
- timer_t timerid;
- int status;
- int i;
-
- printf("timer_test: Initializing semaphore to 0\n" );
- sem_init(&sem, 0, 0);
-
- /* Start waiter thread */
-
- printf("timer_test: Unmasking signal %d\n" , MY_TIMER_SIGNAL);
-
- (void)sigemptyset(&sigset);
- (void)sigaddset(&sigset, MY_TIMER_SIGNAL);
- status = sigprocmask(SIG_UNBLOCK, &sigset, NULL);
- if (status != OK)
- {
- printf("timer_test: ERROR sigprocmask failed, status=%d\n",
- status);
- }
-
- printf("timer_test: Registering signal handler\n" );
- act.sa_sigaction = timer_expiration;
- act.sa_flags = SA_SIGINFO;
-
- (void)sigfillset(&act.sa_mask);
- (void)sigdelset(&act.sa_mask, MY_TIMER_SIGNAL);
-
- status = sigaction(MY_TIMER_SIGNAL, &act, &oact);
- if (status != OK)
- {
- printf("timer_test: ERROR sigaction failed, status=%d\n" , status);
- }
-
-#ifndef SDCC
- printf("timer_test: oact.sigaction=%p oact.sa_flags=%x oact.sa_mask=%x\n",
- oact.sa_sigaction, oact.sa_flags, oact.sa_mask);
-#endif
-
- /* Create the POSIX timer */
-
- printf("timer_test: Creating timer\n" );
-
- notify.sigev_notify = SIGEV_SIGNAL;
- notify.sigev_signo = MY_TIMER_SIGNAL;
- notify.sigev_value.sival_int = SIGVALUE_INT;
-
- status = timer_create(CLOCK_REALTIME, &notify, &timerid);
- if (status != OK)
- {
- printf("timer_test: timer_create failed, errno=%d\n", errno);
- goto errorout;
- }
-
- /* Start the POSIX timer */
-
- printf("timer_test: Starting timer\n" );
-
- timer.it_value.tv_sec = 2;
- timer.it_value.tv_nsec = 0;
- timer.it_interval.tv_sec = 2;
- timer.it_interval.tv_nsec = 0;
-
- status = timer_settime(timerid, 0, &timer, NULL);
- if (status != OK)
- {
- printf("timer_test: timer_settime failed, errno=%d\n", errno);
- goto errorout;
- }
-
- /* Take the semaphore */
-
- for (i = 0; i < 5; i++)
- {
- printf("timer_test: Waiting on semaphore\n" );
- FFLUSH();
- status = sem_wait(&sem);
- if (status != 0)
- {
- int error = errno;
- if (error == EINTR)
- {
- printf("timer_test: sem_wait() successfully interrupted by signal\n" );
- }
- else
- {
- printf("timer_test: ERROR sem_wait failed, errno=%d\n" , error);
- }
- }
- else
- {
- printf("timer_test: ERROR awakened with no error!\n" );
- }
- printf("timer_test: g_nsigreceived=%d\n", g_nsigreceived);
- }
-
-errorout:
- sem_destroy(&sem);
-
- /* Then delete the timer */
-
- printf("timer_test: Deleting timer\n" );
- status = timer_delete(timerid);
- if (status != OK)
- {
- printf("timer_test: timer_create failed, errno=%d\n", errno);
- }
-
- /* Detach the signal handler */
-
- act.sa_sigaction = SIG_DFL;
- status = sigaction(MY_TIMER_SIGNAL, &act, &oact);
-
- printf("timer_test: done\n" );
- FFLUSH();
-}
diff --git a/nuttx/examples/ostest/prioinherit.c b/nuttx/examples/ostest/prioinherit.c
deleted file mode 100644
index 5d59c1297..000000000
--- a/nuttx/examples/ostest/prioinherit.c
+++ /dev/null
@@ -1,541 +0,0 @@
-/****************************************************************************
- * examples/ostest/prioinherit.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <pthread.h>
-#include <errno.h>
-
-#ifdef CONFIG_ARCH_SIM
-# include <nuttx/arch.h>
-#endif
-
-#include "ostest.h"
-
-#if defined(CONFIG_PRIORITY_INHERITANCE) && !defined(CONFIG_DISABLE_SIGNALS) && !defined(CONFIG_DISABLE_PTHREAD)
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifndef CONFIG_SEM_PREALLOCHOLDERS
-# define CONFIG_SEM_PREALLOCHOLDERS 0
-#endif
-#define NLOWPRI_THREADS (CONFIG_SEM_PREALLOCHOLDERS+1)
-
-#ifndef CONFIG_SEM_NNESTPRIO
-# define CONFIG_SEM_NNESTPRIO 0
-#endif
-#define NHIGHPRI_THREADS (CONFIG_SEM_NNESTPRIO+1)
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-enum thstate_e
-{
- NOTSTARTED = 0,
- RUNNING,
- WAITING,
- DONE
-};
-
-static sem_t g_sem;
-static volatile enum thstate_e g_middlestate;
-static volatile enum thstate_e g_highstate[NHIGHPRI_THREADS];
-static volatile enum thstate_e g_lowstate[NLOWPRI_THREADS];
-static int g_highpri;
-static int g_medpri;
-static int g_lowpri;
-
-/****************************************************************************
- * Name: nhighpri_waiting
- ****************************************************************************/
-
-static int nhighpri_waiting(void)
-{
- int n = 0;
- int i;
-
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- if (g_highstate[i] == WAITING)
- {
- n++;
- }
- }
- return n;
-}
-
-/****************************************************************************
- * Name: nhighpri_running
- ****************************************************************************/
-
-static int nhighpri_running(void)
-{
- int n = 0;
- int i;
-
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- if (g_highstate[i] != DONE)
- {
- n++;
- }
- }
- return n;
-}
-
-/****************************************************************************
- * Name: highpri_thread
- ****************************************************************************/
-
-static void *highpri_thread(void *parameter)
-{
- int threadno = (int)parameter;
- int ret;
-
- g_highstate[threadno-1] = RUNNING;
-
- printf("highpri_thread-%d: Started\n", threadno);
- fflush(stdout);
- sleep(1);
-
- printf("highpri_thread-%d: Calling sem_wait()\n", threadno);
- g_highstate[threadno-1] = WAITING;
- ret = sem_wait(&g_sem);
- g_highstate[threadno-1] = DONE;
-
- if (ret != 0)
- {
- printf("highpri_thread-%d: sem_take failed: %d\n", threadno, ret);
- }
- else if (g_middlestate == RUNNING)
- {
- printf("highpri_thread-%d: SUCCESS midpri_thread is still running!\n", threadno);
- }
- else
- {
- printf("highpri_thread-%d: ERROR -- midpri_thread has already exited!\n", threadno);
- }
-
- sem_post(&g_sem);
- printf("highpri_thread-%d: Okay... I'm done!\n", threadno);
- fflush(stdout);
- return NULL;
-}
-
-/****************************************************************************
- * Name: hog_cpu
- ****************************************************************************/
-
-static inline void hog_cpu(void)
-{
-#ifdef CONFIG_ARCH_SIM
- /* The simulator doesn't have any mechanism to do asynchronous pre-emption
- * (basically because it doesn't have any interupts/asynchronous events).
- * The simulator does "fake" a timer interrupt in up_idle() -- the idle
- * thread that only executes when nothing else is running. In the simulator,
- * we cannot suspend the middle priority task, or we wouldn't have the
- * test that we want. So, we have no option but to pump the fake clock
- * here by calling up_idle(). Sigh!
- */
-
- up_idle();
-#else
- /* On real platforms with a real timer interrupt, we really can hog the
- * CPU. When the sleep() goes off in priority_inheritance(), it will
- * wake up and start the high priority thread.
- */
-
- volatile int i;
- for (i = 0; i < INT_MAX; i++);
-#endif
-}
-
-/****************************************************************************
- * Name: medpri_thread
- ****************************************************************************/
-
-static void *medpri_thread(void *parameter)
-{
- printf("medpri_thread: Started ... I won't let go of the CPU!\n");
- g_middlestate = RUNNING;
- fflush(stdout);
-
- /* The following loop will completely block lowpri_thread from running.
- * UNLESS priority inheritance is working. In that case, its priority
- * will be boosted.
- */
-
- while (nhighpri_running() > 0)
- {
- hog_cpu();
- }
-
- printf("medpri_thread: Okay... I'm done!\n");
- fflush(stdout);
- g_middlestate = DONE;
- return NULL;
-}
-
-/****************************************************************************
- * Name: lowpri_thread
- ****************************************************************************/
-
-static void *lowpri_thread(void *parameter)
-{
- void *retval = (void*)-1;
- struct sched_param sparam;
- int threadno = (int)parameter;
- int expected;
- int count;
- int policy;
- int ret;
- int nwaiting;
- int i;
-
- g_lowstate[threadno-1] = RUNNING;
- printf("lowpri_thread-%d: Started\n", threadno);
-
- ret = pthread_getschedparam(pthread_self(), &policy, &sparam);
- if (ret != 0)
- {
- printf("lowpri_thread-%d: ERROR pthread_getschedparam failed: %d\n", threadno, ret);
- }
- else
- {
- printf("lowpri_thread-%d: initial priority: %d\n", threadno, sparam.sched_priority);
- if (sparam.sched_priority != g_lowpri)
- {
- printf(" ERROR should have been %d\n", g_lowpri);
- }
- }
-
- g_lowstate[threadno-1] = WAITING;
- ret = sem_wait(&g_sem);
- if (ret != 0)
- {
- printf("lowpri_thread-%d: sem_take failed: %d\n", threadno, ret);
- }
- else
- {
- /* Hang on to the thread until the middle priority thread runs */
-
- while (g_middlestate == NOTSTARTED && nhighpri_waiting() < NHIGHPRI_THREADS)
- {
- printf("lowpri_thread-%d: Waiting for the midle pri task to run\n", threadno);
- printf(" g_middlestate: %d\n", (int)g_middlestate);
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- printf(" g_highstate[%d]: %d\n", i, (int)g_highstate[i]);
- }
- printf(" I still have a count on the semaphore\n");
- sem_enumholders(&g_sem);
- fflush(stdout);
- sleep(1);
- }
-
- /* Account for all of the semaphore counts. At any given time if there are 'n'
- * running hight prioity tasks, then the semaphore count should be '-n'
- */
-
- sched_lock(); /* Needs to be atomic */
- ret = sem_getvalue(&g_sem, &count);
- nwaiting = nhighpri_waiting();
- sched_unlock();
-
- if (ret < 0)
- {
- printf("lowpri_thread-%d: ERROR sem_getvalue failed: %d\n", threadno, errno);
- }
- printf("lowpri_thread-%d: Sem count: %d, No. highpri thread: %d\n", threadno, count, nwaiting);
-
- /* The middle priority task is running, let go of the semaphore */
-
- if (g_middlestate == RUNNING && nwaiting == -count)
- {
- /* Good.. the middle priority task is still running and the counts are okay. */
-
- retval = NULL;
- }
- else
- {
- /* If the sem count is positive, then there all of the higher priority threads
- * should have already completed.
- */
-
- printf("lowpri_thread-%d: %s the middle priority task has already exitted!\n",
- threadno, count >= 0 ? "SUCCESS" : "ERROR" );
- printf(" g_middlestate: %d sem count=%d\n", (int)g_middlestate, count);
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- printf(" g_highstate[%d]: %d\n", i, (int)g_highstate[i]);
- }
- }
- }
-
- ret = pthread_getschedparam(pthread_self(), &policy, &sparam);
- sem_enumholders(&g_sem);
- sem_post(&g_sem);
- if (ret != 0)
- {
- printf("lowpri_thread-%d: ERROR pthread_getschedparam failed: %d\n", threadno, ret);
- }
- else
- {
- if (nwaiting > 0)
- {
- expected = g_highpri;
- }
- else
- {
- expected = g_lowpri;
- }
-
- printf("lowpri_thread-%d: %s priority before sem_post: %d\n",
- threadno,
- sparam.sched_priority != expected ? "ERROR" : "SUCCESS",
- sparam.sched_priority);
-
- if (sparam.sched_priority != expected)
- {
- printf(" ERROR should have been %d\n", expected);
- }
- }
-
- ret = pthread_getschedparam(pthread_self(), &policy, &sparam);
- if (ret != 0)
- {
- printf("lowpri_thread-%d: ERROR pthread_getschedparam failed: %d\n", threadno, ret);
- }
- else
- {
- printf("lowpri_thread-%d: %s final priority: %d\n",
- threadno,
- sparam.sched_priority != g_lowpri ? "ERROR" : "SUCCESS",
- sparam.sched_priority);
-
- if (sparam.sched_priority != g_lowpri)
- {
- printf(" ERROR should have been %d\n", g_lowpri);
- }
- }
- sem_enumholders(&g_sem);
-
- printf("lowpri_thread-%d: Okay... I'm done!\n", threadno);
- fflush(stdout);
- g_lowstate[threadno-1] = DONE;
- return retval;
-}
-#endif /* CONFIG_PRIORITY_INHERITANCE && !CONFIG_DISABLE_SIGNALS && !CONFIG_DISABLE_PTHREAD */
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: priority_inheritance
- ****************************************************************************/
-
-void priority_inheritance(void)
-{
-#if defined(CONFIG_PRIORITY_INHERITANCE) && !defined(CONFIG_DISABLE_SIGNALS) && !defined(CONFIG_DISABLE_PTHREAD)
- pthread_t lowpri[NLOWPRI_THREADS];
- pthread_t medpri;
- pthread_t highpri[NHIGHPRI_THREADS];
- pthread_addr_t result;
- pthread_attr_t attr;
- struct sched_param sparam;
- int my_pri;
- int status;
- int i;
-
- printf("priority_inheritance: Started\n");
-
- g_middlestate = NOTSTARTED;
- for (i = 0; i < NHIGHPRI_THREADS; i++) g_highstate[i] = NOTSTARTED;
- for (i = 0; i < NLOWPRI_THREADS; i++) g_lowstate[i] = NOTSTARTED;
-
- status = sched_getparam (getpid(), &sparam);
- if (status != 0)
- {
- printf("priority_inheritance: sched_getparam failed\n");
- sparam.sched_priority = PTHREAD_DEFAULT_PRIORITY;
- }
- my_pri = sparam.sched_priority;
-
- g_highpri = sched_get_priority_max(SCHED_FIFO);
- g_lowpri = sched_get_priority_min(SCHED_FIFO);
- g_medpri = my_pri - 1;
-
- sem_init(&g_sem, 0, NLOWPRI_THREADS);
- dump_nfreeholders("priority_inheritance:");
-
- /* Start the low priority threads */
-
- for (i = 0; i < NLOWPRI_THREADS; i++)
- {
- int threadno = i+1;
- printf("priority_inheritance: Starting lowpri_thread-%d (of %d) at %d\n",
- threadno, NLOWPRI_THREADS, g_lowpri);
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_attr_init failed, status=%d\n", status);
- }
- sparam.sched_priority = g_lowpri;
- status = pthread_attr_setschedparam(&attr,& sparam);
- if (status != OK)
- {
- printf("priority_inheritance: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("priority_inheritance: Set lowpri_thread-%d priority to %d\n",
- threadno, sparam.sched_priority);
- }
-
- status = pthread_create(&lowpri[i], &attr, lowpri_thread, (void*)threadno);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_create failed, status=%d\n", status);
- }
- }
- printf("priority_inheritance: Waiting...\n");
- sleep(2);
- dump_nfreeholders("priority_inheritance:");
-
- /* Start the medium priority thread */
-
- printf("priority_inheritance: Starting medpri_thread at %d\n", g_medpri);
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = g_medpri;
- status = pthread_attr_setschedparam(&attr,& sparam);
- if (status != OK)
- {
- printf("priority_inheritance: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("priority_inheritance: Set medpri_thread priority to %d\n", sparam.sched_priority);
- }
- fflush(stdout);
-
- status = pthread_create(&medpri, &attr, medpri_thread, NULL);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_create failed, status=%d\n", status);
- }
- printf("priority_inheritance: Waiting...\n");
- sleep(1);
- dump_nfreeholders("priority_inheritance:");
-
- /* Start the high priority threads */
-
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- int threadno = i+1;
- printf("priority_inheritance: Starting highpri_thread-%d (of %d) at %d\n",
- threadno, NHIGHPRI_THREADS, g_highpri);
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = g_highpri - i;
- status = pthread_attr_setschedparam(&attr,& sparam);
- if (status != OK)
- {
- printf("priority_inheritance: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("priority_inheritance: Set highpri_thread-%d priority to %d\n",
- threadno, sparam.sched_priority);
- }
- fflush(stdout);
-
- status = pthread_create(&highpri[i], &attr, highpri_thread, (void*)threadno);
- if (status != 0)
- {
- printf("priority_inheritance: pthread_create failed, status=%d\n", status);
- }
- }
- dump_nfreeholders("priority_inheritance:");
- fflush(stdout);
-
- /* Wait for all thread instances to complete */
-
- for (i = 0; i < NHIGHPRI_THREADS; i++)
- {
- printf("priority_inheritance: Waiting for highpri_thread-%d to complete\n", i+1);
- fflush(stdout);
- (void)pthread_join(highpri[i], &result);
- dump_nfreeholders("priority_inheritance:");
- }
- printf("priority_inheritance: Waiting for medpri_thread to complete\n");
- fflush(stdout);
- (void)pthread_join(medpri, &result);
- dump_nfreeholders("priority_inheritance:");
- for (i = 0; i < NLOWPRI_THREADS; i++)
- {
- printf("priority_inheritance: Waiting for lowpri_thread-%d to complete\n", i+1);
- fflush(stdout);
- (void)pthread_join(lowpri[i], &result);
- dump_nfreeholders("priority_inheritance:");
- }
-
- printf("priority_inheritance: Finished\n");
- sem_destroy(&g_sem);
- dump_nfreeholders("priority_inheritance:");
- fflush(stdout);
-#endif /* CONFIG_PRIORITY_INHERITANCE && !CONFIG_DISABLE_SIGNALS && !CONFIG_DISABLE_PTHREAD */
-}
diff --git a/nuttx/examples/ostest/rmutex.c b/nuttx/examples/ostest/rmutex.c
deleted file mode 100644
index 44eb4bb3b..000000000
--- a/nuttx/examples/ostest/rmutex.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/***********************************************************************
- * rmutex.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <pthread.h>
-#include "ostest.h"
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-#define NTHREADS 3
-#define NLOOPS 3
-#define NRECURSIONS 3
-
-static pthread_mutex_t mut;
-
-static void thread_inner(int id, int level)
-{
- int status;
- if (level < NRECURSIONS)
- {
- /* Take the mutex */
-
- printf("thread_inner[%d, %d]: Locking\n", id, level);
- status = pthread_mutex_lock(&mut);
- if (status != 0)
- {
- printf("thread_inner[%d, %d]: ERROR pthread_mutex_lock failed: %d\n",
- id, level, status);
- }
- printf("thread_inner[%d, %d]: Locked\n", id, level);
-
- /* Give the other threads a chance */
-
- pthread_yield();
- thread_inner(id, level+1);
- pthread_yield();
-
- /* Unlock the mutex */
-
- printf("thread_inner[%d, %d]: Unlocking\n", id, level);
- status = pthread_mutex_unlock(&mut);
- if (status != 0)
- {
- printf("thread_inner[%d, %d]: ERROR pthread_mutex_unlock failed: %d\n",
- id, level, status);
- }
- printf("thread_inner[%d, %d]: Unlocked\n", id, level);
- pthread_yield();
- }
-}
-
-static void *thread_outer(void *parameter)
-{
- int i;
- printf("thread_outer[%d]: Started\n", (int)parameter);
- for (i = 0; i < NLOOPS; i++)
- {
- printf("thread_outer[%d]: Loop %d\n", (int)parameter, i);
- thread_inner((int)parameter, 0);
- }
- printf("thread_outer[%d]: Exitting\n", (int)parameter);
- pthread_exit(NULL);
- return NULL; /* Non-reachable -- needed for some compilers */
-}
-
-void recursive_mutex_test(void)
-{
- pthread_t thread[NTHREADS];
-#ifdef SDCC
- pthread_addr_t result[NTHREADS];
- pthread_attr_t attr;
-#endif
- pthread_mutexattr_t mattr;
- int type;
- int status;
- int i;
-
- /* Initialize the mutex attributes */
-
- pthread_mutexattr_init(&mattr);
- status = pthread_mutexattr_settype(&mattr, PTHREAD_MUTEX_RECURSIVE);
- if (status != 0)
- {
- printf("recursive_mutex_test: ERROR pthread_mutexattr_settype failed, status=%d\n", status);
- }
-
- status = pthread_mutexattr_gettype(&mattr, &type);
- if (status != 0)
- {
- printf("recursive_mutex_test: ERROR pthread_mutexattr_gettype failed, status=%d\n", status);
- }
- if (type != PTHREAD_MUTEX_RECURSIVE)
- {
- printf("recursive_mutex_test: ERROR pthread_mutexattr_gettype return type=%d\n", type);
- }
-
- /* Initialize the mutex */
-
- printf("recursive_mutex_test: Initializing mutex\n");
- pthread_mutex_init(&mut, &mattr);
-
- /* Start the threads -- all at the same, default priority */
-
- for (i = 0; i < NTHREADS; i++)
- {
- printf("recursive_mutex_test: Starting thread %d\n", i+1);
-#ifdef SDCC
- (void)pthread_attr_init(&attr);
- status = pthread_create(&thread[i], &attr, thread_outer, (pthread_addr_t)i+1);
-#else
- status = pthread_create(&thread[i], NULL, thread_outer, (pthread_addr_t)i+1);
-#endif
- if (status != 0)
- {
- printf("recursive_mutex_test: ERRROR thread#%d creation: %d\n", i+1, status);
- }
- }
-
- /* Wait for all; of the threads to complete */
-
- for (i = 0; i < NTHREADS; i++)
- {
- printf("recursive_mutex_test: Waiting for thread %d\n", i+1);
-#ifdef SDCC
- pthread_join(thread[i], &result1);
-#else
- pthread_join(thread[i], NULL);
-#endif
- }
-
- printf("recursive_mutex_test: Complete\n");
-}
diff --git a/nuttx/examples/ostest/roundrobin.c b/nuttx/examples/ostest/roundrobin.c
deleted file mode 100644
index 061d51f3d..000000000
--- a/nuttx/examples/ostest/roundrobin.c
+++ /dev/null
@@ -1,232 +0,0 @@
-/********************************************************************************
- * examples/ostest/roundrobin.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <stdio.h>
-#include "ostest.h"
-
-#if CONFIG_RR_INTERVAL > 0
-
-/********************************************************************************
- * Definitions
- ********************************************************************************/
-
-/* This number may need to be tuned for different processor speeds. Since these
- * arrays must be large to very correct SCHED_RR behavior, this test may require
- * too much memory on many targets.
- */
-
-/* #define CONFIG_NINTEGERS 32768 Takes forever on 60Mhz ARM7 */
-
-#define CONFIG_NINTEGERS 2048
-
-/********************************************************************************
- * Private Data
- ********************************************************************************/
-
-static int prime1[CONFIG_NINTEGERS];
-static int prime2[CONFIG_NINTEGERS];
-
-/********************************************************************************
- * Private Functions
- ********************************************************************************/
-
-/********************************************************************************
- * Name: dosieve
- *
- * Description
- * This implements a "sieve of aristophanes" algorithm for finding prime number.
- * Credit for this belongs to someone, but I am not sure who anymore. Anyway,
- * the only purpose here is that we need some algorithm that takes a long period
- * of time to execute.
- *
- ********************************************************************************/
-
-static void dosieve(int *prime)
-{
- int a,d;
- int i;
- int j;
-
- a = 2;
- d = a;
-
- for (i = 0; i < CONFIG_NINTEGERS; i++)
- {
- prime[i] = i+2;
- }
-
- for (i = 1; i < 10; i++)
- {
- for (j = 0; j < CONFIG_NINTEGERS; j++)
- {
- d = a + d;
- if (d < CONFIG_NINTEGERS)
- {
- prime[d]=0;
- }
- }
- a++;
- d = a;
- i++;
- }
-
-#if 0 /* We don't really care what the numbers are */
- for (i = 0, j= 0; i < CONFIG_NINTEGERS; i++)
- {
- if (prime[i] != 0)
- {
- printf(" Prime %d: %d\n", j, prime[i]);
- j++;
- }
- }
-#endif
-}
-
-/********************************************************************************
- * Name: sieve1
- ********************************************************************************/
-
-static void *sieve1(void *parameter)
-{
- int i;
-
- printf("sieve1 started\n");
-
- for (i = 0; i < 1000; i++)
- {
- dosieve(prime1);
- }
-
- printf("sieve1 finished\n");
-
- pthread_exit(NULL);
- return NULL; /* To keep some compilers happy */
-}
-
-/********************************************************************************
- * Name: sieve2
- ********************************************************************************/
-
-static void *sieve2(void *parameter)
-{
- int i;
-
- printf("sieve2 started\n");
-
- for (i = 0; i < 1000; i++)
- {
- dosieve(prime2);
- }
-
- printf("sieve2 finished\n");
-
- pthread_exit(NULL);
- return NULL; /* To keep some compilers happy */
-}
-
-/********************************************************************************
- * Public Functions
- ********************************************************************************/
-
-/********************************************************************************
- * Name: rr_test
- ********************************************************************************/
-
-void rr_test(void)
-{
- pthread_t sieve1_thread;
- pthread_t sieve2_thread;
- struct sched_param sparam;
- pthread_attr_t attr;
- pthread_addr_t result;
- int status;
-
- printf("rr_test: Starting sieve1 thread \n");
- status = pthread_attr_init(&attr);
- if (status != OK)
- {
- printf("rr_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = sched_get_priority_min(SCHED_FIFO);
- status = pthread_attr_setschedparam(&attr, &sparam);
- if (status != OK)
- {
- printf("rr_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("rr_test: Set thread priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_attr_setschedpolicy(&attr, SCHED_RR);
- if (status != OK)
- {
- printf("rr_test: pthread_attr_setschedpolicy failed, status=%d\n", status);
- }
- else
- {
- printf("rr_test: Set thread policty to SCHED_RR\n");
- }
-
- status = pthread_create(&sieve1_thread, &attr, sieve1, NULL);
- if (status != 0)
- {
- printf("rr_test: Error in thread 1 creation, status=%d\n", status);
- }
-
- printf("rr_test: Starting sieve1 thread \n");
-
- status = pthread_create(&sieve2_thread, &attr, sieve2, NULL);
- if (status != 0)
- {
- printf("rr_test: Error in thread 2 creation, status=%d\n", status);
- }
-
- printf("rr_test: Waiting for sieves to complete -- this should take awhile\n");
- printf("rr_test: If RR scheduling is working, they should start and complete at\n");
- printf("rr_test: about the same time\n");
-
- pthread_join(sieve2_thread, &result);
- pthread_join(sieve1_thread, &result);
- printf("rr_test: Done\n");
-}
-
-#endif /* CONFIG_RR_INTERVAL */
diff --git a/nuttx/examples/ostest/sem.c b/nuttx/examples/ostest/sem.c
deleted file mode 100644
index 850cf8040..000000000
--- a/nuttx/examples/ostest/sem.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/***********************************************************************
- * sem.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <sched.h>
-#include "ostest.h"
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-static sem_t sem;
-
-static void *waiter_func(void *parameter)
-{
- int id = (int)parameter;
- int status;
- int value;
-
- printf("waiter_func: Thread %d Started\n", id);
-
- /* Take the semaphore */
-
- status = sem_getvalue(&sem, &value);
- if (status < 0)
- {
- printf("waiter_func: ERROR thread %d could not get semaphore value\n", id);
- }
- else
- {
- printf("waiter_func: Thread %d initial semaphore value = %d\n", id, value);
- }
-
- printf("waiter_func: Thread %d waiting on semaphore\n", id);
- status = sem_wait(&sem);
- if (status != 0)
- {
- printf("waiter_func: ERROR thread %d sem_wait failed\n", id);
- }
- printf("waiter_func: Thread %d awakened\n", id);
-
- status = sem_getvalue(&sem, &value);
- if (status < 0)
- {
- printf("waiter_func: ERROR thread %d could not get semaphore value\n", id);
- }
- else
- {
- printf("waiter_func: Thread %d new semaphore value = %d\n", id, value);
- }
-
- printf("waiter_func: Thread %d done\n", id);
- return NULL;
-}
-
-static void *poster_func(void *parameter)
-{
- int id = (int)parameter;
- int status;
- int value;
-
- printf("poster_func: Thread %d started\n", id);
-
- /* Take the semaphore */
-
- do
- {
- status = sem_getvalue(&sem, &value);
- if (status < 0)
- {
- printf("poster_func: ERROR thread %d could not get semaphore value\n", id);
- }
- else
- {
- printf("poster_func: Thread %d semaphore value = %d\n", id, value);
- }
-
- if (value < 0)
- {
- printf("poster_func: Thread %d posting semaphore\n", id);
- status = sem_post(&sem);
- if (status != 0)
- {
- printf("poster_func: ERROR thread %d sem_wait failed\n", id);
- }
-
- pthread_yield();
-
- status = sem_getvalue(&sem, &value);
- if (status < 0)
- {
- printf("poster_func: ERROR thread %d could not get semaphore value\n", id);
- }
- else
- {
- printf("poster_func: Thread %d new semaphore value = %d\n", id, value);
- }
- }
- }
- while (value < 0);
-
- printf("poster_func: Thread %d done\n", id);
- return NULL;
-
-}
-
-void sem_test(void)
-{
- pthread_t waiter_thread1;
- pthread_t waiter_thread2;
- pthread_t poster_thread;
-#ifdef SDCC
- pthread_addr_t result;
-#endif
- struct sched_param sparam;
- int prio_min;
- int prio_max;
- int prio_mid;
- pthread_attr_t attr;
- int status;
-
- printf("sem_test: Initializing semaphore to 0\n");
- sem_init(&sem, 0, 0);
-
- /* Start two waiter thread instances */
-
- printf("sem_test: Starting waiter thread 1\n");
- status = pthread_attr_init(&attr);
- if (status != OK)
- {
- printf("sem_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- prio_min = sched_get_priority_min(SCHED_FIFO);
- prio_max = sched_get_priority_max(SCHED_FIFO);
- prio_mid = (prio_min + prio_max) / 2;
-
- sparam.sched_priority = (prio_mid + prio_max) / 2;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("sem_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("sem_test: Set thread 1 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&waiter_thread1, &attr, waiter_func, (pthread_addr_t)1);
- if (status != 0)
- {
- printf("sem_test: Error in thread 1 creation, status=%d\n", status);
- }
-
- printf("sem_test: Starting waiter thread 2\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("sem_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = prio_mid;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("sem_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("sem_test: Set thread 2 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&waiter_thread2, &attr, waiter_func, (pthread_addr_t)2);
- if (status != 0)
- {
- printf("sem_test: Error in thread 2 creation, status=%d\n", status);
- }
-
- printf("sem_test: Starting poster thread 3\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("sem_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- sparam.sched_priority = (prio_min + prio_mid) / 2;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("sem_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("sem_test: Set thread 3 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&poster_thread, &attr, poster_func, (pthread_addr_t)3);
- if (status != 0)
- {
- printf("sem_test: Error in thread 3 creation, status=%d\n", status);
- }
-
-#ifdef SDCC
- pthread_join(waiter_thread1, &result);
- pthread_join(waiter_thread2, &result);
- pthread_join(poster_thread, &result);
-#else
- pthread_join(waiter_thread1, NULL);
- pthread_join(waiter_thread2, NULL);
- pthread_join(poster_thread, NULL);
-#endif
-}
diff --git a/nuttx/examples/ostest/sighand.c b/nuttx/examples/ostest/sighand.c
deleted file mode 100644
index 46650be1c..000000000
--- a/nuttx/examples/ostest/sighand.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/***********************************************************************
- * examples/ostest/sighand.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <sys/types.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <sched.h>
-#include <errno.h>
-#include "ostest.h"
-
-#ifndef NULL
-# define NULL (void*)0
-#endif
-
-#define WAKEUP_SIGNAL 17
-#define SIGVALUE_INT 42
-
-static sem_t sem;
-static bool sigreceived = false;
-static bool threadexited = false;
-
-static void wakeup_action(int signo, siginfo_t *info, void *ucontext)
-{
- sigset_t oldset;
- sigset_t allsigs;
- int status;
-
- printf("wakeup_action: Received signal %d\n" , signo);
-
- sigreceived = true;
-
- /* Check signo */
-
- if (signo != WAKEUP_SIGNAL)
- {
- printf("wakeup_action: ERROR expected signo=%d\n" , WAKEUP_SIGNAL);
- }
-
- /* Check siginfo */
-
- if (info->si_value.sival_int != SIGVALUE_INT)
- {
- printf("wakeup_action: ERROR sival_int=%d expected %d\n",
- info->si_value.sival_int, SIGVALUE_INT);
- }
- else
- {
- printf("wakeup_action: sival_int=%d\n" , info->si_value.sival_int);
- }
-
- if (info->si_signo != WAKEUP_SIGNAL)
- {
- printf("wakeup_action: ERROR expected si_signo=%d, got=%d\n",
- WAKEUP_SIGNAL, info->si_signo);
- }
-
- printf("wakeup_action: si_code=%d\n" , info->si_code);
-
- /* Check ucontext_t */
-
- printf("wakeup_action: ucontext=%p\n" , ucontext);
-
- /* Check sigprocmask */
-
- (void)sigfillset(&allsigs);
- status = sigprocmask(SIG_SETMASK, NULL, &oldset);
- if (status != OK)
- {
- printf("wakeup_action: ERROR sigprocmask failed, status=%d\n",
- status);
- }
-
- if (oldset != allsigs)
- {
- printf("wakeup_action: ERROR sigprocmask=%x expected=%x\n",
- oldset, allsigs);
- }
-}
-
-static int waiter_main(int argc, char *argv[])
-{
- sigset_t sigset;
- struct sigaction act;
- struct sigaction oact;
- int status;
-
- printf("waiter_main: Waiter started\n" );
-
- printf("waiter_main: Unmasking signal %d\n" , WAKEUP_SIGNAL);
- (void)sigemptyset(&sigset);
- (void)sigaddset(&sigset, WAKEUP_SIGNAL);
- status = sigprocmask(SIG_UNBLOCK, &sigset, NULL);
- if (status != OK)
- {
- printf("waiter_main: ERROR sigprocmask failed, status=%d\n",
- status);
- }
-
- printf("waiter_main: Registering signal handler\n" );
- act.sa_sigaction = wakeup_action;
- act.sa_flags = SA_SIGINFO;
-
- (void)sigfillset(&act.sa_mask);
- (void)sigdelset(&act.sa_mask, WAKEUP_SIGNAL);
-
- status = sigaction(WAKEUP_SIGNAL, &act, &oact);
- if (status != OK)
- {
- printf("waiter_main: ERROR sigaction failed, status=%d\n" , status);
- }
-
-#ifndef SDCC
- printf("waiter_main: oact.sigaction=%p oact.sa_flags=%x oact.sa_mask=%x\n",
- oact.sa_sigaction, oact.sa_flags, oact.sa_mask);
-#endif
-
- /* Take the semaphore */
-
- printf("waiter_main: Waiting on semaphore\n" );
-
-#if CONFIG_NFILE_STREAMS > 0
- fflush(stdout);
-#endif
-
- status = sem_wait(&sem);
- if (status != 0)
- {
- int error = *get_errno_ptr();
- if (error == EINTR)
- {
- printf("waiter_main: sem_wait() successfully interrupted by signal\n" );
- }
- else
- {
- printf("waiter_main: ERROR sem_wait failed, errno=%d\n" , error);
- }
- }
- else
- {
- printf("waiter_main: ERROR awakened with no error!\n" );
- }
-
- /* Detach the signal handler */
-
- act.sa_sigaction = SIG_DFL;
- status = sigaction(WAKEUP_SIGNAL, &act, &oact);
-
- printf("waiter_main: done\n" );
-
-#if CONFIG_NFILE_STREAMS > 0
- fflush(stdout);
-#endif
-
- threadexited = true;
- return 0;
-}
-
-void sighand_test(void)
-{
- struct sched_param param;
- union sigval sigvalue;
- pid_t waiterpid;
- int policy;
- int status;
-
- printf("sighand_test: Initializing semaphore to 0\n" );
- sem_init(&sem, 0, 0);
-
- /* Start waiter thread */
-
- printf("sighand_test: Starting waiter task\n" );
- status = sched_getparam (0, &param);
- if (status != OK)
- {
- printf("sighand_test: ERROR sched_getparam() failed\n" );
- param.sched_priority = PTHREAD_DEFAULT_PRIORITY;
- }
-
- policy = sched_getscheduler(0);
- if (policy == ERROR)
- {
- printf("sighand_test: ERROR sched_getscheduler() failed\n" );
- policy = SCHED_FIFO;
- }
-
- waiterpid = task_create("waiter", param.sched_priority,
- PTHREAD_STACK_DEFAULT, waiter_main, NULL);
- if (waiterpid == ERROR)
- {
- printf("sighand_test: ERROR failed to start waiter_main\n" );
- }
- else
- {
- printf("sighand_test: Started waiter_main pid=%d\n", waiterpid);
- }
-
- /* Wait a bit */
-
-#if CONFIG_NFILE_STREAMS > 0
- fflush(stdout);
-#endif
- sleep(2);
-
- /* Then signal the waiter thread. */
-
- printf("sighand_test: Signaling pid=%d with signo=%d sigvalue=%d\n",
- waiterpid, WAKEUP_SIGNAL, SIGVALUE_INT);
-
- sigvalue.sival_int = SIGVALUE_INT;
-#ifdef CONFIG_CAN_PASS_STRUCTS
- status = sigqueue(waiterpid, WAKEUP_SIGNAL, sigvalue);
-#else
- status = sigqueue(waiterpid, WAKEUP_SIGNAL, sigvalue.sival_ptr);
-#endif
- if (status != OK)
- {
- printf("sighand_test: ERROR sigqueue failed\n" );
- task_delete(waiterpid);
- }
-
- /* Wait a bit */
-
-#if CONFIG_NFILE_STREAMS > 0
- fflush(stdout);
-#endif
- sleep(2);
-
- /* Then check the result */
-
- if (!threadexited)
- {
- printf("sighand_test: ERROR waiter task did not exit\n" );
- }
-
- if (!sigreceived)
- {
- printf("sighand_test: ERROR signal handler did not run\n" );
- }
-
- printf("sighand_test: done\n" );
-#if CONFIG_NFILE_STREAMS > 0
- fflush(stdout);
-#endif
-}
diff --git a/nuttx/examples/ostest/timedmqueue.c b/nuttx/examples/ostest/timedmqueue.c
deleted file mode 100644
index 9c14ec414..000000000
--- a/nuttx/examples/ostest/timedmqueue.c
+++ /dev/null
@@ -1,393 +0,0 @@
-/**************************************************************************
- * examples/ostest/mqueue.c
- *
- * Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <mqueue.h>
-#include <sched.h>
-#include <errno.h>
-
-#include "ostest.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-#define TEST_MESSAGE "This is a test and only a test"
-#if defined(SDCC) || defined(__ZILOG__)
- /* Cannot use strlen in array size */
-
-# define TEST_MSGLEN (31)
-#else
- /* Message lenght is the size of the message plus the null terminator */
-
-# define TEST_MSGLEN (strlen(TEST_MESSAGE)+1)
-#endif
-
-#define TEST_SEND_NMSGS (10)
-#define TEST_RECEIVE_NMSGS (10)
-
-#if CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0
-# define FFLUSH() fflush(stdout)
-#else
-# define FFLUSH()
-#endif
-
-/**************************************************************************
- * Private Types
- **************************************************************************/
-
-/**************************************************************************
- * Private Function Prototypes
- **************************************************************************/
-
-/**************************************************************************
- * Global Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Variables
- **************************************************************************/
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-/**************************************************************************
- * Public Functions
- **************************************************************************/
-
-static void *sender_thread(void *arg)
-{
- mqd_t mqfd;
- char msg_buffer[TEST_MSGLEN];
- struct mq_attr attr;
- int status = 0;
- int nerrors = 0;
- int i;
-
- printf("sender_thread: Starting\n");
-
- /* Fill in attributes for message queue */
-
- attr.mq_maxmsg = TEST_SEND_NMSGS-1;
- attr.mq_msgsize = TEST_MSGLEN;
- attr.mq_flags = 0;
-
- /* Set the flags for the open of the queue.
- * Make it a blocking open on the queue, meaning it will block if
- * this process tries to send to the queue and the queue is full.
- *
- * O_CREAT - the queue will get created if it does not already exist.
- * O_WRONLY - we are only planning to write to the queue.
- *
- * Open the queue, and create it if the receiving process hasn't
- * already created it.
- */
-
- mqfd = mq_open("testmq", O_WRONLY|O_CREAT, 0666, &attr);
- if (mqfd < 0)
- {
- printf("sender_thread: ERROR mq_open failed\n");
- pthread_exit((pthread_addr_t)1);
- }
-
- /* Fill in a test message buffer to send */
-
- memcpy(msg_buffer, TEST_MESSAGE, TEST_MSGLEN);
-
- /* Perform the send TEST_SEND_NMSGS times */
-
- for (i = 0; i < TEST_SEND_NMSGS; i++)
- {
- struct timespec time;
- status = clock_gettime(CLOCK_REALTIME, &time);
- if (status != 0)
- {
- printf("sender_thread: ERROR clock_gettime failed\n");
- }
- time.tv_sec += 5;
-
- /* The first TEST_SEND_NMSGS-1 send should succeed. The last
- * one should fail with errno == ETIMEDOUT
- */
-
- status = mq_timedsend(mqfd, msg_buffer, TEST_MSGLEN, 42, &time);
- if (status < 0)
- {
- if (i == TEST_SEND_NMSGS-1 && *get_errno_ptr() == ETIMEDOUT)
- {
- printf("sender_thread: mq_timedsend %d timed out as expected\n", i);
- }
- else
- {
- printf("sender_thread: ERROR mq_timedsend failure=%d on msg %d\n", *get_errno_ptr(), i);
- nerrors++;
- }
- }
- else
- {
- if (i == TEST_SEND_NMSGS-1)
- {
- printf("sender_thread: ERROR mq_timedsend of msg %d succeeded\n", i);
- nerrors++;
- }
- else
- {
- printf("sender_thread: mq_timedsend succeeded on msg %d\n", i);
- }
- }
- }
-
- /* Close the queue and return success */
-
- if (mq_close(mqfd) < 0)
- {
- printf("sender_thread: ERROR mq_close failed\n");
- }
-
- printf("sender_thread: returning nerrors=%d\n", nerrors);
- FFLUSH();
- return (pthread_addr_t)nerrors;
-}
-
-static void *receiver_thread(void *arg)
-{
- mqd_t mqfd;
- char msg_buffer[TEST_MSGLEN];
- struct mq_attr attr;
- int nbytes;
- int nerrors = 0;
- int i;
-
- printf("receiver_thread: Starting\n");
-
- /* Fill in attributes for message queue */
-
- attr.mq_maxmsg = TEST_SEND_NMSGS-1;
- attr.mq_msgsize = TEST_MSGLEN;
- attr.mq_flags = 0;
-
- /* Set the flags for the open of the queue.
- * Make it a blocking open on the queue, meaning it will block if
- * this process tries to* send to the queue and the queue is full.
- *
- * O_CREAT - the queue will get created if it does not already exist.
- * O_RDONLY - we are only planning to write to the queue.
- *
- * Open the queue, and create it if the sending process hasn't
- * already created it.
- */
-
- mqfd = mq_open("testmq", O_RDONLY|O_CREAT, 0666, &attr);
- if (mqfd < 0)
- {
- printf("receiver_thread: ERROR mq_open failed\n");
- pthread_exit((pthread_addr_t)1);
- }
-
- /* Perform the receive TEST_RECEIVE_NMSGS times */
-
- for (i = 0; i < TEST_RECEIVE_NMSGS; i++)
- {
- struct timespec time;
- int status = clock_gettime(CLOCK_REALTIME, &time);
- if (status != 0)
- {
- printf("sender_thread: ERROR clock_gettime failed\n");
- }
- time.tv_sec += 5;
-
- /* The first TEST_SEND_NMSGS-1 send should succeed. The last
- * one should fail with errno == ETIMEDOUT
- */
-
- memset(msg_buffer, 0xaa, TEST_MSGLEN);
- nbytes = mq_timedreceive(mqfd, msg_buffer, TEST_MSGLEN, 0, &time);
- if (nbytes < 0)
- {
- if (i == TEST_SEND_NMSGS-1 && *get_errno_ptr() == ETIMEDOUT)
- {
- printf("receiver_thread: Receive %d timed out as expected\n", i);
- }
- else
- {
- printf("receiver_thread: ERROR mq_timedreceive failure=%d on msg %d\n", *get_errno_ptr(), i);
- nerrors++;
- }
- }
- else if (nbytes != TEST_MSGLEN)
- {
- printf("receiver_thread: mq_timedreceive return bad size %d on msg %d\n", nbytes, i);
- nerrors++;
- }
- else if (memcmp(TEST_MESSAGE, msg_buffer, nbytes) != 0)
- {
- int j;
-
- printf("receiver_thread: mq_timedreceive returned corrupt message on msg %d\n", i);
- printf("receiver_thread: i Expected Received\n");
-
- for (j = 0; j < TEST_MSGLEN-1; j++)
- {
- if (isprint(msg_buffer[j]))
- {
- printf("receiver_thread: %2d %02x (%c) %02x (%c)\n",
- j, TEST_MESSAGE[j], TEST_MESSAGE[j], msg_buffer[j], msg_buffer[j]);
- }
- else
- {
- printf("receiver_thread: %2d %02x (%c) %02x\n",
- j, TEST_MESSAGE[j], TEST_MESSAGE[j], msg_buffer[j]);
- }
- }
- printf("receiver_thread: %2d 00 %02x\n",
- j, msg_buffer[j]);
- }
- else if (i == TEST_SEND_NMSGS-1)
- {
- printf("receiver_thread: ERROR mq_timedreceive of msg %d succeeded\n", i);
- nerrors++;
- }
- else
- {
- printf("receiver_thread: mq_timedreceive succeeded on msg %d\n", i);
- }
- }
-
- /* Close the queue and return success */
-
- if (mq_close(mqfd) < 0)
- {
- printf("receiver_thread: ERROR mq_close failed\n");
- nerrors++;
- }
-
- /* Destroy the queue */
-
- if (mq_unlink("testmq") < 0)
- {
- printf("receiver_thread: ERROR mq_close failed\n");
- nerrors++;
- }
-
- printf("receiver_thread: returning nerrors=%d\n", nerrors);
- FFLUSH();
- pthread_exit((pthread_addr_t)nerrors);
- return (pthread_addr_t)nerrors;
-}
-
-void timedmqueue_test(void)
-{
- pthread_t sender;
- pthread_t receiver;
- void *result;
- pthread_attr_t attr;
- int status;
-
- /* Start the sending thread at the default priority */
-
- printf("timedmqueue_test: Starting sender\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- status = pthread_attr_setstacksize(&attr, STACKSIZE);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_attr_setstacksize failed, status=%d\n", status);
- }
-
- status = pthread_create(&sender, &attr, sender_thread, NULL);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_create failed, status=%d\n", status);
- }
-
- /* Wait for the sending thread to complete */
-
- printf("timedmqueue_test: Waiting for sender to complete\n");
- pthread_join(sender, &result);
- if (result != (void*)0)
- {
- printf("timedmqueue_test: ERROR sender thread exited with %d errors\n", (int)result);
- }
-
- /* Start the receiving thread at the default priority */
-
- printf("timedmqueue_test: Starting receiver\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- status = pthread_attr_setstacksize(&attr, STACKSIZE);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_attr_setstacksize failed, status=%d\n", status);
- }
-
- status = pthread_create(&receiver, &attr, receiver_thread, NULL);
- if (status != 0)
- {
- printf("timedmqueue_test: pthread_create failed, status=%d\n", status);
- }
-
- /* Wait for the receiving thread to complete */
-
- printf("timedmqueue_test: Waiting for receiver to complete\n");
- pthread_join(receiver, &result);
- if (result != (void*)0)
- {
- printf("timedmqueue_test: ERROR receiver thread exited with %d errors\n", (int)result);
- }
-
- printf("timedmqueue_test: Test complete\n");
-}
-
-
diff --git a/nuttx/examples/ostest/timedwait.c b/nuttx/examples/ostest/timedwait.c
deleted file mode 100644
index 51622bad8..000000000
--- a/nuttx/examples/ostest/timedwait.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/***********************************************************************
- * examples/ostest/timedwait.c
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-#include <time.h>
-#include <pthread.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "ostest.h"
-
-/**************************************************************************
- * Private Definitions
- **************************************************************************/
-
-#if CONFIG_NFILE_DESCRIPTORS > 0 && CONFIG_NFILE_STREAMS > 0
-# define FFLUSH() fflush(stdout)
-#else
-# define FFLUSH()
-#endif
-
-/**************************************************************************
- * Private Data
- **************************************************************************/
-
-static pthread_mutex_t mutex;
-static pthread_cond_t cond;
-
-/**************************************************************************
- * Private Functions
- **************************************************************************/
-
-static void *thread_waiter(void *parameter)
-{
- struct timespec time;
- int status;
-
- /* Take the mutex */
-
- printf("thread_waiter: Taking mutex\n");
- status = pthread_mutex_lock(&mutex);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_mutex_lock failed, status=%d\n", status);
- }
-
- printf("thread_waiter: Starting 5 second wait for condition\n");
-
- status = clock_gettime(CLOCK_REALTIME, &time);
- if (status != 0)
- {
- printf("thread_waiter: ERROR clock_gettime failed\n");
- }
- time.tv_sec += 5;
-
- /* The wait -- no-one is ever going to awaken us */
-
- status = pthread_cond_timedwait(&cond, &mutex, &time);
- if (status != 0)
- {
- if (status == ETIMEDOUT)
- {
- printf("thread_waiter: pthread_cond_timedwait timed out\n");
- }
- else
- {
- printf("thread_waiter: ERROR pthread_cond_timedwait failed, status=%d\n", status);
- }
- }
- else
- {
- printf("thread_waiter: ERROR pthread_cond_timedwait returned without timeout, status=%d\n", status);
- }
-
- /* Release the mutex */
-
- printf("thread_waiter: Releasing mutex\n");
- status = pthread_mutex_unlock(&mutex);
- if (status != 0)
- {
- printf("thread_waiter: ERROR pthread_mutex_unlock failed, status=%d\n", status);
- }
-
- printf("thread_waiter: Exit with status 0x12345678\n");
- pthread_exit((pthread_addr_t)0x12345678);
- return NULL;
-}
-
-/**************************************************************************
- * Public Definitions
- **************************************************************************/
-
-void timedwait_test(void)
-{
- pthread_t waiter;
- pthread_attr_t attr;
- struct sched_param sparam;
- void *result;
- int prio_max;
- int status;
-
- /* Initialize the mutex */
-
- printf("thread_waiter: Initializing mutex\n");
- status = pthread_mutex_init(&mutex, NULL);
- if (status != 0)
- {
- printf("timedwait_test: ERROR pthread_mutex_init failed, status=%d\n", status);
- }
-
- /* Initialize the condition variable */
-
- printf("timedwait_test: Initializing cond\n");
- status = pthread_cond_init(&cond, NULL);
- if (status != 0)
- {
- printf("timedwait_test: ERROR pthread_condinit failed, status=%d\n", status);
- }
-
- /* Start the waiter thread at higher priority */
-
- printf("timedwait_test: Starting waiter\n");
- status = pthread_attr_init(&attr);
- if (status != 0)
- {
- printf("timedwait_test: pthread_attr_init failed, status=%d\n", status);
- }
-
- prio_max = sched_get_priority_max(SCHED_FIFO);
- status = sched_getparam (getpid(), &sparam);
- if (status != 0)
- {
- printf("timedwait_test: sched_getparam failed\n");
- sparam.sched_priority = PTHREAD_DEFAULT_PRIORITY;
- }
-
- sparam.sched_priority = (prio_max + sparam.sched_priority) / 2;
- status = pthread_attr_setschedparam(&attr,&sparam);
- if (status != OK)
- {
- printf("timedwait_test: pthread_attr_setschedparam failed, status=%d\n", status);
- }
- else
- {
- printf("timedwait_test: Set thread 2 priority to %d\n", sparam.sched_priority);
- }
-
- status = pthread_create(&waiter, &attr, thread_waiter, NULL);
- if (status != 0)
- {
- printf("timedwait_test: pthread_create failed, status=%d\n", status);
- }
-
- printf("timedwait_test: Joining\n");
- FFLUSH();
- status = pthread_join(waiter, &result);
- if (status != 0)
- {
- printf("timedwait_test: ERROR pthread_join failed, status=%d\n", status);
- }
- else
- {
- printf("timedwait_test: waiter exited with result=%p\n", result);
- }
-}
diff --git a/nuttx/examples/pashello/Makefile b/nuttx/examples/pashello/Makefile
deleted file mode 100644
index fd91e1124..000000000
--- a/nuttx/examples/pashello/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-############################################################################
-# examples/pashello/Makefile
-#
-# Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ifeq ($(WINTOOL),y)
-INCDIROPT = -w
-endif
-
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/pcode/include }
-CFLAGS += ${shell $(TOPDIR)/tools/incdir.sh $(INCDIROPT) "$(CC)" $(TOPDIR)/pcode/insn/include}
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = pashello.c device.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/pashello/README.txt b/nuttx/examples/pashello/README.txt
deleted file mode 100644
index b976f18cf..000000000
--- a/nuttx/examples/pashello/README.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-README
-^^^^^^
-
-hello.pas
-
- This is a sample "Hello, World!" Pascal Program
-
-hello.pex
-
- This is the compiled, linked P-Code executable that results
- when hello.pas is compiled.
-
-hello.h
-
- This file defines an initialized C array holds a copy of
- hello.pex. This file as created by:
-
- xxd -i hello.pex >hello.h
-
-mkhello.sh
-
- This is a scripts that can be used to rebuild both hello.pex
- and hello.h.
-
-device.c
-
- The hello.pex file must be provided to the interpreter as a file
- in the file system. Normally this would be done using real storage
- medium. In this example, we will use device.c:
-
- device.c implements a simple device driver. Reads from this device
- will access the in-memory copy of hello.pex This device driver is
- registered as /dev/pashello in the psuedo filesystem.
-
diff --git a/nuttx/examples/pashello/device.c b/nuttx/examples/pashello/device.c
deleted file mode 100644
index 5f0038ad7..000000000
--- a/nuttx/examples/pashello/device.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/****************************************************************************
- * examples/pashello/device.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Compilation Switches
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-#include <string.h>
-#include <errno.h>
-#include <nuttx/fs.h>
-
-#include "hello.h"
-#include "pashello.h"
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-static ssize_t hello_read(struct file *, char *, size_t);
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const struct file_operations hello_fops =
-{
- 0, /* open */
- 0, /* close */
- hello_read, /* read */
- 0, /* write */
- 0, /* seek */
- 0, /* ioctl */
-#ifndef CONFIG_DISABLE_POLL
- 0 /* poll */
-#endif
-};
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static ssize_t hello_read(struct file *filep, char *buffer, size_t len)
-{
- off_t offset = filep->f_pos; /* Start read position */
- ssize_t nread = 0; /* Bytes read -- assume EOF */
-
- /* Make sure that the offset is within the .pex file */
-
- if (offset < hello_pex_len)
- {
- /* Make sure the read does not extend beyond the .pex file */
-
- nread = len;
- if (nread + offset > hello_pex_len)
- {
- nread = hello_pex_len - offset;
- }
- memcpy(buffer, &hello_pex[offset], nread);
- filep->f_pos += nread;
- }
- return nread;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-void hello_register(void)
-{
- (void)register_driver("/dev/hello", &hello_fops, 0444, NULL);
-}
diff --git a/nuttx/examples/pashello/hello.h b/nuttx/examples/pashello/hello.h
deleted file mode 100644
index 818e5e4a5..000000000
--- a/nuttx/examples/pashello/hello.h
+++ /dev/null
@@ -1,23 +0,0 @@
-unsigned char hello_pex[] = {
- 0x50, 0x4f, 0x46, 0x46, 0x01, 0x01, 0x00, 0x00, 0x00, 0x14, 0x00, 0x05,
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18,
- 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x11, 0x01, 0x03, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d,
- 0x00, 0x00, 0x00, 0x0f, 0x05, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x00, 0x00, 0x00, 0x04,
- 0x06, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x10, 0x03, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0,
- 0x00, 0x00, 0x00, 0x38, 0xb1, 0x00, 0x00, 0x74, 0x0e, 0xf9, 0x00, 0x00,
- 0x25, 0xb5, 0xff, 0xfc, 0xf9, 0x00, 0x00, 0x20, 0x3f, 0x48, 0x65, 0x6c,
- 0x6c, 0x6f, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x21, 0x21, 0x00,
- 0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x48, 0x45, 0x4c,
- 0x4c, 0x4f, 0x00, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x2e, 0x70, 0x61, 0x73,
- 0x00, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x00, 0x2e, 0x72, 0x6f, 0x64, 0x61,
- 0x74, 0x61, 0x00, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x74, 0x61, 0x62, 0x00,
- 0x2e, 0x6c, 0x69, 0x6e, 0x65, 0x6e, 0x6f, 0x00, 0x2e, 0x73, 0x74, 0x72,
- 0x74, 0x61, 0x62, 0x00
-};
-unsigned int hello_pex_len = 232;
diff --git a/nuttx/examples/pashello/hello.pas b/nuttx/examples/pashello/hello.pas
deleted file mode 100644
index fe137f1b6..000000000
--- a/nuttx/examples/pashello/hello.pas
+++ /dev/null
@@ -1,5 +0,0 @@
-program hello(output);
-begin
- writeln('Hello world!!!');
-end.
-
diff --git a/nuttx/examples/pashello/hello.pex b/nuttx/examples/pashello/hello.pex
deleted file mode 100644
index c23610598..000000000
--- a/nuttx/examples/pashello/hello.pex
+++ /dev/null
Binary files differ
diff --git a/nuttx/examples/pashello/mkhello.sh b/nuttx/examples/pashello/mkhello.sh
deleted file mode 100755
index 716a7e96d..000000000
--- a/nuttx/examples/pashello/mkhello.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/bin/bash
-############################################################################
-# examples/pashello/mkhello.sh
-#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-#set -x
-
-BINDIR=$1
-WD=`pwd`
-
-PASCAL=${BINDIR}/pascal
-POPT=${BINDIR}/popt
-PLINK=${BINDIR}/plink
-PRUN=${BINDIR}/prun
-
-PASFILENAME=hello.pas
-OUFILE=hello.h
-STRSTKSZ=1024
-
-function sanity_check ()
-{
- if [ ! -f "${WD}/${PASFILENAME}" ]; then
- echo "ERROR: Source ${PASFILENAME} does not exist in this directory"
- exit 1
- fi
- if [ -z "${BINDIR}" ]; then
- echo "ERROR: Path to the pascal bin/ directory not provided"
- exit 1
- fi
- if [ ! -d "${BINDIR}" ]; then
- echo "ERROR: Tool ${BINDIR} does not exist"
- exit 1
- fi
- if [ ! -x "${PASCAL}" ]; then
- echo "ERROR: Executable ${PASCAL} does not exist"
- exit 1
- fi
- if [ ! -x "${POPT}" ]; then
- echo "ERROR: Executable ${POPT} does not exist"
- exit 1
- fi
- if [ ! -x "${PLINK}" ]; then
- echo "ERROR: Executable ${PLINK} does not exist"
- exit 1
- fi
- if [ ! -x "${PRUN}" ]; then
- echo "ERROR: Executable ${PRUN} does not exist"
- exit 1
- fi
-}
-
-function compile_hello ()
-{
- PASOPTS=
- ${PASCAL} ${PASOPTS} ${PASFILENAME} 2>&1 || rm -f hello.o1
- if [ -f hello.err ] ; then
- cat hello.err | grep Line
- fi
- if [ ! -f hello.o1 ] ; then
- echo "Compilation failed"
- else
- POPTOPTS=
- ${POPT} ${POPTOPTS} hello.o1 2>&1
- ${PLINK} hello.o hello.pex 2>&1
- fi
-}
-
-function test_program ()
-{
- if [ "${CONFIG_REGM}" == "y" ]; then
- echo "Don't know how to run REGM programs yet"
- else
- echo "Using string stack size = ${STRSTKSZ}"
- PRUNOPTS="-t ${STRSTKSZ}"
-
- if [ ! -f hello.pex ]; then
- echo "No p-code executable"
- else
- if [ -f hello.inp ] ; then
- ${PRUN} ${PRUNOPTS} hello.pex 2>&1 <hello.inp
- else
- ${PRUN} ${PRUNOPTS} hello.pex 2>&1
- fi
- fi
- fi
-}
-
-function test_hello ()
-{
- echo "Using string stack size = ${STRSTKSZ}"
- PRUNOPTS="-t ${STRSTKSZ}"
-
- if [ ! -f hello.pex ]; then
- echo "No p-code executable"
- exit 1
- else
- ${PRUN} ${PRUNOPTS} hello.pex
- fi
-}
-
-function make_include ()
-{
- xxd -i hello.pex >hello.h
-}
-
-sanity_check
-compile_hello
-rm *.o *.o1 *.lst *.err
-test_hello
-make_include
-
diff --git a/nuttx/examples/pashello/pashello.c b/nuttx/examples/pashello/pashello.c
deleted file mode 100644
index 8bdefe702..000000000
--- a/nuttx/examples/pashello/pashello.c
+++ /dev/null
@@ -1,143 +0,0 @@
-/****************************************************************************
- * examples/pashello/pashello.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <debug.h>
-
-#include "pexec.h"
-#include "pedefs.h"
-#include "pashello.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifndef CONFIG_PASHELLO_VARSTACKSIZE
-# define CONFIG_PASHELLO_VARSTACKSIZE 1024
-#endif
-
-#ifndef CONFIG_PASHELLO_STRSTACKSIZE
-# define CONFIG_PASHELLO_STRSTACKSIZE 128
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: prun
- *
- * Description:
- * This function executes the P-Code program until a stopping condition
- * is encountered.
- *
- ****************************************************************************/
-
-static void prun(FAR struct pexec_s *st)
-{
- int errcode;
-
- for (;;)
- {
- /* Execute the instruction; Check for exceptional conditions */
-
- errcode = pexec(st);
- if (errcode != eNOERROR) break;
- }
-
- if (errcode != eEXIT)
- {
- printf("Runtime error 0x%02x -- Execution Stopped\n", errcode);
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, FAR char *argv[])
-{
- FAR struct pexec_s *st;
-
- /* Register the /dev/hello driver */
-
- hello_register();
-
- /* Load the POFF file */
-
- st = pload("/dev/hello", CONFIG_PASHELLO_VARSTACKSIZE, CONFIG_PASHELLO_STRSTACKSIZE);
- if (!st)
- {
- fprintf(stderr, "user_start: ERROR: Could not load /dev/hello\n");
- exit(1);
- }
- printf("user_start: /dev/hello Loaded\n");
- printf("user_start: Interpreter started:\n");
-
- /* And start program execution */
-
- prun(st);
-
- /* Clean up resources used by the interpreter */
-
- printf("user_start: Interpreter terminated");
- pexec_release(st);
- return 0;
-}
diff --git a/nuttx/examples/pashello/pashello.h b/nuttx/examples/pashello/pashello.h
deleted file mode 100644
index ad206261e..000000000
--- a/nuttx/examples/pashello/pashello.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/****************************************************************************
- * examples/pashello/pashello.h
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_PASHELLO_H
-#define __EXAMPLES_PASHELLO_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-/* Defined in device.c */
-
-extern void hello_register(void);
-
-#endif /* __EXAMPLES_PASHELLO_H */
diff --git a/nuttx/examples/pipe/Makefile b/nuttx/examples/pipe/Makefile
deleted file mode 100644
index 72cd67ee7..000000000
--- a/nuttx/examples/pipe/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = pipe_main.c transfer_test.c interlock_test.c redirect_test.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/pipe/interlock_test.c b/nuttx/examples/pipe/interlock_test.c
deleted file mode 100644
index e049a65f6..000000000
--- a/nuttx/examples/pipe/interlock_test.c
+++ /dev/null
@@ -1,224 +0,0 @@
-/****************************************************************************
- * examples/pipe/interlock_test.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <sys/stat.h>
-
-#include <sys/types.h>
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "pipe.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: null_writer
- ****************************************************************************/
-
-static void *null_writer(pthread_addr_t pvarg)
-{
- int fd;
-
- /* Wait a bit */
-
- printf("null_writer: started -- sleeping\n");
- sleep(5);
-
- /* Then open the FIFO for write access */
-
- printf("null_writer: Opening FIFO for write access\n");
- fd = open(FIFO_PATH2, O_WRONLY);
- if (fd < 0)
- {
- fprintf(stderr, "null_writer: Failed to open FIFO %s for writing, errno=%d\n",
- FIFO_PATH2, errno);
- return (void*)1;
- }
-
- /* Wait a bit more */
-
- printf("null_writer: Opened %s for writing -- sleeping\n", FIFO_PATH2);
- sleep(5);
-
- /* Then close the FIFO */
-
- printf("null_writer: Closing %s\n", FIFO_PATH2);
- if (close(fd) != 0)
- {
- fprintf(stderr, "null_writer: close failed: %d\n", errno);
- }
- sleep(5);
-
- printf("null_writer: Returning success\n");
- return (void*)0;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: interlock_test
- ****************************************************************************/
-
-int interlock_test(void)
-{
- pthread_t writerid;
- void *value;
- char data[16];
- ssize_t nbytes;
- int fd;
- int ret;
-
- /* Create a FIFO */
-
- ret = mkfifo(FIFO_PATH2, 0666);
- if (ret < 0)
- {
- fprintf(stderr, "interlock_test: mkfifo failed with errno=%d\n", errno);
- return 1;
- }
-
- /* Start the null_writer_thread */
-
- printf("interlock_test: Starting null_writer thread\n");
- ret = pthread_create(&writerid, NULL, null_writer, (pthread_addr_t)NULL);
- if (ret != 0)
- {
- fprintf(stderr, "interlock_test: Failed to create null_writer thread, error=%d\n", ret);
- ret = 2;
- goto errout_with_fifo;
- }
-
- /* Open one end of the FIFO for reading. This open call should block until the
- * null_writer thread opens the other end of the FIFO for writing.
- */
-
- printf("interlock_test: Opening FIFO for read access\n");
- fd = open(FIFO_PATH2, O_RDONLY);
- if (fd < 0)
- {
- fprintf(stderr, "interlock_test: Failed to open FIFO %s for reading, errno=%d\n",
- FIFO_PATH2, errno);
- ret = 3;
- goto errout_with_thread;
- }
-
- /* Attempt to read one byte from the FIFO. This should return end-of-file because
- * the null_writer closes the FIFO without writing anything.
- */
-
- printf("interlock_test: Reading from %s\n", FIFO_PATH2);
- nbytes = read(fd, data, 16);
- if (nbytes < 0 )
- {
- fprintf(stderr, "interlock_test: read failed, errno=%d\n", errno);
- ret = 4;
- goto errout_with_file;
- }
- else if (ret != 0)
- {
- fprintf(stderr, "interlock_test: Read %d bytes of data -- aborting: %d\n", nbytes);
- ret = 5;
- goto errout_with_file;
- }
-
- /* Close the file */
-
- printf("interlock_test: Closing %s\n", FIFO_PATH2);
- if (close(fd) != 0)
- {
- fprintf(stderr, "interlock_test: close failed: %d\n", errno);
- }
-
- /* Wait for null_writer thread to complete */
-
- printf("interlock_test: Waiting for null_writer thread\n");
- ret = pthread_join(writerid, &value);
- if (ret != 0)
- {
- fprintf(stderr, "interlock_test: pthread_join failed, error=%d\n", ret);
- ret = 6;
- goto errout_with_fifo;
- }
- else
- {
- printf("interlock_test: writer returned %d\n", (int)value);
- if (value != (void*)0)
- {
- ret = 7;
- goto errout_with_fifo;
- }
- }
-
- /* unlink(FIFO_PATH2); */
- printf("interlock_test: Returning success\n");
- return 0;
-
-errout_with_file:
- if (close(fd) != 0)
- {
- fprintf(stderr, "interlock_test: close failed: %d\n", errno);
- }
-errout_with_thread:
- pthread_detach(writerid);
- pthread_cancel(writerid);
-errout_with_fifo:
- /* unlink(FIFO_PATH2); */
- printf("interlock_test: Returning %d\n", ret);
- return ret;
-}
diff --git a/nuttx/examples/pipe/pipe.h b/nuttx/examples/pipe/pipe.h
deleted file mode 100644
index 2c18fd868..000000000
--- a/nuttx/examples/pipe/pipe.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/****************************************************************************
- * examples/pipe/pipe.h
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_PIPE_PIPE_H
-#define __EXAMPLES_PIPE_PIPE_H
-
-/****************************************************************************
- * Compilation Switches
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define FIFO_PATH1 "/tmp/testfifo-1"
-#define FIFO_PATH2 "/tmp/testfifo-2"
-
-#ifndef CONFIG_EXAMPLES_PIPE_STACKSIZE
-# define CONFIG_EXAMPLES_PIPE_STACKSIZE 1024
-#endif
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Variables
- ****************************************************************************/
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-extern int transfer_test(int fdin, int fdout);
-extern int interlock_test(void);
-extern int redirection_test(void);
-
-#endif /* __EXAMPLES_PIPE_PIPE_H */
diff --git a/nuttx/examples/pipe/pipe_main.c b/nuttx/examples/pipe/pipe_main.c
deleted file mode 100644
index 97e728eb7..000000000
--- a/nuttx/examples/pipe/pipe_main.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/****************************************************************************
- * examples/pipe/pipe_main.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/stat.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sched.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#include "pipe.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- int filedes[2];
- int ret;
-
- /* Test FIFO logic */
-
- printf("\nuser_start: Performing FIFO test\n");
- ret = mkfifo(FIFO_PATH1, 0666);
- if (ret < 0)
- {
- fprintf(stderr, "user_start: mkfifo failed with errno=%d\n", errno);
- return 1;
- }
-
- /* Open one end of the FIFO for reading and the other end for writing. NOTE:
- * the following might not work on most FIFO implementations because the attempt
- * to open just one end of the FIFO for writing might block. The NuttX FIFOs block
- * only on open for read-only (see interlock_test()).
- */
-
- filedes[1] = open(FIFO_PATH1, O_WRONLY);
- if (filedes[1] < 0)
- {
- fprintf(stderr, "user_start: Failed to open FIFO %s for writing, errno=%d\n",
- FIFO_PATH1, errno);
- return 2;
- }
-
- filedes[0] = open(FIFO_PATH1, O_RDONLY);
- if (filedes[0] < 0)
- {
- fprintf(stderr, "user_start: Failed to open FIFO %s for reading, errno=%d\n",
- FIFO_PATH1, errno);
- if (close(filedes[1]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
- return 3;
- }
-
- /* Then perform the test using those file descriptors */
-
- ret = transfer_test(filedes[0], filedes[1]);
- if (close(filedes[0]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
- if (close(filedes[1]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
- /* unlink(FIFO_PATH1); fails */
-
- if (ret != 0)
- {
- fprintf(stderr, "user_start: FIFO test FAILED (%d)\n", ret);
- return 4;
- }
- printf("user_start: FIFO test PASSED\n");
-
- /* Test PIPE logic */
-
- printf("\nuser_start: Performing pipe test\n");
- ret = pipe(filedes);
- if (ret < 0)
- {
- fprintf(stderr, "user_start: pipe failed with errno=%d\n", errno);
- return 5;
- }
-
- /* Then perform the test using those file descriptors */
-
- ret = transfer_test(filedes[0], filedes[1]);
- if (close(filedes[0]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
- if (close(filedes[1]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
-
- if (ret != 0)
- {
- fprintf(stderr, "user_start: PIPE test FAILED (%d)\n", ret);
- return 6;
- }
- printf("user_start: PIPE test PASSED\n");
-
- /* Perform the FIFO interlock test */
-
- printf("\nuser_start: Performing pipe interlock test\n");
- ret = interlock_test();
- if (ret != 0)
- {
- fprintf(stderr, "user_start: FIFO interlock test FAILED (%d)\n", ret);
- return 7;
- }
- printf("user_start: PIPE interlock test PASSED\n");
-
- /* Perform the pipe redirection test */
-
- printf("\nuser_start: Performing redirection test\n");
- ret = redirection_test();
- if (ret != 0)
- {
- fprintf(stderr, "user_start: FIFO redirection test FAILED (%d)\n", ret);
- return 7;
- }
- printf("user_start: PIPE redirection test PASSED\n");
-
- fflush(stdout);
- return 0;
-}
diff --git a/nuttx/examples/pipe/redirect_test.c b/nuttx/examples/pipe/redirect_test.c
deleted file mode 100644
index 45e86c356..000000000
--- a/nuttx/examples/pipe/redirect_test.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/****************************************************************************
- * examples/pipe/redirect_test.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sched.h>
-#include <semaphore.h>
-#include <errno.h>
-
-#include "pipe.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define READ_SIZE 37
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static sem_t g_rddone;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: redirect_reader
- ****************************************************************************/
-
-static int redirect_reader(int argc, char *argv[])
-{
- char buffer[READ_SIZE];
- int fdin;
- int fdout;
- int ret;
- int nbytes = 0;
-
- printf("redirect_reader: started with fdin=%s\n", argv[1]);
-
- /* Convert the fdin to binary */
-
- fdin = atoi(argv[1]);
- fdout = atoi(argv[2]);
-
- /* Close fdout -- we don't need it */
-
- ret = close(fdout);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: failed to close fdout=%d\n", fdout);
- return 1;
- }
-
- /* Re-direct the fdin to stdin */
-
- ret = dup2(fdin, 0);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: dup2 failed: %d\n", errno);
- close(fdin);
- return 2;
- }
-
- /* Close the original file descriptor */
-
- ret = close(fdin);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: failed to close fdin=%d\n", fdin);
- return 3;
- }
-
- /* Then read from stdin until we hit the end of file */
-
- fflush(stdout);
- for (;;)
- {
- /* Read from stdin */
-
- ret = read(0, buffer, READ_SIZE);
- if (ret < 0 )
- {
- fprintf(stderr, "redirect_reader: read failed, errno=%d\n", errno);
- return 4;
- }
- else if (ret == 0)
- {
- break;
- }
- nbytes += ret;
-
- /* Echo to stdout */
-
- ret = write(1, buffer, ret);
- if (ret < 0)
- {
- fprintf(stderr, "redirect_reader: read failed, errno=%d\n", errno);
- return 5;
- }
- }
-
- printf("redirect_reader: %d bytes read\n", nbytes);
- ret = close(0);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: failed to close fd=0\n");
- return 6;
- }
-
- sem_post(&g_rddone);
- printf("redirect_reader: Returning success\n");
- return 0;
-}
-
-/****************************************************************************
- * Name: redirect_writer
- ****************************************************************************/
-
-static int redirect_writer(int argc, char *argv[])
-{
- int fdin;
- int fdout;
- int nbytes = 0;
- int ret;
-
- fprintf(stderr, "redirect_writer: started with fdout=%s\n", argv[2]);
-
- /* Convert the fdout to binary */
-
- fdin = atoi(argv[1]);
- fdout = atoi(argv[2]);
-
- /* Close fdin -- we don't need it */
-
- ret = close(fdin);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: failed to close fdin=%d\n", fdin);
- return 1;
- }
-
- /* Re-direct the fdout to stdout */
-
- ret = dup2(fdout, 1);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_writer: dup2 failed: %d\n", errno);
- return 2;
- }
-
- /* Close the original file descriptor */
-
- ret = close(fdout);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_reader: failed to close fdout=%d\n", fdout);
- return 3;
- }
-
- /* Then write a bunch of stuff to stdout */
-
- fflush(stderr);
- nbytes += printf("\nFour score and seven years ago our fathers brought forth on this continent a new nation,\n");
- nbytes += printf("conceived in Liberty, and dedicated to the proposition that all men are created equal.\n");
- nbytes += printf("\nNow we are engaged in a great civil war, testing whether that nation, or any nation, so\n");
- nbytes += printf("conceived and so dedicated, can long endure. We are met on a great battle-field of that war.\n");
- nbytes += printf("We have come to dedicate a portion of that field, as a final resting place for those who here\n");
- nbytes += printf("gave their lives that that nation might live. It is altogether fitting and proper that we\n");
- nbytes += printf("should do this.\n");
- nbytes += printf("\nBut, in a larger sense, we can not dedicate - we can not consecrate - we can not hallow - this ground.\n");
- nbytes += printf("The brave men, living and dead, who struggled here, have consecrated it, far above our poor power\n");
- nbytes += printf("to add or detract. The world will little note, nor long remember what we say here, but it can\n");
- nbytes += printf("never forget what they did here. It is for us the living, rather, to be dedicated here to the\n");
- nbytes += printf("unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to\n");
- nbytes += printf("be here dedicated to the great task remaining before us - that from these honored dead we take\n");
- nbytes += printf("increased devotion to that cause for which they gave the last full measure of devotion - that we\n");
- nbytes += printf("here highly resolve that these dead shall not have died in vain - that this nation, under God,\n");
- nbytes += printf("shall have a new birth of freedom - and that government of the people, by the people, for the\n");
- nbytes += printf("people, shall not perish from the earth.\n\n");
- fflush(stdout);
-
- fprintf(stderr, "redirect_writer: %d bytes written\n", nbytes);
-
- ret = close(1);
- if (ret != 0)
- {
- fprintf(stderr, "redirect_writer: failed to close fd=1\n");
- return 4;
- }
-
- fprintf(stderr, "redirect_writer: Returning success\n");
- return 0;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: redirection_test
- ****************************************************************************/
-
-int redirection_test(void)
-{
- const char *argv[3];
- char buffer1[8];
- char buffer2[8];
- int readerid;
- int writerid;
- int filedes[2];
- int ret;
-
- sem_init(&g_rddone, 0, 0);
-
- /* Create the pipe */
-
- ret = pipe(filedes);
- if (ret < 0)
- {
- fprintf(stderr, "redirection_test: pipe failed with errno=%d\n", errno);
- return 5;
- }
-
- sprintf(buffer1, "%d", filedes[0]);
- argv[0] = buffer1;
- sprintf(buffer2, "%d", filedes[1]);
- argv[1] = buffer2;
- argv[2] = NULL;
-
- /* Start redirect_reader thread */
-
- printf("redirection_test: Starting redirect_reader task with fd=%d\n", filedes[0]);
- readerid = task_create("redirect_reader", 50, CONFIG_EXAMPLES_PIPE_STACKSIZE, redirect_reader, argv);
- if (readerid < 0)
- {
- fprintf(stderr, "redirection_test: Failed to create redirect_writer task: %d\n", errno);
- return 1;
- }
-
- /* Start redirect_writer task */
-
- printf("redirection_test: Starting redirect_writer task with fd=%d\n", filedes[1]);
- writerid = task_create("redirect_writer", 50, CONFIG_EXAMPLES_PIPE_STACKSIZE, redirect_writer, argv);
- if (writerid < 0)
- {
- fprintf(stderr, "redirection_test: Failed to create redirect_writer task: %d\n", errno);
- ret = task_delete(readerid);
- if (ret != 0)
- {
- fprintf(stderr, "redirection_test: Failed to delete redirect_reader task %d\n", errno);
- }
- return 2;
- }
-
- /* We should be able to close the pipe file descriptors now. */
-
- if (close(filedes[0]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
- if (close(filedes[1]) != 0)
- {
- fprintf(stderr, "user_start: close failed: %d\n", errno);
- }
-
- if (ret != 0)
- {
- fprintf(stderr, "user_start: PIPE test FAILED (%d)\n", ret);
- return 6;
- }
-
- /* Wait for redirect_writer thread to complete */
-
- printf("redirection_test: Waiting...\n");
- fflush(stdout);
- sem_wait(&g_rddone);
-
- printf("redirection_test: returning %d\n", ret);
- return ret;
-}
-
diff --git a/nuttx/examples/pipe/transfer_test.c b/nuttx/examples/pipe/transfer_test.c
deleted file mode 100644
index cb8cad04a..000000000
--- a/nuttx/examples/pipe/transfer_test.c
+++ /dev/null
@@ -1,242 +0,0 @@
-/****************************************************************************
- * examples/pipe/transfer_test.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "pipe.h"
-
-/****************************************************************************
- * Pre-proecessor Definitions
- ****************************************************************************/
-
-#define MAX_BYTE 13
-
-#define WRITE_SIZE MAX_BYTE
-#define NWRITES 1400
-#define NWRITE_BYTES (NWRITES * WRITE_SIZE)
-
-#define READ_SIZE (2*MAX_BYTE)
-#define NREADS (NWRITES / 2)
-#define NREAD_BYTES NWRITE_BYTES
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: transfer_reader
- ****************************************************************************/
-
-static void *transfer_reader(pthread_addr_t pvarg)
-{
- char buffer[READ_SIZE];
- int fd = (int)pvarg;
- int ret;
- int nbytes;
- int value;
- int ndx;
-
- printf("transfer_reader: started\n");
- for (nbytes = 0, value = 0; nbytes < NREAD_BYTES;)
- {
- ret = read(fd, buffer, READ_SIZE);
- if (ret < 0 )
- {
- fprintf(stderr, "transfer_reader: read failed, errno=%d\n", errno);
- return (void*)1;
- }
- else if (ret == 0)
- {
- if (nbytes < NREAD_BYTES)
- {
- fprintf(stderr, "transfer_reader: Too few bytes read -- aborting: %d\n", nbytes);
- return (void*)2;
- }
- break;
- }
- for (ndx = 0; ndx < ret; ndx++)
- {
- if (value >= WRITE_SIZE)
- {
- value = 0;
- }
- if (buffer[ndx] != value)
- {
- fprintf(stderr, "transfer_reader: Byte %d, expected %d, found %d\n",
- nbytes + ndx, value, buffer[ndx]);
- return (void*)3;
- }
- value++;
- }
- nbytes += ret;
- if (nbytes > NREAD_BYTES)
- {
- fprintf(stderr, "transfer_reader: Too many bytes read -- aborting: %d\n", nbytes);
- return (void*)4;
- }
- }
- printf("transfer_reader: %d bytes read\n", nbytes);
- return (void*)0;
-}
-
-/****************************************************************************
- * Name: transfer_writer
- ****************************************************************************/
-
-static void *transfer_writer(pthread_addr_t pvarg)
-{
- char buffer[WRITE_SIZE];
- int fd = (int)pvarg;
- int ret;
- int i;
-
- printf("transfer_writer: started\n");
- for (i = 0; i < WRITE_SIZE; i++)
- {
- buffer[i] = i;
- }
-
- for (i = 0; i < NWRITES; i++)
- {
- ret = write(fd, buffer, WRITE_SIZE);
- if (ret < 0 )
- {
- fprintf(stderr, "transfer_writer: write failed, errno=%d\n", errno);
- return (void*)1;
- }
- else if (ret != WRITE_SIZE)
- {
- fprintf(stderr, "transfer_writer: Unexpected write size=%d\n", ret);
- return (void*)2;
- }
- }
- printf("transfer_writer: %d bytes written\n", NWRITE_BYTES);
- return (void*)0;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: transfer_test
- ****************************************************************************/
-
-int transfer_test(int fdin, int fdout)
-{
- pthread_t readerid;
- pthread_t writerid;
- void *value;
- int tmp;
- int ret;
-
- /* Start transfer_reader thread */
-
- printf("transfer_test: Starting transfer_reader thread\n");
- ret = pthread_create(&readerid, NULL, transfer_reader, (pthread_addr_t)fdin);
- if (ret != 0)
- {
- fprintf(stderr, "transfer_test: Failed to create transfer_reader thread, error=%d\n", ret);
- return 1;
- }
-
- /* Start transfer_writer thread */
-
- printf("transfer_test: Starting transfer_writer thread\n");
- ret = pthread_create(&writerid, NULL, transfer_writer, (pthread_addr_t)fdout);
- if (ret != 0)
- {
- fprintf(stderr, "transfer_test: Failed to create transfer_writer thread, error=%d\n", ret);
- pthread_detach(readerid);
- ret = pthread_cancel(readerid);
- if (ret != 0)
- {
- fprintf(stderr, "transfer_test: Failed to cancel transfer_reader thread, error=%d\n", ret);
- }
- return 2;
- }
-
- /* Wait for transfer_writer thread to complete */
-
- printf("transfer_test: Waiting for transfer_writer thread\n");
- ret = pthread_join(writerid, &value);
- if (ret != 0)
- {
- fprintf(stderr, "transfer_test: pthread_join failed, error=%d\n", ret);
- }
- else
- {
- ret = (int)value;
- printf("transfer_test: transfer_writer returned %d\n", ret);
- }
-
- /* Wait for transfer_reader thread to complete */
-
- printf("transfer_test: Waiting for transfer_reader thread\n");
- tmp = pthread_join(readerid, &value);
- if (tmp != 0)
- {
- fprintf(stderr, "transfer_test: pthread_join failed, error=%d\n", ret);
- }
- else
- {
- tmp = (int)value;
- printf("transfer_test: transfer_reader returned %d\n", tmp);
- }
-
- if (ret == 0)
- {
- ret = tmp;
- }
- printf("transfer_test: returning %d\n", ret);
- return ret;
-}
-
diff --git a/nuttx/examples/poll/Makefile b/nuttx/examples/poll/Makefile
deleted file mode 100644
index c8c4f1f1a..000000000
--- a/nuttx/examples/poll/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/poll/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = poll_main.c poll_listener.c select_listener.c net_listener.c net_reader.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend host
-
--include Make.dep
diff --git a/nuttx/examples/poll/host.c b/nuttx/examples/poll/host.c
deleted file mode 100644
index 47f2c3e53..000000000
--- a/nuttx/examples/poll/host.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/****************************************************************************
- * examples/poll/host.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <sys/socket.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <string.h>
-#include <errno.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-
-#define pthread_addr_t void *
-#include "poll_internal.h"
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#ifndef TARGETIP
-# error TARGETIP not defined
-#endif
-
-#define IOBUFFER_SIZE 80
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
- struct sockaddr_in myaddr;
- char outbuf[IOBUFFER_SIZE];
- char inbuf[IOBUFFER_SIZE];
- int sockfd;
- int len;
- int nbytessent;
- int nbytesrecvd;
- int i;
-
- /* Create a new TCP socket */
-
- sockfd = socket(PF_INET, SOCK_STREAM, 0);
- if (sockfd < 0)
- {
- message("client socket failure %d\n", errno);
- goto errout_with_outbufs;
- }
-
- /* Connect the socket to the server */
-
- myaddr.sin_family = AF_INET;
- myaddr.sin_port = htons(LISTENER_PORT);
- myaddr.sin_addr.s_addr = inet_addr(TARGETIP);
-
- message("client: Connecting to %s...\n", TARGETIP);
- if (connect( sockfd, (struct sockaddr*)&myaddr, sizeof(struct sockaddr_in)) < 0)
- {
- message("client: connect failure: %d\n", errno);
- goto errout_with_socket;
- }
- message("client: Connected\n");
-
- /* Then send and receive messages */
-
- for (i = 0; ; i++)
- {
- sprintf(outbuf, "Remote message %d", i);
- len = strlen(outbuf);
-
- message("client: Sending '%s' (%d bytes)\n", outbuf, len);
- nbytessent = send(sockfd, outbuf, len, 0);
- message("client: Sent %d bytes\n", nbytessent);
-
- if (nbytessent < 0)
- {
- message("client: send failed: %d\n", errno);
- goto errout_with_socket;
- }
- else if (nbytessent != len)
- {
- message("client: Bad send length: %d Expected: %d\n", nbytessent, len);
- goto errout_with_socket;
- }
-
- message("client: Receiving...\n");
- nbytesrecvd = recv(sockfd, inbuf, IOBUFFER_SIZE, 0);
-
- if (nbytesrecvd < 0)
- {
- message("client: recv failed: %d\n", errno);
- goto errout_with_socket;
- }
-
- inbuf[nbytesrecvd] = '\0';
- message("client: Received '%s' (%d bytes)\n", inbuf, nbytesrecvd);
-
- if (nbytesrecvd != len)
- {
- message("client: Bad recv length: %d Expected: %d\n", nbytesrecvd, len);
- goto errout_with_socket;
- }
- else if (memcmp(inbuf, outbuf, len) != 0)
- {
- message("client: Received outbuf does not match sent outbuf\n");
- goto errout_with_socket;
- }
-
- message("client: Sleeping\n");
- sleep(8);
- }
-
- close(sockfd);
- return 0;
-
-errout_with_socket:
- close(sockfd);
-errout_with_outbufs:
- exit(1);
-}
diff --git a/nuttx/examples/poll/net_listener.c b/nuttx/examples/poll/net_listener.c
deleted file mode 100644
index 4d425c608..000000000
--- a/nuttx/examples/poll/net_listener.c
+++ /dev/null
@@ -1,428 +0,0 @@
-/****************************************************************************
- * examples/poll/net_listener.c
- *
- * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/stat.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <apps/netutils/uiplib.h>
-
-#include "poll_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define IOBUFFER_SIZE 80
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct net_listener_s
-{
- struct sockaddr_in addr;
- fd_set master;
- fd_set working;
- char buffer[IOBUFFER_SIZE];
- int listensd;
- int mxsd;
-};
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: net_closeclient
- ****************************************************************************/
-
-static bool net_closeclient(struct net_listener_s *nls, int sd)
-{
- message("net_listener: Closing host side connection sd=%d\n", sd);
- close(sd);
- FD_CLR(sd, &nls->master);
-
- /* If we just closed the max SD, then search downward for the next biggest SD. */
-
- while (FD_ISSET(nls->mxsd, &nls->master) == false)
- {
- nls->mxsd -= 1;
- }
- return true;
-}
-
-/****************************************************************************
- * Name: net_incomingdata
- ****************************************************************************/
-
-static inline bool net_incomingdata(struct net_listener_s *nls, int sd)
-{
- char *ptr;
- int nbytes;
- int ret;
-
- /* Read data from the socket */
-
-#ifdef FIONBIO
- for (;;)
-#endif
- {
- message("net_listener: Read data from sd=%d\n", sd);
- ret = recv(sd, nls->buffer, IOBUFFER_SIZE, 0);
- if (ret < 0)
- {
- if (errno != EINTR)
- {
- message("net_listener: recv failed sd=%d: %d\n", sd, errno);
- if (errno != EAGAIN)
- {
- net_closeclient(nls, sd);
- return false;
- }
- }
- }
- else if (ret == 0)
- {
- message("net_listener: Client connection lost sd=%d\n", sd);
- net_closeclient(nls, sd);
- return false;
- }
- else
- {
- nls->buffer[ret]='\0';
- message("poll_listener: Read '%s' (%d bytes)\n", nls->buffer, ret);
-
- /* Echo the data back to the client */
-
- for (nbytes = ret, ptr = nls->buffer; nbytes > 0; )
- {
- ret = send(sd, ptr, nbytes, 0);
- if (ret < 0)
- {
- if (errno != EINTR)
- {
- message("net_listener: Send failed sd=%d: \n", sd, errno);
- net_closeclient(nls, sd);
- return false;
- }
- }
- else
- {
- nbytes -= ret;
- ptr += ret;
- }
- }
- }
- }
- return 0;
-}
-
-/****************************************************************************
- * Name: net_connection
- ****************************************************************************/
-
-static inline bool net_connection(struct net_listener_s *nls)
-{
- int sd;
-
- /* Loop until all connections have been processed */
-
-#ifdef FIONBIO
- for (;;)
-#endif
- {
- message("net_listener: Accepting new connection on sd=%d\n", nls->listensd);
-
- sd = accept(nls->listensd, NULL, NULL);
- if (sd < 0)
- {
- message("net_listener: accept failed: %d\n", errno);
-
- if (errno != EINTR)
- {
- return false;
- }
- }
- else
- {
- /* Add the new connection to the master set */
-
- message("net_listener: Connection accepted for sd=%d\n", sd);
-
- FD_SET(sd, &nls->master);
- if (sd > nls->mxsd)
- {
- nls->mxsd = sd;
- }
- return true;
- }
- }
- return false;
-}
-
-/****************************************************************************
- * Name: net_mksocket
- ****************************************************************************/
-
-static inline bool net_mksocket(struct net_listener_s *nls)
-{
- int value;
- int ret;
-
- /* Create a listening socket */
-
- message("net_listener: Initializing listener socket\n");
- nls->listensd = socket(AF_INET, SOCK_STREAM, 0);
- if (nls->listensd < 0)
- {
- message("net_listener: socket failed: %d\n", errno);
- return false;
- }
-
- /* Configure the socket */
-
- value = 1;
- ret = setsockopt(nls->listensd, SOL_SOCKET, SO_REUSEADDR, (char*)&value, sizeof(int));
- if (ret < 0)
- {
- message("net_listener: setsockopt failed: %d\n", errno);
- close(nls->listensd);
- return false;
- }
-
- /* Set the socket to non-blocking */
-
-#ifdef FIONBIO
- ret = ioctl(nls->listensd, FIONBIO, (char *)&value);
- if (ret < 0)
- {
- message("net_listener: ioctl failed: %d\n", errno);
- close(nls->listensd);
- return false;
- }
-#endif
-
- /* Bind the socket */
-
- memset(&nls->addr, 0, sizeof(struct sockaddr_in));
- nls->addr.sin_family = AF_INET;
- nls->addr.sin_addr.s_addr = htonl(INADDR_ANY);
- nls->addr.sin_port = htons(LISTENER_PORT);
- ret = bind(nls->listensd, (struct sockaddr *)&nls->addr, sizeof(struct sockaddr_in));
- if (ret < 0)
- {
- message("net_listener: bind failed: %d\n", errno);
- close(nls->listensd);
- return false;
- }
-
- /* Mark the socket as a listener */
-
- ret = listen(nls->listensd, 32);
- if (ret < 0)
- {
- message("net_listener: bind failed: %d\n", errno);
- close(nls->listensd);
- return false;
- }
-
- return true;
-}
-
-/****************************************************************************
- * Name: net_configure
- ****************************************************************************/
-
-static void net_configure(void)
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_POLL_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-
- /* Configure uIP */
- /* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_POLL_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_NETMASK);
- uip_setnetmask("eth0", &addr);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: net_listener
- ****************************************************************************/
-
-void *net_listener(pthread_addr_t pvarg)
-{
- struct net_listener_s nls;
- struct timeval timeout;
- int nsds;
- int ret;
- int i;
-
- /* Configure uIP */
-
- net_configure();
-
- /* Set up a listening socket */
-
- memset(&nls, 0, sizeof(struct net_listener_s));
- if (!net_mksocket(&nls))
- {
- return (void*)1;
- }
-
- /* Initialize the 'master' file descriptor set */
-
- FD_ZERO(&nls.master);
- nls.mxsd = nls.listensd;
- FD_SET(nls.listensd, &nls.master);
-
- /* Set up a 3 second timeout */
-
- timeout.tv_sec = NET_LISTENER_DELAY;
- timeout.tv_usec = 0;
-
- /* Loop waiting for incoming connections or for incoming data
- * on any of the connect sockets.
- */
-
- for (;;)
- {
- /* Wait on select */
-
- message("net_listener: Calling select(), listener sd=%d\n", nls.listensd);
- memcpy(&nls.working, &nls.master, sizeof(fd_set));
- ret = select(nls.mxsd + 1, (FAR fd_set*)&nls.working, (FAR fd_set*)NULL, (FAR fd_set*)NULL, &timeout);
- if (ret < 0)
- {
- message("net_listener: select failed: %d\n", errno);
- break;
- }
-
- /* Check for timeout */
-
- if (ret == 0)
- {
- message("net_listener: Timeout\n");
- continue;
- }
-
- /* Find which descriptors caused the wakeup */
-
- nsds = ret;
- for (i = 0; i <= nls.mxsd && nsds > 0; i++)
- {
- /* Is this descriptor ready? */
-
- if (FD_ISSET(i, &nls.working))
- {
- /* Yes, is it our listener? */
-
- message("net_listener: Activity on sd=%d\n", i);
-
- nsds--;
- if (i == nls.listensd)
- {
- (void)net_connection(&nls);
- }
- else
- {
- net_incomingdata(&nls, i);
- }
- }
- }
- }
-
- /* Cleanup */
-
-#if 0 /* Don't get here */
- for (i = 0; i <= nls.mxsd; +i++)
- {
- if (FD_ISSET(i, &nls.master))
- {
- close(i);
- }
- }
-#endif
- return NULL; /* Keeps some compilers from complaining */
-}
diff --git a/nuttx/examples/poll/net_reader.c b/nuttx/examples/poll/net_reader.c
deleted file mode 100644
index b0cf94316..000000000
--- a/nuttx/examples/poll/net_reader.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/****************************************************************************
- * examples/poll/net_reader.c
- *
- * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/select.h>
-#include <sys/socket.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <apps/netutils/uiplib.h>
-
-#include "poll_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#define IOBUFFER_SIZE 80
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: net_configure
- ****************************************************************************/
-
-static void net_configure(void)
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_POLL_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-
- /* Configure uIP */
- /* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_POLL_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_POLL_NETMASK);
- uip_setnetmask("eth0", &addr);
-}
-
-/****************************************************************************
- * Name: net_receive
- ****************************************************************************/
-
-static void net_receive(int sd)
-{
- struct timeval timeout;
- char buffer[IOBUFFER_SIZE];
- char *ptr;
- fd_set readset;
- int nbytes;
- int ret;
-
- /* Set up the timeout */
-
- timeout.tv_sec = NET_LISTENER_DELAY;
- timeout.tv_usec = 0;
-
- /* Loop while we have the connection */
-
- for (;;)
- {
- /* Wait for incoming message */
-
- do
- {
- FD_ZERO(&readset);
- FD_SET(sd, &readset);
- ret = select(sd + 1, (FAR fd_set*)&readset, (FAR fd_set*)NULL, (FAR fd_set*)NULL, &timeout);
- }
- while (ret < 0 && errno == EINTR);
-
- /* Something has happened */
-
- if (ret < 0)
- {
- message("net_reader: select failed: %d\n", errno);
- return;
- }
- else if (ret == 0)
- {
- message("net_reader: Timeout\n");
- }
- else
- {
- message("net_reader: Read data from sd=%d\n", sd);
- memset(buffer, '?', IOBUFFER_SIZE); /* Just to make sure we really receive something */
- ret = recv(sd, buffer, IOBUFFER_SIZE, 0);
- if (ret < 0)
- {
- if (errno != EINTR)
- {
- message("net_reader: recv failed sd=%d: %d\n", sd, errno);
- if (errno != EAGAIN)
- {
- return;
- }
- }
- }
- else if (ret == 0)
- {
- message("net_reader: Client connection lost sd=%d\n", sd);
- return;
- }
- else
- {
- buffer[ret]='\0';
- message("net_reader: Read '%s' (%d bytes)\n", buffer, ret);
-
- /* Echo the data back to the client */
-
- for (nbytes = ret, ptr = buffer; nbytes > 0; )
- {
- ret = send(sd, ptr, nbytes, 0);
- if (ret < 0)
- {
- if (errno != EINTR)
- {
- message("net_reader: Send failed sd=%d: %d\n", sd, errno);
- return;
- }
- }
- else
- {
- nbytes -= ret;
- ptr += ret;
- }
- }
- }
- }
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: net_reader
- ****************************************************************************/
-
-void *net_reader(pthread_addr_t pvarg)
-{
- struct sockaddr_in addr;
-#ifdef POLL_HAVE_SOLINGER
- struct linger ling;
-#endif
- int listensd;
- int acceptsd;
- socklen_t addrlen;
- int optval;
-
- /* Configure uIP */
-
- net_configure();
-
- /* Create a new TCP socket */
-
- listensd = socket(PF_INET, SOCK_STREAM, 0);
- if (listensd < 0)
- {
- message("net_reader: socket failure: %d\n", errno);
- goto errout;
- }
-
- /* Set socket to reuse address */
-
- optval = 1;
- if (setsockopt(listensd, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, sizeof(int)) < 0)
- {
- message("net_reader: setsockopt SO_REUSEADDR failure: %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Bind the socket to a local address */
-
- addr.sin_family = AF_INET;
- addr.sin_port = HTONS(LISTENER_PORT);
- addr.sin_addr.s_addr = INADDR_ANY;
-
- if (bind(listensd, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)) < 0)
- {
- message("net_reader: bind failure: %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Listen for connections on the bound TCP socket */
-
- if (listen(listensd, 5) < 0)
- {
- message("net_reader: listen failure %d\n", errno);
- goto errout_with_listensd;
- }
-
- /* Connection loop */
-
- for (;;)
- {
- /* Accept only one connection */
-
- message("net_reader: Accepting new connections on port %d\n", LISTENER_PORT);
- addrlen = sizeof(struct sockaddr_in);
- acceptsd = accept(listensd, (struct sockaddr*)&addr, &addrlen);
- if (acceptsd < 0)
- {
- message("net_reader: accept failure: %d\n", errno);
- continue;
- }
- message("net_reader: Connection accepted on sd=%d\n", acceptsd);
-
- /* Configure to "linger" until all data is sent when the socket is closed */
-
-#ifdef POLL_HAVE_SOLINGER
- ling.l_onoff = 1;
- ling.l_linger = 30; /* timeout is seconds */
- if (setsockopt(acceptsd, SOL_SOCKET, SO_LINGER, &ling, sizeof(struct linger)) < 0)
- {
- message("net_reader: setsockopt SO_LINGER failure: %d\n", errno);
- goto errout_with_acceptsd;
- }
-#endif
-
- /* Handle incoming messsages on the connection. */
-
- net_receive(acceptsd);
-
- message("net_reader: Closing sd=%d\n", acceptsd);
- close(acceptsd);
- }
-
-#ifdef POLL_HAVE_SOLINGER
-errout_with_acceptsd:
- close(acceptsd);
-#endif
-errout_with_listensd:
- close(listensd);
-errout:
- return NULL;
-}
diff --git a/nuttx/examples/poll/poll_internal.h b/nuttx/examples/poll/poll_internal.h
deleted file mode 100644
index cbf42ac56..000000000
--- a/nuttx/examples/poll/poll_internal.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/****************************************************************************
- * examples/poll/poll_internal.h
- *
- * Copyright (C) 2008, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_PIPE_PIPE_H
-#define __EXAMPLES_PIPE_PIPE_H
-
-/****************************************************************************
- * Compilation Switches
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <pthread.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_DISABLE_POLL
-# error "The polling API is disabled"
-#endif
-
-/* Here are all of the configuration settings that must be met to have TCP/IP
- * poll/select support. This kind of looks like overkill.
- *
- * CONFIG_NET - Network support must be enabled
- * CONFIG_NSOCKET_DESCRIPTORS - Socket descriptors must be allocated
- * CONFIG_NET_TCP - Only support on TCP (because read-ahead
- * ibuffering s not yet support for UDP)
- * CONFIG_NET_NTCP_READAHEAD_BUFFERS - TCP/IP read-ahead buffering must be enabled
- */
-
-#if defined(CONFIG_NET) && CONFIG_NSOCKET_DESCRIPTORS > 0 && \
- defined(CONFIG_NET_TCP) && CONFIG_NET_NTCP_READAHEAD_BUFFERS > 0
-# define HAVE_NETPOLL 1
-#else
-# undef HAVE_NETPOLL
-#endif
-
-/* If debug is enabled, then use lib_rawprintf so that OS debug output and
- * the test output are synchronized.
- *
- * These macros will differ depending upon if the toolchain supports
- * macros with a variable number of arguments or not.
- */
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_rawprintf(__VA_ARGS__)
-# define msgflush()
-# else
-# define message(...) printf(__VA_ARGS__)
-# define msgflush() fflush(stdout)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_rawprintf
-# define msgflush()
-# else
-# define message printf
-# define msgflush() fflush(stdout)
-# endif
-#endif
-
-#define FIFO_PATH1 "/dev/fifo0"
-#define FIFO_PATH2 "/dev/fifo1"
-
-#define POLL_LISTENER_DELAY 2000 /* 2 seconds */
-#define SELECT_LISTENER_DELAY 4 /* 4 seconds */
-#define NET_LISTENER_DELAY 3 /* 3 seconds */
-#define WRITER_DELAY 6 /* 6 seconds */
-
-#define LISTENER_PORT 5471
-
-/****************************************************************************
- * Public Types
- ****************************************************************************/
-
-/****************************************************************************
- * Public Variables
- ****************************************************************************/
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-extern void *poll_listener(pthread_addr_t pvarg);
-extern void *select_listener(pthread_addr_t pvarg);
-
-#ifdef HAVE_NETPOLL
-extern void *net_listener(pthread_addr_t pvarg);
-extern void *net_reader(pthread_addr_t pvarg);
-#endif
-#endif /* __EXAMPLES_PIPE_PIPE_H */
diff --git a/nuttx/examples/poll/poll_listener.c b/nuttx/examples/poll/poll_listener.c
deleted file mode 100644
index 816647e34..000000000
--- a/nuttx/examples/poll/poll_listener.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/****************************************************************************
- * examples/poll/poll_listener.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <poll.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <debug.h>
-
-#include "poll_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#if defined(CONFIG_DEV_CONSOLE) && !defined(CONFIG_DEV_LOWCONSOLE)
-# define HAVE_CONSOLE
-# define NPOLLFDS 2
-# define CONSNDX 0
-# define FIFONDX 1
-#else
-# undef HAVE_CONSOLE
-# define NPOLLFDS 1
-# define FIFONDX 0
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: poll_listener
- ****************************************************************************/
-
-void *poll_listener(pthread_addr_t pvarg)
-{
- struct pollfd fds[NPOLLFDS];
- char buffer[64];
- ssize_t nbytes;
- bool timeout;
- bool pollin;
- int nevents;
- int fd;
- int ret;
- int i;
-
- /* Open the FIFO for non-blocking read */
-
- message("poll_listener: Opening %s for non-blocking read\n", FIFO_PATH1);
- fd = open(FIFO_PATH1, O_RDONLY|O_NONBLOCK);
- if (fd < 0)
- {
- message("poll_listener: ERROR Failed to open FIFO %s: %d\n",
- FIFO_PATH1, errno);
- (void)close(fd);
- return (void*)-1;
- }
-
- /* Loop forever */
-
- for (;;)
- {
- message("poll_listener: Calling poll()\n");
-
- memset(fds, 0, sizeof(struct pollfd)*NPOLLFDS);
-#ifdef HAVE_CONSOLE
- fds[CONSNDX].fd = 0;
- fds[CONSNDX].events = POLLIN;
- fds[CONSNDX].revents = 0;
-#endif
- fds[FIFONDX].fd = fd;
- fds[FIFONDX].events = POLLIN;
- fds[FIFONDX].revents = 0;
-
- timeout = false;
- pollin = false;
-
- ret = poll(fds, NPOLLFDS, POLL_LISTENER_DELAY);
-
- message("\npoll_listener: poll returned: %d\n", ret);
- if (ret < 0)
- {
- message("poll_listener: ERROR poll failed: %d\n", errno);
- }
- else if (ret == 0)
- {
- message("poll_listener: Timeout\n");
- timeout = true;
- }
- else if (ret > NPOLLFDS)
- {
- message("poll_listener: ERROR poll reported: %d\n");
- }
- else
- {
- pollin = true;
- }
-
- nevents = 0;
- for (i = 0; i < NPOLLFDS; i++)
- {
- message("poll_listener: FIFO revents[%d]=%02x\n", i, fds[i].revents);
- if (timeout)
- {
- if (fds[i].revents != 0)
- {
- message("poll_listener: ERROR? expected revents=00, received revents[%d]=%02x\n",
- fds[i].revents, i);
- }
- }
- else if (pollin)
- {
- if (fds[i].revents == POLLIN)
- {
- nevents++;
- }
- else if (fds[i].revents != 0)
- {
- message("poll_listener: ERROR unexpected revents[i]=%02x\n",
- i, fds[i].revents);
- }
- }
- }
-
- if (pollin && nevents != ret)
- {
- message("poll_listener: ERROR found %d events, poll reported %d\n", nevents, ret);
- }
-
- /* In any event, read until the pipe/serial is empty */
-
- for (i = 0; i < NPOLLFDS; i++)
- {
- do
- {
-#ifdef HAVE_CONSOLE
- /* Hack to work around the fact that the console driver on the
- * simulator is always non-blocking.
- */
-
- if (i == CONSNDX)
- {
- if ((fds[CONSNDX].revents & POLLIN) != 0)
- {
- buffer[0] = getchar();
- nbytes = 1;
- }
- else
- {
- nbytes = 0;
- }
- }
- else
-#endif
- {
- /* The pipe works differently, it returns whatever data
- * it has available without blocking.
- */
-
- nbytes = read(fds[i].fd, buffer, 63);
- }
-
- if (nbytes <= 0)
- {
- if (nbytes == 0 || errno == EAGAIN)
- {
- if ((fds[i].revents & POLLIN) != 0)
- {
- message("poll_listener: ERROR no read data[%d]\n", i);
- }
- }
- else if (errno != EINTR)
- {
- message("poll_listener: read[%d] failed: %d\n", i, errno);
- }
- nbytes = 0;
- }
- else
- {
- if (timeout)
- {
- message("poll_listener: ERROR? Poll timeout, but data read[%d]\n", i);
- message(" (might just be a race condition)\n");
- }
-
- buffer[nbytes] = '\0';
- message("poll_listener: Read[%d] '%s' (%d bytes)\n", i, buffer, nbytes);
- }
-
- /* Suppress error report if no read data on the next time through */
-
- fds[i].revents = 0;
- }
- while (nbytes > 0);
- }
-
- /* Make sure that everything is displayed */
-
- msgflush();
- }
-
- /* Won't get here */
-
- (void)close(fd);
- return NULL;
-}
diff --git a/nuttx/examples/poll/poll_main.c b/nuttx/examples/poll/poll_main.c
deleted file mode 100644
index d66e7f269..000000000
--- a/nuttx/examples/poll/poll_main.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/****************************************************************************
- * examples/poll/poll_main.c
- *
- * Copyright (C) 2008, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <fcntl.h>
-#include <poll.h>
-#include <errno.h>
-#include <debug.h>
-
-#include "poll_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- char buffer[64];
- ssize_t nbytes;
- pthread_t tid1;
- pthread_t tid2;
-#ifdef HAVE_NETPOLL
- pthread_t tid3;
-#endif
- int count;
- int fd1 = -1;
- int fd2 = -1;
- int ret;
- int exitcode = 0;
-
- /* Open FIFOs */
-
- message("\nuser_start: Creating FIFO %s\n", FIFO_PATH1);
- ret = mkfifo(FIFO_PATH1, 0666);
- if (ret < 0)
- {
- message("user_start: mkfifo failed: %d\n", errno);
- exitcode = 1;
- goto errout;
- }
-
- message("\nuser_start: Creating FIFO %s\n", FIFO_PATH2);
- ret = mkfifo(FIFO_PATH2, 0666);
- if (ret < 0)
- {
- message("user_start: mkfifo failed: %d\n", errno);
- exitcode = 2;
- goto errout;
- }
-
- /* Open the FIFOs for blocking, write */
-
- fd1 = open(FIFO_PATH1, O_WRONLY);
- if (fd1 < 0)
- {
- message("user_start: Failed to open FIFO %s for writing, errno=%d\n",
- FIFO_PATH1, errno);
- exitcode = 3;
- goto errout;
- }
-
- fd2 = open(FIFO_PATH2, O_WRONLY);
- if (fd2 < 0)
- {
- message("user_start: Failed to open FIFO %s for writing, errno=%d\n",
- FIFO_PATH2, errno);
- exitcode = 4;
- goto errout;
- }
-
- /* Start the listeners */
-
- message("user_start: Starting poll_listener thread\n");
-
- ret = pthread_create(&tid1, NULL, poll_listener, NULL);
- if (ret != 0)
- {
- message("user_start: Failed to create poll_listener thread: %d\n", ret);
- exitcode = 5;
- goto errout;
- }
-
- message("user_start: Starting select_listener thread\n");
-
- ret = pthread_create(&tid2, NULL, select_listener, NULL);
- if (ret != 0)
- {
- message("user_start: Failed to create select_listener thread: %d\n", ret);
- exitcode = 6;
- goto errout;
- }
-
-#ifdef HAVE_NETPOLL
-#ifdef CONFIG_NET_TCPBACKLOG
- message("user_start: Starting net_listener thread\n");
-
- ret = pthread_create(&tid3, NULL, net_listener, NULL);
-#else
- message("user_start: Starting net_reader thread\n");
-
- ret = pthread_create(&tid3, NULL, net_reader, NULL);
-#endif
- if (ret != 0)
- {
- message("user_start: Failed to create net_listener thread: %d\n", ret);
- }
-#endif
-
- /* Loop forever */
-
- for (count = 0; ; count++)
- {
- /* Send a message to the listener... this should wake the listener
- * from the poll.
- */
-
- sprintf(buffer, "Message %d", count);
- nbytes = write(fd1, buffer, strlen(buffer));
- if (nbytes < 0)
- {
- message("user_start: Write to fd1 failed: %d\n", errno);
- exitcode = 7;
- goto errout;
- }
-
- nbytes = write(fd2, buffer, strlen(buffer));
- if (nbytes < 0)
- {
- message("user_start: Write fd2 failed: %d\n", errno);
- exitcode = 8;
- goto errout;
- }
-
- message("\nuser_start: Sent '%s' (%d bytes)\n", buffer, nbytes);
- msgflush();
-
- /* Wait awhile. This delay should be long enough that the
- * listener will timeout.
- */
-
- sleep(WRITER_DELAY);
- }
-
-errout:
- if (fd1 >= 0)
- {
- close(fd1);
- }
-
- if (fd2 >= 0)
- {
- close(fd2);
- }
-
- fflush(stdout);
- return exitcode;
-}
diff --git a/nuttx/examples/poll/select_listener.c b/nuttx/examples/poll/select_listener.c
deleted file mode 100644
index 80039ada3..000000000
--- a/nuttx/examples/poll/select_listener.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/****************************************************************************
- * examples/poll/select_listener.c
- *
- * Copyright (C) 2008, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/select.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <debug.h>
-
-#include "poll_internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: select_listener
- ****************************************************************************/
-
-void *select_listener(pthread_addr_t pvarg)
-{
- fd_set rfds;
- struct timeval tv;
- char buffer[64];
- ssize_t nbytes;
- bool timeout;
- bool ready;
- int fd;
- int ret;
-
- /* Open the FIFO for non-blocking read */
-
- message("select_listener: Opening %s for non-blocking read\n", FIFO_PATH2);
- fd = open(FIFO_PATH2, O_RDONLY|O_NONBLOCK);
- if (fd < 0)
- {
- message("select_listener: ERROR Failed to open FIFO %s: %d\n",
- FIFO_PATH2, errno);
- (void)close(fd);
- return (void*)-1;
- }
-
- /* Loop forever */
-
- for (;;)
- {
- message("select_listener: Calling select()\n");
-
- FD_ZERO(&rfds);
- FD_SET(fd, &rfds);
-
- tv.tv_sec = SELECT_LISTENER_DELAY;
- tv.tv_usec = 0;
-
- timeout = false;
- ready = false;
-
- ret = select(fd+1, (FAR fd_set*)&rfds, (FAR fd_set*)NULL, (FAR fd_set*)NULL, &tv);
- message("\nselect_listener: select returned: %d\n", ret);
-
- if (ret < 0)
- {
- message("select_listener: ERROR select failed: %d\n");
- }
- else if (ret == 0)
- {
- message("select_listener: Timeout\n");
- timeout = true;
- }
- else
- {
- if (ret != 1)
- {
- message("select_listener: ERROR poll reported: %d\n");
- }
- else
- {
- ready = true;
- }
-
- if (!FD_ISSET(fd, rfds))
- {
- message("select_listener: ERROR fd=%d not in fd_set\n");
- }
- }
-
- /* In any event, read until the pipe is empty */
-
- do
- {
- nbytes = read(fd, buffer, 63);
- if (nbytes <= 0)
- {
- if (nbytes == 0 || errno == EAGAIN)
- {
- if (ready)
- {
- message("select_listener: ERROR no read data\n");
- }
- }
- else if (errno != EINTR)
- {
- message("select_listener: read failed: %d\n", errno);
- }
- nbytes = 0;
- }
- else
- {
- if (timeout)
- {
- message("select_listener: ERROR? Poll timeout, but data read\n");
- message(" (might just be a race condition)\n");
- }
-
- buffer[nbytes] = '\0';
- message("select_listener: Read '%s' (%d bytes)\n", buffer, nbytes);
- }
-
- timeout = false;
- ready = false;
- }
- while (nbytes > 0);
-
- /* Make sure that everything is displayed */
-
- msgflush();
- }
-
- /* Won't get here */
-
- (void)close(fd);
- return NULL;
-}
diff --git a/nuttx/examples/romfs/Makefile b/nuttx/examples/romfs/Makefile
deleted file mode 100644
index 67f68de9d..000000000
--- a/nuttx/examples/romfs/Makefile
+++ /dev/null
@@ -1,95 +0,0 @@
-############################################################################
-# examples/romfs/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-
-CSRCS = romfs_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-.PHONY: clean distclean checkgenromfs
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-checkgenromfs:
- @genromfs -h 1>/dev/null 2>&1 || { \
- echo "Host executable genromfs not available in PATH"; \
- echo "You may need to download in from http://romfs.sourceforge.net/"; \
- exit 1; \
- }
-
-testdir : testdir.tar.gz
- @tar zxf $< || { echo "tar zxf $< failed" ; exit 1 ; }
-
-testdir.img : checkgenromfs testdir
- @genromfs -f $@ -d testdir -V "ROMFS_Test" || { echo "genromfs failed" ; exit 1 ; }
-
-romfs_testdir.h : testdir.img
- @xxd -i $< >$@ || { echo "xxd of $< failed" ; exit 1 ; }
-
-$(BIN): romfs_testdir.h $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend testdir.img
- @rm -rf testdir
-
--include Make.dep
diff --git a/nuttx/examples/romfs/romfs_main.c b/nuttx/examples/romfs/romfs_main.c
deleted file mode 100644
index 2e231a31c..000000000
--- a/nuttx/examples/romfs/romfs_main.c
+++ /dev/null
@@ -1,506 +0,0 @@
-/****************************************************************************
- * examples/romfs/romfs_main.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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.
- *
- ****************************************************************************/
-
-/* Mount the ROMFS image, Verifty that it contains the
- * following:
- *
- * testdir
- * |---------- [drwxr-xr-x 4096] adir
- * | |------ [-rw-r--r-- 21] anotherfile.txt
- * | |------ [drwxr-xr-x 4096] subdir
- * | | `-- [-rw-r--r-- 21] subdirfile.txt
- * | `------ [-rw-r--r-- 25] yafile.txt
- * |---------- [-rw-r--r-- 15] afile.txt
- * |---------- [-rw-r--r-- 21] hfile
- * `---------- [lrwxrwxrwx 11] ldir -> adir/subdir
- *
- * testdir/ldir is a soft-link and should not be detectable.
- * hfile is a hardlink to subdirfile and should be identical
- */
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/mman.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <errno.h>
-
-#include <nuttx/ramdisk.h>
-
-#include "romfs_testdir.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Configuration settings */
-
-#ifndef CONFIG_EXAMPLES_ROMFS_RAMDEVNO
-# define CONFIG_EXAMPLES_ROMFS_RAMDEVNO 1
-#endif
-
-#ifndef CONFIG_EXAMPLES_ROMFS_SECTORSIZE
-# define CONFIG_EXAMPLES_ROMFS_SECTORSIZE 64
-#endif
-
-#ifndef CONFIG_EXAMPLES_ROMFS_MOUNTPOINT
-# define CONFIG_EXAMPLES_ROMFS_MOUNTPOINT "/usr/local/share"
-#endif
-
-#ifdef CONFIG_DISABLE_MOUNTPOINT
-# error "Mountpoint support is disabled"
-#endif
-
-#if CONFIG_NFILE_DESCRIPTORS < 4
-# error "Not enough file descriptors"
-#endif
-
-#ifndef CONFIG_FS_ROMFS
-# error "ROMFS support not enabled"
-#endif
-
-#define NSECTORS(b) (((b)+CONFIG_EXAMPLES_ROMFS_SECTORSIZE-1)/CONFIG_EXAMPLES_ROMFS_SECTORSIZE)
-#define STR_RAMDEVNO(m) #m
-#define MKMOUNT_DEVNAME(m) "/dev/ram" STR_RAMDEVNO(m)
-#define MOUNT_DEVNAME MKMOUNT_DEVNAME(CONFIG_EXAMPLES_ROMFS_RAMDEVNO)
-
-#define SCRATCHBUFFER_SIZE 1024
-
-/* Test directory stuff */
-
-#define WRITABLE_MODE (S_IWOTH|S_IWGRP|S_IWUSR)
-#define READABLE_MODE (S_IROTH|S_IRGRP|S_IRUSR)
-#define EXECUTABLE_MODE (S_IXOTH|S_IXGRP|S_IXUSR)
-
-#define DIRECTORY_MODE (S_IFDIR|READABLE_MODE|EXECUTABLE_MODE)
-#define FILE_MODE (S_IFREG|READABLE_MODE)
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-struct node_s
-{
- struct node_s *peer; /* Next node in this directory */
- bool directory; /* True: directory */
- bool found; /* True: found and verified */
- const char *name; /* Node name */
- mode_t mode; /* Expected permissions */
- size_t size; /* Expected size */
- union
- {
- const char *filecontent; /* Context of text file */
- struct node_s *child; /* Subdirectory start */
- } u;
-};
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char g_afilecontent[] = "This is a file\n";
-static const char g_anotherfilecontent[] = "This is another file\n";
-static const char g_yafilecontent[] = "This is yet another file\n";
-static const char g_subdirfilecontent[] = "File in subdirectory\n";
-
-#define g_hfilecontent g_subdirfilecontent
-
-static struct node_s g_adir;
-static struct node_s g_afile;
-static struct node_s g_hfile;
-
-static struct node_s g_anotherfile;
-static struct node_s g_subdir;
-static struct node_s g_yafile;
-
-static struct node_s g_subdirfile;
-
-static int g_nerrors = 0;
-
-static char g_scratchbuffer[SCRATCHBUFFER_SIZE];
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name:
- ****************************************************************************/
-
-static void connectem(void)
-{
- g_adir.peer = &g_afile;
- g_adir.directory = true;
- g_adir.found = false;
- g_adir.name = "adir";
- g_adir.mode = DIRECTORY_MODE;
- g_adir.size = 0;
- g_adir.u.child = &g_anotherfile;
-
- g_afile.peer = &g_hfile;
- g_afile.directory = false;
- g_afile.found = false;
- g_afile.name = "afile.txt";
- g_afile.mode = FILE_MODE;
- g_afile.size = strlen(g_afilecontent);
- g_afile.u.filecontent = g_afilecontent;
-
- g_hfile.peer = NULL;
- g_hfile.directory = false; /* Actually a hard link */
- g_hfile.found = false;
- g_hfile.name = "hfile";
- g_hfile.mode = FILE_MODE;
- g_hfile.size = strlen(g_hfilecontent);
- g_hfile.u.filecontent = g_hfilecontent;
-
- g_anotherfile.peer = &g_yafile;
- g_anotherfile.directory = false;
- g_anotherfile.found = false;
- g_anotherfile.name = "anotherfile.txt";
- g_anotherfile.mode = FILE_MODE;
- g_anotherfile.size = strlen(g_anotherfilecontent);
- g_anotherfile.u.filecontent = g_anotherfilecontent;
-
- g_yafile.peer = &g_subdir;
- g_yafile.directory = false;
- g_yafile.found = false;
- g_yafile.name = "yafile.txt";
- g_yafile.mode = FILE_MODE;
- g_yafile.size = strlen(g_yafilecontent);
- g_yafile.u.filecontent = g_yafilecontent;
-
- g_subdir.peer = NULL;
- g_subdir.directory = true;
- g_subdir.found = false;
- g_subdir.name = "subdir";
- g_subdir.mode = DIRECTORY_MODE;
- g_subdir.size = 0;
- g_subdir.u.child = &g_subdirfile;
-
- g_subdirfile.peer = NULL;
- g_subdirfile.directory = false;
- g_subdirfile.found = false;
- g_subdirfile.name = "subdirfile.txt";
- g_subdirfile.mode = FILE_MODE;
- g_subdirfile.size = strlen(g_subdirfilecontent);
- g_subdirfile.u.filecontent = g_subdirfilecontent;
-}
-
-/****************************************************************************
- * Name: findindirectory
- ****************************************************************************/
-
-static struct node_s *findindirectory(struct node_s *entry, const char *name)
-{
- for (; entry; entry = entry->peer)
- {
- if (!entry->found && strcmp(entry->name, name) == 0)
- {
- entry->found = true;
- return entry;
- }
- }
- return NULL;
-}
-
-/****************************************************************************
- * Name: checkattributes
- ****************************************************************************/
-
-static void checkattributes(const char *path, mode_t mode, size_t size)
-{
- struct stat buf;
- int ret;
-
- ret = stat(path, &buf);
- if (ret != 0)
- {
- printf(" -- ERROR: Failed to stat %s: %d\n", path, errno);
- g_nerrors++;
- return;
- }
-
- if (mode != buf.st_mode)
- {
- printf(" -- ERROR: Expected mode %08x, got %08x\n", mode, buf.st_mode);
- g_nerrors++;
- }
-
- if (size != buf.st_size)
- {
- printf(" -- ERROR: Expected size %d, got %d\n", mode, buf.st_size);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: checkfile
- ****************************************************************************/
-
-static void checkfile(const char *path, struct node_s *node)
-{
- ssize_t nbytesread;
- char *filedata;
- int fd;
-
- /* Open the file */
-
- fd = open(path, O_RDONLY);
- if (fd < 0)
- {
- printf(" -- ERROR: Failed to open %s: %d\n", path, errno);
- g_nerrors++;
- return;
- }
-
- /* Read and verify the file contents */
-
- nbytesread = read(fd, g_scratchbuffer, SCRATCHBUFFER_SIZE);
- if (nbytesread < 0)
- {
- printf(" -- ERROR: Failed to read from %s: %d\n", path, errno);
- g_nerrors++;
- }
- else if (nbytesread != node->size)
- {
- printf(" -- ERROR: Read %d bytes, expected %d\n", nbytesread, node->size);
- g_nerrors++;
- }
- else if (memcmp(g_scratchbuffer, node->u.filecontent, node->size) != 0)
- {
- g_scratchbuffer[nbytesread] = '\0';
- printf(" -- ERROR: File content read does not match expectation:\n");
- printf(" -- Read: [%s]\n", g_scratchbuffer);
- printf(" -- Expected: [%s]\n", node->u.filecontent);
- g_nerrors++;
- }
-
- /* Memory map and verify the file contents */
-
- filedata = (char*)mmap(NULL, node->size, PROT_READ, MAP_SHARED|MAP_FILE, fd, 0);
- if (!filedata || filedata == (char*)MAP_FAILED)
- {
- printf(" -- ERROR: mmap of %s failed: %d\n", path, errno);
- g_nerrors++;
- }
- else
- {
- if (memcmp(filedata, node->u.filecontent, node->size) != 0)
- {
- memcpy(g_scratchbuffer, filedata, node->size);
- g_scratchbuffer[node->size] = '\0';
- printf(" -- ERROR: Mapped file content read does not match expectation:\n");
- printf(" -- Memory: [%s]\n", filedata);
- printf(" -- Expected: [%s]\n", node->u.filecontent);
- g_nerrors++;
- }
- munmap(filedata, node->size);
- }
-
- /* Close the file */
-
- if (close(fd) != OK)
- {
- printf(" -- ERROR: Failed to close %s: %d\n", path, errno);
- g_nerrors++;
- }
-}
-
-/****************************************************************************
- * Name: readdirectories
- ****************************************************************************/
-
-static void readdirectories(const char *path, struct node_s *entry)
-{
- DIR *dirp;
- struct node_s *node;
- struct dirent *direntry;
- char *fullpath;
-
- printf("Traversing directory: %s\n", path);
- dirp = opendir(path);
- if (!dirp)
- {
- printf(" ERROR opendir(\"%s\") failed: %d\n", path, errno);
- g_nerrors++;
- return;
- }
-
- for (direntry = readdir(dirp); direntry; direntry = readdir(dirp))
- {
- if (strcmp(direntry->d_name, ".") == 0 || strcmp(direntry->d_name, "..") == 0)
- {
- printf(" Skipping %s\n", direntry->d_name);
- continue;
- }
-
- node = findindirectory(entry, direntry->d_name);
- if (!node)
- {
- printf(" ERROR: No node found for %s\n", direntry->d_name);
- g_nerrors++;
- continue;
- }
-
- /* Get the full path to the entry */
-
- sprintf(g_scratchbuffer, "%s/%s", path, direntry->d_name);
- fullpath = strdup(g_scratchbuffer);
-
- if (DIRENT_ISDIRECTORY(direntry->d_type))
- {
- printf(" DIRECTORY: %s/\n", fullpath);
- if (!node->directory)
- {
- printf(" -- ERROR: Expected type directory\n");
- g_nerrors++;
- }
- else
- {
- checkattributes(fullpath, node->mode, 0);
- readdirectories(fullpath, node->u.child);
- printf("Continuing directory: %s\n", path);
- }
- }
- else
- {
- printf(" FILE: %s/\n", fullpath);
- if (node->directory)
- {
- printf(" -- ERROR: Expected type file\n");
- g_nerrors++;
- }
- else
- {
- checkattributes(fullpath, node->mode, node->size);
- checkfile(fullpath, node);
- }
- }
- free(fullpath);
- }
-
- closedir(dirp);
-}
-
-/****************************************************************************
- * Name: checkdirectories
- ****************************************************************************/
-
-static void checkdirectories(struct node_s *entry)
-{
- for (; entry; entry = entry->peer)
- {
- if (!entry->found )
- {
- printf("ERROR: %s never found\n", entry->name);
- g_nerrors++;
- }
-
- if (entry->directory)
- {
- checkdirectories(entry->u.child);
- }
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- int ret;
-
- /* Create a RAM disk for the test */
-
- ret = romdisk_register(CONFIG_EXAMPLES_ROMFS_RAMDEVNO, testdir_img,
- NSECTORS(testdir_img_len), CONFIG_EXAMPLES_ROMFS_SECTORSIZE);
- if (ret < 0)
- {
- printf("ERROR: Failed to create RAM disk\n");
- return 1;
- }
-
- /* Mount the test file system */
-
- printf("Mounting ROMFS filesystem at target=%s with source=%s\n",
- CONFIG_EXAMPLES_ROMFS_MOUNTPOINT, MOUNT_DEVNAME);
-
- ret = mount(MOUNT_DEVNAME, CONFIG_EXAMPLES_ROMFS_MOUNTPOINT, "romfs", MS_RDONLY, NULL);
- if (ret < 0)
- {
- printf("ERROR: Mount failed: %d\n", errno);
- return 1;
- }
-
- /* Perform the test */
-
- connectem();
- readdirectories(CONFIG_EXAMPLES_ROMFS_MOUNTPOINT, &g_adir);
- checkdirectories(&g_adir);
-
- if (g_nerrors)
- {
- printf("Finished with %d errors\n", g_nerrors);
- return g_nerrors;
- }
-
- printf("PASSED\n");
- return 0;
-}
diff --git a/nuttx/examples/romfs/romfs_testdir.h b/nuttx/examples/romfs/romfs_testdir.h
deleted file mode 100644
index 53f93105c..000000000
--- a/nuttx/examples/romfs/romfs_testdir.h
+++ /dev/null
@@ -1,89 +0,0 @@
-unsigned char testdir_img[] = {
- 0x2d, 0x72, 0x6f, 0x6d, 0x31, 0x66, 0x73, 0x2d, 0x00, 0x00, 0x02, 0x60,
- 0x27, 0x43, 0x4a, 0x8a, 0x52, 0x4f, 0x4d, 0x46, 0x53, 0x5f, 0x54, 0x65,
- 0x73, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49,
- 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xff, 0xff, 0x97,
- 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20,
- 0x00, 0x00, 0x00, 0x00, 0xd1, 0xd1, 0xff, 0x80, 0x2e, 0x2e, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b,
- 0x93, 0x9b, 0x95, 0xf0, 0x6c, 0x64, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x64, 0x69, 0x72,
- 0x2f, 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x19, 0x00, 0x00, 0x00, 0xb0, 0x00, 0x00, 0x00, 0x00,
- 0x9e, 0x9b, 0x93, 0xc5, 0x61, 0x64, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x58, 0x47, 0x43, 0xf1,
- 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x2e,
- 0x74, 0x78, 0x74, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
- 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65,
- 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19,
- 0xa1, 0xc5, 0x69, 0xd8, 0x79, 0x61, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x74,
- 0x78, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x68, 0x69, 0x73,
- 0x20, 0x69, 0x73, 0x20, 0x79, 0x65, 0x74, 0x20, 0x61, 0x6e, 0x6f, 0x74,
- 0x68, 0x65, 0x72, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x00, 0x90,
- 0x00, 0x00, 0x00, 0x00, 0xd1, 0xff, 0xfe, 0x20, 0x2e, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x01, 0x70, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0xd1, 0xd1, 0xfe, 0x70, 0x2e, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09,
- 0x00, 0x00, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x23, 0x18, 0x9c, 0x03,
- 0x73, 0x75, 0x62, 0x64, 0x69, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xd2, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x15, 0x3e, 0x3f, 0x06, 0xd8, 0x73, 0x75, 0x62, 0x64,
- 0x69, 0x72, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x74, 0x78, 0x74, 0x00, 0x00,
- 0x46, 0x69, 0x6c, 0x65, 0x20, 0x69, 0x6e, 0x20, 0x73, 0x75, 0x62, 0x64,
- 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x0a, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf0,
- 0x00, 0x00, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xff, 0xfc, 0xa0,
- 0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90,
- 0x00, 0x00, 0x00, 0x00, 0xd1, 0xd1, 0xff, 0x70, 0x2e, 0x2e, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x02, 0x30, 0x00, 0x00, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00,
- 0x32, 0x99, 0x92, 0xd4, 0x68, 0x66, 0x69, 0x6c, 0x65, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc5, 0x6b, 0x22, 0x0b,
- 0x61, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x74, 0x78, 0x74, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
- 0x61, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00
-};
-unsigned int testdir_img_len = 1024;
diff --git a/nuttx/examples/romfs/testdir.tar.gz b/nuttx/examples/romfs/testdir.tar.gz
deleted file mode 100644
index cd0e9c518..000000000
--- a/nuttx/examples/romfs/testdir.tar.gz
+++ /dev/null
Binary files differ
diff --git a/nuttx/examples/romfs/testdir.txt b/nuttx/examples/romfs/testdir.txt
deleted file mode 100644
index e321d6ded..000000000
--- a/nuttx/examples/romfs/testdir.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-VOLUME HEADER: Name=ROMFS_Test
-0000000: 2d72 6f6d 3166 732d 0000 0260 2743 4a8a -rom1fs-...`'CJ.
-0000010: 524f 4d46 535f 5465 7374 0000 0000 0000 ROMFS_Test......
-
-FILE HEADER 1: Name=.
-0000020: 0000 0049 0000 0020 0000 0000 d1ff ff97 ...I... ........
-0000030: 2e00 0000 0000 0000 0000 0000 0000 0000 ................
-
-FILE HEADER 2: Name=..
-0000040: 0000 0060 0000 0020 0000 0000 d1d1 ff80 ...`... ........
-0000050: 2e2e 0000 0000 0000 0000 0000 0000 0000 ................
-
-FILE HEADER 3: Name=ldir
-0000060: 0000 0093 0000 0000 0000 000b 939b 95f0 ................
-0000070: 6c64 6972 0000 0000 0000 0000 0000 0000 ldir............
-
- FILE CONTENT:
- 0000080: 6164 6972 2f73 7562 6469 7200 0000 0000 adir/subdir.....
-
-FILE HEADER 4: Name=adir
-0000090: 0000 0219 0000 00b0 0000 0000 9e9b 93c5 ................
-00000a0: 6164 6972 0000 0000 0000 0000 0000 0000 adir............
-
- FILE HEADER 4.1: Name=anotherfile.txt
- 00000b0: 0000 00f2 0000 0000 0000 0015 5847 43f1 ............XGC.
- 00000c0: 616e 6f74 6865 7266 696c 652e 7478 7400 anotherfile.txt.
-
- FILE CONTENT:
- 00000d0: 5468 6973 2069 7320 616e 6f74 6865 7220 This is another
- 00000e0: 6669 6c65 0a00 0000 0000 0000 0000 0000 file............
-
- FILE HEADER 4.2: Name=yafile.txt
- 00000f0: 0000 0132 0000 0000 0000 0019 a1c5 69d8 ...2..........i.
- 0000100: 7961 6669 6c65 2e74 7874 0000 0000 0000 yafile.txt......
-
- FILE CONTENT:
- 0000110: 5468 6973 2069 7320 7965 7420 616e 6f74 This is yet anot
- 0000120: 6865 7220 6669 6c65 0a00 0000 0000 0000 her file........
-
- FILE HEADER 4.3: Name=.
- 0000130: 0000 0150 0000 0090 0000 0000 d1ff fe20 ...P...........
- 0000140: 2e00 0000 0000 0000 0000 0000 0000 0000 ................
-
- FILE HEADER 4.4: Name=..
- 0000150: 0000 0170 0000 0020 0000 0000 d1d1 fe70 ...p... .......p
- 0000160: 2e2e 0000 0000 0000 0000 0000 0000 0000 ................
-
- FILE HEADER 4.5: Name=subdir
- 0000170: 0000 0009 0000 0190 0000 0000 2318 9c03 ............#...
- 0000180: 7375 6264 6972 0000 0000 0000 0000 0000 subdir..........
-
- FILE HEADER 4.5.1: Name=subdirfile.txt
- 0000190: 0000 01d2 0000 0000 0000 0015 3e3f 06d8 ............>?..
- 00001a0: 7375 6264 6972 6669 6c65 2e74 7874 0000 subdirfile.txt..
-
- FILE CONTENT:
- 00001b0: 4669 6c65 2069 6e20 7375 6264 6972 6563 File in subdirec
- 00001c0: 746f 7279 0a00 0000 0000 0000 0000 0000 tory............
-
- FILE HEADER 4.5.2: Name=.
- 00001d0: 0000 01f0 0000 0170 0000 0000 d1ff fca0 .......p........
- 00001e0: 2e00 0000 0000 0000 0000 0000 0000 0000 ................
-
- FILE HEADER 4.5.3: Name=..
- 00001f0: 0000 0000 0000 0090 0000 0000 d1d1 ff70 ...............p
- 0000200: 2e2e 0000 0000 0000 0000 0000 0000 0000 ................
-
-FILE HEADER 5: Name=hfile
-0000210: 0000 0230 0000 0190 0000 0000 3299 92d4 ...0........2...
-0000220: 6866 696c 6500 0000 0000 0000 0000 0000 hfile...........
-
-FILE HEADER 6: Name=afile.txt
-0000230: 0000 0002 0000 0000 0000 000f c56b 220b .............k".
-0000240: 6166 696c 652e 7478 7400 0000 0000 0000 afile.txt.......
-
- FILE CONTENT:
- 0000250: 5468 6973 2069 7320 6120 6669 6c65 0a00 This is a file..
-
-PADDING
-0000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000270: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00002f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000300: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000310: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000320: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000330: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000340: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000350: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000360: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000370: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000380: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-0000390: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
-00003f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
diff --git a/nuttx/examples/sendmail/Makefile b/nuttx/examples/sendmail/Makefile
deleted file mode 100644
index 2fac537d2..000000000
--- a/nuttx/examples/sendmail/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/sendmail/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = target.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
- @make -f Makefile.host clean
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/sendmail/Makefile.host b/nuttx/examples/sendmail/Makefile.host
deleted file mode 100644
index 4cbb5d92f..000000000
--- a/nuttx/examples/sendmail/Makefile.host
+++ /dev/null
@@ -1,77 +0,0 @@
-############################################################################
-# examples/sendmail/Makefile.host
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-WD = ${shell pwd}
-TOPDIR = $(WD)/../..
-include $(TOPDIR)/Make.defs
-
-OBJS = host.o1 smtp.o1
-BIN = sendmail
-
-HOSTCFLAGS += -DCONFIG_WEBCLIENT_HOST=1
-HOSTCFLAGS += -I. -include hostdefs.h -Iinclude
-VPATH = $(TOPDIR)/netutils/smtp:.
-
-all: $(BIN)
-.PHONY: clean context clean_context distclean
-
-$(OBJS): %.o1: %.c
- $(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
-
-include:
- @mkdir include
-
-include/net: include
- @ln -s $(TOPDIR)/include/net include/net
-
-include/nuttx:
- @mkdir -p include/nuttx
-
-include/queue.h: include
- @cp -a $(TOPDIR)/include/queue.h include/.
-
-include/nuttx/config.h: include/nuttx
- @touch include/nuttx/config.h
-
-headers: include/nuttx/config.h include/queue.h include/net
-
-$(BIN): headers $(OBJS)
- $(HOSTCC) $(HOSTLDFLAGS) $(OBJS) -o $@
-
-clean:
- @rm -f $(BIN).* *.o1 *~
- @rm -rf include
-
-
diff --git a/nuttx/examples/sendmail/host.c b/nuttx/examples/sendmail/host.c
deleted file mode 100644
index 67a541b0c..000000000
--- a/nuttx/examples/sendmail/host.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/****************************************************************************
- * examples/sendmail/host.c
- *
- * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#include <apps/netutils/smtp.h>
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char g_host_name[] = "localhost";
-static const char g_sender[] = "nuttx-testing@example.com";
-static const char g_subject[] = "Testing SMTP from NuttX";
-static const char g_msg_body[] = "Test message sent by NuttX\r\n";
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: show_usage
- ****************************************************************************/
-
-static void show_usage(const char *progname, int exitcode)
-{
- fprintf(stderr, "USAGE: %s <recipient>\n", progname);
- exit(exitcode);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-/****************************************************************************
- * Name: main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
- struct in_addr addr;
- void *handle;
-
- if (argc != 2)
- {
- show_usage(argv[0], 1);
- }
-
- printf("sendmail: To: %s\n", argv[1]);
- printf("sendmail: From: %s\n", g_sender);
- printf("sendmail: Subject: %s\n", g_subject);
- printf("sendmail: Body: %s\n", g_msg_body);
-
- uip_ipaddr(addr.s_addr, 127, 0, 0, 1);
- handle = smtp_open();
- if (handle)
- {
- smtp_configure(handle, g_host_name, &addr.s_addr);
- smtp_send(handle, argv[1], NULL, g_sender, g_subject,
- g_msg_body, strlen(g_msg_body));
- smtp_close(handle);
- }
- return 0;
-}
diff --git a/nuttx/examples/sendmail/hostdefs.h b/nuttx/examples/sendmail/hostdefs.h
deleted file mode 100755
index da072d560..000000000
--- a/nuttx/examples/sendmail/hostdefs.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * examples/wget/hostdefs.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __HOSTDEFS_H
-#define __HOSTDEFS_H
-
-/****************************************************************************
- * Included Files
- *****************************************************************************/
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-
-/****************************************************************************
- * Preprocessor Defintiions
- *****************************************************************************/
-
-#define HTONS(a) htons(a)
-#define HTONL(a) htonl(a)
-#define CONFIG_CPP_HAVE_WARNING 1
-#define CONFIG_HAVE_GETHOSTBYNAME 1
-#define FAR
-
-#define ndbg(...) printf(__VA_ARGS__)
-#define nvdbg(...) printf(__VA_ARGS__)
-
-#define ERROR (-1)
-#define OK (0)
-
-/****************************************************************************
- * Type Definitions
- *****************************************************************************/
-
-typedef void *(*pthread_startroutine_t)(void *);
-
-#endif /* __HOSTDEFS_H */
diff --git a/nuttx/examples/sendmail/target.c b/nuttx/examples/sendmail/target.c
deleted file mode 100644
index d8643106b..000000000
--- a/nuttx/examples/sendmail/target.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/****************************************************************************
- * examples/sendmail/target.c
- *
- * Copyright (C) 2009. 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#include <net/if.h>
-#include <apps/netutils/uiplib.h>
-#include <apps/netutils/smtp.h>
-
-/****************************************************************************
- * Pre-processor Defintitions
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_RECIPIENT
-# error "You must provice CONFIG_EXAMPLE_SENDMAIL_RECIPIENT"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_IPADDR
-# error "You must provice CONFIG_EXAMPLE_SENDMAIL_IPADDR"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_DRIPADDR
-# error "You must provice CONFIG_EXAMPLE_SENDMAIL_DRIPADDR"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_NETMASK
-# error "You must provice CONFIG_EXAMPLE_SENDMAIL_NETMASK"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_SENDER
-# define CONFIG_EXAMPLE_SENDMAIL_SENDER "nuttx-testing@example.com"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_SUBJECT
-# define CONFIG_EXAMPLE_SENDMAIL_SUBJECT "Testing SMTP from NuttX"
-#endif
-
-#ifndef CONFIG_EXAMPLE_SENDMAIL_BODY
-# define CONFIG_EXAMPLE_SENDMAIL_BODY "Test message sent by NuttX"
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char g_host_name[] = "localhost";
-static const char g_recipient[] = CONFIG_EXAMPLE_SENDMAIL_RECIPIENT;
-static const char g_sender[] = CONFIG_EXAMPLE_SENDMAIL_SENDER;
-static const char g_subject[] = CONFIG_EXAMPLE_SENDMAIL_SUBJECT;
-static const char g_msg_body[] = CONFIG_EXAMPLE_SENDMAIL_BODY "\r\n";
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_SENDMAIL_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
- void *handle;
-
- printf("sendmail: To: %s\n", g_recipient);
- printf("sendmail: From: %s\n", g_sender);
- printf("sendmail: Subject: %s\n", g_subject);
- printf("sendmail: Body: %s\n", g_msg_body);
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_SENDMAIL_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_SENDMAIL_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_SENDMAIL_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_SENDMAIL_NETMASK);
- uip_setnetmask("eth0", &addr);
-
- /* Then send the mail */
-
- uip_ipaddr(addr.s_addr, 127, 0, 0, 1);
- handle = smtp_open();
- if (handle)
- {
- smtp_configure(handle, g_host_name, &addr.s_addr);
- smtp_send(handle, g_recipient, NULL, g_sender, g_subject,
- g_msg_body, strlen(g_msg_body));
- smtp_close(handle);
- }
- return 0;
-}
diff --git a/nuttx/examples/serloop/Makefile b/nuttx/examples/serloop/Makefile
deleted file mode 100644
index 4f6f53a6b..000000000
--- a/nuttx/examples/serloop/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/serloop/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/serloop/main.c b/nuttx/examples/serloop/main.c
deleted file mode 100644
index a9bdbe7ea..000000000
--- a/nuttx/examples/serloop/main.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/****************************************************************************
- * examples/serloop/main.c
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <stdio.h>
-#include <unistd.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
-#ifdef CONFIG_EXAMPLES_SERLOOP_BUFIO
- int ch;
-
- for (;;)
- {
- ch = getchar();
- if (ch < 1)
- {
- ch = '!';
- }
- else if ((ch < 0x20 || ch > 0x7e) && ch != '\n')
- {
- ch = '.';
- }
- putchar(ch);
- }
-#else
- uint8_t ch;
- int ret;
-
- for (;;)
- {
- ret = read(0, &ch, 1);
- if (ret < 1)
- {
- ch = '!';
- }
- else if ((ch < 0x20 || ch > 0x7e) && ch != '\n')
- {
- ch = '.';
- }
- ret = write(1, &ch, 1);
- }
-#endif
- return 0;
-}
-
diff --git a/nuttx/examples/thttpd/Makefile b/nuttx/examples/thttpd/Makefile
deleted file mode 100644
index 696117e64..000000000
--- a/nuttx/examples/thttpd/Makefile
+++ /dev/null
@@ -1,80 +0,0 @@
-############################################################################
-# examples/thttpd/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-.PHONY: clean headers
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-headers:
- @$(MAKE) -C content TOPDIR=$(TOPDIR) CROSSDEV=$(CROSSDEV)
-
-$(BIN): headers $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- @make -C content clean TOPDIR=$(TOPDIR) CROSSDEV=$(CROSSDEV)
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/thttpd/content/Makefile b/nuttx/examples/thttpd/content/Makefile
deleted file mode 100644
index 9ff8d87b5..000000000
--- a/nuttx/examples/thttpd/content/Makefile
+++ /dev/null
@@ -1,104 +0,0 @@
-############################################################################
-# examples/thttpd/content/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-SUBDIRS = hello tasks netstat
-INSTALL_FILES = index.html style.css
-
-THTTPD_DIR = $(TOPDIR)/examples/thttpd
-CONTENT_DIR = $(THTTPD_DIR)/content
-ROMFS_DIR = $(CONTENT_DIR)/romfs
-ROMFS_IMG = $(CONTENT_DIR)/romfs.img
-ROMFS_HDR = $(CONTENT_DIR)/romfs.h
-ROMFSCGI_DIR = $(ROMFS_DIR)/cgi-bin
-SYMTAB = $(CONTENT_DIR)/symtab.h
-
-define DIR_template
-$(1)_$(2):
- @$(MAKE) -C $(1) $(3) TOPDIR=$(TOPDIR) CROSSDEV=$(CROSSDEV) CGI_DIR=$(ROMFSCGI_DIR)
-endef
-
-all: $(ROMFS_HDR) $(SYMTAB)
-.PHONY: all build clean install populate
-
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
-$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
-
-# Build program(s) in each sud-directory
-
-build: $(foreach DIR, $(SUBDIRS), $(DIR)_build)
-
-# Install each program in the romfs directory
-
-install: $(foreach DIR, $(SUBDIRS), $(DIR)_install)
- @( for file in $(INSTALL_FILES); do\
- install -m 0644 -D $${file} $(ROMFS_DIR)/$${file}; \
- done; )
-
-# Create the romfs directory
-
-$(ROMFS_DIR):
- @mkdir -p $(ROMFS_DIR)
-
-$(ROMFSCGI_DIR): $(ROMFS_DIR)
- @mkdir -p $(ROMFSCGI_DIR)
-
-# Populate the romfs directory
-
-populate: $(ROMFSCGI_DIR) build install
-
-# Create the romfs.img file from the populated romfs directory
-
-$(ROMFS_IMG): populate
- @genromfs -f $@ -d $(ROMFS_DIR) -V "THTTPDTEST"
-
-# Create the romfs.h header file from the romfs.img file
-
-$(ROMFS_HDR) : $(ROMFS_IMG)
- @(cd $(CONTENT_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
-
-# Create the exported symbol table list from the derived *-thunk.S files
-
-$(SYMTAB): build
- @$(CONTENT_DIR)/mksymtab.sh $(CONTENT_DIR) >$@
-
-# Clean each subdirectory
-
-clean: $(foreach DIR, $(SUBDIRS), $(DIR)_clean)
- @rm -f $(ROMFS_HDR) $(ROMFS_IMG) $(SYMTAB)
- @rm -rf $(ROMFS_DIR)
- @rm -f *~ .*.swp
-
-
diff --git a/nuttx/examples/thttpd/content/hello/Makefile b/nuttx/examples/thttpd/content/hello/Makefile
deleted file mode 100644
index e980f1c34..000000000
--- a/nuttx/examples/thttpd/content/hello/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/thttpd/content/hello/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = hello
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -m 0755 -D $(BIN) $(CGI_DIR)/$(BIN)
-
diff --git a/nuttx/examples/thttpd/content/hello/hello.c b/nuttx/examples/thttpd/content/hello/hello.c
deleted file mode 100644
index 40f31a454..000000000
--- a/nuttx/examples/thttpd/content/hello/hello.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/****************************************************************************
- * examples/thttpd/content/hello/hello.c
- * Manatory "Hello, World!" Example
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char *argv[])
-{
- fprintf(stderr, "Hello requested from: %s\n", getenv("REMOTE_ADDR"));
-
- puts(
- "Content-type: text/html\r\n"
- "Status: 200/html\r\n"
- "\r\n"
- "<html>\r\n"
- "<head>\r\n"
- "<title>Hello!</title>\r\n"
- "<link rel=\"stylesheet\" type=\"text/css\" href=\"/style.css\">\r\n"
- "</head>\r\n"
- "<body bgcolor=\"#fffeec\" text=\"black\">\r\n"
- "<div class=\"menu\">\r\n"
- "<div class=\"menubox\"><a href=\"/index.html\">Front page</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"hello\">Say Hello</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"tasks\">Tasks</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"netstat\">Network status</a></div>\r\n"
- "<br>\r\n"
- "</div>\r\n"
- "<div class=\"contentblock\">\r\n");
- printf(
- "<h2>Hello, World!</h2><p>Requested by: %s</p>\r\n",
- getenv("REMOTE_ADDR"));
- puts(
- "</body>\r\n"
- "</html>\r\n");
- return 0;
-}
diff --git a/nuttx/examples/thttpd/content/index.html b/nuttx/examples/thttpd/content/index.html
deleted file mode 100644
index 1fba1fbf6..000000000
--- a/nuttx/examples/thttpd/content/index.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
- <title>NuttX examples/thttpd</title>
- <link rel="stylesheet" type="text/css" href="style.css">
- </head>
- <body bgcolor="#fffeec" text="black">
-
- <div class="menu">
- <div class="menubox"><a href="index.html">Front page</a></div>
- <div class="menubox"><a href="cgi-bin/hello">Say Hello</a></div>
- <div class="menubox"><a href="cgi-bin/tasks">Tasks</a></div>
- <div class="menubox"><a href="cgi-bin/netstat">Network status</a></div>
- <br>
- </div>
-
- <div class="contentblock">
- <p>
- These web pages are served by a port of <a href="http://acme.com/software/thttpd/">THTTPD</a>
- running on top of <a href="http://www.nuttx.org">NuttX</a>.
- NuttX includes a port of the <a href="http://www.sics.se/~adam/uip/">uIP</a> embedded TCP/IP stack.
- </p>
- <p>
- Click on the links above to exercise THTTPD's CGI capability under NuttX.
- Clicking the links will execute the CGI program from an
- <a href="http://nuttx.sourceforge.net/NuttXNxFlat.html">NXFLAT</a> program residing
- in a ROMFS file system.
- </p>
- </body>
-</html>
diff --git a/nuttx/examples/thttpd/content/mksymtab.sh b/nuttx/examples/thttpd/content/mksymtab.sh
deleted file mode 100755
index 611d3a87a..000000000
--- a/nuttx/examples/thttpd/content/mksymtab.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/bash
-
-usage="Usage: %0 <test-dir-path>"
-
-dir=$1
-if [ -z "$dir" ]; then
- echo "ERROR: Missing <test-dir-path>"
- echo ""
- echo $usage
- exit 1
-fi
-
-if [ ! -d "$dir" ]; then
- echo "ERROR: Directory $dir does not exist"
- echo ""
- echo $usage
- exit 1
-fi
-
-varlist=`find $dir -name "*-thunk.S"| xargs grep -h asciz | cut -f3 | sort | uniq`
-
-echo "#ifndef __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
-echo "#define __EXAMPLES_NXFLAT_TESTS_SYMTAB_H"
-echo ""
-echo "#include <nuttx/symtab.h>"
-echo ""
-echo "static const struct symtab_s exports[] = "
-echo "{"
-
-for string in $varlist; do
- var=`echo $string | sed -e "s/\"//g"`
- echo " {$string, $var},"
-done
-
-echo "};"
-echo "#define NEXPORTS (sizeof(exports)/sizeof(struct symtab_s))"
-echo ""
-echo "#endif /* __EXAMPLES_NXFLAT_TESTS_SYMTAB_H */"
-
diff --git a/nuttx/examples/thttpd/content/netstat/Makefile b/nuttx/examples/thttpd/content/netstat/Makefile
deleted file mode 100644
index b12cbabc8..000000000
--- a/nuttx/examples/thttpd/content/netstat/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/thttpd/content/netstat/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = netstat
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -m 0755 -D $(BIN) $(CGI_DIR)/$(BIN)
-
diff --git a/nuttx/examples/thttpd/content/netstat/netstat.c b/nuttx/examples/thttpd/content/netstat/netstat.c
deleted file mode 100755
index 634146274..000000000
--- a/nuttx/examples/thttpd/content/netstat/netstat.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/****************************************************************************
- * examples/thttpd/netstat/netstat.c
- *
- * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#include <netinet/ether.h>
-#include <net/uip/uipopt.h>
-#include <net/uip/uip-arch.h>
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/* NOTEs:
- *
- * 1. One limitation in the use of NXFLAT is that functions that are
- * referenced as a pointer-to-a-function must have global scope. Otherwise
- * ARM GCC will generate some bad logic.
- * 2. In general, when called back, there is no guarantee to that PIC registers
- * will be valid and, unless you take special precautions, it could be
- * dangerous to reference global variables in the callback function.
- */
-
-/* static */ int netdev_callback(FAR struct uip_driver_s *dev, void *arg)
-{
- struct in_addr addr;
-
- printf(" <dt>%s\r\n", dev->d_ifname);
-#ifdef CONFIG_NET_ETHERNET
- printf(" <dd>HWaddr: %s<br>\r\n", ether_ntoa(&dev->d_mac));
-#endif
- addr.s_addr = dev->d_ipaddr;
- printf(" IPaddr: %s<br>\r\n", inet_ntoa(addr));
- addr.s_addr = dev->d_draddr;
- printf(" DRaddr: %s<br>\r\n", inet_ntoa(addr));
- addr.s_addr = dev->d_netmask;
- printf(" Mask: %s\r\n", inet_ntoa(addr));
- return OK;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char *argv[])
-{
- puts(
- "Content-type: text/html\r\n"
- "Status: 200/html\r\n"
- "\r\n"
- "<html>\r\n"
- "<head>\r\n"
- "<title>Network Status</title>\r\n"
- "<link rel=\"stylesheet\" type=\"text/css\" href=\"/style.css\">\r\n"
- "</head>\r\n"
- "<body bgcolor=\"#fffeec\" text=\"black\">\r\n"
- "<div class=\"menu\">\r\n"
- "<div class=\"menubox\"><a href=\"/index.html\">Front page</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"hello\">Say Hello</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"tasks\">Tasks</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"netstat\">Network status</a></div>\r\n"
- "<br>\r\n"
- "</div>\r\n"
- "<div class=\"contentblock\">\r\n"
- "<dl>\r\n");
-
- netdev_foreach(netdev_callback, NULL);
-
- puts(
- "</dl>\r\n"
- "</body>\r\n"
- "</html>\r\n");
- return 0;
-}
diff --git a/nuttx/examples/thttpd/content/style.css b/nuttx/examples/thttpd/content/style.css
deleted file mode 100644
index bfb0997a8..000000000
--- a/nuttx/examples/thttpd/content/style.css
+++ /dev/null
@@ -1,80 +0,0 @@
-h1
-{
- text-align: center;
- font-size:14pt;
- font-family:arial,helvetica;
- font-weight:bold;
- padding:10px;
-}
-
-body
-{
- background-color: #fffeec;
- color:black;
- font-size:8pt;
- font-family:arial,helvetica;
-}
-
-.menu
-{
- margin: 4px;
- width:60%;
- padding:2px;
- border: solid 1px;
- background-color: #fffcd2;
- text-align:left;
- font-size:9pt;
- font-family:arial,helvetica;
-}
-
-div.menubox
-{
- width: 25%;
- border: 0;
- float: left;
- text-align: center;
-}
-
-.contentblock
-{
- margin: 4px;
- width:60%;
- padding:2px;
- border: 1px dotted;
- background-color: white;
- font-size:8pt;
- font-family:arial,helvetica;
-}
-
-p.intro
-{
- margin-left:20px;
- margin-right:20px;
- font-size:10pt;
- font-family:arial,helvetica;
-}
-
-p.clink
-{
- font-size:12pt;
- font-family:courier,monospace;
- text-align:center;
-}
-
-p.clink9
-{
- font-size:9pt;
- font-family:courier,monospace;
- text-align:center;
-}
-
-p
-{
- padding-left:10px;
-}
-
-p.right
-{
- text-align:right;
-}
-
diff --git a/nuttx/examples/thttpd/content/tasks/Makefile b/nuttx/examples/thttpd/content/tasks/Makefile
deleted file mode 100755
index 2666e0b69..000000000
--- a/nuttx/examples/thttpd/content/tasks/Makefile
+++ /dev/null
@@ -1,78 +0,0 @@
-############################################################################
-# examples/thttpd/content/tasks/Makefile
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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 # Current configuration
--include $(TOPDIR)/Make.defs # Basic make info
-
-BIN = tasks
-
-R1SRCS = $(BIN).c
-R1OBJS = $(R1SRCS:.c=.o)
-
-R2SRC = $(BIN)-thunk.S
-R2OBJ = $(R2SRC:.S=.o)
-
-all: $(BIN)
-
-$(R1OBJS): %.o: %.c
- @echo "CC: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(R2OBJ): %.o: %.S
- @echo "AS: $<"
- @$(CC) -c $(CPICFLAGS) $< -o $@
-
-$(BIN).r1: $(R1OBJS)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS1) -o $@ $^
-
-$(R2SRC): $(BIN).r1
- @echo "MK: $<"
- @$(MKNXFLAT) -o $@ $^
-
-$(BIN).r2: $(R2OBJ)
- @echo "LD: $<"
- @$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
-
-$(BIN): $(BIN).r2
- @echo "LD: $<"
- @$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
-
-clean:
- @rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
-
-install:
- @install -m 0755 -D $(BIN) $(CGI_DIR)/$(BIN)
-
diff --git a/nuttx/examples/thttpd/content/tasks/tasks.c b/nuttx/examples/thttpd/content/tasks/tasks.c
deleted file mode 100755
index 13ba5cbb6..000000000
--- a/nuttx/examples/thttpd/content/tasks/tasks.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
- * examples/thttpd/tasks/tasks.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sched.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Function Prototypes
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char *g_statenames[] =
-{
- "INVALID ",
- "PENDING ",
- "READY ",
- "RUNNING ",
- "INACTIVE",
- "WAITSEM ",
-#ifndef CONFIG_DISABLE_MQUEUE
- "WAITSIG ",
-#endif
-#ifndef CONFIG_DISABLE_MQUEUE
- "MQNEMPTY",
- "MQNFULL "
-#endif
-};
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/* NOTEs:
- *
- * 1. One limitation in the use of NXFLAT is that functions that are
- * referenced as a pointer-to-a-function must have global scope. Otherwise
- * ARM GCC will generate some bad logic.
- * 2. In general, when called back, there is no guarantee to that PIC registers
- * will be valid and, unless you take special precautions, it could be
- * dangerous to reference global variables in the callback function.
- */
-
-/* static */ void show_task(FAR _TCB *tcb, FAR void *arg)
-{
- int i;
-
- /* Show task status */
-
- printf("%5d %3d %4s %7s%c%c %8s ",
- tcb->pid, tcb->sched_priority,
- tcb->flags & TCB_FLAG_ROUND_ROBIN ? "RR " : "FIFO",
- tcb->flags & TCB_FLAG_PTHREAD ? "PTHREAD" : "TASK ",
- tcb->flags & TCB_FLAG_NONCANCELABLE ? 'N' : ' ',
- tcb->flags & TCB_FLAG_CANCEL_PENDING ? 'P' : ' ',
- g_statenames[tcb->task_state]);
-
- /* Show task name and arguments */
-
- printf("%s(", tcb->argv[0]);
-
- /* Special case 1st argument (no comma) */
-
- if (tcb->argv[1])
- {
- printf("%p", tcb->argv[1]);
- }
-
- /* Then any additional arguments */
-
-#if CONFIG_MAX_TASK_ARGS > 2
- for (i = 2; i <= CONFIG_MAX_TASK_ARGS && tcb->argv[i]; i++)
- {
- printf(", %p", tcb->argv[i]);
- }
-#endif
- printf(")\n");
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-int main(int argc, char *argv[])
-{
- puts(
- "Content-type: text/html\r\n"
- "Status: 200/html\r\n"
- "\r\n"
- "<html>\r\n"
- "<head>\r\n"
- "<title>NuttX Tasks</title>\r\n"
- "<link rel=\"stylesheet\" type=\"text/css\" href=\"/style.css\">\r\n"
- "</head>\r\n"
- "<body bgcolor=\"#fffeec\" text=\"black\">\r\n"
- "<div class=\"menu\">\r\n"
- "<div class=\"menubox\"><a href=\"/index.html\">Front page</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"hello\">Say Hello</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"tasks\">Tasks</a></div>\r\n"
- "<div class=\"menubox\"><a href=\"netstat\">Network status</a></div>\r\n"
- "<br>\r\n"
- "</div>\r\n"
- "<div class=\"contentblock\">\r\n"
- "<pre>\r\n"
- "PID PRI SCHD TYPE NP STATE NAME\r\n");
-
- sched_foreach(show_task, NULL);
-
- puts(
- "</pre>\r\n"
- "</body>\r\n"
- "</html>\r\n");
- return 0;
-}
diff --git a/nuttx/examples/thttpd/main.c b/nuttx/examples/thttpd/main.c
deleted file mode 100644
index e2fdda4f4..000000000
--- a/nuttx/examples/thttpd/main.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/****************************************************************************
- * examples/thttpd/main.c
- *
- * Copyright (C) 2009-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <sys/ioctl.h>
-#include <sys/mount.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <netinet/ether.h>
-
-#include <net/uip/uip-arp.h>
-#include <apps/netutils/uiplib.h>
-#include <apps/netutils/thttpd.h>
-
-#include <nuttx/ramdisk.h>
-#include <nuttx/binfmt.h>
-#include <nuttx/nxflat.h>
-#ifdef CONFIG_NET_SLIP
-# include <nuttx/net.h>
-#endif
-
-#include "content/romfs.h"
-#include "content/symtab.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/* Check configuration. This is not all of the configuration settings that
- * are required -- only the more obvious.
- */
-
-#if CONFIG_NFILE_DESCRIPTORS < 1
-# error "You must provide file descriptors via CONFIG_NFILE_DESCRIPTORS in your configuration file"
-#endif
-
-#ifndef CONFIG_NXFLAT
-# error "You must select CONFIG_NXFLAT in your configuration file"
-#endif
-
-#ifndef CONFIG_FS_ROMFS
-# error "You must select CONFIG_FS_ROMFS in your configuration file"
-#endif
-
-#ifdef CONFIG_DISABLE_MOUNTPOINT
-# error "You must not disable mountpoints via CONFIG_DISABLE_MOUNTPOINT in your configuration file"
-#endif
-
-#ifdef CONFIG_BINFMT_DISABLE
-# error "You must not disable loadable modules via CONFIG_BINFMT_DISABLE in your configuration file"
-#endif
-
-/* SLIP-specific configuration */
-
-#ifdef CONFIG_NET_SLIP
-
- /* No MAC address operations */
-
-# undef CONFIG_EXAMPLE_THTTPD_NOMAC
-
- /* TTY device to use */
-
-# ifndef CONFIG_NET_SLIPTTY
-# define CONFIG_NET_SLIPTTY "/dev/ttyS1"
-# endif
-
-# define SLIP_DEVNO 0
-# define NET_DEVNAME "sl0"
-#else
-
- /* Otherwise, use the standard ethernet device name */
-
-# define NET_DEVNAME "eth0"
-#endif
-
-/* Describe the ROMFS file system */
-
-#define SECTORSIZE 512
-#define NSECTORS(b) (((b)+SECTORSIZE-1)/SECTORSIZE)
-#define ROMFSDEV "/dev/ram0"
-#define MOUNTPT CONFIG_THTTPD_PATH
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# define msgflush()
-# else
-# define message(...) printf(__VA_ARGS__)
-# define msgflush() fflush(stdout)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_lowprintf
-# define msgflush()
-# else
-# define message printf
-# define msgflush() fflush(stdout)
-# endif
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Data
- ****************************************************************************/
-
-/* These values must be provided by the user before the THTTPD task daemon
- * is started:
- *
- * g_thttpdsymtab: A symbol table describing all of the symbols exported
- * from the base system. These symbols are used to bind address references
- * in CGI programs to NuttX.
- * g_nsymbols: The number of symbols in g_thttpdsymtab[].
- */
-
-FAR const struct symtab_s *g_thttpdsymtab;
-int g_thttpdnsymbols;
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#ifdef CONFIG_EXAMPLE_THTTPD_NOMAC
- uint8_t mac[IFHWADDRLEN];
-#endif
- char *thttpd_argv = "thttpd";
- int ret;
-
- /* Configure SLIP */
-
-#ifdef CONFIG_NET_SLIP
- ret = slip_initialize(SLIP_DEVNO, CONFIG_NET_SLIPTTY);
- if (ret < 0)
- {
- message("ERROR: SLIP initialization failed: %d\n", ret);
- exit(1);
- }
-#endif
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_THTTPD_NOMAC
- message("Assigning MAC\n");
-
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr(NET_DEVNAME, mac);
-#endif
-
- /* Set up our host address */
-
- message("Setup network addresses\n");
- addr.s_addr = HTONL(CONFIG_THTTPD_IPADDR);
- uip_sethostaddr(NET_DEVNAME, &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_THTTPD_DRIPADDR);
- uip_setdraddr(NET_DEVNAME, &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_THTTPD_NETMASK);
- uip_setnetmask(NET_DEVNAME, &addr);
-
- /* Initialize the NXFLAT binary loader */
-
- message("Initializing the NXFLAT binary loader\n");
- ret = nxflat_initialize();
- if (ret < 0)
- {
- message("ERROR: Initialization of the NXFLAT loader failed: %d\n", ret);
- exit(2);
- }
-
- /* Create a ROM disk for the ROMFS filesystem */
-
- message("Registering romdisk\n");
- ret = romdisk_register(0, (uint8_t*)romfs_img, NSECTORS(romfs_img_len), SECTORSIZE);
- if (ret < 0)
- {
- message("ERROR: romdisk_register failed: %d\n", ret);
- nxflat_uninitialize();
- exit(1);
- }
-
- /* Mount the file system */
-
- message("Mounting ROMFS filesystem at target=%s with source=%s\n",
- MOUNTPT, ROMFSDEV);
-
- ret = mount(ROMFSDEV, MOUNTPT, "romfs", MS_RDONLY, NULL);
- if (ret < 0)
- {
- message("ERROR: mount(%s,%s,romfs) failed: %s\n",
- ROMFSDEV, MOUNTPT, errno);
- nxflat_uninitialize();
- }
-
- /* Start THTTPD. At present, symbol table info is passed via global variables */
-
- g_thttpdsymtab = exports;
- g_thttpdnsymbols = NEXPORTS;
-
- message("Starting THTTPD\n");
- msgflush();
- thttpd_main(1, &thttpd_argv);
- message("THTTPD terminated\n");
- msgflush();
- return 0;
-}
diff --git a/nuttx/examples/udp/Makefile b/nuttx/examples/udp/Makefile
deleted file mode 100644
index da833f010..000000000
--- a/nuttx/examples/udp/Makefile
+++ /dev/null
@@ -1,104 +0,0 @@
-############################################################################
-# examples/udp/Makefile
-#
-# Copyright (C) 2007-2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-TARG_ASRCS =
-TARG_AOBJS = $(TARG_ASRCS:.S=$(OBJEXT))
-
-TARG_CSRCS = target.c
-ifeq ($(CONFIG_EXAMPLE_UDP_SERVER),y)
-TARG_CSRCS += udp-server.c
-else
-TARG_CSRCS += udp-client.c
-endif
-
-TARG_COBJS = $(TARG_CSRCS:.c=$(OBJEXT))
-
-TARG_SRCS = $(TARG_ASRCS) $(TARG_CSRCS)
-TARG_OBJS = $(TARG_AOBJS) $(TARG_COBJS)
-
-TARG_BIN = libapp$(LIBEXT)
-
-HOSTCFLAGS += -DCONFIG_EXAMPLE_UDP_HOST=1
-ifeq ($(CONFIG_EXAMPLE_UDP_SERVER),y)
-HOSTCFLAGS += -DCONFIG_EXAMPLE_UDP_SERVER=1 \
- -DCONFIG_EXAMPLE_UDP_SERVERIP="$(CONFIG_EXAMPLE_UDP_SERVERIP)"
-endif
-
-HOST_SRCS = host.c
-ifeq ($(CONFIG_EXAMPLE_UDP_SERVER),y)
-HOST_SRCS += udp-client.c
-else
-HOST_SRCS += udp-server.c
-endif
-
-HOST_OBJS = $(HOST_SRCS:.c=.o)
-HOST_BIN = host
-
-all: $(TARG_BIN)
-
-$(TARG_AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(TARG_COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(TARG_BIN): $(TARG_OBJS) $(HOST_BIN)
- @( for obj in $(TARG_OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-$(HOST_OBJS): %.o: %.c
- $(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
-
-$(HOST_BIN): $(HOST_OBJS)
- $(HOSTCC) $(HOSTLDFLAGS) $(HOST_OBJS) -o $@
-
-.depend: Makefile $(TARG_SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(TARG_SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(TARG_BIN) $(HOST_BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/udp/host.c b/nuttx/examples/udp/host.c
deleted file mode 100644
index 34fd96765..000000000
--- a/nuttx/examples/udp/host.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/****************************************************************************
- * examples/udp/host.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 "udp-internal.h"
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
-#ifdef CONFIG_EXAMPLE_UDP_SERVER
- send_client();
-#else
- recv_server();
-#endif
-
- return 0;
-}
diff --git a/nuttx/examples/udp/target.c b/nuttx/examples/udp/target.c
deleted file mode 100644
index 5e31fdb36..000000000
--- a/nuttx/examples/udp/target.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/****************************************************************************
- * examples/udp/nettest.c
- *
- * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-#include <stdio.h>
-#include <debug.h>
-
-#include <net/uip/uip.h>
-#include <apps/netutils/uiplib.h>
-
-#include "udp-internal.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does
- * not support weak functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UDP_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UDP_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UDP_NETMASK);
- uip_setnetmask("eth0", &addr);
-
-#ifdef CONFIG_EXAMPLE_UDP_SERVER
- recv_server();
-#else
- send_client();
-#endif
-
- return 0;
-}
diff --git a/nuttx/examples/udp/udp-client.c b/nuttx/examples/udp/udp-client.c
deleted file mode 100644
index 545a3a6c3..000000000
--- a/nuttx/examples/udp/udp-client.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/****************************************************************************
- * examples/udp/udp-client.c
- *
- * Copyright (C) 2007 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#include "udp-internal.h"
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static inline void fill_buffer(unsigned char *buf, int offset)
-{
- int ch;
- int j;
-
- buf[0] = offset;
- for (ch = 0x20, j = offset + 1; ch < 0x7f; ch++, j++)
- {
- if (j >= SENDSIZE)
- {
- j = 1;
- }
- buf[j] = ch;
- }
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-void send_client(void)
-{
- struct sockaddr_in server;
- unsigned char outbuf[SENDSIZE];
- int sockfd;
- int nbytes;
- int offset;
-
- /* Create a new TCP socket */
-
- sockfd = socket(PF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- message("client socket failure %d\n", errno);
- exit(1);
- }
-
- /* Then send and receive 256 messages */
-
- for (offset = 0; offset < 256; offset++)
- {
- /* Set up the output buffer */
-
- fill_buffer(outbuf, offset);
-
- /* Send the message */
-
- server.sin_family = AF_INET;
- server.sin_port = HTONS(PORTNO);
- server.sin_addr.s_addr = HTONL(CONFIG_EXAMPLE_UDP_SERVERIP);
-
- message("client: %d. Sending %d bytes\n", offset, SENDSIZE);
- nbytes = sendto(sockfd, outbuf, SENDSIZE, 0,
- (struct sockaddr*)&server, sizeof(struct sockaddr_in));
- message("client: %d. Sent %d bytes\n", offset, nbytes);
-
- if (nbytes < 0)
- {
- message("client: %d. sendto failed: %d\n", offset, errno);
- close(sockfd);
- exit(-1);
- }
- else if (nbytes != SENDSIZE)
- {
- message("client: %d. Bad send length: %d Expected: %d\n",
- offset, nbytes, SENDSIZE);
- close(sockfd);
- exit(-1);
- }
-
- /* Now, sleep a bit. No packets should be dropped due to overrunning
- * the server.
- */
-
- sleep(2);
- }
- close(sockfd);
-}
diff --git a/nuttx/examples/udp/udp-internal.h b/nuttx/examples/udp/udp-internal.h
deleted file mode 100644
index 94fe1e482..000000000
--- a/nuttx/examples/udp/udp-internal.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * examples/udp/udp-internal.h
- *
- * Copyright (C) 2007, 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_UIP_INTERNAL_H
-#define __EXAMPLES_UIP_INTERNAL_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLE_UDP_HOST
-#else
-# include <debug.h>
-#endif
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLE_UDP_HOST
- /* HTONS/L macros are unique to uIP */
-
-# define HTONS(a) htons(a)
-# define HTONL(a) htonl(a)
-
- /* Used printf for debug output */
-
-# define message(...) printf(__VA_ARGS__)
-
- /* Have SO_LINGER */
-
-#else
-
- /* If debug is enabled, use the synchronous lib_lowprintf so that the
- * program output does not get disassociated in the debug output.
- */
-
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# else
-# define message(...) printf(__VA_ARGS__)
-# endif
-
-#endif
-
-#define PORTNO 5471
-
-#define ASCIISIZE (0x7f - 0x20)
-#define SENDSIZE (ASCIISIZE+1)
-
-/****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
-
-extern void send_client(void);
-extern void recv_server(void);
-
-#endif /* __EXAMPLES_UIP_INTERNAL_H */
diff --git a/nuttx/examples/udp/udp-server.c b/nuttx/examples/udp/udp-server.c
deleted file mode 100644
index 495a71320..000000000
--- a/nuttx/examples/udp/udp-server.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/****************************************************************************
- * examples/udp/udp-server.c
- *
- * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <sys/socket.h>
-#include <netinet/in.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "udp-internal.h"
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-static inline int check_buffer(unsigned char *buf)
-{
- int ret = 1;
- int offset;
- int ch;
- int j;
-
- offset = buf[0];
- for (ch = 0x20, j = offset + 1; ch < 0x7f; ch++, j++)
- {
- if (j >= SENDSIZE)
- {
- j = 1;
- }
- if (buf[j] != ch)
- {
- message("server: Buffer content error for offset=%d, index=%d\n", offset, j);
- ret = 0;
- }
- }
- return ret;
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-void recv_server(void)
-{
- struct sockaddr_in server;
- struct sockaddr_in client;
- in_addr_t tmpaddr;
- unsigned char inbuf[1024];
- int sockfd;
- int nbytes;
- int optval;
- int offset;
- socklen_t addrlen;
-
- /* Create a new UDP socket */
-
- sockfd = socket(PF_INET, SOCK_DGRAM, 0);
- if (sockfd < 0)
- {
- message("server: socket failure: %d\n", errno);
- exit(1);
- }
-
- /* Set socket to reuse address */
-
- optval = 1;
- if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (void*)&optval, sizeof(int)) < 0)
- {
- message("server: setsockopt SO_REUSEADDR failure: %d\n", errno);
- exit(1);
- }
-
- /* Bind the socket to a local address */
-
- server.sin_family = AF_INET;
- server.sin_port = HTONS(PORTNO);
- server.sin_addr.s_addr = HTONL(INADDR_ANY);
-
- if (bind(sockfd, (struct sockaddr*)&server, sizeof(struct sockaddr_in)) < 0)
- {
- message("server: bind failure: %d\n", errno);
- exit(1);
- }
-
- /* Then receive up to 256 packets of data */
-
- for (offset = 0; offset < 256; offset++)
- {
- message("server: %d. Receiving up 1024 bytes\n", offset);
- addrlen = sizeof(struct sockaddr_in);
- nbytes = recvfrom(sockfd, inbuf, 1024, 0,
- (struct sockaddr*)&client, &addrlen);
-
- tmpaddr = ntohl(client.sin_addr.s_addr);
- message("server: %d. Received %d bytes from %d.%d.%d.%d:%d\n",
- offset, nbytes,
- tmpaddr >> 24, (tmpaddr >> 16) & 0xff,
- (tmpaddr >> 8) & 0xff, tmpaddr & 0xff,
- ntohs(client.sin_port));
-
- if (nbytes < 0)
- {
- message("server: %d. recv failed: %d\n", offset, errno);
- close(sockfd);
- exit(-1);
- }
-
- if (nbytes != SENDSIZE)
- {
- message("server: %d. recv size incorrect: %d vs %d\n", offset, nbytes, SENDSIZE);
- close(sockfd);
- exit(-1);
- }
-
- if (offset < inbuf[0])
- {
- message("server: %d. %d packets lost, resetting offset\n", offset, inbuf[0] - offset);
- offset = inbuf[0];
- }
- else if (offset > inbuf[0])
- {
- message("server: %d. Bad offset in buffer: %d\n", offset, inbuf[0]);
- close(sockfd);
- exit(-1);
- }
-
- if (!check_buffer(inbuf))
- {
- message("server: %d. Bad buffer contents\n", offset);
- close(sockfd);
- exit(-1);
- }
- }
- close(sockfd);
-}
diff --git a/nuttx/examples/uip/Makefile b/nuttx/examples/uip/Makefile
deleted file mode 100644
index e90f7ca42..000000000
--- a/nuttx/examples/uip/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/uip/Makefile
-#
-# Copyright (C) 2007-2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/uip/main.c b/nuttx/examples/uip/main.c
deleted file mode 100644
index 21a01998b..000000000
--- a/nuttx/examples/uip/main.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/****************************************************************************
- * examples/uip/main.c
- *
- * Copyright (C) 2007, 2009-2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * Based on uIP which also has a BSD style license:
- *
- * Copyright (c) 2001, Adam Dunkels.
- * 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. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Adam Dunkels.
- * 4. The name of the author may not be used to endorse or promote
- * products derived from this software without specific prior
- * written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 <nuttx/config.h>
-
-#include <sys/ioctl.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <time.h>
-#include <debug.h>
-
-#include <net/if.h>
-#include <net/uip/uip.h>
-#include <net/uip/uip-arp.h>
-
-#include <apps/netutils/uiplib.h>
-
-#ifdef CONFIG_EXAMPLE_UIP_DHCPC
-#include <arpa/inet.h>
-#endif
-
-/* Here we include the header file for the application(s) we use in
- * our project as defined in the config/<board-name>/defconfig file
- */
-
-/* DHCPC may be used in conjunction with any other feature (or not) */
-
-#ifdef CONFIG_EXAMPLE_UIP_DHCPC
-# include <apps/netutils/resolv.h>
-# include <apps/netutils/dhcpc.h>
-#endif
-
-/* Include uIP webserver definitions */
-
-#include <apps/netutils/httpd.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# else
-# define message(...) printf(__VA_ARGS__)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_lowprintf
-# else
-# define message (void)
-# endif
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does
- * not support weak functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_UIP_DHCPC) || defined(CONFIG_EXAMPLE_UIP_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-#ifdef CONFIG_EXAMPLE_UIP_DHCPC
- void *handle;
-#endif
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_UIP_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
-#ifdef CONFIG_EXAMPLE_UIP_DHCPC
- addr.s_addr = 0;
-#else
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UIP_IPADDR);
-#endif
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UIP_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_UIP_NETMASK);
- uip_setnetmask("eth0", &addr);
-
-#ifdef CONFIG_EXAMPLE_UIP_DHCPC
- /* Set up the resolver */
-
- resolv_init();
-
- /* Get the MAC address of the NIC */
-
- uip_getmacaddr("eth0", mac);
-
- /* Set up the DHCPC modules */
-
- handle = dhcpc_open(&mac, IFHWADDRLEN);
-
- /* Get an IP address. Note: there is no logic here for renewing the address in this
- * example. The address should be renewed in ds.lease_time/2 seconds.
- */
-
- printf("Getting IP address\n");
- if (handle)
- {
- struct dhcpc_state ds;
- (void)dhcpc_request(handle, &ds);
- uip_sethostaddr("eth1", &ds.ipaddr);
- if (ds.netmask.s_addr != 0)
- {
- uip_setnetmask("eth0", &ds.netmask);
- }
- if (ds.default_router.s_addr != 0)
- {
- uip_setdraddr("eth0", &ds.default_router);
- }
- if (ds.dnsaddr.s_addr != 0)
- {
- resolv_conf(&ds.dnsaddr);
- }
- dhcpc_close(handle);
- printf("IP: %s\n", inet_ntoa(ds.ipaddr));
- }
-#endif
-
-#ifdef CONFIG_NET_TCP
- printf("Starting webserver\n");
- httpd_init();
- httpd_listen();
-#endif
-
- while(1)
- {
- sleep(3);
- printf("main: Still running\n");
-#if CONFIG_NFILE_DESCRIPTORS > 0
- fflush(stdout);
-#endif
- }
- return 0;
-}
diff --git a/nuttx/examples/usbserial/Makefile b/nuttx/examples/usbserial/Makefile
deleted file mode 100644
index a2fe9f41b..000000000
--- a/nuttx/examples/usbserial/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-############################################################################
-# examples/usbserial/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/usbserial/Makefile.host b/nuttx/examples/usbserial/Makefile.host
deleted file mode 100644
index 0997ce81c..000000000
--- a/nuttx/examples/usbserial/Makefile.host
+++ /dev/null
@@ -1,63 +0,0 @@
-############################################################################
-# examples/usbserial/Makefile.host
-#
-# Copyright (C) 2008 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-SRC = host.c
-BIN = host
-
-DEFINES =
-ifeq ($(CONFIG_EXAMPLES_USBSERIAL_INONLY),y)
-DEFINES += -DCONFIG_EXAMPLES_USBSERIAL_INONLY=1
-endif
-ifeq ($(CONFIG_EXAMPLES_USBSERIAL_OUTONLY),y)
-DEFINES += -DCONFIG_EXAMPLES_USBSERIAL_OUTONLY=1
-endif
-ifeq ($(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL),y)
-DEFINES += -DCONFIG_EXAMPLES_USBSERIAL_ONLYSMALL=1
-endif
-ifeq ($(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG),y)
-DEFINES += -DCONFIG_EXAMPLES_USBSERIAL_ONLYBIG=1
-endif
-
-all: $(BIN)$(EXEEXT)
-
-$(BIN)$(EXEEXT): $(SRC)
- $(HOSTCC) $(HOSTCFLAGS) $(DEFINES) $^ -o $@
-
-clean:
- @rm -f $(BIN) *~ .*.swp *.o
- $(call CLEAN)
diff --git a/nuttx/examples/usbserial/host.c b/nuttx/examples/usbserial/host.c
deleted file mode 100644
index 751b7530c..000000000
--- a/nuttx/examples/usbserial/host.c
+++ /dev/null
@@ -1,293 +0,0 @@
-/****************************************************************************
- * examples/usbserial/host.c
- *
- * Copyright (C) 2008 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <stdio.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <termios.h>
-#include <fcntl.h>
-#include <errno.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#if defined(CONFIG_EXAMPLES_USBSERIAL_INONLY) && defined(CONFIG_EXAMPLES_USBSERIAL_OUTONLY)
-# error "Cannot define both CONFIG_EXAMPLES_USBSERIAL_INONLY and _OUTONLY"
-#endif
-#if defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL) && defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG)
-# error "Cannot define both CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL and _ONLYBIG"
-#endif
-
-#if !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) && !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
-# ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
-# define COUNTER_NEEDED 1
-# endif
-#endif
-
-#define DEFAULT_TTYDEV "/dev/ttyUSB0"
-#define BUFFER_SIZE 1024
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static const char *g_ttydev = DEFAULT_TTYDEV;
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_ONLYBIG
-static const char g_shortmsg[] = "Sure... You betcha!!\n";
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL
-static const char g_longmsg[] =
- "I am proud to come to this city as the guest of your distinguished Mayor, "
- "who has symbolized throughout the world the fighting spirit of West Berlin. "
- "And I am proud to visit the Federal Republic with your distinguished Chancellor "
- "who for so many years has committed Germany to democracy and freedom and "
- "progress, and to come here in the company of my fellow American, General Clay, "
- "who has been in this city during its great moments of crisis and will come "
- "again if ever needed.\n"
- "Two thousand years ago the proudest boast was \"civis Romanus sum.\" Today, "
- "in the world of freedom, the proudest boast is \"Ich bin ein Berliner.\"\r\""
- "I appreciate my interpreter translating my German!\n"
- "There are many people in the world who really don't understand, or say they "
- "don't, what is the great issue between the free world and the Communist world. "
- "Let them come to Berlin. There are some who say that communism is the wave of "
- "the future. Let them come to Berlin. And there are some who say in Europe and "
- "elsewhere we can work with the Communists. Let them come to Berlin. And there "
- "are even a few who say that it is true that communism is an evil system, but it "
- "permits us to make economic progress. Lass' sie nach Berlin kommen. Let them "
- "come to Berlin.\n"
- "Freedom has many difficulties and democracy is not perfect, but we have never "
- "had to put a wall up to keep our people in, to prevent them from leaving us. I "
- "want to say, on behalf of my countrymen, who live many miles away on the other "
- "side of the Atlantic, who are far distant from you, that they take the greatest "
- "pride that they have been able to share with you, even from a distance, the "
- "story of the last 18 years. I know of no town, no city, that has been besieged "
- "for 18 years that still lives with the vitality and the force, and the hope and "
- "the determination of the city of West Berlin. While the wall is the most obvious "
- "and vivid demonstration of the failures of the Communist system, for all the "
- "world to see, we take no satisfaction in it, for it is, as your Mayor has said, "
- "an offense not only against history but an offense against humanity, separating "
- "families, dividing husbands and wives and brothers and sisters, and dividing a "
- "people who wish to be joined together.\n"
- "What is true of this city is true of Germany--real, lasting peace in Europe can "
- "never be assured as long as one German out of four is denied the elementary "
- "right of free men, and that is to make a free choice. In 18 years of peace and "
- "good faith, this generation of Germans has earned the right to be free, "
- "including the right to unite their families and their nation in lasting peace, "
- "with good will to all people. You live in a defended island of freedom, but "
- "your life is part of the main. So let me ask you as I close, to lift your eyes "
- "beyond the dangers of today, to the hopes of tomorrow, beyond the freedom merely "
- "of this city of Berlin, or your country of Germany, to the advance of freedom "
- "everywhere, beyond the wall to the day of peace with justice, beyond yourselves "
- "and ourselves to all mankind.\n"
- "Freedom is indivisible, and when one man is enslaved, all are not free. When all "
- "are free, then we can look forward to that day when this city will be joined as "
- "one and this country and this great Continent of Europe in a peaceful and hopeful "
- "globe. When that day finally comes, as it will, the people of West Berlin can take "
- "sober satisfaction in the fact that they were in the front lines for almost two "
- "decades.\n"
- "All free men, wherever they may live, are citizens of Berlin, and, therefore, "
- "as a free man, I take pride in the words \"Ich bin ein Berliner.\"\n"
- "President John F. Kennedy - June 26, 1963\n";
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
-static char g_iobuffer[BUFFER_SIZE];
-#endif
-
-/****************************************************************************
- * show_usage
- ****************************************************************************/
-
-static void show_usage(const char *progname, int exitcode)
-{
- fprintf(stderr, "USAGE: %s [<ttydev>]\n", progname);
- exit(exitcode);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
- struct termios tty;
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- ssize_t nbytes;
-#endif
-#ifdef COUNTER_NEEDED
- int count = 0;
-#endif
- int fd;
- int ret;
-
- /* Handle input parameters */
-
- if (argc > 1)
- {
- if (argc > 2)
- {
- fprintf(stderr, "Too many arguments on command line\n");
- show_usage(argv[0], 1);
- }
- g_ttydev = argv[1];
- }
-
- /* Open the USB serial device for blocking read/write */
-
- do
- {
- printf("main: Opening USB serial driver\n");
- fd = open(g_ttydev, O_RDWR);
- if (fd < 0)
- {
- printf("main: ERROR: Failed to open %s: %s\n", g_ttydev, strerror(errno));
- printf("main: Assume not connected. Wait and try again.\n");
- printf("main: (Control-C to terminate).\n");
- sleep(5);
- }
- }
- while (fd < 0);
- printf("main: Successfully opened the serial driver\n");
-
- /* Configure the serial port in raw mode (at least turn off echo) */
-
- ret = tcgetattr(fd, &tty);
- if (ret < 0)
- {
- printf("main: ERROR: Failed to get termios for %s: %s\n", g_ttydev, strerror(errno));
- close(fd);
- return 1;
- }
-
- tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
- tty.c_oflag &= ~OPOST;
- tty.c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
- tty.c_cflag &= ~(CSIZE|PARENB);
- tty.c_cflag |= CS8;
-
- ret = tcsetattr(fd, TCSANOW, &tty);
- if (ret < 0)
- {
- printf("main: ERROR: Failed to set termios for %s: %s\n", g_ttydev, strerror(errno));
- close(fd);
- return 1;
- }
-
- /* Wait for and/or send messages -- forever */
-
- for (;;)
- {
- /* Test IN messages (device-to-host) */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- printf("main: Reading from the serial driver\n");
- printf("main: ... (Control-C to terminate) ...\n");
- nbytes = read(fd, g_iobuffer, BUFFER_SIZE-1);
- if (nbytes < 0)
- {
- printf("main: ERROR: Failed to read from %s: %s\n", g_ttydev, strerror(errno));
- close(fd);
- return 2;
- }
- else if (nbytes == 0)
- {
- printf("main: End-of-file encountered\n");
- break;
- }
-
- g_iobuffer[nbytes] = '\0';
- printf("main: Received %d bytes:\n", nbytes);
- printf(" \"%s\"\n", g_iobuffer);
-#else
- printf("main: Waiting...\n");
- sleep(5);
-#endif /* CONFIG_EXAMPLES_USBSERIAL_OUTONLY */
-
- /* Test OUT messages (host-to-device) */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
-#if !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL) && !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG)
- count++;
- if (count < 5)
- {
- printf("main: Sending %d bytes..\n", sizeof(g_shortmsg));
- nbytes = write(fd, g_shortmsg, sizeof(g_shortmsg));
- }
- else
- {
- printf("main: Sending %d bytes..\n", sizeof(g_longmsg));
- nbytes = write(fd, g_longmsg, sizeof(g_longmsg));
- count = 0;
- }
-#elif !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
- printf("main: Sending %d bytes..\n", sizeof(g_longmsg));
- nbytes = write(fd, g_longmsg, sizeof(g_longmsg));
-#else /* !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) */
- printf("main: Sending %d bytes..\n", sizeof(g_shortmsg));
- nbytes = write(fd, g_shortmsg, sizeof(g_shortmsg));
-#endif
-
- /* Test if write was successful */
-
- if (nbytes < 0)
- {
- printf("main: ERROR: Failed to write to %s: %s\n", g_ttydev, strerror(errno));
- close(fd);
- return 2;
- }
- printf("main: %d bytes sent\n", nbytes);
-#endif /* CONFIG_EXAMPLES_USBSERIAL_INONLY */
- }
-
- close(fd);
- return 0;
-}
-
diff --git a/nuttx/examples/usbserial/main.c b/nuttx/examples/usbserial/main.c
deleted file mode 100644
index 17aef1c79..000000000
--- a/nuttx/examples/usbserial/main.c
+++ /dev/null
@@ -1,466 +0,0 @@
-/****************************************************************************
- * examples/usbserial/main.c
- *
- * Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <nuttx/usb/usbdev.h>
-#include <nuttx/usb/usbdev_trace.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#if defined(CONFIG_EXAMPLES_USBSERIAL_INONLY) && defined(CONFIG_EXAMPLES_USBSERIAL_OUTONLY)
-# error "Cannot define both CONFIG_EXAMPLES_USBSERIAL_INONLY and _OUTONLY"
-#endif
-#if defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL) && defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG)
-# error "Cannot define both CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL and _ONLYBIG"
-#endif
-
-#if !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) && !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
-# ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
-# define COUNTER_NEEDED 1
-# endif
-#endif
-#ifdef CONFIG_EXAMPLES_USBSERIAL_TRACEINIT
-# define TRACE_INIT_BITS (TRACE_INIT_BIT)
-#else
-# define TRACE_INIT_BITS (0)
-#endif
-
-#define TRACE_ERROR_BITS (TRACE_DEVERROR_BIT|TRACE_CLSERROR_BIT)
-
-#ifdef CONFIG_EXAMPLES_USBSERIAL_TRACECLASS
-# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
-#else
-# define TRACE_CLASS_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSERIAL_TRACETRANSFERS
-# define TRACE_TRANSFER_BITS (TRACE_OUTREQQUEUED_BIT|TRACE_INREQQUEUED_BIT|TRACE_READ_BIT|\
- TRACE_WRITE_BIT|TRACE_COMPLETE_BIT)
-#else
-# define TRACE_TRANSFER_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSERIAL_TRACECONTROLLER
-# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
-#else
-# define TRACE_CONTROLLER_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSERIAL_TRACEINTERRUPTS
-# define TRACE_INTERRUPT_BITS (TRACE_INTENTRY_BIT|TRACE_INTDECODE_BIT|TRACE_INTEXIT_BIT)
-#else
-# define TRACE_INTERRUPT_BITS (0)
-#endif
-
-#define TRACE_BITSET (TRACE_INIT_BITS|TRACE_ERROR_BITS|TRACE_CLASS_BITS|\
- TRACE_TRANSFER_BITS|TRACE_CONTROLLER_BITS|TRACE_INTERRUPT_BITS)
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# define trmessage lib_lowprintf
-# else
-# define message(...) printf(__VA_ARGS__)
-# define trmessage printf
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_lowprintf
-# define trmessage lib_lowprintf
-# else
-# define message printf
-# define trmessage printf
-# endif
-#endif
-
-#define IOBUFFER_SIZE 256
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_ONLYBIG
-static const char g_shortmsg[] = "Hello, World!!\n";
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL
-static const char g_longmsg[] =
- "The Spanish Armada a Speech by Queen Elizabeth I of England\n"
- "Addressed to the English army at Tilbury Fort - 1588\n"
- "My loving people, we have been persuaded by some, that are careful of our "
- "safety, to take heed how we commit ourselves to armed multitudes, for fear "
- "of treachery; but I assure you, I do not desire to live to distrust my "
- "faithful and loving people.\n"
- "Let tyrants fear; I have always so behaved myself that, under God, I have "
- "placed my chiefest strength and safeguard in the loyal hearts and good will "
- "of my subjects. And therefore I am come amongst you at this time, not as for "
- "my recreation or sport, but being resolved, in the midst and heat of the "
- "battle, to live or die amongst you all; to lay down, for my God, and for "
- "my kingdom, and for my people, my honour and my blood, even the dust.\n"
- "I know I have but the body of a weak and feeble woman; but I have the heart "
- "of a king, and of a king of England, too; and think foul scorn that Parma "
- "or Spain, or any prince of Europe, should dare to invade the borders of my "
- "realms: to which, rather than any dishonour should grow by me, I myself will "
- "take up arms; I myself will be your general, judge, and rewarder of every "
- "one of your virtues in the field.\n"
- "I know already, by your forwardness, that you have deserved rewards and "
- "crowns; and we do assure you, on the word of a prince, they shall be duly "
- "paid you. In the mean my lieutenant general shall be in my stead, than whom "
- "never prince commanded a more noble and worthy subject; not doubting by "
- "your obedience to my general, by your concord in the camp, and by your "
- "valour in the field, we shall shortly have a famous victory over the enemies "
- "of my God, of my kingdom, and of my people.\n";
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
-static char g_iobuffer[IOBUFFER_SIZE];
-#endif
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-#ifdef CONFIG_USBDEV_TRACE
-static int trace_callback(struct usbtrace_s *trace, void *arg)
-{
- usbtrace_trprintf((trprintf_t)trmessage, trace->event, trace->value);
- return 0;
-}
-
-static void dumptrace(void)
-{
- (void)usbtrace_enumerate(trace_callback, NULL);
-}
-#else
-# define dumptrace()
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- int infd;
-#endif
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- int outfd;
-#endif
-#ifdef COUNTER_NEEDED
- int count = 0;
-#endif
- ssize_t nbytes;
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- int i, j, k;
-#endif
- int ret;
-
- /* Initialize the USB serial driver */
-
- message("user_start: Registering USB serial driver\n");
- ret = usbdev_serialinitialize(0);
- if (ret < 0)
- {
- message("user_start: ERROR: Failed to create the USB serial device: %d\n", -ret);
- return 1;
- }
- message("user_start: Successfully registered the serial driver\n");
-
-#if CONFIG_USBDEV_TRACE && CONFIG_USBDEV_TRACE_INITIALIDSET != 0
- /* If USB tracing is enabled and tracing of initial USB events is specified,
- * then dump all collected trace data to stdout
- */
-
- sleep(5);
- dumptrace();
-#endif
-
- /* Then, in any event, configure trace data collection as configured */
-
- usbtrace_enable(TRACE_BITSET);
-
- /* Open the USB serial device for writing (blocking) */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- do
- {
- message("user_start: Opening USB serial driver\n");
- outfd = open("/dev/ttyUSB0", O_WRONLY);
- if (outfd < 0)
- {
- int errcode = errno;
- message("user_start: ERROR: Failed to open /dev/ttyUSB0 for writing: %d\n", errcode);
-
- /* ENOTCONN means that the USB device is not yet connected */
-
- if (errcode == ENOTCONN)
- {
- message("user_start: Not connected. Wait and try again.\n");
- sleep(5);
- }
- else
- {
- /* Give up on other errors */
-
- message("user_start: Aborting\n");
- return 2;
- }
- }
-
- /* If USB tracing is enabled, then dump all collected trace data to stdout */
-
- dumptrace();
- }
- while (outfd < 0);
-#endif
-
- /* Open the USB serial device for reading (non-blocking) */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- infd = open("/dev/ttyUSB0", O_RDONLY|O_NONBLOCK);
- if (infd < 0)
- {
- message("user_start: ERROR: Failed to open /dev/ttyUSB0 for reading: %d\n", errno);
- close(outfd);
- return 3;
- }
-#else
- do
- {
- infd = open("/dev/ttyUSB0", O_RDONLY|O_NONBLOCK);
- if (infd < 0)
- {
- int errcode = errno;
- message("user_start: ERROR: Failed to open /dev/ttyUSB0 for reading: %d\n", errno);
-
- /* ENOTCONN means that the USB device is not yet connected */
-
- if (errcode == ENOTCONN)
- {
- message("user_start: Not connected. Wait and try again.\n");
- sleep(5);
- }
- else
- {
- /* Give up on other errors */
-
- message("user_start: Aborting\n");
- return 3;
- }
- }
-
- /* If USB tracing is enabled, then dump all collected trace data to stdout */
-
- dumptrace();
- }
- while (infd < 0);
-#endif
-#endif
-
- message("user_start: Successfully opened the serial driver\n");
-
- /* Send messages and get responses -- forever */
-
- for (;;)
- {
- /* Test IN (device-to-host) messages */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
-#if !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) && !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
- if (count < 8)
- {
- message("user_start: Saying hello\n");
- nbytes = write(outfd, g_shortmsg, sizeof(g_shortmsg));
- count++;
- }
- else
- {
- message("user_start: Reciting QEI's speech of 1588\n");
- nbytes = write(outfd, g_longmsg, sizeof(g_longmsg));
- count = 0;
- }
-#elif !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYSMALL)
- message("user_start: Reciting QEI's speech of 1588\n");
- nbytes = write(outfd, g_longmsg, sizeof(g_longmsg));
-#else /* !defined(CONFIG_EXAMPLES_USBSERIAL_ONLYBIG) */
- message("user_start: Saying hello\n");
- nbytes = write(outfd, g_shortmsg, sizeof(g_shortmsg));
-#endif
-
- /* Test if the write was successful */
-
- if (nbytes < 0)
- {
- message("user_start: ERROR: write failed: %d\n", errno);
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- close(infd);
-#endif
- close(outfd);
- return 4;
- }
- message("user_start: %d bytes sent\n", nbytes);
-#endif /* CONFIG_EXAMPLES_USBSERIAL_OUTONLY */
-
- /* Test OUT (host-to-device) messages */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- /* Poll for incoming messages */
-
- message("user_start: Polling for OUT messages\n");
- for (i = 0; i < 5; i++)
- {
- memset(g_iobuffer, 'X', IOBUFFER_SIZE);
- nbytes = read(infd, g_iobuffer, IOBUFFER_SIZE);
- if (nbytes < 0)
- {
- int errorcode = errno;
- if (errorcode != EAGAIN)
- {
- message("user_start: ERROR: read failed: %d\n", errno);
- close(infd);
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- close(outfd);
-#endif
- return 6;
- }
- }
- else
- {
- message("user_start: Received %d bytes:\n", nbytes);
- if (nbytes > 0)
- {
- for (j = 0; j < nbytes; j += 16)
- {
- message("user_start: %03x: ", j);
- for (k = 0; k < 16; k++)
- {
- if (k == 8)
- {
- message(" ");
- }
- if (j+k < nbytes)
- {
- message("%02x", g_iobuffer[j+k]);
- }
- else
- {
- message(" ");
- }
- }
- message(" ");
- for (k = 0; k < 16; k++)
- {
- if (k == 8)
- {
- message(" ");
- }
- if (j+k < nbytes)
- {
- if (g_iobuffer[j+k] >= 0x20 && g_iobuffer[j+k] < 0x7f)
- {
- message("%c", g_iobuffer[j+k]);
- }
- else
- {
- message(".");
- }
- }
- else
- {
- message(" ");
- }
- }
- message("\n");
- }
- }
- }
- sleep(1);
- }
-#else /* CONFIG_EXAMPLES_USBSERIAL_INONLY */
- message("user_start: Waiting\n");
- sleep(5);
-#endif /* CONFIG_EXAMPLES_USBSERIAL_INONLY */
-
- /* If USB tracing is enabled, then dump all collected trace data to stdout */
-
- dumptrace();
- }
-
- /* Won't get here, but if we did this what we would have to do */
-
-#ifndef CONFIG_EXAMPLES_USBSERIAL_INONLY
- close(infd);
-#endif
-#ifndef CONFIG_EXAMPLES_USBSERIAL_OUTONLY
- close(outfd);
-#endif
- return 0;
-}
-
diff --git a/nuttx/examples/usbstorage/Makefile b/nuttx/examples/usbstorage/Makefile
deleted file mode 100644
index de69e5911..000000000
--- a/nuttx/examples/usbstorage/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/hello/Makefile
-#
-# Copyright (C) 2008, 2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-CSRCS = usbstrg_main.c
-
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/usbstorage/usbstrg.h b/nuttx/examples/usbstorage/usbstrg.h
deleted file mode 100644
index 4b50dfe77..000000000
--- a/nuttx/examples/usbstorage/usbstrg.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/****************************************************************************
- * examples/usbstorage/usbstrg.h
- *
- * Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __EXAMPLES_USBSTORAGE_USBSTRG_H
-#define __EXAMPLES_USBSTORAGE_USBSTRG_H
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-/****************************************************************************
- * Pre-Processor Definitions
- ****************************************************************************/
-
-/* Configuration ************************************************************/
-
-#ifndef CONFIG_EXAMPLES_USBSTRG_NLUNS
-# define CONFIG_EXAMPLES_USBSTRG_NLUNS 1
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSTRG_DEVMINOR1
-# define CONFIG_EXAMPLES_USBSTRG_DEVMINOR1 0
-#endif
-
-#ifndef CONFIG_EXAMPLES_USBSTRG_DEVPATH1
-# define CONFIG_EXAMPLES_USBSTRG_DEVPATH1 "/dev/mmcsd0"
-#endif
-
-#if CONFIG_EXAMPLES_USBSTRG_NLUNS > 1
-# ifndef CONFIG_EXAMPLES_USBSTRG_DEVMINOR2
-# error "CONFIG_EXAMPLES_USBSTRG_DEVMINOR2 for LUN=2"
-# endif
-# ifndef CONFIG_EXAMPLES_USBSTRG_DEVPATH2
-# error "CONFIG_EXAMPLES_USBSTRG_DEVPATH2 for LUN=2"
-# endif
-# if CONFIG_EXAMPLES_USBSTRG_NLUNS > 2
-# ifndef CONFIG_EXAMPLES_USBSTRG_DEVMINOR3
-# error "CONFIG_EXAMPLES_USBSTRG_DEVMINOR2 for LUN=3"
-# endif
-# ifndef CONFIG_EXAMPLES_USBSTRG_DEVPATH2
-# error "CONFIG_EXAMPLES_USBSTRG_DEVPATH2 for LUN=3"
-# endif
-# if CONFIG_EXAMPLES_USBSTRG_NLUNS > 3
-# error "CONFIG_EXAMPLES_USBSTRG_NLUNS must be {1,2,3}"
-# endif
-# endif
-#endif
-
-/* Debug ********************************************************************/
-
-#ifdef CONFIG_CPP_HAVE_VARARGS
-# ifdef CONFIG_DEBUG
-# define message(...) lib_lowprintf(__VA_ARGS__)
-# define msgflush()
-# else
-# define message(...) printf(__VA_ARGS__)
-# define msgflush() fflush(stdout)
-# endif
-#else
-# ifdef CONFIG_DEBUG
-# define message lib_lowprintf
-# define msgflush()
-# else
-# define message printf
-# define msgflush() fflush(stdout)
-# endif
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: usbstrg_archinitialize
- *
- * Description:
- * Perform architecture specific initialization. This function must
- * configure the block device to export via USB. This function must be
- * provided by architecture-specific logic in order to use this example.
- *
- ****************************************************************************/
-
-extern int usbstrg_archinitialize(void);
-
-#endif /* __EXAMPLES_USBSTORAGE_USBSTRG_H */
diff --git a/nuttx/examples/usbstorage/usbstrg_main.c b/nuttx/examples/usbstorage/usbstrg_main.c
deleted file mode 100644
index 47d79fbb4..000000000
--- a/nuttx/examples/usbstorage/usbstrg_main.c
+++ /dev/null
@@ -1,404 +0,0 @@
-/****************************************************************************
- * examples/usbstorage/usbstrg_main.c
- *
- * Copyright (C) 2008-2010 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <debug.h>
-
-#include <nuttx/usb/usbdev.h>
-#include <nuttx/usb/usbdev_trace.h>
-
-#include "usbstrg.h"
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_EXAMPLES_USBSTRG_TRACEINIT
-# define TRACE_INIT_BITS (TRACE_INIT_BIT)
-#else
-# define TRACE_INIT_BITS (0)
-#endif
-
-#define TRACE_ERROR_BITS (TRACE_DEVERROR_BIT|TRACE_CLSERROR_BIT)
-
-#ifdef CONFIG_EXAMPLES_USBSTRG_TRACECLASS
-# define TRACE_CLASS_BITS (TRACE_CLASS_BIT|TRACE_CLASSAPI_BIT|TRACE_CLASSSTATE_BIT)
-#else
-# define TRACE_CLASS_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSTRG_TRACETRANSFERS
-# define TRACE_TRANSFER_BITS (TRACE_OUTREQQUEUED_BIT|TRACE_INREQQUEUED_BIT|TRACE_READ_BIT|\
- TRACE_WRITE_BIT|TRACE_COMPLETE_BIT)
-#else
-# define TRACE_TRANSFER_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSTRG_TRACECONTROLLER
-# define TRACE_CONTROLLER_BITS (TRACE_EP_BIT|TRACE_DEV_BIT)
-#else
-# define TRACE_CONTROLLER_BITS (0)
-#endif
-
-#ifdef CONFIG_EXAMPLES_USBSTRG_TRACEINTERRUPTS
-# define TRACE_INTERRUPT_BITS (TRACE_INTENTRY_BIT|TRACE_INTDECODE_BIT|TRACE_INTEXIT_BIT)
-#else
-# define TRACE_INTERRUPT_BITS (0)
-#endif
-
-#define TRACE_BITSET (TRACE_INIT_BITS|TRACE_ERROR_BITS|TRACE_CLASS_BITS|\
- TRACE_TRANSFER_BITS|TRACE_CONTROLLER_BITS|TRACE_INTERRUPT_BITS)
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: usbstrg_enumerate
- ****************************************************************************/
-
-#ifdef CONFIG_USBDEV_TRACE
-static int usbstrg_enumerate(struct usbtrace_s *trace, void *arg)
-{
- switch (trace->event)
- {
- case TRACE_DEVINIT:
- message("USB controller initialization: %04x\n", trace->value);
- break;
-
- case TRACE_DEVUNINIT:
- message("USB controller un-initialization: %04x\n", trace->value);
- break;
-
- case TRACE_DEVREGISTER:
- message("usbdev_register(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVUNREGISTER:
- message("usbdev_unregister(): %04x\n", trace->value);
- break;
-
- case TRACE_EPCONFIGURE:
- message("Endpoint configure(): %04x\n", trace->value);
- break;
-
- case TRACE_EPDISABLE:
- message("Endpoint disable(): %04x\n", trace->value);
- break;
-
- case TRACE_EPALLOCREQ:
- message("Endpoint allocreq(): %04x\n", trace->value);
- break;
-
- case TRACE_EPFREEREQ:
- message("Endpoint freereq(): %04x\n", trace->value);
- break;
-
- case TRACE_EPALLOCBUFFER:
- message("Endpoint allocbuffer(): %04x\n", trace->value);
- break;
-
- case TRACE_EPFREEBUFFER:
- message("Endpoint freebuffer(): %04x\n", trace->value);
- break;
-
- case TRACE_EPSUBMIT:
- message("Endpoint submit(): %04x\n", trace->value);
- break;
-
- case TRACE_EPCANCEL:
- message("Endpoint cancel(): %04x\n", trace->value);
- break;
-
- case TRACE_EPSTALL:
- message("Endpoint stall(true): %04x\n", trace->value);
- break;
-
- case TRACE_EPRESUME:
- message("Endpoint stall(false): %04x\n", trace->value);
- break;
-
- case TRACE_DEVALLOCEP:
- message("Device allocep(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVFREEEP:
- message("Device freeep(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVGETFRAME:
- message("Device getframe(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVWAKEUP:
- message("Device wakeup(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVSELFPOWERED:
- message("Device selfpowered(): %04x\n", trace->value);
- break;
-
- case TRACE_DEVPULLUP:
- message("Device pullup(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSBIND:
- message("Class bind(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSUNBIND:
- message("Class unbind(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSDISCONNECT:
- message("Class disconnect(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSSETUP:
- message("Class setup(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSSUSPEND:
- message("Class suspend(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSRESUME:
- message("Class resume(): %04x\n", trace->value);
- break;
-
- case TRACE_CLASSRDCOMPLETE:
- message("Class RD request complete: %04x\n", trace->value);
- break;
-
- case TRACE_CLASSWRCOMPLETE:
- message("Class WR request complete: %04x\n", trace->value);
- break;
-
- default:
- switch (TRACE_ID(trace->event))
- {
- case TRACE_CLASSAPI_ID: /* Other class driver system API calls */
- message("Class API call %d: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_CLASSSTATE_ID: /* Track class driver state changes */
- message("Class state %d: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_INTENTRY_ID: /* Interrupt handler entry */
- message("Interrrupt %d entry: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_INTDECODE_ID: /* Decoded interrupt trace->event */
- message("Interrrupt decode %d: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_INTEXIT_ID: /* Interrupt handler exit */
- message("Interrrupt %d exit: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_OUTREQQUEUED_ID: /* Request queued for OUT endpoint */
- message("EP%d OUT request queued: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_INREQQUEUED_ID: /* Request queued for IN endpoint */
- message("EP%d IN request queued: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_READ_ID: /* Read (OUT) action */
- message("EP%d OUT read: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_WRITE_ID: /* Write (IN) action */
- message("EP%d IN write: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_COMPLETE_ID: /* Request completed */
- message("EP%d request complete: %04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_DEVERROR_ID: /* USB controller driver error event */
- message("Controller error: %02x:%04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- case TRACE_CLSERROR_ID: /* USB class driver error event */
- message("Class error: %02x:%04x\n", TRACE_DATA(trace->event), trace->value);
- break;
-
- default:
- message("Unrecognized event: %02x:%02x:%04x\n",
- TRACE_ID(trace->event) >> 8, TRACE_DATA(trace->event), trace->value);
- break;
- }
- }
- return OK;
-}
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- void *handle;
- int ret;
-
- /* Initialize USB trace output IDs */
-
- usbtrace_enable(TRACE_BITSET);
-
- /* Register block drivers (architecture-specific) */
-
- message("user_start: Creating block drivers\n");
- ret = usbstrg_archinitialize();
- if (ret < 0)
- {
- message("user_start: usbstrg_archinitialize failed: %d\n", -ret);
- return 1;
- }
-
- /* Then exports the LUN(s) */
-
- message("user_start: Configuring with NLUNS=%d\n", CONFIG_EXAMPLES_USBSTRG_NLUNS);
- ret = usbstrg_configure(CONFIG_EXAMPLES_USBSTRG_NLUNS, &handle);
- if (ret < 0)
- {
- message("user_start: usbstrg_configure failed: %d\n", -ret);
- usbstrg_uninitialize(handle);
- return 2;
- }
- message("user_start: handle=%p\n", handle);
-
- message("user_start: Bind LUN=0 to %s\n", CONFIG_EXAMPLES_USBSTRG_DEVPATH1);
- ret = usbstrg_bindlun(handle, CONFIG_EXAMPLES_USBSTRG_DEVPATH1, 0, 0, 0, false);
- if (ret < 0)
- {
- message("user_start: usbstrg_bindlun failed for LUN 1 using %s: %d\n",
- CONFIG_EXAMPLES_USBSTRG_DEVPATH1, -ret);
- usbstrg_uninitialize(handle);
- return 2;
- }
-
-#if CONFIG_EXAMPLES_USBSTRG_NLUNS > 1
-
- message("user_start: Bind LUN=1 to %s\n", CONFIG_EXAMPLES_USBSTRG_DEVPATH2);
- ret = usbstrg_bindlun(handle, CONFIG_EXAMPLES_USBSTRG_DEVPATH2, 1, 0, 0, false);
- if (ret < 0)
- {
- message("user_start: usbstrg_bindlun failed for LUN 2 using %s: %d\n",
- CONFIG_EXAMPLES_USBSTRG_DEVPATH2, -ret);
- usbstrg_uninitialize(handle);
- return 3;
- }
-
-#if CONFIG_EXAMPLES_USBSTRG_NLUNS > 2
-
- message("user_start: Bind LUN=2 to %s\n", CONFIG_EXAMPLES_USBSTRG_DEVPATH3);
- ret = usbstrg_bindlun(handle, CONFIG_EXAMPLES_USBSTRG_DEVPATH3, 2, 0, 0, false);
- if (ret < 0)
- {
- message("user_start: usbstrg_bindlun failed for LUN 3 using %s: %d\n",
- CONFIG_EXAMPLES_USBSTRG_DEVPATH3, -ret);
- usbstrg_uninitialize(handle);
- return 4;
- }
-
-#endif
-#endif
-
- ret = usbstrg_exportluns(handle);
- if (ret < 0)
- {
- message("user_start: usbstrg_exportluns failed: %d\n", -ret);
- usbstrg_uninitialize(handle);
- return 5;
- }
-
- /* Now just hang around and monitor the USB storage activity */
-
-#ifndef CONFIG_DISABLE_SIGNALS
- for (;;)
- {
- msgflush();
- sleep(5);
-
-#ifdef CONFIG_USBDEV_TRACE
- message("\nuser_start: USB TRACE DATA:\n");
- ret = usbtrace_enumerate(usbstrg_enumerate, NULL);
- if (ret < 0)
- {
- message("user_start: usbtrace_enumerate failed: %d\n", -ret);
- usbstrg_uninitialize(handle);
- return 6;
- }
-#else
- message("user_start: Still alive\n");
-#endif
- }
-#else
- message("user_start: Exiting\n");
- #endif
-}
-
diff --git a/nuttx/examples/wget/Makefile b/nuttx/examples/wget/Makefile
deleted file mode 100644
index dc00702c7..000000000
--- a/nuttx/examples/wget/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/wget/Makefile
-#
-# Copyright (C) 2009-2010 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = target.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
- @make -f Makefile.host clean
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/wget/Makefile.host b/nuttx/examples/wget/Makefile.host
deleted file mode 100644
index 73a1c7ce6..000000000
--- a/nuttx/examples/wget/Makefile.host
+++ /dev/null
@@ -1,77 +0,0 @@
-############################################################################
-# examples/wget/Makefile.host
-#
-# Copyright (C) 2009 Gregory Nutt. All rights reserved.
-# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
-#
-# 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.
-#
-############################################################################
-
-WD = ${shell pwd}
-TOPDIR = $(WD)/../..
-include $(TOPDIR)/Make.defs
-
-OBJS = host.o1 webclient.o1 uip_parsehttpurl.o1
-BIN = wget
-
-HOSTCFLAGS += -DCONFIG_WEBCLIENT_HOST=1
-HOSTCFLAGS += -I. -include hostdefs.h
-VPATH = $(TOPDIR)/netutils/webclient:$(TOPDIR)/netutils/uiplib:.
-
-all: $(BIN)
-.PHONY: clean context clean_context distclean
-
-$(OBJS): %.o1: %.c
- $(HOSTCC) -c $(HOSTCFLAGS) $< -o $@
-
-apps/netutils:
- @mkdir -p apps/netutils
-
-apps/netutils/webclient.h: apps/netutils $(TOPDIR)/include/apps/netutils/webclient.h
- @cp -a $(TOPDIR)/include/apps/netutils/webclient.h apps/netutils/.
-
-apps/netutils/uiplib.h: apps/netutils $(TOPDIR)/include/apps/netutils/uiplib.h
- @cp -a $(TOPDIR)/include/apps/netutils/uiplib.h apps/netutils/.
-
-nuttx:
- @mkdir nuttx
-
-nuttx/config.h: nuttx
- @touch nuttx/config.h
-
-headers: apps/netutils/webclient.h apps/netutils/uiplib.h nuttx/config.h
-
-$(BIN): headers $(OBJS)
- $(HOSTCC) $(HOSTLDFLAGS) $(OBJS) -o $@
-
-clean:
- @rm -f $(BIN).* *.o1 *~
- @rm -rf net nuttx
-
-
diff --git a/nuttx/examples/wget/host.c b/nuttx/examples/wget/host.c
deleted file mode 100644
index a7b416db5..000000000
--- a/nuttx/examples/wget/host.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/****************************************************************************
- * examples/wget/host.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <errno.h>
-
-#include <apps/netutils/webclient.h>
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: callback
- ****************************************************************************/
-
-static void callback(FAR char **buffer, int offset, int datend,
- FAR int *buflen, FAR void *arg)
-{
- (void)write(1, &((*buffer)[offset]), datend - offset);
-}
-
-/****************************************************************************
- * Name: show_usage
- ****************************************************************************/
-
-static void show_usage(const char *progname, int exitcode)
-{
- fprintf(stderr, "USAGE: %s <url>\n", progname);
- exit(exitcode);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-/****************************************************************************
- * Name: main
- ****************************************************************************/
-
-int main(int argc, char **argv, char **envp)
-{
- char buffer[1024];
- int ret;
-
- if (argc != 2)
- {
- show_usage(argv[0], 1);
- }
-
- printf("WGET: Getting %s\n", argv[1]);
- ret = wget(argv[1], buffer, 1024, callback, NULL);
- if (ret < 0)
- {
- fprintf(stderr, "WGET: wget failed: %s\n", strerror(errno));
- }
- return 0;
-}
diff --git a/nuttx/examples/wget/hostdefs.h b/nuttx/examples/wget/hostdefs.h
deleted file mode 100755
index da072d560..000000000
--- a/nuttx/examples/wget/hostdefs.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/****************************************************************************
- * examples/wget/hostdefs.c
- *
- * Copyright (C) 2009 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 __HOSTDEFS_H
-#define __HOSTDEFS_H
-
-/****************************************************************************
- * Included Files
- *****************************************************************************/
-
-#include <stdint.h>
-#include <stdbool.h>
-#include <stdio.h>
-
-/****************************************************************************
- * Preprocessor Defintiions
- *****************************************************************************/
-
-#define HTONS(a) htons(a)
-#define HTONL(a) htonl(a)
-#define CONFIG_CPP_HAVE_WARNING 1
-#define CONFIG_HAVE_GETHOSTBYNAME 1
-#define FAR
-
-#define ndbg(...) printf(__VA_ARGS__)
-#define nvdbg(...) printf(__VA_ARGS__)
-
-#define ERROR (-1)
-#define OK (0)
-
-/****************************************************************************
- * Type Definitions
- *****************************************************************************/
-
-typedef void *(*pthread_startroutine_t)(void *);
-
-#endif /* __HOSTDEFS_H */
diff --git a/nuttx/examples/wget/target.c b/nuttx/examples/wget/target.c
deleted file mode 100644
index b378e9944..000000000
--- a/nuttx/examples/wget/target.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
- * examples/wget/target.c
- *
- * Copyright (C) 2009, 2011 Gregory Nutt. All rights reserved.
- * Author: Gregory Nutt <spudmonkey@racsa.co.cr>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <stdint.h>
-#include <unistd.h>
-
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-
-#include <net/uip/uip.h>
-
-#include <apps/netutils/uiplib.h>
-#include <apps/netutils/resolv.h>
-#include <apps/netutils/webclient.h>
-
-/****************************************************************************
- * Preprocessor Definitions
- ****************************************************************************/
-
-/* Configuation Checks ******************************************************/
-/* BEWARE:
- * There are other configuration settings needed in netutitls/wget/wgetc.s,
- * but there are default values for those so we cannot check them here.
- */
-
-#ifndef CONFIG_EXAMPLE_WGET_IPADDR
-# error "You must define CONFIG_EXAMPLE_WGET_IPADDR"
-#endif
-
-#ifndef CONFIG_EXAMPLE_WGET_DRIPADDR
-# error "You must define CONFIG_EXAMPLE_WGET_DRIPADDR"
-#endif
-
-#ifndef CONFIG_EXAMPLE_WGET_NETMASK
-# error "You must define CONFIG_EXAMPLE_WGET_NETMASK"
-#endif
-
-#ifndef CONFIG_NET
-# error "You must define CONFIG_NET"
-#endif
-
-#ifndef CONFIG_NET_TCP
-# error "You must define CONFIG_NET_TCP"
-#endif
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static char g_iobuffer[512];
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-/****************************************************************************
- * Name: callback
- ****************************************************************************/
-
-static void callback(FAR char **buffer, int offset, int datend,
- FAR int *buflen, FAR void *arg)
-{
- (void)write(1, &((*buffer)[offset]), datend - offset);
-}
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-/****************************************************************************
- * user_initialize
- ****************************************************************************/
-
-#ifndef CONFIG_HAVE_WEAKFUNCTIONS
-void user_initialize(void)
-{
- /* Stub that must be provided only if the toolchain does not support weak
- * functions.
- */
-}
-#endif
-
-/****************************************************************************
- * user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- struct in_addr addr;
-#if defined(CONFIG_EXAMPLE_WGET_NOMAC)
- uint8_t mac[IFHWADDRLEN];
-#endif
-
-/* Many embedded network interfaces must have a software assigned MAC */
-
-#ifdef CONFIG_EXAMPLE_WGET_NOMAC
- mac[0] = 0x00;
- mac[1] = 0xe0;
- mac[2] = 0xb0;
- mac[3] = 0x0b;
- mac[4] = 0xba;
- mac[5] = 0xbe;
- uip_setmacaddr("eth0", mac);
-#endif
-
- /* Set up our host address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_WGET_IPADDR);
- uip_sethostaddr("eth0", &addr);
-
- /* Set up the default router address */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_WGET_DRIPADDR);
- uip_setdraddr("eth0", &addr);
-
- /* Setup the subnet mask */
-
- addr.s_addr = HTONL(CONFIG_EXAMPLE_WGET_NETMASK);
- uip_setnetmask("eth0", &addr);
-
- /* Then start the server */
-
- wget(CONFIG_EXAMPLE_WGET_URL, g_iobuffer, 512, callback, NULL);
- return 0;
-}
diff --git a/nuttx/examples/wlan/Makefile b/nuttx/examples/wlan/Makefile
deleted file mode 100755
index 138a86fa4..000000000
--- a/nuttx/examples/wlan/Makefile
+++ /dev/null
@@ -1,76 +0,0 @@
-############################################################################
-# examples/wlan/Makefile
-#
-# Copyright (C) 2011 Gregory Nutt. All rights reserved.
-# Authors: Gregory Nutt <spudmonkey@racsa.co.cr>
-# Rafael Noronha <rafael@pdsolucoes.com.br>
-#
-# 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)/Make.defs
-
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS = wlan_main.c
-COBJS = $(CSRCS:.c=$(OBJEXT))
-
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
-
-BIN = libapp$(LIBEXT)
-
-all: $(BIN)
-
-$(AOBJS): %$(OBJEXT): %.S
- $(call ASSEMBLE, $<, $@)
-
-$(COBJS): %$(OBJEXT): %.c
- $(call COMPILE, $<, $@)
-
-$(BIN): $(OBJS)
- @( for obj in $(OBJS) ; do \
- $(call ARCHIVE, $@, $${obj}); \
- done ; )
-
-.depend: Makefile $(SRCS)
- @$(MKDEP) $(CC) -- $(CFLAGS) -- $(SRCS) >Make.dep
- @touch $@
-
-depend: .depend
-
-clean:
- @rm -f $(BIN) *~ .*.swp
- $(call CLEAN)
-
-distclean: clean
- @rm -f Make.dep .depend
-
--include Make.dep
diff --git a/nuttx/examples/wlan/wlan_main.c b/nuttx/examples/wlan/wlan_main.c
deleted file mode 100755
index 9bfb78fa7..000000000
--- a/nuttx/examples/wlan/wlan_main.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/****************************************************************************
- * examples/wlan/wlan_main.c
- *
- * Copyright (C) 2011 Gregory Nutt. All rights reserved.
- * Authors: Gregory Nutt <spudmonkey@racsa.co.cr>
- * Rafael Noronha <rafael@pdsolucoes.com.br>
- *
- * 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 Gregory Nutt 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 <nuttx/config.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <stdio.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sched.h>
-#include <errno.h>
-
-#include <nuttx/usb/usbhost.h>
-
-/****************************************************************************
- * Definitions
- ****************************************************************************/
-/* Configuration ************************************************************/
-
-/* Sanity checking */
-
-#ifndef CONFIG_USBHOST
-# error "CONFIG_USBHOST is not defined"
-#endif
-
-#ifdef CONFIG_USBHOST_BULK_DISABLE
-# error "Bulk endpoints are disabled (CONFIG_USBHOST_BULK_DISABLE)"
-#endif
-
-#ifndef CONFIG_NFILE_DESCRIPTORS
-# error "CONFIG_NFILE_DESCRIPTORS > 0 needed"
-#endif
-
-/* Provide some default values for other configuration settings */
-
-#ifndef CONFIG_EXAMPLES_WLAN_DEFPRIO
-# define CONFIG_EXAMPLES_WLAN_DEFPRIO 50
-#endif
-
-#ifndef CONFIG_EXAMPLES_WLAN_STACKSIZE
-# define CONFIG_EXAMPLES_WLAN_STACKSIZE 1024
-#endif
-
-#ifndef CONFIG_EXAMPLES_WLAN_DEVNAME
-# define CONFIG_EXAMPLES_WLAN_DEVNAME "/dev/wlana"
-#endif
-
-/****************************************************************************
- * Private Types
- ****************************************************************************/
-
-/****************************************************************************
- * Private Data
- ****************************************************************************/
-
-static struct usbhost_driver_s *g_drvr;
-
-/****************************************************************************
- * Private Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: wlan_waiter
- *
- * Description:
- * Wait for USB devices to be connected.
- *
- ****************************************************************************/
-
-static int wlan_waiter(int argc, char *argv[])
-{
- bool connected = false;
- int ret;
-
- printf("wlan_waiter: Running\n");
- for (;;)
- {
- /* Wait for the device to change state */
-
- ret = DRVR_WAIT(g_drvr, connected);
- DEBUGASSERT(ret == OK);
-
- connected = !connected;
- printf("wlan_waiter: %s\n", connected ? "connected" : "disconnected");
-
- /* Did we just become connected? */
-
- if (connected)
- {
- /* Yes.. enumerate the newly connected device */
-
- (void)DRVR_ENUMERATE(g_drvr);
- }
- }
-
- /* Keep the compiler from complaining */
-
- return 0;
-}
-
-/****************************************************************************
- * Name: user_initialize
- ****************************************************************************/
-
-void user_initialize(void)
-{
-}
-
-/****************************************************************************
- * Name: user_start
- ****************************************************************************/
-
-int user_start(int argc, char *argv[])
-{
- char buffer[256];
- pid_t pid;
- ssize_t nbytes;
- int fd;
- int ret;
-
- /* First, register all of the USB host Wireless LAN drivers */
-
- printf("user_start: Register drivers\n");
- ret = usbhost_wlaninit();
- if (ret != OK)
- {
- printf("user_start: Failed to register the WLAN driver\n");
- }
-
- /* Then get an instance of the USB host interface */
-
- printf("user_start: Initialize USB host WLAN driver\n");
- g_drvr = usbhost_initialize(0);
- if (g_drvr)
- {
- /* Start a thread to handle device connection. */
-
- printf("user_start: Start wlan_waiter\n");
-
-#ifndef CONFIG_CUSTOM_STACK
- pid = task_create("usbhost", CONFIG_EXAMPLES_WLAN_DEFPRIO,
- CONFIG_EXAMPLES_WLAN_STACKSIZE,
- (main_t)wlan_waiter, (const char **)NULL);
-#else
- pid = task_create("usbhost", CONFIG_EXAMPLES_WLAN_DEFPRIO,
- (main_t)wlan_waiter, (const char **)NULL);
-#endif
-
- /* Now just sleep. Eventually logic here will open the WLAN device and
- * perform the device test.
- */
-
- for (;;)
- {
- /* Open the WLAN device. Loop until the device is successfully
- * opened.
- */
-
- do
- {
- printf("Opening device %s\n", CONFIG_EXAMPLES_WLAN_DEVNAME);
- fd = open(CONFIG_EXAMPLES_WLAN_DEVNAME, O_RDONLY);
- if (fd < 0)
- {
- printf("Failed: %d\n", errno);
- fflush(stdout);
- sleep(3);
- }
- }
- while (fd < 0);
-
- printf("Device %s opened\n", CONFIG_EXAMPLES_WLAN_DEVNAME);
- fflush(stdout);
-
- /* Loop until there is a read failure */
-
- do
- {
- /* Read a buffer of data */
-
- nbytes = read(fd, buffer, 256);
- if (nbytes > 0)
- {
- /* On success, echo the buffer to stdout */
-
- (void)write(1, buffer, nbytes);
- }
- }
- while (nbytes >= 0);
-
- printf("Closing device %s: %d\n", CONFIG_EXAMPLES_WLAN_DEVNAME, (int)nbytes);
- fflush(stdout);
- close(fd);
- }
- }
- return 0;
-}
diff --git a/nuttx/tools/configure.sh b/nuttx/tools/configure.sh
index e20b1cf6b..ad82b457e 100755
--- a/nuttx/tools/configure.sh
+++ b/nuttx/tools/configure.sh
@@ -146,7 +146,7 @@ if [ ! -z "${appdir}" ]; then
echo "# Application configuration" >> "${TOPDIR}/.config"
echo "" >> "${TOPDIR}/.config"
echo "CONFIG_BUILTIN_APPS=y" >> "${TOPDIR}/.config"
- echo "APPS_LOC=\"$appdir\"" >> "${TOPDIR}/.config"
+ echo "APPLOC=\"$appdir\"" >> "${TOPDIR}/.config"
fi
fi