mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-18 21:27:56 +00:00
73 lines
2.5 KiB
Plaintext
73 lines
2.5 KiB
Plaintext
Device drivers ported from the Linux kernel
|
|
|
|
USB
|
|
###
|
|
|
|
Host controller
|
|
~~~~~~~~~~~~~~~
|
|
|
|
The driver will start all USB controller types a platform offers.
|
|
|
|
Please consult repos/dde_linux/driver/usb_host/README for a description.
|
|
|
|
HID
|
|
~~~
|
|
|
|
Please consult repos/dde_linux/driver/usb_hid/README for a description.
|
|
|
|
Storage
|
|
~~~~~~~
|
|
|
|
Please consult repos/os/src/driver/usb_block/README for a description.
|
|
|
|
Network (Nic)
|
|
~~~~~~~~~~~~~
|
|
|
|
Please consolut repos/dde_linux/src/driver/usb_net/README for a description.
|
|
|
|
LXIP
|
|
####
|
|
|
|
LXIP is a port of the Linux TCP/IP stack to Genode. It is build as a shared
|
|
library named 'lxip.lib.so'. The IP stack can be interfaced using Genode's
|
|
version of 'libc' by linking your application to 'lxip_libc' plugin in your
|
|
'target.mk' file.
|
|
|
|
Wifi
|
|
####
|
|
|
|
The 'wifi' driver consists of a port of the mac802.11 stack, platform-specific
|
|
drivers and the 'wpa_supplicant' to Genode.
|
|
|
|
|
|
lx_kit
|
|
######
|
|
|
|
The modular lx_kit seperates the required back end functionality of the Linux
|
|
emulation environment from the front end. Thereby each driver can reuse
|
|
specific parts or supply more suitable implementations by itself. It is used to
|
|
reduce the amount of redundant code in each driver.
|
|
|
|
The lx_kit is split into several layers whose structure is as follows:
|
|
|
|
The first layer in _repos/dde_linux/src/include/lx_emul_ contains those header
|
|
files that provide the structural definitions and function declarations of the
|
|
Linux API, e.g. _errno.h_ provides all error code values. The second layer in
|
|
_repos/dde_linux/src/include/lx_emul/impl_ contains the implementation of
|
|
selected functions, e.g. _slab.h_ provides the implementation of 'kmalloc()'.
|
|
The lx_kit back end API is the third layer and provides the _Lx::Malloc_
|
|
interface (_repos/dde_linux/src/include/lx_kit/malloc.h_) which is used to
|
|
implement 'kmalloc()'. There are several generic implementations of the lx_kit
|
|
interfaces that can be used by a driver.
|
|
|
|
A driver typically includes a 'lx_emul/impl/xyz.h' header once directly in its
|
|
lx_emul compilation unit. The lx_kit interface files are only included in those
|
|
compilation units that use or implement the interface. If a driver wants to use
|
|
a generic implementation it must add the source file to its source file list.
|
|
The generic implementations are located in _repos/dde_linux/src/lx_kit/_.
|
|
|
|
The modular lx_kit still depends on the private _lx_emul.h_ header file that is
|
|
tailored to each driver. Since the lx_kit already contains much of the
|
|
declarations and definitions that were originally placed in these private
|
|
header files, those files can now ommit a large amount of code.
|