To be honest, I don't know what thehats means either. It seems to me that /proc/cmdline should contain a single string listing everything that was sent to the kernel from grub.
As for using boot options, see /etc/init.d/tc-config, somewhere around line 108, for an example...a very simple and effective example
# Here we check all the boot parameters using the fastest way known to men, case & loop
for i in `cat /proc/cmdline`; do
case $i in
*=*)
case $i in
waitusb*) WAITUSB=${i#*=} ;;
lang*) LANGUAGE=${i#*=} ;;
kmap*) KEYMAP=${i#*=} ;;
tz*) TZ=${i#*=} ;;
desktop*) DESKTOP=${i#*=} ;;
user*) USER=${i#*=} ;;
home*) MYHOME=${i#*=} ;;
cryptohome*) CRYPTOHOME=${i#*=} ;;
opt*) MYOPT=${i#*=} ;;
local*) LOCAL=${i#*=} ;;
dosswapfile*) DOSSWAP=1; SWAPFILE=${i#*=} ;;
tce*) TCE=${i#*=} ;;
resume*) RESUME=${i#*=} ;;
host*) HOST=1 ;;
settime*) SETTIME=${i#*=} ;;
esac
;;
*)
case $i in
nofstab) NOFSTAB=1 ;;
syslog) SYSLOG=1 ;;
noutc) NOUTC=1 ;;
nodhcp) NODHCP=1 ;;
checkfs) CHECKFS=1 ;;
noicons) NOICONS=1 ;;
nolocal) NOLOCAL=1 ;;
noswap) NOSWAP=1 ;;
secure) SECURE=1 ;;
protect) PROTECT=1 ;;
ssh) SSH=1 ;;
cron) CRON=1 ;;
laptop) LAPTOP=1 ;;
base) ONLYBASE=1 ;;
eject) EJECT=1 ;;
pause) PAUSE=1 ;;
esac
;;
esac
done
Notice there is a case nested in a case. This is to separate "param=value" from simply "param". If you use only one of those types of parameters, you will not need the nested case. In this example, each action within the case startement merely sets a variable, to be used later on in the script. You could instead add whatever consequential actions you want within case itself...all depends on what feels best for you.