data structures ported from linux kernel