Create intrinsics.h and move hardware-specific functions there
Enable more GCC warnings
Fix GCC warnings
Generate dep files for sources in assembly
Fix typos in makefile
Prefer 'int' and 'unsigned int' type for auto variables
Beautify code a little
Add 'check' make target. Splint is used to check all C source files
Eliminate return value of get_packet function since it is not actually meaningful
Switch to C99 standard
Use '__asm__ __volatile__' instead of 'asm volatile' as inline assembly directive
Fix Splint warnings
Prevent inlining of 'foo' function
Read and write memory by 1/2/4 bytes at a time

Size of chunk to read/write is determined by requested size to
read/write and address alignment. This is crucial for access to
hardware registers. Some registers MUST be read with exact bus width.