mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-14 04:59:59 +08:00
libbsd.txt: Move ported kernel features
Remove obsolete file listing.
This commit is contained in:
@@ -430,3 +430,26 @@ DHCPCD(8) client is a consumer of these events for example. Make sure that the
|
||||
interface flag ``IFF_UP`` and the interface driver flag ``IFF_DRV_RUNNING`` is
|
||||
set in case the link is up, otherwise ``ether_output()`` will return the error
|
||||
status ``ENETDOWN``.
|
||||
|
||||
FreeBSD Kernel Features Ported to LibBSD
|
||||
========================================
|
||||
|
||||
All lock based synchronization primitives are implemented through mutexes using
|
||||
the priority inheritance protocol.
|
||||
|
||||
* `BUS_DMA(9) <http://www.freebsd.org/cgi/man.cgi?query=bus_dma&sektion=9>`_: Bus and Machine Independent DMA Mapping Interface
|
||||
* `BUS_SPACE(9) <http://www.freebsd.org/cgi/man.cgi?query=bus_space&sektion=9>`_: Bus space manipulation functions
|
||||
* `CALLOUT(9) <http://www.freebsd.org/cgi/man.cgi?query=callout&sektion=9>`_: Execute a function after a specified length of time
|
||||
* `CONDVAR(9) <http://www.freebsd.org/cgi/man.cgi?query=condvar&sektion=9>`_: Kernel condition variable
|
||||
* `DEVICE(9) <http://www.freebsd.org/cgi/man.cgi?query=device&sektion=9>`_: An abstract representation of a device
|
||||
* `DRIVER(9) <http://www.freebsd.org/cgi/man.cgi?query=driver&sektion=9>`_: Structure describing a device driver
|
||||
* `EPOCH(9) <http://www.freebsd.org/cgi/man.cgi?query=epoch&sektion=9>`_: Kernel epoch based reclamation
|
||||
* `MUTEX(9) <http://www.freebsd.org/cgi/man.cgi?query=mutex&sektion=9>`_: Kernel synchronization primitives
|
||||
* `RMAN(9) <http://www.freebsd.org/cgi/man.cgi?query=rman&sektion=9>`_: Resource management functions
|
||||
* `RMLOCK(9) <http://www.freebsd.org/cgi/man.cgi?query=rmlock&sektion=9>`_: Kernel reader/writer lock optimized for read-mostly access patterns
|
||||
* `RWLOCK(9) <http://www.freebsd.org/cgi/man.cgi?query=rwlock&sektion=9>`_: Kernel reader/writer lock
|
||||
* `SX(9) <http://www.freebsd.org/cgi/man.cgi?query=sx&sektion=9>`_: Kernel shared/exclusive lock
|
||||
* `SYSCTL(9) <http://www.freebsd.org/cgi/man.cgi?query=SYSCTL_DECL&sektion=9>`_: Dynamic and static sysctl MIB creation functions
|
||||
* `SYSINIT(9) <http://www.freebsd.org/cgi/man.cgi?query=sysinit&sektion=9>`_: A framework for dynamic kernel initialization
|
||||
* `TASKQUEUE(9) <http://www.freebsd.org/cgi/man.cgi?query=taskqueue&sektion=9>`_: Asynchronous task execution
|
||||
* `UMA(9) <http://www.freebsd.org/cgi/man.cgi?query=uma&sektion=9>`_: General-purpose kernel object allocator
|
||||
|
291
libbsd.txt
291
libbsd.txt
@@ -298,66 +298,6 @@ SYSCTL_NODE(, CTL_KERN, kern, CTLFLAG_RW, 0,
|
||||
"High kernel, proc, limits &c");
|
||||
----
|
||||
|
||||
== Core FreeBSD APIs and RTEMS Replacements ==
|
||||
|
||||
=== SX(9) (Shared/exclusive locks) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=sx
|
||||
|
||||
Binary semaphores (this neglects the ability to allow shared access).
|
||||
|
||||
=== MUTEX(9) (Mutual exclusion) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=mutex
|
||||
|
||||
Binary semaphores (not recursive mutexes are not supported this way).
|
||||
|
||||
=== RWLOCK(9) (Reader/writer lock) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=rwlock
|
||||
|
||||
POSIX r/w lock.
|
||||
|
||||
=== RMLOCK(9) (Reader/writer lock optimized for mostly read access patterns) ===
|
||||
|
||||
Note: This object was implemented as a wrapper for RWLOCK in the rm_lock header file.
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=rmlock
|
||||
|
||||
POSIX r/w lock.
|
||||
|
||||
=== CONDVAR(9) (Condition variables) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=condvar
|
||||
|
||||
POSIX condition variables with modifications (hack).
|
||||
|
||||
=== CALLOUT(9) (Timer functions) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=callout
|
||||
|
||||
Timer server.
|
||||
|
||||
=== TASKQUEUE(9) (Asynchronous task execution) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=taskqueue
|
||||
|
||||
TBD.
|
||||
|
||||
=== KTHREAD(9), KPROC(9) (Tasks) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=kthread
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=kproc
|
||||
|
||||
Tasks.
|
||||
|
||||
=== ZONE(9) (Zone allocator) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=zone
|
||||
|
||||
TBD.
|
||||
|
||||
=== devfs (Device file system) ===
|
||||
|
||||
There is a minimal implementation based on IMFS. The mount point is fixed to
|
||||
@@ -370,237 +310,6 @@ for the device.
|
||||
|
||||
TBD: remove empty paths on devfs_destroy().
|
||||
|
||||
=== psignal (Signals) ===
|
||||
|
||||
TBD. Seems to be not needed.
|
||||
|
||||
=== poll, select ===
|
||||
|
||||
TBD. Seems to be not needed.
|
||||
|
||||
=== RMAN(9) (Resource management) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=rman
|
||||
|
||||
TBD. Seems to be not needed.
|
||||
|
||||
=== DEVCLASS(9), DEVICE(9), DRIVER(9), MAKE_DEV(9) (Device management) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=devclass
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=device
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=driver
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=make_dev
|
||||
|
||||
Use FreeBSD implementation as far as possible. FreeBSD has a nice API for
|
||||
dynamic device handling. It may be interesting for RTEMS to use this API
|
||||
internally in the future.
|
||||
|
||||
=== BUS_SPACE(9), BUS_DMA(9) (Bus and DMA access) ===
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=bus_space
|
||||
|
||||
http://www.freebsd.org/cgi/man.cgi?query=bus_dma
|
||||
|
||||
Likely BSP dependent. A default implementation for memory mapped linear access
|
||||
is easy to provide. The current heap implementation supports all properties
|
||||
demanded by bus_dma (including the boundary constraint).
|
||||
|
||||
== RTEMS Replacements by File Description ==
|
||||
|
||||
Note: Files with a status of USB are used by the USB test and have at least
|
||||
been partially tested. If they contain both USB and Nic, then they are used
|
||||
by both and MAY contain methods that have not been tested yet. Files that
|
||||
are only used by the Nic test are the most suspect.
|
||||
|
||||
----
|
||||
rtems-libbsd File: rtems-bsd-assert.c
|
||||
FreeBSD File: rtems-bsd-config.h redefines BSD_ASSERT.
|
||||
Description: This file contains the support method rtems_bsd_assert_func().
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-autoconf.c
|
||||
FreeBSD File: FreeBSD has BSP specific autoconf.c
|
||||
Description: This file contains configuration methods that are used to setup the system.
|
||||
Status: USB
|
||||
|
||||
rtems-libbsd File: rtems-bsd-bus-dma.c
|
||||
FreeBSD File: FreeBSD has BSP specific busdma_machdep.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-bus-dma-mbuf.c
|
||||
FreeBSD File: FreeBSD has BSP specific busdma_machdep.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-callout.c
|
||||
FreeBSD File: kern/kern_timeout.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-cam.c
|
||||
FreeBSD File: cam/cam_sim.c
|
||||
Description:
|
||||
Status: USB
|
||||
|
||||
rtems-libbsd File: rtems-bsd-condvar.c
|
||||
FreeBSD File: kern/kern_condvar.c
|
||||
Description:
|
||||
Status: USB
|
||||
|
||||
rtems-libbsd File: rtems-bsd-copyinout.c
|
||||
FreeBSD File: bsp specific copyinout.c )
|
||||
Description: Note: The FreeBSD file is split with some methods being in rtems-bsd-support
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-delay.c
|
||||
FreeBSD File: bsp specific file with multiple names
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-descrip.c
|
||||
FreeBSD File: kern/kern_descrip.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-generic.c
|
||||
FreeBSD File: kern/sys_generic.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-init.c
|
||||
FreeBSD File: N/A
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-init-with-irq.c
|
||||
FreeBSD File: N/A
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-jail.c
|
||||
FreeBSD File: kern/kern_jail.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-lock.c
|
||||
FreeBSD File: kern/subr_lock.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-log.c
|
||||
FreeBSD File: kern/subr_prf.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-malloc.c
|
||||
FreeBSD File: kern/kern_malloc.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-mutex.c
|
||||
FreeBSD File: kern/kern_mutex.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-newproc.c
|
||||
FreeBSD File: N/A
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-nexus.c
|
||||
FreeBSD File: bsp specific nexus.c
|
||||
Description:
|
||||
Status: USB
|
||||
|
||||
rtems-libbsd File: rtems-bsd-panic.c
|
||||
FreeBSD File: boot/common/panic.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-rwlock.c
|
||||
FreeBSD File: kern_rwlock.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-shell.c
|
||||
FreeBSD File: N/A
|
||||
Description:
|
||||
Status: USB
|
||||
|
||||
rtems-libbsd File: rtems-bsd-signal.c
|
||||
FreeBSD File: kern/kern_sig.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-smp.c
|
||||
FreeBSD File: N/A
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-support.c
|
||||
FreeBSD File: bsp specific copyinout.c
|
||||
Description: Note: the FreeBSD file is split with some methods being in rtems-bsd-copyinout.
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-sx.c
|
||||
FreeBSD File: kern/kern_sx.c
|
||||
Description: Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-synch.c
|
||||
FreeBSD File: kern/kern_synch.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-syscalls.c
|
||||
FreeBSD File: User API for kern/uipc_syscalls.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-sysctlbyname.c
|
||||
FreeBSD File: User API for sysctlbyname(3)
|
||||
Description:
|
||||
Status:
|
||||
|
||||
rtems-libbsd File: rtems-bsd-sysctl.c
|
||||
FreeBSD File: User API for sysctl(8)
|
||||
Description:
|
||||
Status:
|
||||
|
||||
rtems-libbsd File: rtems-bsd-sysctlnametomib.c
|
||||
FreeBSD File: User API for sysctlnametomib
|
||||
Description:
|
||||
Status:
|
||||
|
||||
rtems-libbsd File: rtems-bsd-taskqueue.c
|
||||
FreeBSD File: kern/subr_taskqueue.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-thread.c
|
||||
FreeBSD File: kern/kern_kthread.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-timeout.c
|
||||
FreeBSD File: kern/kern_timeout.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-timesupport.c
|
||||
FreeBSD File: kern/kern_clock.c
|
||||
Description:
|
||||
Status: Nic
|
||||
|
||||
rtems-libbsd File: rtems-bsd-vm_glue.c
|
||||
FreeBSD File: vm/vm_glue.c
|
||||
Description:
|
||||
Status: USB, Nic
|
||||
----
|
||||
|
||||
== Notes by File ==
|
||||
|
||||
altq_subr.c - Arbitrary choices were made in this file that RTEMS would
|
||||
|
Reference in New Issue
Block a user