[rtems-libbsd commit] Add "Core FreeBSD APIs and RTEMS Replacements"

Sebastian Huber sebh at rtems.org
Wed Apr 18 09:20:49 UTC 2012


Module:    rtems-libbsd
Branch:    master
Commit:    c03e09579b7aae94404f77cbe3795cbe92b8585f
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=c03e09579b7aae94404f77cbe3795cbe92b8585f

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Apr 18 11:23:38 2012 +0200

Add "Core FreeBSD APIs and RTEMS Replacements"

---

 libbsd.txt |   99 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/libbsd.txt b/libbsd.txt
index 3e87a9a..6070c19 100644
--- a/libbsd.txt
+++ b/libbsd.txt
@@ -445,3 +445,102 @@ 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) ===
+
+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) ===
+
+Dummy, IMFS or new implementation (currently dummy).
+
+=== 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).




More information about the vc mailing list