Misc cleanups to take care of GCC3.x warnings. Missing 'U' and 'LL'
postfixes on large unsigned or 64 bit constants, non-storage structural
declarations embedded in structures, deprecated use of __FUNCTION__,
missing 'break' statements in the last switch case, goto label ops where
the label occurs just before an end-brace (many of which appear to be
fixable with 'break' or 'continue' instead and existed simply due to
programmer-paranoia), garbage data in #endif lines that was not commented
out. GCC3 also caught some argument count issues in kernel printfs.
Many of these (obvious) fixes are similar to or copied from 5.x.
Also fix a few other minor issues such as certain drivers declaring a
proc pointer instead of a thread pointer.
Move -ffreestanding from CWARNFLAGS to CFLAGS. It doesn't belong in
CWARNFLAGS.