git: submodules: removed the .gitmodules file

The only entry in .gitmodules was an entry of a submodule which wasn't
used anymore. Removed the entry and with that, the entire file.

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'usart'

* Very basic, hackish USART support. The USART is nowhere near a driver.
Merge branch 'dev-core'

Initial version of the device core. The device core is basically a
driver for drivers. Its responsible for all generic driver based
operations, such as adding them, removing them and searching for one.

The currently implemented functionality contains, but not limited to:

* Adding new devices using device_create or dev_register_pdev
* Searching for a device based on its name using dev_find_by_name
* Releasing a device using struct device::release()
* Changing the file operations of a device using dev_set_fops.
make: added a nolibgcc option for some targets.

Some targets would throw up warnings while configuring the system. These
warnings were related to the generation of the path to libgcc.a. This
patch turns the generation of that path (not needed for those targets)
off for these specific targets. The targets we're talking about:

%config (all config targets (i.e. menuconfig, oldconfig, config, etc..)
prepare

Signed-off-by: Michel Megens <dev@michelmegens.net>
gpl: added a license file for GPLv3

The COPYING file contains the full GPLv3 license, the license this
project is licensed under.

ETA/OS  Copyright (C) 2014  Michel Megens <dev@michelmegens.net>
    This program comes with ABSOLUTELY NO WARRANTY; for details type
    `show w'. This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

Signed-off-by: Michel Megens <dev@michelmegens.net>
list: added list_add_tail

Added a list API function to add a list item to the tail of the given
head.

Signed-off-by: Michel Megens <dev@michelmegens.net>
irq: chip: fixed a list_add bug.

The parameter order of list_add is to first pass the new object you want
to add to the list and secondly the list head. The list head is the
object the where the first object will be added after. Consider the
following list:

X - Y - Z

If you now call list_add as follows:
	* list_add(&A, &Y)

The list will look like:

X - Y - A - Z

The list_add in irq_chip_add_irq called list_add in the wrong way (i.e.
the head first and the new object as second parameter). Flipped them to
fix.

Signed-off-by: Michel Megens <dev@michelmegens.net>
dev: core: rewritten device create

device_create has been rewritten to a new template. Device create will,
from now on take a name, a private data pointer and a pointer to the
appropriate file operations.

device_initialize is the cousin of device create, but it doesn't
allocate a new device. It takes one which is already allocated in its
parameters and initializes it.

Signed-off-by: Michel Megens <dev@michelmegens.net>
simulavr: added exit register

Added an exit register definition for simul avr (SIME (SImulator Exit)).
Writing a value to this register exits the simulator and displays the
value written to the register as error code on the console. Can be used
in tests to exit with error codes.

Signed-off-by: Michel Megens <dev@michelmegens.net>
git: ignore: added an entry for vim swp files.

Vims .swp files can no longer accidently end up in the repository as
there is an entry for them in the .gitignore file now.

Signed-off-by: Michel Megens <dev@michelmegens.net>
usr: tests: added automated tests to usr/

Automated tests can be added to usr/ from now on. These tests can be
designed to run on real hardware or on simulators of real hardware. To
run all tests issue the following command in usr/

`make tests'

To run a specific test, cd into the usr/tests directory and run:

`make <testname>'

Signed-off-by: Michel Megens <dev@michelmegens.net>
Merge branch 'master' into dev-core

* Lib fixes
* Testing environment
dev: core: fixed some listing bugs

Fixed some bugs in the dev-core related to the linking into the dev_root
list head. This list head was not being initialized, resulting in errors
while inserting new nodes in it. Therefore a static initializer has been
added to <etaos/list.h> to initialize global list_head structures.

Further:
	* Added an error code parameter to simul_avr_exit
	* Added flag checking in the memory allocator. Nodes which are
	  not flagged as allocated cannot be free'd.
	* Devtest: added a test for the device core.

Signed-off-by: Michel Megens <dev@michelmegens.net>