003 File Manager
Current Path:
/usr/local/lib/perl5/site_perl/mach/5.32/sys
usr
/
local
/
lib
/
perl5
/
site_perl
/
mach
/
5.32
/
sys
/
📁
..
📄
_atomic64e.ph
(1.7 KB)
📄
_atomic_subword.ph
(5.32 KB)
📄
_bitset.ph
(834 B)
📄
_blockcount.ph
(809 B)
📄
_bus_dma.ph
(324 B)
📄
_callout.ph
(199 B)
📄
_cpuset.ph
(487 B)
📄
_cscan_atomic.ph
(29.03 KB)
📄
_cscan_bus.ph
(13.04 KB)
📄
_domainset.ph
(547 B)
📄
_eventhandler.ph
(738 B)
📄
_ffcounter.ph
(180 B)
📄
_iovec.ph
(316 B)
📄
_lock.ph
(1.19 KB)
📄
_lockmgr.ph
(276 B)
📄
_mutex.ph
(200 B)
📄
_null.ph
(651 B)
📄
_pctrie.ph
(171 B)
📄
_pthreadtypes.ph
(317 B)
📄
_rangeset.ph
(204 B)
📄
_rmlock.ph
(485 B)
📄
_rwlock.ph
(203 B)
📄
_semaphore.ph
(285 B)
📄
_seqc.ph
(165 B)
📄
_sigset.ph
(858 B)
📄
_smr.ph
(908 B)
📄
_sockaddr_storage.ph
(665 B)
📄
_stack.ph
(230 B)
📄
_stdarg.ph
(1.09 KB)
📄
_stdint.ph
(1.62 KB)
📄
_sx.ph
(159 B)
📄
_task.ph
(578 B)
📄
_termios.ph
(7.26 KB)
📄
_timespec.ph
(325 B)
📄
_timeval.ph
(456 B)
📄
_types.ph
(944 B)
📄
_ucontext.ph
(177 B)
📄
_uio.ph
(548 B)
📄
_umtx.ph
(265 B)
📄
_unrhdr.ph
(193 B)
📄
_winsize.ph
(174 B)
📄
aac_ioctl.ph
(7.36 KB)
📄
abi_compat.ph
(1.81 KB)
📄
acct.ph
(859 B)
📄
acl.ph
(6.91 KB)
📄
agpio.ph
(5.3 KB)
📄
aio.ph
(2.17 KB)
📄
alq.ph
(648 B)
📄
apm.ph
(87 B)
📄
arb.ph
(35.53 KB)
📄
assym.ph
(1.5 KB)
📄
ata.ph
(50.51 KB)
📄
atomic_common.ph
(3.28 KB)
📄
auxv.ph
(220 B)
📄
backlight.ph
(903 B)
📄
bio.ph
(2.23 KB)
📄
bitset.ph
(9.24 KB)
📄
bitstring.ph
(1.61 KB)
📄
blist.ph
(552 B)
📄
blockcount.ph
(1.6 KB)
📄
boot.ph
(247 B)
📄
buf.ph
(11.05 KB)
📄
buf_ring.ph
(1.55 KB)
📄
bufobj.ph
(2.18 KB)
📄
bus.ph
(24.54 KB)
📄
bus_dma.ph
(4.55 KB)
📄
bus_dma_internal.ph
(186 B)
📄
busdma_bufalloc.ph
(262 B)
📄
callout.ph
(5.06 KB)
📄
caprights.ph
(534 B)
📄
capsicum.ph
(12.44 KB)
📄
cdefs.ph
(33.03 KB)
📄
cdio.ph
(5.68 KB)
📄
cdrio.ph
(3.6 KB)
📄
cfictl.ph
(741 B)
📄
chio.ph
(6.57 KB)
📄
ck.ph
(503 B)
📄
clock.ph
(990 B)
📄
cnv.ph
(540 B)
📄
compressor.ph
(349 B)
📄
condvar.ph
(1.85 KB)
📄
conf.ph
(4.53 KB)
📄
cons.ph
(1.59 KB)
📄
consio.ph
(17.3 KB)
📄
copyright.ph
(608 B)
📄
counter.ph
(1.61 KB)
📄
coverage.ph
(745 B)
📄
cpu.ph
(2.36 KB)
📄
cpuctl.ph
(1.04 KB)
📄
cpuset.ph
(4.91 KB)
📄
csan.ph
(349 B)
📄
ctf.ph
(8.35 KB)
📄
ctf_api.ph
(1.04 KB)
📄
ctype.ph
(1.51 KB)
📄
devctl.ph
(168 B)
📄
devicestat.ph
(4.25 KB)
📄
devmap.ph
(352 B)
📄
dirent.ph
(1.88 KB)
📄
disk.ph
(2.75 KB)
📄
disk_zone.ph
(4.48 KB)
📄
disklabel.ph
(1.75 KB)
📄
diskmbr.ph
(329 B)
📄
dkstat.ph
(199 B)
📄
dnv.ph
(427 B)
📄
domain.ph
(1.16 KB)
📄
domainset.ph
(5.58 KB)
📄
dtrace.ph
(52.95 KB)
📄
dtrace_bsd.ph
(177 B)
📄
dvdio.ph
(2.61 KB)
📄
efi.ph
(3.33 KB)
📄
efiio.ph
(821 B)
📄
elf.ph
(273 B)
📄
elf32.ph
(1.41 KB)
📄
elf64.ph
(1.91 KB)
📄
elf_common.ph
(85.24 KB)
📄
elf_generic.ph
(2.06 KB)
📄
endian.ph
(5.87 KB)
📄
epoch.ph
(2.43 KB)
📄
errno.ph
(6.93 KB)
📄
eui64.ph
(323 B)
📄
event.ph
(7.54 KB)
📄
eventfd.ph
(458 B)
📄
eventhandler.ph
(4.88 KB)
📄
eventvar.ph
(858 B)
📄
exec.ph
(1.19 KB)
📄
extattr.ph
(1.12 KB)
📄
fail.ph
(5.77 KB)
📄
fbio.ph
(17.58 KB)
📄
fcntl.ph
(9.1 KB)
📄
fdcio.ph
(5.37 KB)
📄
file.ph
(6.54 KB)
📄
filedesc.ph
(6.85 KB)
📄
filio.ph
(1.99 KB)
📄
firmware.ph
(332 B)
📄
fnv_hash.ph
(1.52 KB)
📄
font.ph
(930 B)
📄
gmon.ph
(2.57 KB)
📄
gpio.ph
(3.4 KB)
📄
gpt.ph
(300 B)
📄
gsb_crc32.ph
(744 B)
📄
gtaskqueue.ph
(1.85 KB)
📄
hash.ph
(440 B)
📄
hhook.ph
(1.42 KB)
📄
iconv.ph
(4.33 KB)
📄
imgact.ph
(476 B)
📄
imgact_aout.ph
(4.63 KB)
📄
imgact_binmisc.ph
(1.75 KB)
📄
imgact_elf.ph
(1.45 KB)
📄
interrupt.ph
(1.45 KB)
📄
intr.ph
(1.61 KB)
📄
ioccom.ph
(2.62 KB)
📄
ioctl.ph
(387 B)
📄
ioctl_compat.ph
(5.35 KB)
📄
iov.ph
(1.34 KB)
📄
iov_schema.ph
(358 B)
📄
ipc.ph
(2.21 KB)
📄
ipmi.ph
(6.15 KB)
📄
jail.ph
(7.65 KB)
📄
joystick.ph
(819 B)
📄
kbio.ph
(8.69 KB)
📄
kcov.ph
(1.19 KB)
📄
kdb.ph
(2.3 KB)
📄
kenv.ph
(578 B)
📄
kern_prefetch.ph
(385 B)
📄
kernel.ph
(13.29 KB)
📄
kerneldump.ph
(3.28 KB)
📄
khelp.ph
(325 B)
📄
kobj.ph
(3.16 KB)
📄
kpilite.ph
(860 B)
📄
ksem.ph
(432 B)
📄
kthread.ph
(199 B)
📄
ktls.ph
(1.67 KB)
📄
ktr.ph
(12.26 KB)
📄
ktr_class.ph
(2.53 KB)
📄
ktrace.ph
(4.95 KB)
📄
libkern.ph
(3.61 KB)
📄
limits.ph
(2.99 KB)
📄
link_aout.ph
(4.54 KB)
📄
link_elf.ph
(971 B)
📄
linker.ph
(3.66 KB)
📄
linker_set.ph
(2.81 KB)
📄
lock.ph
(10.56 KB)
📄
lock_profile.ph
(1.31 KB)
📄
lockf.ph
(307 B)
📄
lockmgr.ph
(6.64 KB)
📄
lockstat.ph
(4.38 KB)
📄
loginclass.ph
(180 B)
📄
mac.ph
(740 B)
📄
malloc.ph
(3.64 KB)
📄
mbuf.ph
(33.44 KB)
📄
mchain.ph
(494 B)
📄
md4.ph
(213 B)
📄
md5.ph
(497 B)
📄
mdioctl.ph
(1.7 KB)
📄
memdesc.ph
(2.53 KB)
📄
memrange.ph
(1.99 KB)
📄
mman.ph
(9.09 KB)
📄
module.ph
(4.84 KB)
📄
module_khelp.ph
(1.18 KB)
📄
mount.ph
(22.18 KB)
📄
mouse.ph
(15.1 KB)
📄
mpt_ioctl.ph
(1.95 KB)
📄
mqueue.ph
(202 B)
📄
msg.ph
(1.24 KB)
📄
msgbuf.ph
(993 B)
📄
mtio.ph
(8.56 KB)
📄
mutex.ph
(17.47 KB)
📄
namei.ph
(7.81 KB)
📄
nlist_aout.ph
(1.88 KB)
📄
nv.ph
(2.02 KB)
📄
nvpair.ph
(4.36 KB)
📄
osd.ph
(3.22 KB)
📄
param.ph
(9.24 KB)
📄
pciio.ph
(2.92 KB)
📄
pcpu.ph
(6.97 KB)
📄
pctrie.ph
(2.74 KB)
📄
physmem.ph
(886 B)
📄
pidctrl.ph
(435 B)
📄
pipe.ph
(2.25 KB)
📄
pmc.ph
(22.72 KB)
📄
pmckern.ph
(6.13 KB)
📄
pmclog.ph
(3.2 KB)
📄
poll.ph
(1.58 KB)
📄
posix4.ph
(1.2 KB)
📄
power.ph
(986 B)
📄
priority.ph
(3.44 KB)
📄
priv.ph
(19.61 KB)
📄
prng.ph
(328 B)
📄
proc.ph
(30.83 KB)
📄
procctl.ph
(4.3 KB)
📄
procdesc.ph
(1.48 KB)
📄
procfs.ph
(535 B)
📄
protosw.ph
(4.83 KB)
📄
ptio.ph
(395 B)
📄
ptrace.ph
(4.63 KB)
📄
qmath.ph
(19.54 KB)
📄
queue.ph
(30.6 KB)
📄
racct.ph
(6.48 KB)
📄
random.ph
(4.47 KB)
📄
rangelock.ph
(1.45 KB)
📄
rangeset.ph
(234 B)
📄
rctl.ph
(4.19 KB)
📄
reboot.ph
(1.86 KB)
📄
refcount.ph
(4.03 KB)
📄
regression.ph
(218 B)
📄
resource.ph
(3.04 KB)
📄
resourcevar.ph
(1.14 KB)
📄
rman.ph
(1.89 KB)
📄
rmlock.ph
(4.18 KB)
📄
rtprio.ph
(1.44 KB)
📄
runq.ph
(296 B)
📄
rwlock.ph
(10.78 KB)
📄
sbuf.ph
(1.55 KB)
📄
sched.ph
(3.04 KB)
📄
sdt.ph
(21.91 KB)
📄
select.ph
(2.28 KB)
📄
selinfo.ph
(371 B)
📄
sem.ph
(1.97 KB)
📄
sema.ph
(919 B)
📄
seqc.ph
(2.19 KB)
📄
serial.ph
(2.12 KB)
📄
sf_buf.ph
(2.32 KB)
📄
sglist.ph
(715 B)
📄
shm.ph
(1.8 KB)
📄
sigio.ph
(323 B)
📄
signal.ph
(12.78 KB)
📄
signalvar.ph
(9.63 KB)
📄
sleepqueue.ph
(975 B)
📄
slicer.ph
(1000 B)
📄
smp.ph
(3.05 KB)
📄
smr.ph
(1.49 KB)
📄
smr_types.ph
(2.14 KB)
📄
snoop.ph
(625 B)
📄
sockbuf.ph
(4.14 KB)
📄
socket.ph
(20.01 KB)
📄
socketvar.ph
(7.29 KB)
📄
sockio.ph
(8.23 KB)
📄
sockopt.ph
(375 B)
📄
soundcard.ph
(66.67 KB)
📄
specialfd.ph
(257 B)
📄
spigenio.ph
(1.06 KB)
📄
stack.ph
(845 B)
📄
stat.ph
(9.2 KB)
📄
stats.ph
(30.3 KB)
📄
statvfs.ph
(485 B)
📄
stdatomic.ph
(15.26 KB)
📄
stddef.ph
(518 B)
📄
stdint.ph
(915 B)
📄
sx.ph
(10.75 KB)
📄
syscall.ph
(28.09 KB)
📄
syscallsubr.ph
(521 B)
📄
sysctl.ph
(46.96 KB)
📄
sysent.ph
(6.09 KB)
📄
syslimits.ph
(1.32 KB)
📄
syslog.ph
(4.03 KB)
📄
sysproto.ph
(43.73 KB)
📄
systm.ph
(12.58 KB)
📄
taskqueue.ph
(3.65 KB)
📄
terminal.ph
(5.68 KB)
📄
termios.ph
(223 B)
📄
thr.ph
(691 B)
📄
tiio.ph
(4.04 KB)
📄
tim_filter.ph
(540 B)
📄
time.ph
(12.88 KB)
📄
timeb.ph
(488 B)
📄
timeet.ph
(996 B)
📄
timeffc.ph
(3.86 KB)
📄
timepps.ph
(5.73 KB)
📄
timers.ph
(1.15 KB)
📄
times.ph
(379 B)
📄
timespec.ph
(735 B)
📄
timetc.ph
(444 B)
📄
timex.ph
(3.16 KB)
📄
tree.ph
(29.45 KB)
📄
tslog.ph
(2.24 KB)
📄
tty.ph
(3.84 KB)
📄
ttycom.ph
(5.65 KB)
📄
ttydefaults.ph
(2.62 KB)
📄
ttydevsw.ph
(2.84 KB)
📄
ttydisc.ph
(1.02 KB)
📄
ttyhook.ph
(2.25 KB)
📄
ttyqueue.ph
(2.15 KB)
📄
turnstile.ph
(357 B)
📄
types.ph
(7.97 KB)
📄
ucontext.ph
(695 B)
📄
ucred.ph
(1.19 KB)
📄
uio.ph
(681 B)
📄
umtx.ph
(6.12 KB)
📄
un.ph
(1.07 KB)
📄
unistd.ph
(7.59 KB)
📄
unpcb.ph
(1.19 KB)
📄
user.ph
(8.58 KB)
📄
utsname.ph
(553 B)
📄
uuid.ph
(543 B)
📄
vdso.ph
(1.28 KB)
📄
vmem.ph
(643 B)
📄
vmmeter.ph
(2.21 KB)
📄
vnode.ph
(24.18 KB)
📄
vtoc.ph
(88 B)
📄
wait.ph
(4.11 KB)
📄
watchdog.ph
(2.72 KB)
Editing: mbuf.ph
require '_h2ph_pre.ph'; no warnings qw(redefine misc); unless(defined(&_SYS_MBUF_H_)) { eval 'sub _SYS_MBUF_H_ () {1;}' unless defined(&_SYS_MBUF_H_); require 'sys/queue.ph'; if(defined(&_KERNEL)) { require 'sys/systm.ph'; require 'sys/refcount.ph'; require 'vm/uma.ph'; if(defined(&WITNESS)) { require 'sys/lock.ph'; } } if(defined(&_KERNEL)) { require 'sys/sdt.ph'; eval 'sub MBUF_PROBE1 { my($probe, $arg0) = @_; eval q( &SDT_PROBE1( &sdt, , , $probe, $arg0)); }' unless defined(&MBUF_PROBE1); eval 'sub MBUF_PROBE2 { my($probe, $arg0, $arg1) = @_; eval q( &SDT_PROBE2( &sdt, , , $probe, $arg0, $arg1)); }' unless defined(&MBUF_PROBE2); eval 'sub MBUF_PROBE3 { my($probe, $arg0, $arg1, $arg2) = @_; eval q( &SDT_PROBE3( &sdt, , , $probe, $arg0, $arg1, $arg2)); }' unless defined(&MBUF_PROBE3); eval 'sub MBUF_PROBE4 { my($probe, $arg0, $arg1, $arg2, $arg3) = @_; eval q( &SDT_PROBE4( &sdt, , , $probe, $arg0, $arg1, $arg2, $arg3)); }' unless defined(&MBUF_PROBE4); eval 'sub MBUF_PROBE5 { my($probe, $arg0, $arg1, $arg2, $arg3, $arg4) = @_; eval q( &SDT_PROBE5( &sdt, , , $probe, $arg0, $arg1, $arg2, $arg3, $arg4)); }' unless defined(&MBUF_PROBE5); } eval 'sub MHSIZE () { &offsetof(\'struct mbuf\', &m_dat);}' unless defined(&MHSIZE); eval 'sub MPKTHSIZE () { &offsetof(\'struct mbuf\', &m_pktdat);}' unless defined(&MPKTHSIZE); eval 'sub MLEN () {(( &MSIZE - &MHSIZE));}' unless defined(&MLEN); eval 'sub MHLEN () {(( &MSIZE - &MPKTHSIZE));}' unless defined(&MHLEN); eval 'sub MINCLSIZE () {( &MHLEN + 1);}' unless defined(&MINCLSIZE); eval 'sub M_NODOM () {255;}' unless defined(&M_NODOM); if(defined(&_KERNEL)) { eval 'sub mtod { my($m, $t) = @_; eval q((($t)(($m)-> &m_data))); }' unless defined(&mtod); eval 'sub mtodo { my($m, $o) = @_; eval q((( &void *)((($m)-> &m_data) + ($o)))); }' unless defined(&mtodo); } eval 'sub ether_vtag () { ($PH_per->{sixteen[0]});}' unless defined(ðer_vtag); eval 'sub PH_vt () { &PH_per;}' unless defined(&PH_vt); eval 'sub vt_nrecs () { $sixteen[0];}' unless defined(&vt_nrecs); eval 'sub tso_segsz () { ($PH_per->{sixteen[1]});}' unless defined(&tso_segsz); eval 'sub lro_nsegs () { &tso_segsz;}' unless defined(&lro_nsegs); eval 'sub csum_data () { ($PH_per->{thirtytwo[1]});}' unless defined(&csum_data); eval 'sub lro_len () { ($PH_loc->{sixteen[0]});}' unless defined(&lro_len); eval 'sub lro_csum () { ($PH_loc->{sixteen[1]});}' unless defined(&lro_csum); eval 'sub MBUF_PEXT_HDR_LEN () {23;}' unless defined(&MBUF_PEXT_HDR_LEN); eval 'sub MBUF_PEXT_TRAIL_LEN () {64;}' unless defined(&MBUF_PEXT_TRAIL_LEN); if(defined(&__LP64__)) { eval 'sub MBUF_PEXT_MAX_PGS () {(40/ $sizeof{ &vm_paddr_t});}' unless defined(&MBUF_PEXT_MAX_PGS); } else { eval 'sub MBUF_PEXT_MAX_PGS () {(72/ $sizeof{ &vm_paddr_t});}' unless defined(&MBUF_PEXT_MAX_PGS); } eval 'sub MBUF_PEXT_MAX_BYTES () {( &MBUF_PEXT_MAX_PGS * &PAGE_SIZE + &MBUF_PEXT_HDR_LEN + &MBUF_PEXT_TRAIL_LEN);}' unless defined(&MBUF_PEXT_MAX_BYTES); eval 'sub m_ext_copylen () { &offsetof(\'struct m_ext\', &ext_arg2);}' unless defined(&m_ext_copylen); eval 'sub m_epg_pa () { ($m_ext->{extpg_pa});}' unless defined(&m_epg_pa); eval 'sub m_epg_trail () { ($m_ext->{extpg_trail});}' unless defined(&m_epg_trail); eval 'sub m_epg_hdr () { ($m_ext->{extpg_hdr});}' unless defined(&m_epg_hdr); eval 'sub m_epg_ext_copylen () { &offsetof(\'struct m_ext\', &ext_free);}' unless defined(&m_epg_ext_copylen); if(!defined(&__LP64__)) { } eval 'sub m_epg_startcopy () { &m_epg_npgs;}' unless defined(&m_epg_startcopy); eval 'sub m_epg_endcopy () { &m_epg_stailq;}' unless defined(&m_epg_endcopy); eval 'sub EPG_FLAG_ANON () {0x1;}' unless defined(&EPG_FLAG_ANON); eval 'sub EPG_FLAG_2FREE () {0x2;}' unless defined(&EPG_FLAG_2FREE); if(defined(&_KERNEL)) { eval 'sub m_epg_pagelen { my($m,$pidx,$pgoff) = @_; eval q({ &KASSERT($pgoff == 0|| $pidx == 0, (\\"page %d with non-zero offset %d in %p\\", $pidx, $pgoff, $m)); &if ($pidx == ($m->{m_epg_npgs}) - 1) { ( ($m->{m_epg_last_len})); } &else { ( &PAGE_SIZE - $pgoff); } }); }' unless defined(&m_epg_pagelen); if(defined(&INVARIANTS)) { eval 'sub MCHECK { my($ex, $msg) = @_; eval q( &KASSERT(($ex), (\\"Multi page mbuf %p with \\" $msg \\" at %s:%d\\", &m, &__FILE__, &__LINE__))); }' unless defined(&MCHECK); eval 'sub MBUF_EXT_PGS_ASSERT_SANITY { my($m) = @_; eval q( &do { &MCHECK( ($m->{m_epg_npgs}) > 0, \\"no valid pages\\"); &MCHECK( ($m->{m_epg_npgs}) <= &nitems( ($m->{m_epg_pa})), \\"too many pages\\"); &MCHECK( ($m->{m_epg_nrdy}) <= ($m->{m_epg_npgs}), \\"too many ready pages\\"); &MCHECK( ($m->{m_epg_1st_off}) < &PAGE_SIZE, \\"too large page offset\\"); &MCHECK( ($m->{m_epg_last_len}) > 0, \\"zero last page length\\"); &MCHECK( ($m->{m_epg_last_len}) <= &PAGE_SIZE, \\"too large last page length\\"); &if ( ($m->{m_epg_npgs}) == 1) &MCHECK( ($m->{m_epg_1st_off}) + ($m->{m_epg_last_len}) <= &PAGE_SIZE, \\"single page too large\\"); &MCHECK( ($m->{m_epg_hdrlen}) <= $sizeof{ ($m->{m_epg_hdr})}, \\"too large header length\\"); &MCHECK( ($m->{m_epg_trllen}) <= $sizeof{ ($m->{m_epg_trail})}, \\"too large header length\\"); } &while (0)); }' unless defined(&MBUF_EXT_PGS_ASSERT_SANITY); } else { eval 'sub MBUF_EXT_PGS_ASSERT_SANITY { my($m) = @_; eval q( &do {} &while (0);); }' unless defined(&MBUF_EXT_PGS_ASSERT_SANITY); } } eval 'sub M_EXT () {0x1;}' unless defined(&M_EXT); eval 'sub M_PKTHDR () {0x2;}' unless defined(&M_PKTHDR); eval 'sub M_EOR () {0x4;}' unless defined(&M_EOR); eval 'sub M_RDONLY () {0x8;}' unless defined(&M_RDONLY); eval 'sub M_BCAST () {0x10;}' unless defined(&M_BCAST); eval 'sub M_MCAST () {0x20;}' unless defined(&M_MCAST); eval 'sub M_PROMISC () {0x40;}' unless defined(&M_PROMISC); eval 'sub M_VLANTAG () {0x80;}' unless defined(&M_VLANTAG); eval 'sub M_EXTPG () {0x100;}' unless defined(&M_EXTPG); eval 'sub M_NOFREE () {0x200;}' unless defined(&M_NOFREE); eval 'sub M_TSTMP () {0x400;}' unless defined(&M_TSTMP); eval 'sub M_TSTMP_HPREC () {0x800;}' unless defined(&M_TSTMP_HPREC); eval 'sub M_TSTMP_LRO () {0x1000;}' unless defined(&M_TSTMP_LRO); eval 'sub M_PROTO1 () {0x2000;}' unless defined(&M_PROTO1); eval 'sub M_PROTO2 () {0x4000;}' unless defined(&M_PROTO2); eval 'sub M_PROTO3 () {0x8000;}' unless defined(&M_PROTO3); eval 'sub M_PROTO4 () {0x10000;}' unless defined(&M_PROTO4); eval 'sub M_PROTO5 () {0x20000;}' unless defined(&M_PROTO5); eval 'sub M_PROTO6 () {0x40000;}' unless defined(&M_PROTO6); eval 'sub M_PROTO7 () {0x80000;}' unless defined(&M_PROTO7); eval 'sub M_PROTO8 () {0x100000;}' unless defined(&M_PROTO8); eval 'sub M_PROTO9 () {0x200000;}' unless defined(&M_PROTO9); eval 'sub M_PROTO10 () {0x400000;}' unless defined(&M_PROTO10); eval 'sub M_PROTO11 () {0x800000;}' unless defined(&M_PROTO11); eval 'sub MB_DTOR_SKIP () {0x1;}' unless defined(&MB_DTOR_SKIP); eval 'sub M_PROTOFLAGS () {( &M_PROTO1| &M_PROTO2| &M_PROTO3| &M_PROTO4| &M_PROTO5| &M_PROTO6| &M_PROTO7| &M_PROTO8| &M_PROTO9| &M_PROTO10| &M_PROTO11);}' unless defined(&M_PROTOFLAGS); eval 'sub M_COPYFLAGS () {( &M_PKTHDR| &M_EOR| &M_RDONLY| &M_BCAST| &M_MCAST| &M_PROMISC| &M_VLANTAG| &M_TSTMP| &M_TSTMP_HPREC| &M_TSTMP_LRO| &M_PROTOFLAGS);}' unless defined(&M_COPYFLAGS); eval 'sub M_FLAG_BITS () {"\\20\\1M_EXT\\2M_PKTHDR\\3M_EOR\\4M_RDONLY\\5M_BCAST\\6M_MCAST" "\\7M_PROMISC\\10M_VLANTAG\\11M_EXTPG\\12M_NOFREE\\13M_TSTMP\\14M_TSTMP_HPREC\\15M_TSTMP_LRO";}' unless defined(&M_FLAG_BITS); eval 'sub M_FLAG_PROTOBITS () {"\\16M_PROTO1\\17M_PROTO2\\20M_PROTO3\\21M_PROTO4" "\\22M_PROTO5\\23M_PROTO6\\24M_PROTO7\\25M_PROTO8\\26M_PROTO9" "\\27M_PROTO10\\28M_PROTO11";}' unless defined(&M_FLAG_PROTOBITS); eval 'sub M_FLAG_PRINTF () {( &M_FLAG_BITS &M_FLAG_PROTOBITS);}' unless defined(&M_FLAG_PRINTF); eval 'sub M_HASHTYPE_HASHPROP () {0x80;}' unless defined(&M_HASHTYPE_HASHPROP); eval 'sub M_HASHTYPE_HASH { my($t) = @_; eval q(( &M_HASHTYPE_HASHPROP | ($t))); }' unless defined(&M_HASHTYPE_HASH); eval 'sub M_HASHTYPE_NONE () {0;}' unless defined(&M_HASHTYPE_NONE); eval 'sub M_HASHTYPE_RSS_IPV4 () { &M_HASHTYPE_HASH(1);}' unless defined(&M_HASHTYPE_RSS_IPV4); eval 'sub M_HASHTYPE_RSS_TCP_IPV4 () { &M_HASHTYPE_HASH(2);}' unless defined(&M_HASHTYPE_RSS_TCP_IPV4); eval 'sub M_HASHTYPE_RSS_IPV6 () { &M_HASHTYPE_HASH(3);}' unless defined(&M_HASHTYPE_RSS_IPV6); eval 'sub M_HASHTYPE_RSS_TCP_IPV6 () { &M_HASHTYPE_HASH(4);}' unless defined(&M_HASHTYPE_RSS_TCP_IPV6); eval 'sub M_HASHTYPE_RSS_IPV6_EX () { &M_HASHTYPE_HASH(5);}' unless defined(&M_HASHTYPE_RSS_IPV6_EX); eval 'sub M_HASHTYPE_RSS_TCP_IPV6_EX () { &M_HASHTYPE_HASH(6);}' unless defined(&M_HASHTYPE_RSS_TCP_IPV6_EX); eval 'sub M_HASHTYPE_RSS_UDP_IPV4 () { &M_HASHTYPE_HASH(7);}' unless defined(&M_HASHTYPE_RSS_UDP_IPV4); eval 'sub M_HASHTYPE_RSS_UDP_IPV6 () { &M_HASHTYPE_HASH(9);}' unless defined(&M_HASHTYPE_RSS_UDP_IPV6); eval 'sub M_HASHTYPE_RSS_UDP_IPV6_EX () { &M_HASHTYPE_HASH(10);}' unless defined(&M_HASHTYPE_RSS_UDP_IPV6_EX); eval 'sub M_HASHTYPE_OPAQUE () {63;}' unless defined(&M_HASHTYPE_OPAQUE); eval 'sub M_HASHTYPE_OPAQUE_HASH () { &M_HASHTYPE_HASH( &M_HASHTYPE_OPAQUE);}' unless defined(&M_HASHTYPE_OPAQUE_HASH); eval 'sub M_HASHTYPE_CLEAR { my($m) = @_; eval q((($m)-> ($m_pkthdr->{rsstype}) = 0)); }' unless defined(&M_HASHTYPE_CLEAR); eval 'sub M_HASHTYPE_GET { my($m) = @_; eval q((($m)-> ($m_pkthdr->{rsstype}))); }' unless defined(&M_HASHTYPE_GET); eval 'sub M_HASHTYPE_SET { my($m, $v) = @_; eval q((($m)-> ($m_pkthdr->{rsstype}) = ($v))); }' unless defined(&M_HASHTYPE_SET); eval 'sub M_HASHTYPE_TEST { my($m, $v) = @_; eval q(( &M_HASHTYPE_GET($m) == ($v))); }' unless defined(&M_HASHTYPE_TEST); eval 'sub M_HASHTYPE_ISHASH { my($m) = @_; eval q(( &M_HASHTYPE_GET($m) & &M_HASHTYPE_HASHPROP)); }' unless defined(&M_HASHTYPE_ISHASH); eval 'sub EXT_CLUSTER () {1;}' unless defined(&EXT_CLUSTER); eval 'sub EXT_SFBUF () {2;}' unless defined(&EXT_SFBUF); eval 'sub EXT_JUMBOP () {3;}' unless defined(&EXT_JUMBOP); eval 'sub EXT_JUMBO9 () {4;}' unless defined(&EXT_JUMBO9); eval 'sub EXT_JUMBO16 () {5;}' unless defined(&EXT_JUMBO16); eval 'sub EXT_PACKET () {6;}' unless defined(&EXT_PACKET); eval 'sub EXT_MBUF () {7;}' unless defined(&EXT_MBUF); eval 'sub EXT_RXRING () {8;}' unless defined(&EXT_RXRING); eval 'sub EXT_VENDOR1 () {224;}' unless defined(&EXT_VENDOR1); eval 'sub EXT_VENDOR2 () {225;}' unless defined(&EXT_VENDOR2); eval 'sub EXT_VENDOR3 () {226;}' unless defined(&EXT_VENDOR3); eval 'sub EXT_VENDOR4 () {227;}' unless defined(&EXT_VENDOR4); eval 'sub EXT_EXP1 () {244;}' unless defined(&EXT_EXP1); eval 'sub EXT_EXP2 () {245;}' unless defined(&EXT_EXP2); eval 'sub EXT_EXP3 () {246;}' unless defined(&EXT_EXP3); eval 'sub EXT_EXP4 () {247;}' unless defined(&EXT_EXP4); eval 'sub EXT_NET_DRV () {252;}' unless defined(&EXT_NET_DRV); eval 'sub EXT_MOD_TYPE () {253;}' unless defined(&EXT_MOD_TYPE); eval 'sub EXT_DISPOSABLE () {254;}' unless defined(&EXT_DISPOSABLE); eval 'sub EXT_EXTREF () {255;}' unless defined(&EXT_EXTREF); eval 'sub EXT_FLAG_EMBREF () {0x1;}' unless defined(&EXT_FLAG_EMBREF); eval 'sub EXT_FLAG_EXTREF () {0x2;}' unless defined(&EXT_FLAG_EXTREF); eval 'sub EXT_FLAG_NOFREE () {0x10;}' unless defined(&EXT_FLAG_NOFREE); eval 'sub EXT_FLAG_VENDOR1 () {0x10000;}' unless defined(&EXT_FLAG_VENDOR1); eval 'sub EXT_FLAG_VENDOR2 () {0x20000;}' unless defined(&EXT_FLAG_VENDOR2); eval 'sub EXT_FLAG_VENDOR3 () {0x40000;}' unless defined(&EXT_FLAG_VENDOR3); eval 'sub EXT_FLAG_VENDOR4 () {0x80000;}' unless defined(&EXT_FLAG_VENDOR4); eval 'sub EXT_FLAG_EXP1 () {0x100000;}' unless defined(&EXT_FLAG_EXP1); eval 'sub EXT_FLAG_EXP2 () {0x200000;}' unless defined(&EXT_FLAG_EXP2); eval 'sub EXT_FLAG_EXP3 () {0x400000;}' unless defined(&EXT_FLAG_EXP3); eval 'sub EXT_FLAG_EXP4 () {0x800000;}' unless defined(&EXT_FLAG_EXP4); eval 'sub EXT_FLAG_BITS () {"\\20\\1EXT_FLAG_EMBREF\\2EXT_FLAG_EXTREF\\5EXT_FLAG_NOFREE" "\\21EXT_FLAG_VENDOR1\\22EXT_FLAG_VENDOR2\\23EXT_FLAG_VENDOR3" "\\24EXT_FLAG_VENDOR4\\25EXT_FLAG_EXP1\\26EXT_FLAG_EXP2\\27EXT_FLAG_EXP3" "\\30EXT_FLAG_EXP4";}' unless defined(&EXT_FLAG_BITS); eval 'sub CSUM_IP () {0x1;}' unless defined(&CSUM_IP); eval 'sub CSUM_IP_UDP () {0x2;}' unless defined(&CSUM_IP_UDP); eval 'sub CSUM_IP_TCP () {0x4;}' unless defined(&CSUM_IP_TCP); eval 'sub CSUM_IP_SCTP () {0x8;}' unless defined(&CSUM_IP_SCTP); eval 'sub CSUM_IP_TSO () {0x10;}' unless defined(&CSUM_IP_TSO); eval 'sub CSUM_IP_ISCSI () {0x20;}' unless defined(&CSUM_IP_ISCSI); eval 'sub CSUM_INNER_IP6_UDP () {0x40;}' unless defined(&CSUM_INNER_IP6_UDP); eval 'sub CSUM_INNER_IP6_TCP () {0x80;}' unless defined(&CSUM_INNER_IP6_TCP); eval 'sub CSUM_INNER_IP6_TSO () {0x100;}' unless defined(&CSUM_INNER_IP6_TSO); eval 'sub CSUM_IP6_UDP () {0x200;}' unless defined(&CSUM_IP6_UDP); eval 'sub CSUM_IP6_TCP () {0x400;}' unless defined(&CSUM_IP6_TCP); eval 'sub CSUM_IP6_SCTP () {0x800;}' unless defined(&CSUM_IP6_SCTP); eval 'sub CSUM_IP6_TSO () {0x1000;}' unless defined(&CSUM_IP6_TSO); eval 'sub CSUM_IP6_ISCSI () {0x2000;}' unless defined(&CSUM_IP6_ISCSI); eval 'sub CSUM_INNER_IP () {0x4000;}' unless defined(&CSUM_INNER_IP); eval 'sub CSUM_INNER_IP_UDP () {0x8000;}' unless defined(&CSUM_INNER_IP_UDP); eval 'sub CSUM_INNER_IP_TCP () {0x10000;}' unless defined(&CSUM_INNER_IP_TCP); eval 'sub CSUM_INNER_IP_TSO () {0x20000;}' unless defined(&CSUM_INNER_IP_TSO); eval 'sub CSUM_ENCAP_VXLAN () {0x40000;}' unless defined(&CSUM_ENCAP_VXLAN); eval 'sub CSUM_ENCAP_RSVD1 () {0x80000;}' unless defined(&CSUM_ENCAP_RSVD1); eval 'sub CSUM_INNER_L3_CALC () {0x100000;}' unless defined(&CSUM_INNER_L3_CALC); eval 'sub CSUM_INNER_L3_VALID () {0x200000;}' unless defined(&CSUM_INNER_L3_VALID); eval 'sub CSUM_INNER_L4_CALC () {0x400000;}' unless defined(&CSUM_INNER_L4_CALC); eval 'sub CSUM_INNER_L4_VALID () {0x800000;}' unless defined(&CSUM_INNER_L4_VALID); eval 'sub CSUM_L3_CALC () {0x1000000;}' unless defined(&CSUM_L3_CALC); eval 'sub CSUM_L3_VALID () {0x2000000;}' unless defined(&CSUM_L3_VALID); eval 'sub CSUM_L4_CALC () {0x4000000;}' unless defined(&CSUM_L4_CALC); eval 'sub CSUM_L4_VALID () {0x8000000;}' unless defined(&CSUM_L4_VALID); eval 'sub CSUM_L5_CALC () {0x10000000;}' unless defined(&CSUM_L5_CALC); eval 'sub CSUM_L5_VALID () {0x20000000;}' unless defined(&CSUM_L5_VALID); eval 'sub CSUM_COALESCED () {0x40000000;}' unless defined(&CSUM_COALESCED); eval 'sub CSUM_SND_TAG () {0x80000000;}' unless defined(&CSUM_SND_TAG); eval 'sub CSUM_FLAGS_TX () {( &CSUM_IP | &CSUM_IP_UDP | &CSUM_IP_TCP | &CSUM_IP_SCTP | &CSUM_IP_TSO | &CSUM_IP_ISCSI | &CSUM_INNER_IP6_UDP | &CSUM_INNER_IP6_TCP | &CSUM_INNER_IP6_TSO | &CSUM_IP6_UDP | &CSUM_IP6_TCP | &CSUM_IP6_SCTP | &CSUM_IP6_TSO | &CSUM_IP6_ISCSI | &CSUM_INNER_IP | &CSUM_INNER_IP_UDP | &CSUM_INNER_IP_TCP | &CSUM_INNER_IP_TSO | &CSUM_ENCAP_VXLAN | &CSUM_ENCAP_RSVD1 | &CSUM_SND_TAG);}' unless defined(&CSUM_FLAGS_TX); eval 'sub CSUM_FLAGS_RX () {( &CSUM_INNER_L3_CALC | &CSUM_INNER_L3_VALID | &CSUM_INNER_L4_CALC | &CSUM_INNER_L4_VALID | &CSUM_L3_CALC | &CSUM_L3_VALID | &CSUM_L4_CALC | &CSUM_L4_VALID | &CSUM_L5_CALC | &CSUM_L5_VALID | &CSUM_COALESCED);}' unless defined(&CSUM_FLAGS_RX); eval 'sub CSUM_BITS () {"\\20\\1CSUM_IP\\2CSUM_IP_UDP\\3CSUM_IP_TCP\\4CSUM_IP_SCTP\\5CSUM_IP_TSO" "\\6CSUM_IP_ISCSI\\7CSUM_INNER_IP6_UDP\\10CSUM_INNER_IP6_TCP" "\\11CSUM_INNER_IP6_TSO\\12CSUM_IP6_UDP\\13CSUM_IP6_TCP\\14CSUM_IP6_SCTP" "\\15CSUM_IP6_TSO\\16CSUM_IP6_ISCSI\\17CSUM_INNER_IP\\20CSUM_INNER_IP_UDP" "\\21CSUM_INNER_IP_TCP\\22CSUM_INNER_IP_TSO\\23CSUM_ENCAP_VXLAN" "\\24CSUM_ENCAP_RSVD1\\25CSUM_INNER_L3_CALC\\26CSUM_INNER_L3_VALID" "\\27CSUM_INNER_L4_CALC\\30CSUM_INNER_L4_VALID\\31CSUM_L3_CALC" "\\32CSUM_L3_VALID\\33CSUM_L4_CALC\\34CSUM_L4_VALID\\35CSUM_L5_CALC" "\\36CSUM_L5_VALID\\37CSUM_COALESCED\\40CSUM_SND_TAG";}' unless defined(&CSUM_BITS); eval 'sub CSUM_IP_CHECKED () { &CSUM_L3_CALC;}' unless defined(&CSUM_IP_CHECKED); eval 'sub CSUM_IP_VALID () { &CSUM_L3_VALID;}' unless defined(&CSUM_IP_VALID); eval 'sub CSUM_DATA_VALID () { &CSUM_L4_VALID;}' unless defined(&CSUM_DATA_VALID); eval 'sub CSUM_PSEUDO_HDR () { &CSUM_L4_CALC;}' unless defined(&CSUM_PSEUDO_HDR); eval 'sub CSUM_SCTP_VALID () { &CSUM_L4_VALID;}' unless defined(&CSUM_SCTP_VALID); eval 'sub CSUM_DELAY_DATA () {( &CSUM_TCP| &CSUM_UDP);}' unless defined(&CSUM_DELAY_DATA); eval 'sub CSUM_DELAY_IP () { &CSUM_IP;}' unless defined(&CSUM_DELAY_IP); eval 'sub CSUM_DELAY_DATA_IPV6 () {( &CSUM_TCP_IPV6| &CSUM_UDP_IPV6);}' unless defined(&CSUM_DELAY_DATA_IPV6); eval 'sub CSUM_DATA_VALID_IPV6 () { &CSUM_DATA_VALID;}' unless defined(&CSUM_DATA_VALID_IPV6); eval 'sub CSUM_TCP () { &CSUM_IP_TCP;}' unless defined(&CSUM_TCP); eval 'sub CSUM_UDP () { &CSUM_IP_UDP;}' unless defined(&CSUM_UDP); eval 'sub CSUM_SCTP () { &CSUM_IP_SCTP;}' unless defined(&CSUM_SCTP); eval 'sub CSUM_TSO () {( &CSUM_IP_TSO| &CSUM_IP6_TSO);}' unless defined(&CSUM_TSO); eval 'sub CSUM_INNER_TSO () {( &CSUM_INNER_IP_TSO| &CSUM_INNER_IP6_TSO);}' unless defined(&CSUM_INNER_TSO); eval 'sub CSUM_UDP_IPV6 () { &CSUM_IP6_UDP;}' unless defined(&CSUM_UDP_IPV6); eval 'sub CSUM_TCP_IPV6 () { &CSUM_IP6_TCP;}' unless defined(&CSUM_TCP_IPV6); eval 'sub CSUM_SCTP_IPV6 () { &CSUM_IP6_SCTP;}' unless defined(&CSUM_SCTP_IPV6); eval 'sub MT_NOTMBUF () {0;}' unless defined(&MT_NOTMBUF); eval 'sub MT_DATA () {1;}' unless defined(&MT_DATA); eval 'sub MT_HEADER () { &MT_DATA;}' unless defined(&MT_HEADER); eval 'sub MT_VENDOR1 () {4;}' unless defined(&MT_VENDOR1); eval 'sub MT_VENDOR2 () {5;}' unless defined(&MT_VENDOR2); eval 'sub MT_VENDOR3 () {6;}' unless defined(&MT_VENDOR3); eval 'sub MT_VENDOR4 () {7;}' unless defined(&MT_VENDOR4); eval 'sub MT_SONAME () {8;}' unless defined(&MT_SONAME); eval 'sub MT_EXP1 () {9;}' unless defined(&MT_EXP1); eval 'sub MT_EXP2 () {10;}' unless defined(&MT_EXP2); eval 'sub MT_EXP3 () {11;}' unless defined(&MT_EXP3); eval 'sub MT_EXP4 () {12;}' unless defined(&MT_EXP4); eval 'sub MT_CONTROL () {14;}' unless defined(&MT_CONTROL); eval 'sub MT_EXTCONTROL () {15;}' unless defined(&MT_EXTCONTROL); eval 'sub MT_OOBDATA () {16;}' unless defined(&MT_OOBDATA); eval 'sub MT_NOINIT () {255;}' unless defined(&MT_NOINIT); eval 'sub MBUF_MEM_NAME () {"mbuf";}' unless defined(&MBUF_MEM_NAME); eval 'sub MBUF_CLUSTER_MEM_NAME () {"mbuf_cluster";}' unless defined(&MBUF_CLUSTER_MEM_NAME); eval 'sub MBUF_PACKET_MEM_NAME () {"mbuf_packet";}' unless defined(&MBUF_PACKET_MEM_NAME); eval 'sub MBUF_JUMBOP_MEM_NAME () {"mbuf_jumbo_page";}' unless defined(&MBUF_JUMBOP_MEM_NAME); eval 'sub MBUF_JUMBO9_MEM_NAME () {"mbuf_jumbo_9k";}' unless defined(&MBUF_JUMBO9_MEM_NAME); eval 'sub MBUF_JUMBO16_MEM_NAME () {"mbuf_jumbo_16k";}' unless defined(&MBUF_JUMBO16_MEM_NAME); eval 'sub MBUF_TAG_MEM_NAME () {"mbuf_tag";}' unless defined(&MBUF_TAG_MEM_NAME); eval 'sub MBUF_EXTREFCNT_MEM_NAME () {"mbuf_ext_refcnt";}' unless defined(&MBUF_EXTREFCNT_MEM_NAME); eval 'sub MBUF_EXTPGS_MEM_NAME () {"mbuf_extpgs";}' unless defined(&MBUF_EXTPGS_MEM_NAME); if(defined(&_KERNEL)) { if(defined(&WITNESS)) { eval 'sub MBUF_CHECKSLEEP { my($how) = @_; eval q( &do { &if ($how == &M_WAITOK) &WITNESS_WARN( &WARN_GIANTOK | &WARN_SLEEPOK, &NULL, \\"Sleeping in \\\\\\"%s\\\\\\"\\", &__func__); } &while (0)); }' unless defined(&MBUF_CHECKSLEEP); } else { eval 'sub MBUF_CHECKSLEEP { my($how) = @_; eval q(); }' unless defined(&MBUF_CHECKSLEEP); } # some #ifdef were dropped here -- fill in the blanks eval 'sub m_gettype { my($size) = @_; eval q({ \'int\' &type; &switch ($size) { &case &MSIZE: &type = &EXT_MBUF; &break; &case &MCLBYTES: &type = &EXT_CLUSTER; &break; &case &MJUM9BYTES: &type = &EXT_JUMBO9; &break; &case &MJUM16BYTES: &type = &EXT_JUMBO16; &break; &default: &panic(\\"%s: invalid cluster size %d\\", &__func__, $size); } ( &type); }); }' unless defined(&m_gettype); # some #ifdef were dropped here -- fill in the blanks eval 'sub m_getzone { my($size) = @_; eval q({ &uma_zone_t &zone; &switch ($size) { &case &MCLBYTES: &zone = &zone_clust; &break; &case &MJUM9BYTES: &zone = &zone_jumbo9; &break; &case &MJUM16BYTES: &zone = &zone_jumbo16; &break; &default: &panic(\\"%s: invalid cluster size %d\\", &__func__, $size); } ( &zone); }); }' unless defined(&m_getzone); eval 'sub m_get { my($how,$type) = @_; eval q({ \'struct mbuf\' * &m; \'struct mb_args\' &args; ($args->{flags}) = 0; ($args->{type}) = $type; &m = &uma_zalloc_arg( &zone_mbuf, &args, $how); &MBUF_PROBE3( &m__get, $how, $type, &m); ( &m); }); }' unless defined(&m_get); eval 'sub m_gethdr { my($how,$type) = @_; eval q({ \'struct mbuf\' * &m; \'struct mb_args\' &args; ($args->{flags}) = &M_PKTHDR; ($args->{type}) = $type; &m = &uma_zalloc_arg( &zone_mbuf, &args, $how); &MBUF_PROBE3( &m__gethdr, $how, $type, &m); ( &m); }); }' unless defined(&m_gethdr); eval 'sub m_getcl { my($how,$type,$flags) = @_; eval q({ \'struct mbuf\' * &m; \'struct mb_args\' &args; ($args->{flags}) = $flags; ($args->{type}) = $type; &m = &uma_zalloc_arg( &zone_pack, &args, $how); &MBUF_PROBE4( &m__getcl, $how, $type, $flags, &m); ( &m); }); }' unless defined(&m_getcl); if((defined(&MJUMPAGESIZE) ? &MJUMPAGESIZE : undef) != (defined(&MCLBYTES) ? &MCLBYTES : undef)) { } eval 'sub m_chtype { my($m,$new_type) = @_; eval q({ ($m->{m_type}) = $new_type; }); }' unless defined(&m_chtype); eval 'sub m_clrprotoflags { my($m) = @_; eval q({ &while ($m) { ($m->{m_flags}) &= ~ &M_PROTOFLAGS; $m = ($m->{m_next}); } }); }' unless defined(&m_clrprotoflags); eval 'sub m_last { my($m) = @_; eval q({ &while ( ($m->{m_next})) $m = ($m->{m_next}); ($m); }); }' unless defined(&m_last); eval 'sub m_extrefcnt { my($m) = @_; eval q({ &KASSERT( ($m->{m_flags}) & &M_EXT, (\\"%s: M_EXT missing\\", &__func__)); (( ($m->{m_ext}->{ext_flags}) & &EXT_FLAG_EMBREF) ? ($m->{m_ext}->{ext_count}) : * ($m->{m_ext}->{ext_cnt})); }); }' unless defined(&m_extrefcnt); eval 'sub M_MOVE_PKTHDR { my($to, $from) = @_; eval q( &m_move_pkthdr(($to), ($from))); }' unless defined(&M_MOVE_PKTHDR); eval 'sub MGET { my($m, $how, $type) = @_; eval q((($m) = &m_get(($how), ($type)))); }' unless defined(&MGET); eval 'sub MGETHDR { my($m, $how, $type) = @_; eval q((($m) = &m_gethdr(($how), ($type)))); }' unless defined(&MGETHDR); eval 'sub MCLGET { my($m, $how) = @_; eval q( &m_clget(($m), ($how))); }' unless defined(&MCLGET); eval 'sub MEXTADD { my($m, $buf, $size, $free, $arg1, $arg2, $flags, $type) = @_; eval q( &m_extadd(, ($buf), ($size), ($free), ($arg1), ($arg2), ($flags), ($type))); }' unless defined(&MEXTADD); eval 'sub m_getm { my($m, $len, $how, $type) = @_; eval q( &m_getm2(($m), ($len), ($how), ($type), &M_PKTHDR)); }' unless defined(&m_getm); eval 'sub M_WRITABLE { my($m) = @_; eval q(((($m)-> &m_flags & ( &M_RDONLY | &M_EXTPG)) == 0 && (!((($m)-> &m_flags & &M_EXT)) || ( &m_extrefcnt($m) == 1)))); }' unless defined(&M_WRITABLE); eval 'sub M_ASSERTPKTHDR { my($m) = @_; eval q( &KASSERT(($m) != &NULL && ($m)-> &m_flags & &M_PKTHDR, (\\"%s: no mbuf packet header!\\", &__func__))); }' unless defined(&M_ASSERTPKTHDR); eval 'sub M_ASSERTEXTPG { my($m) = @_; eval q( &KASSERT((($m)-> &m_flags & ( &M_EXTPG| &M_PKTHDR)) == &M_EXTPG, (\\"%s: m %p is not multipage!\\", &__func__, $m))); }' unless defined(&M_ASSERTEXTPG); eval 'sub M_ASSERTVALID { my($m) = @_; eval q( &KASSERT((($m)-> &m_flags & 0) == 0, (\\"%s: attempted use of a free mbuf!\\", &__func__))); }' unless defined(&M_ASSERTVALID); eval 'sub M_START { my($m) = @_; eval q(((($m)-> &m_flags & &M_EXTPG) ? &NULL : (($m)-> &m_flags & &M_EXT) ? ($m)-> ($m_ext->{ext_buf}) : (($m)-> &m_flags & &M_PKTHDR) ? ($m)-> $m_pktdat[0] : ($m)-> $m_dat[0])); }' unless defined(&M_START); eval 'sub M_SIZE { my($m) = @_; eval q(((($m)-> &m_flags & &M_EXT) ? ($m)-> ($m_ext->{ext_size}) : (($m)-> &m_flags & &M_PKTHDR) ? &MHLEN : &MLEN)); }' unless defined(&M_SIZE); if(defined(&INVARIANTS)) { } eval 'sub M_ALIGN { my($m, $len) = @_; eval q( &m_align($m, $len)); }' unless defined(&M_ALIGN); eval 'sub MH_ALIGN { my($m, $len) = @_; eval q( &m_align($m, $len)); }' unless defined(&MH_ALIGN); eval 'sub MEXT_ALIGN { my($m, $len) = @_; eval q( &m_align($m, $len)); }' unless defined(&MEXT_ALIGN); eval 'sub M_LEADINGSPACE { my($m) = @_; eval q(( &M_WRITABLE($m) ? (($m)-> &m_data - &M_START($m)) : 0)); }' unless defined(&M_LEADINGSPACE); eval 'sub M_TRAILINGSPACE { my($m) = @_; eval q(( &M_WRITABLE($m) ? (( &M_START($m) + &M_SIZE($m)) - (($m)-> &m_data + ($m)-> &m_len)) : 0)); }' unless defined(&M_TRAILINGSPACE); eval 'sub M_PREPEND { my($m, $plen, $how) = @_; eval q( &do { \'struct mbuf\' ** &_mmp = ($m); \'struct mbuf\' * &_mm = * &_mmp; \'int\' &_mplen = ($plen); \'int\' &__mhow = ($how); &MBUF_CHECKSLEEP($how); &if ( &M_LEADINGSPACE( &_mm) >= &_mplen) { ($_$mm->{m_data}) -= &_mplen; ($_$mm->{m_len}) += &_mplen; } &else &_mm = &m_prepend( &_mm, &_mplen, &__mhow); &if ( &_mm != &NULL && ($_$mm->{m_flags}) & &M_PKTHDR) ($_$mm->{m_pkthdr}->{len}) += &_mplen; * &_mmp = &_mm; } &while (0)); }' unless defined(&M_PREPEND); eval 'sub MCHTYPE { my($m, $t) = @_; eval q( &m_chtype(($m), ($t))); }' unless defined(&MCHTYPE); eval 'sub M_COPYALL () {1000000000;}' unless defined(&M_COPYALL); eval 'sub MTAG_PERSISTENT () {0x800;}' unless defined(&MTAG_PERSISTENT); eval 'sub PACKET_TAG_NONE () {0;}' unless defined(&PACKET_TAG_NONE); eval 'sub PACKET_TAG_IPSEC_IN_DONE () {1;}' unless defined(&PACKET_TAG_IPSEC_IN_DONE); eval 'sub PACKET_TAG_IPSEC_OUT_DONE () {2;}' unless defined(&PACKET_TAG_IPSEC_OUT_DONE); eval 'sub PACKET_TAG_IPSEC_IN_CRYPTO_DONE () {3;}' unless defined(&PACKET_TAG_IPSEC_IN_CRYPTO_DONE); eval 'sub PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED () {4;}' unless defined(&PACKET_TAG_IPSEC_OUT_CRYPTO_NEEDED); eval 'sub PACKET_TAG_IPSEC_IN_COULD_DO_CRYPTO () {5;}' unless defined(&PACKET_TAG_IPSEC_IN_COULD_DO_CRYPTO); eval 'sub PACKET_TAG_IPSEC_PENDING_TDB () {6;}' unless defined(&PACKET_TAG_IPSEC_PENDING_TDB); eval 'sub PACKET_TAG_BRIDGE () {7;}' unless defined(&PACKET_TAG_BRIDGE); eval 'sub PACKET_TAG_GIF () {8;}' unless defined(&PACKET_TAG_GIF); eval 'sub PACKET_TAG_GRE () {9;}' unless defined(&PACKET_TAG_GRE); eval 'sub PACKET_TAG_IN_PACKET_CHECKSUM () {10;}' unless defined(&PACKET_TAG_IN_PACKET_CHECKSUM); eval 'sub PACKET_TAG_ENCAP () {11;}' unless defined(&PACKET_TAG_ENCAP); eval 'sub PACKET_TAG_IPSEC_SOCKET () {12;}' unless defined(&PACKET_TAG_IPSEC_SOCKET); eval 'sub PACKET_TAG_IPSEC_HISTORY () {13;}' unless defined(&PACKET_TAG_IPSEC_HISTORY); eval 'sub PACKET_TAG_IPV6_INPUT () {14;}' unless defined(&PACKET_TAG_IPV6_INPUT); eval 'sub PACKET_TAG_DUMMYNET () {15;}' unless defined(&PACKET_TAG_DUMMYNET); eval 'sub PACKET_TAG_DIVERT () {17;}' unless defined(&PACKET_TAG_DIVERT); eval 'sub PACKET_TAG_IPFORWARD () {18;}' unless defined(&PACKET_TAG_IPFORWARD); eval 'sub PACKET_TAG_MACLABEL () {(19| &MTAG_PERSISTENT);}' unless defined(&PACKET_TAG_MACLABEL); eval 'sub PACKET_TAG_PF () {(21| &MTAG_PERSISTENT);}' unless defined(&PACKET_TAG_PF); eval 'sub PACKET_TAG_RTSOCKFAM () {25;}' unless defined(&PACKET_TAG_RTSOCKFAM); eval 'sub PACKET_TAG_IPOPTIONS () {27;}' unless defined(&PACKET_TAG_IPOPTIONS); eval 'sub PACKET_TAG_CARP () {28;}' unless defined(&PACKET_TAG_CARP); eval 'sub PACKET_TAG_IPSEC_NAT_T_PORTS () {29;}' unless defined(&PACKET_TAG_IPSEC_NAT_T_PORTS); eval 'sub PACKET_TAG_ND_OUTGOING () {30;}' unless defined(&PACKET_TAG_ND_OUTGOING); eval 'sub MTAG_ABI_COMPAT () {0;}' unless defined(&MTAG_ABI_COMPAT); eval 'sub m_tag_get { my($type,$length,$wait) = @_; eval q({ ( &m_tag_alloc( &MTAG_ABI_COMPAT, $type, $length, $wait)); }); }' unless defined(&m_tag_get); eval 'sub m_tag_find { my($m,$type,$start) = @_; eval q({ ( &SLIST_EMPTY( ($m->{m_pkthdr}->{tags})) ? &NULL : &m_tag_locate($m, &MTAG_ABI_COMPAT, $type, $start)); }); }' unless defined(&m_tag_find); eval 'sub m_snd_tag_ref { my($mst) = @_; eval q({ &refcount_acquire( ($mst->{refcount})); ($mst); }); }' unless defined(&m_snd_tag_ref); eval 'sub m_snd_tag_rele { my($mst) = @_; eval q({ &if ( &refcount_release( ($mst->{refcount}))) &m_snd_tag_destroy($mst); }); }' unless defined(&m_snd_tag_rele); eval 'sub m_free { my($m) = @_; eval q({ \'struct mbuf\' * &n = ($m->{m_next}); &MBUF_PROBE1( &m__free, $m); &if (( ($m->{m_flags}) & ( &M_PKTHDR| &M_NOFREE)) == ( &M_PKTHDR| &M_NOFREE)) &m_tag_delete_chain($m, &NULL); &if ( ($m->{m_flags}) & &M_PKTHDR && ($m->{m_pkthdr}->{csum_flags}) & &CSUM_SND_TAG) &m_snd_tag_rele( ($m->{m_pkthdr}->{snd_tag})); &if ( ($m->{m_flags}) & &M_EXTPG) &mb_free_extpg($m); &else &if ( ($m->{m_flags}) & &M_EXT) &mb_free_ext($m); &else &if (( ($m->{m_flags}) & &M_NOFREE) == 0) &uma_zfree( &zone_mbuf, $m); ( &n); }); }' unless defined(&m_free); eval 'sub rt_m_getfib { my($m) = @_; eval q({ &KASSERT( ($m->{m_flags}) & &M_PKTHDR , (\\"Attempt to get FIB from non header mbuf.\\")); ( ($m->{m_pkthdr}->{fibnum})); }); }' unless defined(&rt_m_getfib); eval 'sub M_GETFIB { my($_m) = @_; eval q( &rt_m_getfib($_m)); }' unless defined(&M_GETFIB); eval 'sub M_SETFIB { my($_m, $_fib) = @_; eval q( &do { &KASSERT(($_m)-> &m_flags & &M_PKTHDR, (\\"Attempt to set FIB on non header mbuf.\\")); (($_m)-> ($m_pkthdr->{fibnum})) = ($_fib); } &while (0)); }' unless defined(&M_SETFIB); eval 'sub MBUF_HASHFLAG_L2 () {(1<< 2);}' unless defined(&MBUF_HASHFLAG_L2); eval 'sub MBUF_HASHFLAG_L3 () {(1<< 3);}' unless defined(&MBUF_HASHFLAG_L3); eval 'sub MBUF_HASHFLAG_L4 () {(1<< 4);}' unless defined(&MBUF_HASHFLAG_L4); if(defined(&MBUF_PROFILING)) { eval 'sub M_PROFILE { my($m) = @_; eval q( &m_profile($m)); }' unless defined(&M_PROFILE); } else { eval 'sub M_PROFILE { my($m) = @_; eval q(); }' unless defined(&M_PROFILE); } eval 'sub mbufq_init { my($mq,$maxlen) = @_; eval q({ &STAILQ_INIT( ($mq->{mq_head})); ($mq->{mq_maxlen}) = $maxlen; ($mq->{mq_len}) = 0; }); }' unless defined(&mbufq_init); eval 'sub mbufq_flush { my($mq) = @_; eval q({ \'struct mbuf\' * &m; &m = &STAILQ_FIRST( ($mq->{mq_head})); &STAILQ_INIT( ($mq->{mq_head})); ($mq->{mq_len}) = 0; ( &m); }); }' unless defined(&mbufq_flush); eval 'sub mbufq_drain { my($mq) = @_; eval q({ \'struct mbuf\' * &m, * &n; &n = &mbufq_flush($mq); &while (( &m = &n) != &NULL) { &n = &STAILQ_NEXT( &m, &m_stailqpkt); &m_freem( &m); } }); }' unless defined(&mbufq_drain); eval 'sub mbufq_first { my($mq) = @_; eval q({ ( &STAILQ_FIRST( ($mq->{mq_head}))); }); }' unless defined(&mbufq_first); eval 'sub mbufq_last { my($mq) = @_; eval q({ ( &STAILQ_LAST( ($mq->{mq_head}), &mbuf, &m_stailqpkt)); }); }' unless defined(&mbufq_last); eval 'sub mbufq_full { my($mq) = @_; eval q({ ( ($mq->{mq_maxlen}) > 0 && ($mq->{mq_len}) >= ($mq->{mq_maxlen})); }); }' unless defined(&mbufq_full); eval 'sub mbufq_len { my($mq) = @_; eval q({ ( ($mq->{mq_len})); }); }' unless defined(&mbufq_len); eval 'sub mbufq_enqueue { my($mq,$m) = @_; eval q({ &if ( &mbufq_full($mq)) ( &ENOBUFS); &STAILQ_INSERT_TAIL( ($mq->{mq_head}), $m, &m_stailqpkt); ($mq->{mq_len})++; (0); }); }' unless defined(&mbufq_enqueue); eval 'sub mbufq_dequeue { my($mq) = @_; eval q({ \'struct mbuf\' * &m; &m = &STAILQ_FIRST( ($mq->{mq_head})); &if ( &m) { &STAILQ_REMOVE_HEAD( ($mq->{mq_head}), &m_stailqpkt); ($m->{m_nextpkt}) = &NULL; ($mq->{mq_len})--; } ( &m); }); }' unless defined(&mbufq_dequeue); eval 'sub mbufq_prepend { my($mq,$m) = @_; eval q({ &STAILQ_INSERT_HEAD( ($mq->{mq_head}), $m, &m_stailqpkt); ($mq->{mq_len})++; }); }' unless defined(&mbufq_prepend); if(defined(&_SYS_TIMESPEC_H_)) { eval 'sub mbuf_tstmp2timespec { my($m,$ts) = @_; eval q({ &KASSERT(( ($m->{m_flags}) & &M_PKTHDR) != 0, (\\"mbuf %p no M_PKTHDR\\", $m)); &KASSERT(( ($m->{m_flags}) & ( &M_TSTMP| &M_TSTMP_LRO)) != 0, (\\"mbuf %p no M_TSTMP or M_TSTMP_LRO\\", $m)); ($ts->{tv_sec}) = ($m->{m_pkthdr}->{rcv_tstmp}) / 1000000000; ($ts->{tv_nsec}) = ($m->{m_pkthdr}->{rcv_tstmp}) % 1000000000; }); }' unless defined(&mbuf_tstmp2timespec); } if(defined(&DEBUGNET)) { } eval 'sub mbuf_has_tls_session { my($m) = @_; eval q({ &if ( ($m->{m_flags}) & &M_EXTPG) { &if ( ($m->{m_epg_tls}) != &NULL) { ( &true); } } ( &false); }); }' unless defined(&mbuf_has_tls_session); } } 1;
Upload File
Create Folder