summaryrefslogtreecommitdiffstats
path: root/libbsd.txt
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-04-18 11:23:38 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-04-18 11:23:38 +0200
commitc03e09579b7aae94404f77cbe3795cbe92b8585f (patch)
tree4f70e23cb75057b0f189b34985bfba9b70fd4457 /libbsd.txt
parentAdded rtems version of get_cyclecount(). (diff)
downloadrtems-libbsd-c03e09579b7aae94404f77cbe3795cbe92b8585f.tar.bz2
Add "Core FreeBSD APIs and RTEMS Replacements"
Diffstat (limited to 'libbsd.txt')
-rw-r--r--libbsd.txt99
1 files changed, 99 insertions, 0 deletions
diff --git a/libbsd.txt b/libbsd.txt
index 3e87a9ab..6070c197 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).