let zero = 0;;
exception ParseError of string * string * string;;
type t =
- { active_mm : [ | `mm_struct ] Virt_mem_mmap.typed_addr; comm : string;
- mm : [ | `mm_struct ] Virt_mem_mmap.typed_addr; normal_prio : int64;
- prio : int64; state : int64; static_prio : int64;
- tasks'next : [ | `task_struct ] Virt_mem_mmap.typed_addr;
- tasks'prev : [ | `task_struct ] Virt_mem_mmap.typed_addr
+ { task_struct_active_mm : Virt_mem_mmap.addr; task_struct_comm : string;
+ task_struct_mm : Virt_mem_mmap.addr; task_struct_normal_prio : int64;
+ task_struct_pid : int64; task_struct_prio : int64;
+ task_struct_state : int64; task_struct_static_prio : int64;
+ task_struct_tasks'next : Virt_mem_mmap.addr;
+ task_struct_tasks'prev : Virt_mem_mmap.addr
};;
let parser_1 bits = bitmatch bits with
- | { state : zero+32 : offset(0), littleendian;
- prio : zero+32 : offset(192), littleendian;
- static_prio : zero+32 : offset(224), littleendian;
- normal_prio : zero+32 : offset(256), littleendian;
- tasks'next : zero+32 : offset(992), littleendian;
- tasks'prev : zero+32 : offset(1024), littleendian;
- mm : zero+32 : offset(1056), littleendian;
- active_mm : zero+32 : offset(1088), littleendian;
- comm : 128 : offset(3232), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 124L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 128L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(192), littleendian;
+ task_struct_static_prio : zero+32 : offset(224), littleendian;
+ task_struct_normal_prio : zero+32 : offset(256), littleendian;
+ task_struct_tasks'next : zero+32 : offset(992), littleendian;
+ task_struct_tasks'prev : zero+32 : offset(1024), littleendian;
+ task_struct_mm : zero+32 : offset(1056), littleendian;
+ task_struct_active_mm : zero+32 : offset(1088), littleendian;
+ task_struct_pid : zero+32 : offset(1344), littleendian;
+ task_struct_comm : 128 : offset(3232), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 124L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 128L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_1", "failed to match kernel structure"));;
let parser_2 bits = bitmatch bits with
- | { state : zero+32 : offset(0), bigendian;
- prio : zero+32 : offset(160), bigendian;
- static_prio : zero+32 : offset(192), bigendian;
- normal_prio : zero+32 : offset(224), bigendian;
- tasks'next : zero+32 : offset(2176), bigendian;
- tasks'prev : zero+32 : offset(2208), bigendian;
- mm : zero+32 : offset(2240), bigendian;
- active_mm : zero+32 : offset(2272), bigendian;
- comm : 128 : offset(4416), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 272L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 276L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(160), bigendian;
+ task_struct_static_prio : zero+32 : offset(192), bigendian;
+ task_struct_normal_prio : zero+32 : offset(224), bigendian;
+ task_struct_tasks'next : zero+32 : offset(2176), bigendian;
+ task_struct_tasks'prev : zero+32 : offset(2208), bigendian;
+ task_struct_mm : zero+32 : offset(2240), bigendian;
+ task_struct_active_mm : zero+32 : offset(2272), bigendian;
+ task_struct_pid : zero+32 : offset(2528), bigendian;
+ task_struct_comm : 128 : offset(4416), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 272L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 276L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_2", "failed to match kernel structure"));;
let parser_3 bits = bitmatch bits with
- | { state : zero+32 : offset(0), bigendian;
- prio : zero+32 : offset(192), bigendian;
- static_prio : zero+32 : offset(224), bigendian;
- normal_prio : zero+32 : offset(256), bigendian;
- tasks'next : zero+32 : offset(2304), bigendian;
- tasks'prev : zero+32 : offset(2336), bigendian;
- mm : zero+32 : offset(2496), bigendian;
- active_mm : zero+32 : offset(2528), bigendian;
- comm : 128 : offset(4736), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 288L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 292L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(192), bigendian;
+ task_struct_static_prio : zero+32 : offset(224), bigendian;
+ task_struct_normal_prio : zero+32 : offset(256), bigendian;
+ task_struct_tasks'next : zero+32 : offset(2304), bigendian;
+ task_struct_tasks'prev : zero+32 : offset(2336), bigendian;
+ task_struct_mm : zero+32 : offset(2496), bigendian;
+ task_struct_active_mm : zero+32 : offset(2528), bigendian;
+ task_struct_pid : zero+32 : offset(2784), bigendian;
+ task_struct_comm : 128 : offset(4736), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 288L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 292L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_3", "failed to match kernel structure"));;
let parser_4 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(320), littleendian;
- static_prio : zero+32 : offset(352), littleendian;
- normal_prio : zero+32 : offset(384), littleendian;
- tasks'next : zero+64 : offset(1536), littleendian;
- tasks'prev : zero+64 : offset(1600), littleendian;
- mm : zero+64 : offset(1664), littleendian;
- active_mm : zero+64 : offset(1728), littleendian;
- comm : 128 : offset(5376), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 192L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 200L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(320), littleendian;
+ task_struct_static_prio : zero+32 : offset(352), littleendian;
+ task_struct_normal_prio : zero+32 : offset(384), littleendian;
+ task_struct_tasks'next : zero+64 : offset(1536), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(1600), littleendian;
+ task_struct_mm : zero+64 : offset(1664), littleendian;
+ task_struct_active_mm : zero+64 : offset(1728), littleendian;
+ task_struct_pid : zero+32 : offset(2144), littleendian;
+ task_struct_comm : 128 : offset(5376), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 192L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 200L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_4", "failed to match kernel structure"));;
let parser_5 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(256), littleendian;
- static_prio : zero+32 : offset(288), littleendian;
- normal_prio : zero+32 : offset(320), littleendian;
- tasks'next : zero+64 : offset(2816), littleendian;
- tasks'prev : zero+64 : offset(2880), littleendian;
- mm : zero+64 : offset(3200), littleendian;
- active_mm : zero+64 : offset(3264), littleendian;
- comm : 128 : offset(6912), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 352L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 360L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(256), littleendian;
+ task_struct_static_prio : zero+32 : offset(288), littleendian;
+ task_struct_normal_prio : zero+32 : offset(320), littleendian;
+ task_struct_tasks'next : zero+64 : offset(2816), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(2880), littleendian;
+ task_struct_mm : zero+64 : offset(3200), littleendian;
+ task_struct_active_mm : zero+64 : offset(3264), littleendian;
+ task_struct_pid : zero+32 : offset(3584), littleendian;
+ task_struct_comm : 128 : offset(6912), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 352L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 360L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_5", "failed to match kernel structure"));;
let parser_6 bits = bitmatch bits with
- | { state : zero+64 : offset(0), bigendian;
- prio : zero+32 : offset(320), bigendian;
- static_prio : zero+32 : offset(352), bigendian;
- normal_prio : zero+32 : offset(384), bigendian;
- tasks'next : zero+64 : offset(1600), bigendian;
- tasks'prev : zero+64 : offset(1664), bigendian;
- mm : zero+64 : offset(1728), bigendian;
- active_mm : zero+64 : offset(1792), bigendian;
- comm : 128 : offset(5440), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 200L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 208L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(320), bigendian;
+ task_struct_static_prio : zero+32 : offset(352), bigendian;
+ task_struct_normal_prio : zero+32 : offset(384), bigendian;
+ task_struct_tasks'next : zero+64 : offset(1600), bigendian;
+ task_struct_tasks'prev : zero+64 : offset(1664), bigendian;
+ task_struct_mm : zero+64 : offset(1728), bigendian;
+ task_struct_active_mm : zero+64 : offset(1792), bigendian;
+ task_struct_pid : zero+32 : offset(2208), bigendian;
+ task_struct_comm : 128 : offset(5440), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 200L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 208L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_6", "failed to match kernel structure"));;
let parser_7 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(320), littleendian;
- static_prio : zero+32 : offset(352), littleendian;
- normal_prio : zero+32 : offset(384), littleendian;
- tasks'next : zero+64 : offset(1536), littleendian;
- tasks'prev : zero+64 : offset(1600), littleendian;
- mm : zero+64 : offset(1664), littleendian;
- active_mm : zero+64 : offset(1728), littleendian;
- comm : 128 : offset(5440), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 192L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 200L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(320), littleendian;
+ task_struct_static_prio : zero+32 : offset(352), littleendian;
+ task_struct_normal_prio : zero+32 : offset(384), littleendian;
+ task_struct_tasks'next : zero+64 : offset(1536), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(1600), littleendian;
+ task_struct_mm : zero+64 : offset(1664), littleendian;
+ task_struct_active_mm : zero+64 : offset(1728), littleendian;
+ task_struct_pid : zero+32 : offset(2144), littleendian;
+ task_struct_comm : 128 : offset(5440), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 192L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 200L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_7", "failed to match kernel structure"));;
let parser_8 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(224), littleendian;
- static_prio : zero+32 : offset(256), littleendian;
- normal_prio : zero+32 : offset(288), littleendian;
- tasks'next : zero+64 : offset(2816), littleendian;
- tasks'prev : zero+64 : offset(2880), littleendian;
- mm : zero+64 : offset(2944), littleendian;
- active_mm : zero+64 : offset(3008), littleendian;
- comm : 128 : offset(6592), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 352L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 360L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(224), littleendian;
+ task_struct_static_prio : zero+32 : offset(256), littleendian;
+ task_struct_normal_prio : zero+32 : offset(288), littleendian;
+ task_struct_tasks'next : zero+64 : offset(2816), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(2880), littleendian;
+ task_struct_mm : zero+64 : offset(2944), littleendian;
+ task_struct_active_mm : zero+64 : offset(3008), littleendian;
+ task_struct_pid : zero+32 : offset(3328), littleendian;
+ task_struct_comm : 128 : offset(6592), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 352L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 360L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_8", "failed to match kernel structure"));;
let parser_9 bits = bitmatch bits with
- | { state : zero+64 : offset(0), bigendian;
- prio : zero+32 : offset(224), bigendian;
- static_prio : zero+32 : offset(256), bigendian;
- normal_prio : zero+32 : offset(288), bigendian;
- tasks'next : zero+64 : offset(2880), bigendian;
- tasks'prev : zero+64 : offset(2944), bigendian;
- mm : zero+64 : offset(3008), bigendian;
- active_mm : zero+64 : offset(3072), bigendian;
- comm : 128 : offset(6592), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 360L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 368L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(224), bigendian;
+ task_struct_static_prio : zero+32 : offset(256), bigendian;
+ task_struct_normal_prio : zero+32 : offset(288), bigendian;
+ task_struct_tasks'next : zero+64 : offset(2880), bigendian;
+ task_struct_tasks'prev : zero+64 : offset(2944), bigendian;
+ task_struct_mm : zero+64 : offset(3008), bigendian;
+ task_struct_active_mm : zero+64 : offset(3072), bigendian;
+ task_struct_pid : zero+32 : offset(3392), bigendian;
+ task_struct_comm : 128 : offset(6592), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 360L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 368L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_9", "failed to match kernel structure"));;
let parser_10 bits = bitmatch bits with
- | { state : zero+32 : offset(0), littleendian;
- prio : zero+32 : offset(192), littleendian;
- static_prio : zero+32 : offset(224), littleendian;
- normal_prio : zero+32 : offset(256), littleendian;
- tasks'next : zero+32 : offset(2208), littleendian;
- tasks'prev : zero+32 : offset(2240), littleendian;
- mm : zero+32 : offset(2400), littleendian;
- active_mm : zero+32 : offset(2432), littleendian;
- comm : 128 : offset(4608), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 276L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 280L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(192), littleendian;
+ task_struct_static_prio : zero+32 : offset(224), littleendian;
+ task_struct_normal_prio : zero+32 : offset(256), littleendian;
+ task_struct_tasks'next : zero+32 : offset(2208), littleendian;
+ task_struct_tasks'prev : zero+32 : offset(2240), littleendian;
+ task_struct_mm : zero+32 : offset(2400), littleendian;
+ task_struct_active_mm : zero+32 : offset(2432), littleendian;
+ task_struct_pid : zero+32 : offset(2688), littleendian;
+ task_struct_comm : 128 : offset(4608), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 276L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 280L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_10", "failed to match kernel structure"));;
let parser_11 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(224), littleendian;
- static_prio : zero+32 : offset(256), littleendian;
- normal_prio : zero+32 : offset(288), littleendian;
- tasks'next : zero+64 : offset(3648), littleendian;
- tasks'prev : zero+64 : offset(3712), littleendian;
- mm : zero+64 : offset(3776), littleendian;
- active_mm : zero+64 : offset(3840), littleendian;
- comm : 128 : offset(7816), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 456L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 464L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(224), littleendian;
+ task_struct_static_prio : zero+32 : offset(256), littleendian;
+ task_struct_normal_prio : zero+32 : offset(288), littleendian;
+ task_struct_tasks'next : zero+64 : offset(3648), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(3712), littleendian;
+ task_struct_mm : zero+64 : offset(3776), littleendian;
+ task_struct_active_mm : zero+64 : offset(3840), littleendian;
+ task_struct_pid : zero+32 : offset(4160), littleendian;
+ task_struct_comm : 128 : offset(7816), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 456L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 464L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_11", "failed to match kernel structure"));;
let parser_12 bits = bitmatch bits with
- | { state : zero+32 : offset(0), bigendian;
- prio : zero+32 : offset(192), bigendian;
- static_prio : zero+32 : offset(224), bigendian;
- normal_prio : zero+32 : offset(256), bigendian;
- tasks'next : zero+32 : offset(1024), bigendian;
- tasks'prev : zero+32 : offset(1056), bigendian;
- mm : zero+32 : offset(1088), bigendian;
- active_mm : zero+32 : offset(1120), bigendian;
- comm : 128 : offset(3264), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 128L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 132L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(192), bigendian;
+ task_struct_static_prio : zero+32 : offset(224), bigendian;
+ task_struct_normal_prio : zero+32 : offset(256), bigendian;
+ task_struct_tasks'next : zero+32 : offset(1024), bigendian;
+ task_struct_tasks'prev : zero+32 : offset(1056), bigendian;
+ task_struct_mm : zero+32 : offset(1088), bigendian;
+ task_struct_active_mm : zero+32 : offset(1120), bigendian;
+ task_struct_pid : zero+32 : offset(1376), bigendian;
+ task_struct_comm : 128 : offset(3264), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 128L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 132L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_12", "failed to match kernel structure"));;
let parser_13 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(224), littleendian;
- static_prio : zero+32 : offset(256), littleendian;
- normal_prio : zero+32 : offset(288), littleendian;
- tasks'next : zero+64 : offset(3840), littleendian;
- tasks'prev : zero+64 : offset(3904), littleendian;
- mm : zero+64 : offset(3968), littleendian;
- active_mm : zero+64 : offset(4032), littleendian;
- comm : 128 : offset(8392), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 480L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 488L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(224), littleendian;
+ task_struct_static_prio : zero+32 : offset(256), littleendian;
+ task_struct_normal_prio : zero+32 : offset(288), littleendian;
+ task_struct_tasks'next : zero+64 : offset(3840), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(3904), littleendian;
+ task_struct_mm : zero+64 : offset(3968), littleendian;
+ task_struct_active_mm : zero+64 : offset(4032), littleendian;
+ task_struct_pid : zero+32 : offset(4352), littleendian;
+ task_struct_comm : 128 : offset(8392), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 480L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 488L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_13", "failed to match kernel structure"));;
let parser_14 bits = bitmatch bits with
- | { state : zero+32 : offset(0), littleendian;
- prio : zero+32 : offset(160), littleendian;
- static_prio : zero+32 : offset(192), littleendian;
- normal_prio : zero+32 : offset(224), littleendian;
- tasks'next : zero+32 : offset(3008), littleendian;
- tasks'prev : zero+32 : offset(3040), littleendian;
- mm : zero+32 : offset(3072), littleendian;
- active_mm : zero+32 : offset(3104), littleendian;
- comm : 128 : offset(5416), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 376L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 380L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(160), littleendian;
+ task_struct_static_prio : zero+32 : offset(192), littleendian;
+ task_struct_normal_prio : zero+32 : offset(224), littleendian;
+ task_struct_tasks'next : zero+32 : offset(3008), littleendian;
+ task_struct_tasks'prev : zero+32 : offset(3040), littleendian;
+ task_struct_mm : zero+32 : offset(3072), littleendian;
+ task_struct_active_mm : zero+32 : offset(3104), littleendian;
+ task_struct_pid : zero+32 : offset(3360), littleendian;
+ task_struct_comm : 128 : offset(5416), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 376L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 380L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_14", "failed to match kernel structure"));;
let parser_15 bits = bitmatch bits with
- | { state : zero+32 : offset(0), littleendian;
- prio : zero+32 : offset(160), littleendian;
- static_prio : zero+32 : offset(192), littleendian;
- normal_prio : zero+32 : offset(224), littleendian;
- tasks'next : zero+32 : offset(2144), littleendian;
- tasks'prev : zero+32 : offset(2176), littleendian;
- mm : zero+32 : offset(2208), littleendian;
- active_mm : zero+32 : offset(2240), littleendian;
- comm : 128 : offset(4384), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 268L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 272L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(160), littleendian;
+ task_struct_static_prio : zero+32 : offset(192), littleendian;
+ task_struct_normal_prio : zero+32 : offset(224), littleendian;
+ task_struct_tasks'next : zero+32 : offset(2144), littleendian;
+ task_struct_tasks'prev : zero+32 : offset(2176), littleendian;
+ task_struct_mm : zero+32 : offset(2208), littleendian;
+ task_struct_active_mm : zero+32 : offset(2240), littleendian;
+ task_struct_pid : zero+32 : offset(2496), littleendian;
+ task_struct_comm : 128 : offset(4384), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 268L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 272L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_15", "failed to match kernel structure"));;
let parser_16 bits = bitmatch bits with
- | { state : zero+64 : offset(0), bigendian;
- prio : zero+32 : offset(256), bigendian;
- static_prio : zero+32 : offset(288), bigendian;
- normal_prio : zero+32 : offset(320), bigendian;
- tasks'next : zero+64 : offset(2880), bigendian;
- tasks'prev : zero+64 : offset(2944), bigendian;
- mm : zero+64 : offset(3264), bigendian;
- active_mm : zero+64 : offset(3328), bigendian;
- comm : 128 : offset(6912), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 360L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 368L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(256), bigendian;
+ task_struct_static_prio : zero+32 : offset(288), bigendian;
+ task_struct_normal_prio : zero+32 : offset(320), bigendian;
+ task_struct_tasks'next : zero+64 : offset(2880), bigendian;
+ task_struct_tasks'prev : zero+64 : offset(2944), bigendian;
+ task_struct_mm : zero+64 : offset(3264), bigendian;
+ task_struct_active_mm : zero+64 : offset(3328), bigendian;
+ task_struct_pid : zero+32 : offset(3648), bigendian;
+ task_struct_comm : 128 : offset(6912), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 360L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 368L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_16", "failed to match kernel structure"));;
let parser_17 bits = bitmatch bits with
- | { state : zero+32 : offset(0), bigendian;
- prio : zero+32 : offset(160), bigendian;
- static_prio : zero+32 : offset(192), bigendian;
- normal_prio : zero+32 : offset(224), bigendian;
- tasks'next : zero+32 : offset(3136), bigendian;
- tasks'prev : zero+32 : offset(3168), bigendian;
- mm : zero+32 : offset(3200), bigendian;
- active_mm : zero+32 : offset(3232), bigendian;
- comm : 128 : offset(5576), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 392L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 396L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(160), bigendian;
+ task_struct_static_prio : zero+32 : offset(192), bigendian;
+ task_struct_normal_prio : zero+32 : offset(224), bigendian;
+ task_struct_tasks'next : zero+32 : offset(3136), bigendian;
+ task_struct_tasks'prev : zero+32 : offset(3168), bigendian;
+ task_struct_mm : zero+32 : offset(3200), bigendian;
+ task_struct_active_mm : zero+32 : offset(3232), bigendian;
+ task_struct_pid : zero+32 : offset(3488), bigendian;
+ task_struct_comm : 128 : offset(5576), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 392L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 396L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_17", "failed to match kernel structure"));;
let parser_18 bits = bitmatch bits with
- | { state : zero+64 : offset(0), bigendian;
- prio : zero+32 : offset(224), bigendian;
- static_prio : zero+32 : offset(256), bigendian;
- normal_prio : zero+32 : offset(288), bigendian;
- tasks'next : zero+64 : offset(3648), bigendian;
- tasks'prev : zero+64 : offset(3712), bigendian;
- mm : zero+64 : offset(3776), bigendian;
- active_mm : zero+64 : offset(3840), bigendian;
- comm : 128 : offset(7752), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 456L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 464L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(224), bigendian;
+ task_struct_static_prio : zero+32 : offset(256), bigendian;
+ task_struct_normal_prio : zero+32 : offset(288), bigendian;
+ task_struct_tasks'next : zero+64 : offset(3648), bigendian;
+ task_struct_tasks'prev : zero+64 : offset(3712), bigendian;
+ task_struct_mm : zero+64 : offset(3776), bigendian;
+ task_struct_active_mm : zero+64 : offset(3840), bigendian;
+ task_struct_pid : zero+32 : offset(4160), bigendian;
+ task_struct_comm : 128 : offset(7752), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 456L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 464L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_18", "failed to match kernel structure"));;
let parser_19 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(320), littleendian;
- static_prio : zero+32 : offset(352), littleendian;
- normal_prio : zero+32 : offset(384), littleendian;
- tasks'next : zero+64 : offset(1728), littleendian;
- tasks'prev : zero+64 : offset(1792), littleendian;
- mm : zero+64 : offset(1856), littleendian;
- active_mm : zero+64 : offset(1920), littleendian;
- comm : 128 : offset(5568), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 216L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 224L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(320), littleendian;
+ task_struct_static_prio : zero+32 : offset(352), littleendian;
+ task_struct_normal_prio : zero+32 : offset(384), littleendian;
+ task_struct_tasks'next : zero+64 : offset(1728), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(1792), littleendian;
+ task_struct_mm : zero+64 : offset(1856), littleendian;
+ task_struct_active_mm : zero+64 : offset(1920), littleendian;
+ task_struct_pid : zero+32 : offset(2336), littleendian;
+ task_struct_comm : 128 : offset(5568), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 216L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 224L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_19", "failed to match kernel structure"));;
let parser_20 bits = bitmatch bits with
- | { state : zero+32 : offset(0), littleendian;
- prio : zero+32 : offset(160), littleendian;
- static_prio : zero+32 : offset(192), littleendian;
- normal_prio : zero+32 : offset(224), littleendian;
- tasks'next : zero+32 : offset(3232), littleendian;
- tasks'prev : zero+32 : offset(3264), littleendian;
- mm : zero+32 : offset(3296), littleendian;
- active_mm : zero+32 : offset(3328), littleendian;
- comm : 128 : offset(5928), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 404L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 408L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+32 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(160), littleendian;
+ task_struct_static_prio : zero+32 : offset(192), littleendian;
+ task_struct_normal_prio : zero+32 : offset(224), littleendian;
+ task_struct_tasks'next : zero+32 : offset(3232), littleendian;
+ task_struct_tasks'prev : zero+32 : offset(3264), littleendian;
+ task_struct_mm : zero+32 : offset(3296), littleendian;
+ task_struct_active_mm : zero+32 : offset(3328), littleendian;
+ task_struct_pid : zero+32 : offset(3584), littleendian;
+ task_struct_comm : 128 : offset(5928), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 404L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 408L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_20", "failed to match kernel structure"));;
let parser_21 bits = bitmatch bits with
- | { state : zero+64 : offset(0), littleendian;
- prio : zero+32 : offset(256), littleendian;
- static_prio : zero+32 : offset(288), littleendian;
- normal_prio : zero+32 : offset(320), littleendian;
- tasks'next : zero+64 : offset(1408), littleendian;
- tasks'prev : zero+64 : offset(1472), littleendian;
- mm : zero+64 : offset(1536), littleendian;
- active_mm : zero+64 : offset(1600), littleendian;
- comm : 128 : offset(5184), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 176L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 184L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), littleendian;
+ task_struct_prio : zero+32 : offset(256), littleendian;
+ task_struct_static_prio : zero+32 : offset(288), littleendian;
+ task_struct_normal_prio : zero+32 : offset(320), littleendian;
+ task_struct_tasks'next : zero+64 : offset(1408), littleendian;
+ task_struct_tasks'prev : zero+64 : offset(1472), littleendian;
+ task_struct_mm : zero+64 : offset(1536), littleendian;
+ task_struct_active_mm : zero+64 : offset(1600), littleendian;
+ task_struct_pid : zero+32 : offset(1920), littleendian;
+ task_struct_comm : 128 : offset(5184), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 176L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 184L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_21", "failed to match kernel structure"));;
let parser_22 bits = bitmatch bits with
- | { state : zero+64 : offset(0), bigendian;
- prio : zero+32 : offset(256), bigendian;
- static_prio : zero+32 : offset(288), bigendian;
- normal_prio : zero+32 : offset(320), bigendian;
- tasks'next : zero+64 : offset(1472), bigendian;
- tasks'prev : zero+64 : offset(1536), bigendian;
- mm : zero+64 : offset(1600), bigendian;
- active_mm : zero+64 : offset(1664), bigendian;
- comm : 128 : offset(5184), string } -> { state = state;
- prio = prio;
- static_prio = static_prio;
- normal_prio = normal_prio;
- tasks'next = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'next 184L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- tasks'prev = (Virt_mem_mmap.unsafe_typed_addr_of_addr (Int64.sub tasks'prev 192L) : [ `task_struct ] Virt_mem_mmap.typed_addr);
- mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- active_mm = (Virt_mem_mmap.unsafe_typed_addr_of_addr active_mm : [ `mm_struct ] Virt_mem_mmap.typed_addr);
- comm = comm }
+ | { task_struct_state : zero+64 : offset(0), bigendian;
+ task_struct_prio : zero+32 : offset(256), bigendian;
+ task_struct_static_prio : zero+32 : offset(288), bigendian;
+ task_struct_normal_prio : zero+32 : offset(320), bigendian;
+ task_struct_tasks'next : zero+64 : offset(1472), bigendian;
+ task_struct_tasks'prev : zero+64 : offset(1536), bigendian;
+ task_struct_mm : zero+64 : offset(1600), bigendian;
+ task_struct_active_mm : zero+64 : offset(1664), bigendian;
+ task_struct_pid : zero+32 : offset(1984), bigendian;
+ task_struct_comm : 128 : offset(5184), string } -> { task_struct_state = task_struct_state;
+ task_struct_prio = task_struct_prio;
+ task_struct_static_prio = task_struct_static_prio;
+ task_struct_normal_prio = task_struct_normal_prio;
+ task_struct_tasks'next = Int64.sub task_struct_tasks'next 184L;
+ task_struct_tasks'prev = Int64.sub task_struct_tasks'prev 192L;
+ task_struct_mm = task_struct_mm;
+ task_struct_active_mm = task_struct_active_mm;
+ task_struct_pid = task_struct_pid;
+ task_struct_comm = task_struct_comm }
| { _ } -> raise (ParseError ("task_struct", "parser_22", "failed to match kernel structure"));;
module StringMap = Map.Make(String);;
let map = StringMap.empty;;
let map = StringMap.add "2.6.20-1.2933.fc6.ppc64" v map;;
let v = (parser_2, 1772);;
let map = StringMap.add "2.6.22-0.23.rc7.git6.fc8.ppc" v map;;
+let v = (parser_17, 1936);;
+let map = StringMap.add "2.6.24-7.fc9.ppc" v map;;
let v = (parser_12, 1612);;
let map = StringMap.add "2.6.21-1.3209.fc8.ppc" v map;;
let v = (parser_7, 1920);;
let map = StringMap.add "2.6.20-1.2933.fc6.i686" v map;;
let v = (parser_22, 2116);;
let map = StringMap.add "2.6.21-1.3209.fc8.ppc64" v map;;
+let v = (parser_1, 2704);;
+let map = StringMap.add "2.6.21-1.3132.fc7.i686" v map;;
type kernel_version = string;;
-let known version = StringMap.mem version map;;
-let size version = let (_, size) = StringMap.find version map in size;;
-let of_bits version bits =
+let task_struct_known version = StringMap.mem version map;;
+let task_struct_size version =
+ let (_, size) = StringMap.find version map in size;;
+let task_struct_of_bits version bits =
let (parsefn, _) = StringMap.find version map in parsefn bits;;
-let get version mem addr =
+let get_task_struct version mem addr =
let (parsefn, size) = StringMap.find version map in
- let addr = Virt_mem_mmap.unsafe_addr_of_typed_addr addr in
let bytes = Virt_mem_mmap.get_bytes mem addr size in
let bits = Bitstring.bitstring_of_string bytes in parsefn bits;;