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