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: vnode.ph
require '_h2ph_pre.ph'; no warnings qw(redefine misc); unless(defined(&_SYS_VNODE_H_)) { eval 'sub _SYS_VNODE_H_ () {1;}' unless defined(&_SYS_VNODE_H_); require 'sys/bufobj.ph'; require 'sys/queue.ph'; require 'sys/lock.ph'; require 'sys/lockmgr.ph'; require 'sys/mutex.ph'; require 'sys/rangelock.ph'; require 'sys/selinfo.ph'; require 'sys/uio.ph'; require 'sys/acl.ph'; require 'sys/ktr.ph'; require 'sys/_seqc.ph'; eval("sub VNON () { 0; }") unless defined(&VNON); eval("sub VREG () { 1; }") unless defined(&VREG); eval("sub VDIR () { 2; }") unless defined(&VDIR); eval("sub VBLK () { 3; }") unless defined(&VBLK); eval("sub VCHR () { 4; }") unless defined(&VCHR); eval("sub VLNK () { 5; }") unless defined(&VLNK); eval("sub VSOCK () { 6; }") unless defined(&VSOCK); eval("sub VFIFO () { 7; }") unless defined(&VFIFO); eval("sub VBAD () { 8; }") unless defined(&VBAD); eval("sub VMARKER () { 9; }") unless defined(&VMARKER); eval("sub VGET_NONE () { 0; }") unless defined(&VGET_NONE); eval("sub VGET_HOLDCNT () { 1; }") unless defined(&VGET_HOLDCNT); eval("sub VGET_USECOUNT () { 2; }") unless defined(&VGET_USECOUNT); if(defined(&_KERNEL) || defined(&_KVM_VNODE)) { } eval 'sub bo2vnode { my($bo) = @_; eval q( &__containerof(($bo), \'struct vnode\', &v_bufobj)); }' unless defined(&bo2vnode); eval 'sub v_object () { ($v_bufobj->{bo_object});}' unless defined(&v_object); eval 'sub xv_socket () { ($xv_un->{xvu_socket});}' unless defined(&xv_socket); eval 'sub xv_fifo () { ($xv_un->{xvu_fifo});}' unless defined(&xv_fifo); eval 'sub xv_rdev () { ($xv_un->{xvu_rdev});}' unless defined(&xv_rdev); eval 'sub xv_dev () { ($xv_un->{xv_uns}->{xvu_dev});}' unless defined(&xv_dev); eval 'sub xv_ino () { ($xv_un->{xv_uns}->{xvu_ino});}' unless defined(&xv_ino); eval 'sub VN_KNLIST_EMPTY { my($vp) = @_; eval q((($vp)-> &v_pollinfo == &NULL || &KNLIST_EMPTY(($vp)-> ($v_pollinfo->{vpi_selinfo}->{si_note})))); }' unless defined(&VN_KNLIST_EMPTY); eval 'sub VN_KNOTE { my($vp, $b, $a) = @_; eval q( &do { &if (! &VN_KNLIST_EMPTY($vp)) &KNOTE( ($vp->{v_pollinfo}->{vpi_selinfo}->{si_note}), ($b), ($a) | &KNF_NOKQLOCK); } &while (0)); }' unless defined(&VN_KNOTE); eval 'sub VN_KNOTE_LOCKED { my($vp, $b) = @_; eval q( &VN_KNOTE($vp, $b, &KNF_LISTLOCKED)); }' unless defined(&VN_KNOTE_LOCKED); eval 'sub VN_KNOTE_UNLOCKED { my($vp, $b) = @_; eval q( &VN_KNOTE($vp, $b, 0)); }' unless defined(&VN_KNOTE_UNLOCKED); eval 'sub VHOLD_NO_SMR () {(1<<29);}' unless defined(&VHOLD_NO_SMR); eval 'sub VHOLD_ALL_FLAGS () {( &VHOLD_NO_SMR);}' unless defined(&VHOLD_ALL_FLAGS); eval 'sub VIRF_DOOMED () {0x1;}' unless defined(&VIRF_DOOMED); eval 'sub VIRF_PGREAD () {0x2;}' unless defined(&VIRF_PGREAD); eval 'sub VIRF_MOUNTPOINT () {0x4;}' unless defined(&VIRF_MOUNTPOINT); eval 'sub VI_TEXT_REF () {0x1;}' unless defined(&VI_TEXT_REF); eval 'sub VI_MOUNT () {0x2;}' unless defined(&VI_MOUNT); eval 'sub VI_DOINGINACT () {0x4;}' unless defined(&VI_DOINGINACT); eval 'sub VI_OWEINACT () {0x8;}' unless defined(&VI_OWEINACT); eval 'sub VI_DEFINACT () {0x10;}' unless defined(&VI_DEFINACT); eval 'sub VV_ROOT () {0x1;}' unless defined(&VV_ROOT); eval 'sub VV_ISTTY () {0x2;}' unless defined(&VV_ISTTY); eval 'sub VV_NOSYNC () {0x4;}' unless defined(&VV_NOSYNC); eval 'sub VV_ETERNALDEV () {0x8;}' unless defined(&VV_ETERNALDEV); eval 'sub VV_CACHEDLABEL () {0x10;}' unless defined(&VV_CACHEDLABEL); eval 'sub VV_VMSIZEVNLOCK () {0x20;}' unless defined(&VV_VMSIZEVNLOCK); eval 'sub VV_COPYONWRITE () {0x40;}' unless defined(&VV_COPYONWRITE); eval 'sub VV_SYSTEM () {0x80;}' unless defined(&VV_SYSTEM); eval 'sub VV_PROCDEP () {0x100;}' unless defined(&VV_PROCDEP); eval 'sub VV_NOKNOTE () {0x200;}' unless defined(&VV_NOKNOTE); eval 'sub VV_DELETED () {0x400;}' unless defined(&VV_DELETED); eval 'sub VV_MD () {0x800;}' unless defined(&VV_MD); eval 'sub VV_FORCEINSMQ () {0x1000;}' unless defined(&VV_FORCEINSMQ); eval 'sub VV_READLINK () {0x2000;}' unless defined(&VV_READLINK); eval 'sub VV_UNREF () {0x4000;}' unless defined(&VV_UNREF); eval 'sub VMP_LAZYLIST () {0x1;}' unless defined(&VMP_LAZYLIST); eval 'sub VA_UTIMES_NULL () {0x1;}' unless defined(&VA_UTIMES_NULL); eval 'sub VA_EXCLUSIVE () {0x2;}' unless defined(&VA_EXCLUSIVE); eval 'sub VA_SYNC () {0x4;}' unless defined(&VA_SYNC); eval 'sub IO_UNIT () {0x1;}' unless defined(&IO_UNIT); eval 'sub IO_APPEND () {0x2;}' unless defined(&IO_APPEND); eval 'sub IO_NDELAY () {0x4;}' unless defined(&IO_NDELAY); eval 'sub IO_NODELOCKED () {0x8;}' unless defined(&IO_NODELOCKED); eval 'sub IO_ASYNC () {0x10;}' unless defined(&IO_ASYNC); eval 'sub IO_VMIO () {0x20;}' unless defined(&IO_VMIO); eval 'sub IO_INVAL () {0x40;}' unless defined(&IO_INVAL); eval 'sub IO_SYNC () {0x80;}' unless defined(&IO_SYNC); eval 'sub IO_DIRECT () {0x100;}' unless defined(&IO_DIRECT); eval 'sub IO_NOREUSE () {0x200;}' unless defined(&IO_NOREUSE); eval 'sub IO_EXT () {0x400;}' unless defined(&IO_EXT); eval 'sub IO_NORMAL () {0x800;}' unless defined(&IO_NORMAL); eval 'sub IO_NOMACCHECK () {0x1000;}' unless defined(&IO_NOMACCHECK); eval 'sub IO_BUFLOCKED () {0x2000;}' unless defined(&IO_BUFLOCKED); eval 'sub IO_RANGELOCKED () {0x4000;}' unless defined(&IO_RANGELOCKED); eval 'sub IO_DATASYNC () {0x8000;}' unless defined(&IO_DATASYNC); eval 'sub IO_SEQMAX () {0x7f;}' unless defined(&IO_SEQMAX); eval 'sub IO_SEQSHIFT () {16;}' unless defined(&IO_SEQSHIFT); eval 'sub VEXEC () {000000000100;}' unless defined(&VEXEC); eval 'sub VWRITE () {000000000200;}' unless defined(&VWRITE); eval 'sub VREAD () {000000000400;}' unless defined(&VREAD); eval 'sub VADMIN () {000000010000;}' unless defined(&VADMIN); eval 'sub VAPPEND () {000000040000;}' unless defined(&VAPPEND); eval 'sub VEXPLICIT_DENY () {000000100000;}' unless defined(&VEXPLICIT_DENY); eval 'sub VREAD_NAMED_ATTRS () {000000200000;}' unless defined(&VREAD_NAMED_ATTRS); eval 'sub VWRITE_NAMED_ATTRS () {000000400000;}' unless defined(&VWRITE_NAMED_ATTRS); eval 'sub VDELETE_CHILD () {000001000000;}' unless defined(&VDELETE_CHILD); eval 'sub VREAD_ATTRIBUTES () {000002000000;}' unless defined(&VREAD_ATTRIBUTES); eval 'sub VWRITE_ATTRIBUTES () {000004000000;}' unless defined(&VWRITE_ATTRIBUTES); eval 'sub VDELETE () {000010000000;}' unless defined(&VDELETE); eval 'sub VREAD_ACL () {000020000000;}' unless defined(&VREAD_ACL); eval 'sub VWRITE_ACL () {000040000000;}' unless defined(&VWRITE_ACL); eval 'sub VWRITE_OWNER () {000100000000;}' unless defined(&VWRITE_OWNER); eval 'sub VSYNCHRONIZE () {000200000000;}' unless defined(&VSYNCHRONIZE); eval 'sub VCREAT () {000400000000;}' unless defined(&VCREAT); eval 'sub VVERIFY () {001000000000;}' unless defined(&VVERIFY); eval 'sub VADMIN_PERMS () {( &VADMIN | &VWRITE_ATTRIBUTES | &VWRITE_ACL | &VWRITE_OWNER);}' unless defined(&VADMIN_PERMS); eval 'sub VSTAT_PERMS () {( &VREAD_ATTRIBUTES | &VREAD_ACL);}' unless defined(&VSTAT_PERMS); eval 'sub VMODIFY_PERMS () {( &VWRITE | &VAPPEND | &VADMIN_PERMS | &VDELETE_CHILD | &VDELETE);}' unless defined(&VMODIFY_PERMS); eval 'sub VNOVAL () {(-1);}' unless defined(&VNOVAL); eval 'sub VLKTIMEOUT () {( &hz / 20+ 1);}' unless defined(&VLKTIMEOUT); if(defined(&_KERNEL)) { if(defined(&MALLOC_DECLARE)) { } eval 'sub IFTOVT { my($mode) = @_; eval q(( $iftovt_tab[(($mode) & &S_IFMT) >> 12])); }' unless defined(&IFTOVT); eval 'sub VTTOIF { my($indx) = @_; eval q(( $vttoif_tab[($indx)])); }' unless defined(&VTTOIF); eval 'sub MAKEIMODE { my($indx, $mode) = @_; eval q(( &VTTOIF($indx) | ($mode))); }' unless defined(&MAKEIMODE); eval 'sub SKIPSYSTEM () {0x1;}' unless defined(&SKIPSYSTEM); eval 'sub FORCECLOSE () {0x2;}' unless defined(&FORCECLOSE); eval 'sub WRITECLOSE () {0x4;}' unless defined(&WRITECLOSE); eval 'sub EARLYFLUSH () {0x8;}' unless defined(&EARLYFLUSH); eval 'sub V_SAVE () {0x1;}' unless defined(&V_SAVE); eval 'sub V_ALT () {0x2;}' unless defined(&V_ALT); eval 'sub V_NORMAL () {0x4;}' unless defined(&V_NORMAL); eval 'sub V_CLEANONLY () {0x8;}' unless defined(&V_CLEANONLY); eval 'sub V_VMIO () {0x10;}' unless defined(&V_VMIO); eval 'sub V_ALLOWCLEAN () {0x20;}' unless defined(&V_ALLOWCLEAN); eval 'sub REVOKEALL () {0x1;}' unless defined(&REVOKEALL); eval 'sub V_WAIT () {0x1;}' unless defined(&V_WAIT); eval 'sub V_NOWAIT () {0x2;}' unless defined(&V_NOWAIT); eval 'sub V_XSLEEP () {0x4;}' unless defined(&V_XSLEEP); eval 'sub V_MNTREF () {0x10;}' unless defined(&V_MNTREF); eval 'sub VR_START_WRITE () {0x1;}' unless defined(&VR_START_WRITE); eval 'sub VR_NO_SUSPCLR () {0x2;}' unless defined(&VR_NO_SUSPCLR); eval 'sub VS_SKIP_UNMOUNT () {0x1;}' unless defined(&VS_SKIP_UNMOUNT); eval 'sub VREF { my($vp) = @_; eval q( &vref($vp)); }' unless defined(&VREF); if(defined(&DIAGNOSTIC)) { eval 'sub VATTR_NULL { my($vap) = @_; eval q( &vattr_null($vap)); }' unless defined(&VATTR_NULL); } else { eval 'sub VATTR_NULL { my($vap) = @_; eval q((*($vap) = &va_null)); }' unless defined(&VATTR_NULL); } eval 'sub NULLVP () {( &NULL);}' unless defined(&NULLVP); eval 'sub VI_LOCK { my($vp) = @_; eval q( &mtx_lock(($vp)-> &v_interlock)); }' unless defined(&VI_LOCK); eval 'sub VI_LOCK_FLAGS { my($vp, $flags) = @_; eval q( &mtx_lock_flags(($vp)-> &v_interlock, ($flags))); }' unless defined(&VI_LOCK_FLAGS); eval 'sub VI_TRYLOCK { my($vp) = @_; eval q( &mtx_trylock(($vp)-> &v_interlock)); }' unless defined(&VI_TRYLOCK); eval 'sub VI_UNLOCK { my($vp) = @_; eval q( &mtx_unlock(($vp)-> &v_interlock)); }' unless defined(&VI_UNLOCK); eval 'sub VI_MTX { my($vp) = @_; eval q((($vp)-> &v_interlock)); }' unless defined(&VI_MTX); eval 'sub VN_LOCK_AREC { my($vp) = @_; eval q( &lockallowrecurse(($vp)-> &v_vnlock)); }' unless defined(&VN_LOCK_AREC); eval 'sub VN_LOCK_ASHARE { my($vp) = @_; eval q( &lockallowshare(($vp)-> &v_vnlock)); }' unless defined(&VN_LOCK_ASHARE); eval 'sub VN_LOCK_DSHARE { my($vp) = @_; eval q( &lockdisableshare(($vp)-> &v_vnlock)); }' unless defined(&VN_LOCK_DSHARE); } eval 'sub VDESC_MAX_VPS () {16;}' unless defined(&VDESC_MAX_VPS); eval 'sub VDESC_VP0_WILLRELE () {0x1;}' unless defined(&VDESC_VP0_WILLRELE); eval 'sub VDESC_VP1_WILLRELE () {0x2;}' unless defined(&VDESC_VP1_WILLRELE); eval 'sub VDESC_VP2_WILLRELE () {0x4;}' unless defined(&VDESC_VP2_WILLRELE); eval 'sub VDESC_VP3_WILLRELE () {0x8;}' unless defined(&VDESC_VP3_WILLRELE); eval 'sub VDESC_NO_OFFSET () {-1;}' unless defined(&VDESC_NO_OFFSET); if(defined(&_KERNEL)) { eval 'sub VOPARG_OFFSETOF { my($s_type, $field) = @_; eval q( &__offsetof($s_type, $field)); }' unless defined(&VOPARG_OFFSETOF); eval 'sub VOPARG_OFFSETTO { my($s_type, $s_offset, $struct_p) = @_; eval q((($s_type)((($struct_p)) + ($s_offset)))); }' unless defined(&VOPARG_OFFSETTO); if(defined(&DEBUG_VFS_LOCKS)) { eval 'sub ASSERT_VI_LOCKED { my($vp, $str) = @_; eval q( &assert_vi_locked(($vp), ($str))); }' unless defined(&ASSERT_VI_LOCKED); eval 'sub ASSERT_VI_UNLOCKED { my($vp, $str) = @_; eval q( &assert_vi_unlocked(($vp), ($str))); }' unless defined(&ASSERT_VI_UNLOCKED); eval 'sub ASSERT_VOP_ELOCKED { my($vp, $str) = @_; eval q( &assert_vop_elocked(($vp), ($str))); }' unless defined(&ASSERT_VOP_ELOCKED); eval 'sub ASSERT_VOP_LOCKED { my($vp, $str) = @_; eval q( &assert_vop_locked(($vp), ($str))); }' unless defined(&ASSERT_VOP_LOCKED); eval 'sub ASSERT_VOP_UNLOCKED { my($vp, $str) = @_; eval q( &assert_vop_unlocked(($vp), ($str))); }' unless defined(&ASSERT_VOP_UNLOCKED); eval 'sub ASSERT_VOP_IN_SEQC { my($vp) = @_; eval q( &do { \'struct vnode\' * &_vp = ($vp); &VNPASS( &seqc_in_modify( ($_$vp->{v_seqc})), &_vp); } &while (0)); }' unless defined(&ASSERT_VOP_IN_SEQC); eval 'sub ASSERT_VOP_NOT_IN_SEQC { my($vp) = @_; eval q( &do { \'struct vnode\' * &_vp = ($vp); &VNPASS(! &seqc_in_modify( ($_$vp->{v_seqc})), &_vp); } &while (0)); }' unless defined(&ASSERT_VOP_NOT_IN_SEQC); } else { eval 'sub ASSERT_VI_LOCKED { my($vp, $str) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VI_LOCKED); eval 'sub ASSERT_VI_UNLOCKED { my($vp, $str) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VI_UNLOCKED); eval 'sub ASSERT_VOP_ELOCKED { my($vp, $str) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VOP_ELOCKED); eval 'sub ASSERT_VOP_LOCKED { my($vp, $str) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VOP_LOCKED); eval 'sub ASSERT_VOP_UNLOCKED { my($vp, $str) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VOP_UNLOCKED); eval 'sub ASSERT_VOP_IN_SEQC { my($vp) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VOP_IN_SEQC); eval 'sub ASSERT_VOP_NOT_IN_SEQC { my($vp) = @_; eval q((( &void)0)); }' unless defined(&ASSERT_VOP_NOT_IN_SEQC); } eval 'sub VCALL { my($c) = @_; eval q((($c)-> ($a_desc->{vdesc_call})($c))); }' unless defined(&VCALL); eval 'sub DOINGASYNC { my($vp) = @_; eval q(((($vp)-> ($v_mount->{mnt_kern_flag}) & &MNTK_ASYNC) != 0 && (( ($curthread->{td_pflags}) & &TDP_SYNCIO) == 0))); }' unless defined(&DOINGASYNC); eval 'sub vn_canvmio { my($vp) = @_; eval q({ &if ($vp && ( ($vp->{v_type}) == &VREG || ( &vmiodirenable && ($vp->{v_type}) == &VDIR))) ( &TRUE); ( &FALSE); }); }' unless defined(&vn_canvmio); require 'sys/vnode_if.ph'; eval 'sub VN_OPEN_NOAUDIT () {0x1;}' unless defined(&VN_OPEN_NOAUDIT); eval 'sub VN_OPEN_NOCAPCHECK () {0x2;}' unless defined(&VN_OPEN_NOCAPCHECK); eval 'sub VN_OPEN_NAMECACHE () {0x4;}' unless defined(&VN_OPEN_NAMECACHE); eval 'sub VN_OPEN_INVFS () {0x8;}' unless defined(&VN_OPEN_INVFS); eval 'sub cache_enter { my($dvp, $vp, $cnp) = @_; eval q( &cache_enter_time($dvp, $vp, $cnp, &NULL, &NULL)); }' unless defined(&cache_enter); if(defined(&INVARIANTS)) { } else { eval 'sub cache_validate { my($dvp,$vp,$cnp) = @_; eval q({ }); }' unless defined(&cache_validate); } eval 'sub vn_lock { my($vp, $flags) = @_; eval q( &_vn_lock($vp, $flags, &__FILE__, &__LINE__)); }' unless defined(&vn_lock); eval 'sub vn_seqc_read_any { my($vp) = @_; eval q( &seqc_read_any(($vp)-> &v_seqc)); }' unless defined(&vn_seqc_read_any); eval 'sub vn_seqc_read_notmodify { my($vp) = @_; eval q( &seqc_read_notmodify(($vp)-> &v_seqc)); }' unless defined(&vn_seqc_read_notmodify); eval 'sub vn_seqc_consistent { my($vp, $seq) = @_; eval q( &seqc_consistent(($vp)-> &v_seqc, $seq)); }' unless defined(&vn_seqc_consistent); eval 'sub vn_rangelock_unlock { my($vp, $cookie) = @_; eval q( &rangelock_unlock(($vp)-> &v_rl, ($cookie), &VI_MTX($vp))); }' unless defined(&vn_rangelock_unlock); eval 'sub vn_rangelock_unlock_range { my($vp, $cookie, $start, $end) = @_; eval q( &rangelock_unlock_range(($vp)-> &v_rl, ($cookie), ($start), ($end), &VI_MTX($vp))); }' unless defined(&vn_rangelock_unlock_range); eval 'sub vn_rangelock_rlock { my($vp, $start, $end) = @_; eval q( &rangelock_rlock(($vp)-> &v_rl, ($start), ($end), &VI_MTX($vp))); }' unless defined(&vn_rangelock_rlock); eval 'sub vn_rangelock_tryrlock { my($vp, $start, $end) = @_; eval q( &rangelock_tryrlock(($vp)-> &v_rl, ($start), ($end), &VI_MTX($vp))); }' unless defined(&vn_rangelock_tryrlock); eval 'sub vn_rangelock_wlock { my($vp, $start, $end) = @_; eval q( &rangelock_wlock(($vp)-> &v_rl, ($start), ($end), &VI_MTX($vp))); }' unless defined(&vn_rangelock_wlock); eval 'sub vn_rangelock_trywlock { my($vp, $start, $end) = @_; eval q( &rangelock_trywlock(($vp)-> &v_rl, ($start), ($end), &VI_MTX($vp))); }' unless defined(&vn_rangelock_trywlock); eval 'sub vn_irflag_read { my($vp) = @_; eval q( &atomic_load_short(($vp)-> &v_irflag)); }' unless defined(&vn_irflag_read); if(defined(&DEBUG_VFS_LOCKS)) { } else { eval 'sub vop_fplookup_vexec_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_fplookup_vexec_debugpre); eval 'sub vop_fplookup_vexec_debugpost { my($x, $y) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_fplookup_vexec_debugpost); eval 'sub vop_fplookup_symlink_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_fplookup_symlink_debugpre); eval 'sub vop_fplookup_symlink_debugpost { my($x, $y) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_fplookup_symlink_debugpost); eval 'sub vop_strategy_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_strategy_debugpre); eval 'sub vop_lock_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_lock_debugpre); eval 'sub vop_lock_debugpost { my($x, $y) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_lock_debugpost); eval 'sub vop_unlock_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_unlock_debugpre); eval 'sub vop_need_inactive_debugpre { my($x) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_need_inactive_debugpre); eval 'sub vop_need_inactive_debugpost { my($x, $y) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_need_inactive_debugpost); eval 'sub vop_mkdir_debugpost { my($x, $y) = @_; eval q( &do { } &while (0)); }' unless defined(&vop_mkdir_debugpost); } eval 'sub vop_stat_helper_pre { my($ap) = @_; eval q(({ \'int\' &_error; &AUDIT_ARG_VNODE1( ($ap->{a_vp})); &_error = &mac_vnode_check_stat( ($ap->{a_active_cred}), ($ap->{a_file_cred}), ($ap->{a_vp})); &if ( &__predict_true( &_error == 0)) &bzero( ($ap->{a_sb}), $sizeof{ ($ap->{a_sb})}); &_error; })); }' unless defined(&vop_stat_helper_pre); eval 'sub vop_stat_helper_post { my($ap, $error) = @_; eval q(({ \'int\' &_error = ($error); &if ( &priv_check_cred_vfs_generation( ($ap->{a_td}->{td_ucred}))) ($ap->{a_sb}->{st_gen}) = 0; &_error; })); }' unless defined(&vop_stat_helper_post); eval 'sub VOP_WRITE_PRE { my($ap) = @_; eval q(\'struct vattr\' &va; \'int\' &error; &off_t &osize, &ooffset, &noffset; &osize = &ooffset = &noffset = 0; &if (! &VN_KNLIST_EMPTY(($ap)-> &a_vp)) { &error = &VOP_GETATTR(($ap)-> &a_vp, &va, ($ap)-> &a_cred); &if ( &error) &return ( &error); &ooffset = ($ap)-> ($a_uio->{uio_offset}); &osize = ( &off_t) ($va->{va_size}); }); }' unless defined(&VOP_WRITE_PRE); eval 'sub VOP_WRITE_POST { my($ap, $ret) = @_; eval q( &noffset = ($ap)-> ($a_uio->{uio_offset}); &if ( &noffset > &ooffset && ! &VN_KNLIST_EMPTY(($ap)-> &a_vp)) { &VFS_KNOTE_LOCKED(($ap)-> &a_vp, &NOTE_WRITE | ( &noffset > &osize ? &NOTE_EXTEND : 0)); }); }' unless defined(&VOP_WRITE_POST); eval 'sub VOP_LOCK { my($vp, $flags) = @_; eval q( &VOP_LOCK1($vp, $flags, &__FILE__, &__LINE__)); }' unless defined(&VOP_LOCK); if(defined(&INVARIANTS)) { eval 'sub VOP_ADD_WRITECOUNT_CHECKED { my($vp, $cnt) = @_; eval q( &do { \'int\' &error_; &error_ = &VOP_ADD_WRITECOUNT(($vp), ($cnt)); &VNASSERT( &error_ == 0, ($vp), (\\"VOP_ADD_WRITECOUNT returned %d\\", &error_)); } &while (0)); }' unless defined(&VOP_ADD_WRITECOUNT_CHECKED); eval 'sub VOP_SET_TEXT_CHECKED { my($vp) = @_; eval q( &do { \'int\' &error_; &error_ = &VOP_SET_TEXT(($vp)); &VNASSERT( &error_ == 0, ($vp), (\\"VOP_SET_TEXT returned %d\\", &error_)); } &while (0)); }' unless defined(&VOP_SET_TEXT_CHECKED); eval 'sub VOP_UNSET_TEXT_CHECKED { my($vp) = @_; eval q( &do { \'int\' &error_; &error_ = &VOP_UNSET_TEXT(($vp)); &VNASSERT( &error_ == 0, ($vp), (\\"VOP_UNSET_TEXT returned %d\\", &error_)); } &while (0)); }' unless defined(&VOP_UNSET_TEXT_CHECKED); } else { eval 'sub VOP_ADD_WRITECOUNT_CHECKED { my($vp, $cnt) = @_; eval q( &VOP_ADD_WRITECOUNT(($vp), ($cnt))); }' unless defined(&VOP_ADD_WRITECOUNT_CHECKED); eval 'sub VOP_SET_TEXT_CHECKED { my($vp) = @_; eval q( &VOP_SET_TEXT(($vp))); }' unless defined(&VOP_SET_TEXT_CHECKED); eval 'sub VOP_UNSET_TEXT_CHECKED { my($vp) = @_; eval q( &VOP_UNSET_TEXT(($vp))); }' unless defined(&VOP_UNSET_TEXT_CHECKED); } eval 'sub VN_IS_DOOMED { my($vp) = @_; eval q( &__predict_false(( &vn_irflag_read($vp) & &VIRF_DOOMED) != 0)); }' unless defined(&VN_IS_DOOMED); eval 'sub vrefcnt { my($vp) = @_; eval q({ ( ($vp->{v_usecount})); }); }' unless defined(&vrefcnt); eval 'sub vholdl { my($vp) = @_; eval q( &do { &ASSERT_VI_LOCKED($vp, &__func__); &vhold($vp); } &while (0)); }' unless defined(&vholdl); eval 'sub vrefl { my($vp) = @_; eval q( &do { &ASSERT_VI_LOCKED($vp, &__func__); &vref($vp); } &while (0)); }' unless defined(&vrefl); eval 'sub VOP_PANIC () {(( &void*)( &uintptr_t) &vop_panic);}' unless defined(&VOP_PANIC); eval 'sub VOP_NULL () {(( &void*)( &uintptr_t) &vop_null);}' unless defined(&VOP_NULL); eval 'sub VOP_EBADF () {(( &void*)( &uintptr_t) &vop_ebadf);}' unless defined(&VOP_EBADF); eval 'sub VOP_ENOTTY () {(( &void*)( &uintptr_t) &vop_enotty);}' unless defined(&VOP_ENOTTY); eval 'sub VOP_EINVAL () {(( &void*)( &uintptr_t) &vop_einval);}' unless defined(&VOP_EINVAL); eval 'sub VOP_ENOENT () {(( &void*)( &uintptr_t) &vop_enoent);}' unless defined(&VOP_ENOENT); eval 'sub VOP_EOPNOTSUPP () {(( &void*)( &uintptr_t) &vop_eopnotsupp);}' unless defined(&VOP_EOPNOTSUPP); eval 'sub VOP_EAGAIN () {(( &void*)( &uintptr_t) &vop_eagain);}' unless defined(&VOP_EAGAIN); eval 'sub VOP_UNLOCK_FLAGS { my($vp, $flags) = @_; eval q(({ \'struct vnode\' * &_vp = ($vp); \'int\' &_flags = ($flags); \'int\' &_error; &if (( &_flags & ~( &LK_INTERLOCK | &LK_RELEASE)) != 0) &panic(\\"%s: unsupported flags %x\\\\n\\", &__func__, $flags); &_error = &VOP_UNLOCK( &_vp); &if ( &_flags & &LK_INTERLOCK) &VI_UNLOCK( &_vp); &_error; })); }' unless defined(&VOP_UNLOCK_FLAGS); require 'sys/kernel.ph'; eval 'sub VFS_VOP_VECTOR_REGISTER { my($vnodeops) = @_; eval q( &SYSINIT( &vfs_vector_$vnodeops &_f, &SI_SUB_VFS, &SI_ORDER_ANY, &vfs_vector_op_register, $vnodeops)); }' unless defined(&VFS_VOP_VECTOR_REGISTER); eval 'sub VFS_SMR_DECLARE () { &extern &smr_t &vfs_smr;}' unless defined(&VFS_SMR_DECLARE); eval 'sub VFS_SMR () { eval q( &vfs_smr); }' unless defined(&VFS_SMR); eval 'sub vfs_smr_enter () { eval q( &smr_enter( &VFS_SMR())); }' unless defined(&vfs_smr_enter); eval 'sub vfs_smr_exit () { eval q( &smr_exit( &VFS_SMR())); }' unless defined(&vfs_smr_exit); eval 'sub vfs_smr_entered_load { my($ptr) = @_; eval q( &smr_entered_load(($ptr), &VFS_SMR())); }' unless defined(&vfs_smr_entered_load); eval 'sub VFS_SMR_ASSERT_ENTERED () { eval q( &SMR_ASSERT_ENTERED( &VFS_SMR())); }' unless defined(&VFS_SMR_ASSERT_ENTERED); eval 'sub VFS_SMR_ASSERT_NOT_ENTERED () { eval q( &SMR_ASSERT_NOT_ENTERED( &VFS_SMR())); }' unless defined(&VFS_SMR_ASSERT_NOT_ENTERED); eval 'sub VFS_SMR_ZONE_SET { my($zone) = @_; eval q( &uma_zone_set_smr(($zone), &VFS_SMR())); }' unless defined(&VFS_SMR_ZONE_SET); eval 'sub vn_load_v_data_smr { my($vp) = @_; eval q(({ \'struct vnode\' * &_vp = ($vp); &VFS_SMR_ASSERT_ENTERED(); &atomic_load_consume_ptr(( &_vp)-> &v_data);})); }' unless defined(&vn_load_v_data_smr); } } 1;
Upload File
Create Folder