X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=README;h=81afe0e2757c8bceabef7c50ff4102d0600aa8d3;hp=104ef2ab4eb481383b19c89dd7619b077d948680;hb=edac6b69ad8b690437c4624cebb7eef465a09a7e;hpb=d68d00f8d64d8d21b0d8d5ca89f649f77e5c8164 diff --git a/README b/README index 104ef2a..81afe0e 100644 --- a/README +++ b/README @@ -22,14 +22,17 @@ BUILDING Forcing a 32-bit build for Sparcv9 (typical for Sparc v9) * CFLAGS="-m32 -Wa,-Av9a -g -O2" ./configure + ARCHITECTURES SUPPORTED ----------------------- -Currently, x86 (i386, i486, i586, i686), x86 64-bit, PowerPC 32/64, S390, S390x, -ARM, Alpha, ia64 and Sparcv9 32/64 are supported. Only tested on Linux so -far, but should theoretically work on other operating systems. +Currently, Linux x86 (i386, i486, i586, i686), x86 64-bit, PowerPC 32/64, +S390, S390x, ARM, Alpha, ia64 and Sparcv9 32/64 are supported. Tested on +Linux, FreeBSD 8.2/9.0, and Cygwin. Should also work on: Android, NetBSD 5, +OpenBSD, Darwin (more testing needed before claiming support for these OS). -ARM depends on running a Linux kernel 2.6.15 or better, GCC 4.4 or better. +Linux ARM depends on running a Linux kernel 2.6.15 or better, GCC 4.4 or +better. The gcc compiler versions 3.3, 3.4, 4.0, 4.1, 4.2, 4.3, 4.4 and 4.5 are supported, with the following exceptions: @@ -60,6 +63,22 @@ If you get the tree from the repository, you will need to use the "bootstrap" script in the root of the tree. It calls all the GNU tools needed to prepare the tree configuration. +Test scripts provided in the tests/ directory of the source tree depend +on "bash" and the "seq" program. + + +API +--- + +See the relevant API documentation files in doc/. The APIs provided by +Userspace RCU are, by prefix: + +- rcu_ : Read-Copy Update +- cmm_ : Concurrent Memory Model +- caa_ : Concurrent Architecture Abstraction +- cds_ : Concurrent Data Structures +- uatomic_: Userspace Atomic + QUICK START GUIDE ----------------- @@ -172,7 +191,7 @@ Usage of urcu-call-rcu grace periods. A number of additional functions are provided to manage the helper threads used by call_rcu(), but reasonable defaults are used if these additional functions are not invoked. - See API.txt for more details. + See rcu-api.txt in userspace-rcu documentation for more details. Being careful with signals @@ -184,11 +203,12 @@ Being careful with signals signal(7). The liburcu-mb and liburcu-qsbr versions of the Userspace RCU library do not require any signal. - Read-side critical sections are allowed in a signal handler with - liburcu and liburcu-mb. Be careful, however, to disable these signals + Read-side critical sections are allowed in a signal handler, + except those setup with sigaltstack(2), with liburcu and + liburcu-mb. Be careful, however, to disable these signals between thread creation and calls to rcu_register_thread(), because a - signal handler nesting on an unregistered thread would not be allowed to - call rcu_read_lock(). + signal handler nesting on an unregistered thread would not be + allowed to call rcu_read_lock(). Read-side critical sections are _not_ allowed in a signal handler with liburcu-qsbr, unless signals are disabled explicitly around each