1*4f1223e8SApple OSS Distributionsfrom xnu import * 2*4f1223e8SApple OSS Distributionsfrom utils import * 3*4f1223e8SApple OSS Distributionsimport ctypes 4*4f1223e8SApple OSS Distributions 5*4f1223e8SApple OSS DistributionsMBSHIFT = 20 6*4f1223e8SApple OSS DistributionsMSIZE = 256 7*4f1223e8SApple OSS DistributionsMCLBYTES = 2048 8*4f1223e8SApple OSS DistributionsMBIGCLBYTES = 4096 9*4f1223e8SApple OSS DistributionsM16KCLBYTES = 16384 10*4f1223e8SApple OSS Distributions 11*4f1223e8SApple OSS DistributionsMB_INUSE = 1 12*4f1223e8SApple OSS DistributionsMB_COMP_INUSE = 2 13*4f1223e8SApple OSS DistributionsMB_SCVALID = 4 14*4f1223e8SApple OSS Distributions 15*4f1223e8SApple OSS DistributionsSLF_MAPPED = 0x0001 16*4f1223e8SApple OSS DistributionsSLF_PARTIAL = 0x0002 17*4f1223e8SApple OSS DistributionsSLF_DETACHED = 0x0004 18*4f1223e8SApple OSS Distributions 19*4f1223e8SApple OSS DistributionsINTP = ctypes.POINTER(ctypes.c_int) 20*4f1223e8SApple OSS Distributions 21*4f1223e8SApple OSS DistributionsMCF_NOCPUCACHE = 0x10 22*4f1223e8SApple OSS Distributions 23*4f1223e8SApple OSS Distributionsdef enum(*sequential, **named): 24*4f1223e8SApple OSS Distributions enums = dict(zip(sequential, range(len(sequential))), **named) 25*4f1223e8SApple OSS Distributions reverse = dict((value, key) for key, value in enums.items()) 26*4f1223e8SApple OSS Distributions enums['reverse_mapping'] = reverse 27*4f1223e8SApple OSS Distributions return type('Enum', (), enums) 28*4f1223e8SApple OSS Distributions 29*4f1223e8SApple OSS DistributionsMbuf_Type = enum( 30*4f1223e8SApple OSS Distributions 'MT_FREE', 31*4f1223e8SApple OSS Distributions 'MT_DATA', 32*4f1223e8SApple OSS Distributions 'MT_HEADER', 33*4f1223e8SApple OSS Distributions 'MT_SOCKET', 34*4f1223e8SApple OSS Distributions 'MT_PCB', 35*4f1223e8SApple OSS Distributions 'MT_RTABLE', 36*4f1223e8SApple OSS Distributions 'MT_HTABLE', 37*4f1223e8SApple OSS Distributions 'MT_ATABLE', 38*4f1223e8SApple OSS Distributions 'MT_SONAME', 39*4f1223e8SApple OSS Distributions 'MT_SOOPTS', 40*4f1223e8SApple OSS Distributions 'MT_FTABLE', 41*4f1223e8SApple OSS Distributions 'MT_RIGHTS', 42*4f1223e8SApple OSS Distributions 'MT_IFADDR', 43*4f1223e8SApple OSS Distributions 'MT_CONTROL', 44*4f1223e8SApple OSS Distributions 'MT_OOBDATA', 45*4f1223e8SApple OSS Distributions 'MT_TAG', 46*4f1223e8SApple OSS Distributions 'MT_LAST') 47*4f1223e8SApple OSS Distributions 48*4f1223e8SApple OSS DistributionsM_EXT = 0x0001 49*4f1223e8SApple OSS DistributionsM_PKTHDR = 0x0002 50*4f1223e8SApple OSS DistributionsM_EOR = 0x0004 51*4f1223e8SApple OSS DistributionsM_PROTO1 = 0x0008 52*4f1223e8SApple OSS DistributionsM_PROTO2 = 0x0010 53*4f1223e8SApple OSS DistributionsM_PROTO3 = 0x0020 54*4f1223e8SApple OSS DistributionsM_LOOP = 0x0040 55*4f1223e8SApple OSS DistributionsM_PROTO5 = 0x0080 56*4f1223e8SApple OSS Distributions 57*4f1223e8SApple OSS DistributionsM_BCAST = 0x0100 58*4f1223e8SApple OSS DistributionsM_MCAST = 0x0200 59*4f1223e8SApple OSS DistributionsM_FRAG = 0x0400 60*4f1223e8SApple OSS DistributionsM_FIRSTFRAG = 0x0800 61*4f1223e8SApple OSS DistributionsM_LASTFRAG = 0x1000 62*4f1223e8SApple OSS DistributionsM_PROMISC = 0x2000 63*4f1223e8SApple OSS DistributionsM_HASFCS = 0x4000 64*4f1223e8SApple OSS DistributionsM_TAGHDR = 0x8000 65*4f1223e8SApple OSS Distributions 66*4f1223e8SApple OSS Distributionsmbuf_flags_strings = [ 67*4f1223e8SApple OSS Distributions "EXT", 68*4f1223e8SApple OSS Distributions "PKTHDR", 69*4f1223e8SApple OSS Distributions "EOR", 70*4f1223e8SApple OSS Distributions "PROTO1", 71*4f1223e8SApple OSS Distributions "PROTO2", 72*4f1223e8SApple OSS Distributions "PROTO3", 73*4f1223e8SApple OSS Distributions "LOOP", 74*4f1223e8SApple OSS Distributions "PROTO5", 75*4f1223e8SApple OSS Distributions 76*4f1223e8SApple OSS Distributions "BCAST", 77*4f1223e8SApple OSS Distributions "MCAST", 78*4f1223e8SApple OSS Distributions "FRAG", 79*4f1223e8SApple OSS Distributions "FIRSTFRAG", 80*4f1223e8SApple OSS Distributions "LASTFRAG", 81*4f1223e8SApple OSS Distributions "PROMISC", 82*4f1223e8SApple OSS Distributions "HASFCS", 83*4f1223e8SApple OSS Distributions "TAGHDR"] 84*4f1223e8SApple OSS Distributions 85*4f1223e8SApple OSS Distributionsmbuf_pkt_crumb_strings = [ 86*4f1223e8SApple OSS Distributions "TS_COMP_REQ", 87*4f1223e8SApple OSS Distributions "TS_COMP_CB", 88*4f1223e8SApple OSS Distributions "DLIL_OUTPUT", 89*4f1223e8SApple OSS Distributions "FLOW_TX", 90*4f1223e8SApple OSS Distributions "FQ_ENQUEUE", 91*4f1223e8SApple OSS Distributions "FQ_DEQUEUE", 92*4f1223e8SApple OSS Distributions "SK_PKT_COPY", 93*4f1223e8SApple OSS Distributions "TCP_OUTPUT", 94*4f1223e8SApple OSS Distributions "UDP_OUTPUT", 95*4f1223e8SApple OSS Distributions "SOSEND", 96*4f1223e8SApple OSS Distributions "DLIL_INPUT", 97*4f1223e8SApple OSS Distributions "IP_INPUT", 98*4f1223e8SApple OSS Distributions "TCP_INPUT", 99*4f1223e8SApple OSS Distributions "UDP_INPUT"] 100