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