base struct tok on unsigned rather than signed int

This resolves a few Solaris-specific warnings emitted by
/opt/solarisstudio12.3/bin/cc like below:

warning: initializer does not fit or is out of range: 0xffffffff

(also happened for 0x80000000)