* Align all allocations of more than 8 bytes to 8-byte.
* Avoids hitting ASSERTs in WebKit when built in debug mode (it assumes
at least 8 byte alignment)
* Libbe is not available when cross-building the *_bootstrap packages,
so no libnetwork could not be used either, which made building
anything network-related impossible.
* The only code in libnetwork that requires libbe is the notification,
so I moved that over to libbnetapi. Non-C++ applications can't use
the notification calls anyway, as their interface is C++-only.
* The rounding algorithm here expects to start with the 2 digits
after the decimal point in pll->feedbackDivFrac. Multiplying with
1000 instead of 100 filled it with 3 digits.
The last step then set the fractional part to zero because it was
still too large.
Unfortunately OpenGL screen saver previews draw on top of the tabview,
so, when you switch to the General tab we now stop the screen saver
and then restart it when you come back to the Screensavers tab.
* Update the Doxyfile for 1.7.6.1. Doxywizard reformatted the comments; that's why this change is so big
* Disable graph inheritance trees; use "Inherits/Inherited by" lists instead (Doxygen has this on by default; I don't think it was intentional)
* Shorten two subgroup names; helps with formatting in Doxygen 1.8 and looks cleaner
* Moves the page footer ("The Haiku Book pre-R1...") be in a <footer> tag, and add a CSS rule for this tag
* Disable XML output, no one is using it
* Disable Microsoft IDL parsing, speeds up Doxygen a bit
The main purpose of using atomic_get() was the necessity of a compiler
barrier to prevent the compiler from optimizing busy loops. However,
each such loop contains in its body at least one statement that acts
as a compiler barrier (namely, cpu_wait() or cpu_pause()) making
atomic_get() redundant (well, atomic_get() is stronger - it also issues
a load barrier but in these particular cases we do not need it).
If the initial attempt to acquire read spinlock fails we use more relaxed
loop (which doesn't require CPU to lock the bus). However, check in that
loop, incorrectly, didn't allow a lock to be acquired when there was at
least one other reader.