xref: /xnu-10063.121.3/tools/lldbmacros/mbufdefines.py (revision 2c2f96dc2b9a4408a43d3150ae9c105355ca3daa)
1from xnu import *
2from utils import *
3import ctypes
4
5MBSHIFT = 20
6MSIZE = 256
7MCLBYTES = 2048
8MBIGCLBYTES = 4096
9M16KCLBYTES = 16384
10
11MB_INUSE = 1
12MB_COMP_INUSE = 2
13MB_SCVALID = 4
14
15SLF_MAPPED = 0x0001
16SLF_PARTIAL = 0x0002
17SLF_DETACHED = 0x0004
18
19INTP = ctypes.POINTER(ctypes.c_int)
20
21MCF_NOCPUCACHE = 0x10
22
23def enum(*sequential, **named):
24    enums = dict(zip(sequential, range(len(sequential))), **named)
25    reverse = dict((value, key) for key, value in enums.items())
26    enums['reverse_mapping'] = reverse
27    return type('Enum', (), enums)
28
29Mbuf_Type = enum(
30    'MT_FREE',
31    'MT_DATA',
32    'MT_HEADER',
33    'MT_SOCKET',
34    'MT_PCB',
35    'MT_RTABLE',
36    'MT_HTABLE',
37    'MT_ATABLE',
38    'MT_SONAME',
39    'MT_SOOPTS',
40    'MT_FTABLE',
41    'MT_RIGHTS',
42    'MT_IFADDR',
43    'MT_CONTROL',
44    'MT_OOBDATA',
45    'MT_TAG',
46    'MT_LAST')
47
48M_EXT           = 0x0001
49M_PKTHDR        = 0x0002
50M_EOR           = 0x0004
51M_PROTO1        = 0x0008
52M_PROTO2        = 0x0010
53M_PROTO3        = 0x0020
54M_LOOP          = 0x0040
55M_PROTO5        = 0x0080
56
57M_BCAST         = 0x0100
58M_MCAST         = 0x0200
59M_FRAG          = 0x0400
60M_FIRSTFRAG     = 0x0800
61M_LASTFRAG      = 0x1000
62M_PROMISC       = 0x2000
63M_HASFCS        = 0x4000
64M_TAGHDR        = 0x8000
65
66mbuf_flags_strings = [
67    "EXT",
68    "PKTHDR",
69    "EOR",
70    "PROTO1",
71    "PROTO2",
72    "PROTO3",
73    "LOOP",
74    "PROTO5",
75
76    "BCAST",
77    "MCAST",
78    "FRAG",
79    "FIRSTFRAG",
80    "LASTFRAG",
81    "PROMISC",
82    "HASFCS",
83    "TAGHDR"]
84
85mbuf_pkt_crumb_strings = [
86    "TS_COMP_REQ",
87    "TS_COMP_CB",
88    "DLIL_OUTPUT",
89    "FLOW_TX",
90    "FQ_ENQUEUE",
91    "FQ_DEQUEUE",
92    "SK_PKT_COPY",
93    "TCP_OUTPUT",
94    "UDP_OUTPUT",
95    "SOSEND",
96    "DLIL_INPUT",
97    "IP_INPUT",
98    "TCP_INPUT",
99    "UDP_INPUT"]
100