begun rewrite of linux macro functions to do manual list_head pointer manipulation. Way too many parentheses