%PDF- %PDF-
Direktori : /usr/local/lib/perl5/site_perl/mach/5.32/sys/ |
Current File : //usr/local/lib/perl5/site_perl/mach/5.32/sys/systm.ph |
require '_h2ph_pre.ph'; no warnings qw(redefine misc); unless(defined(&_SYS_SYSTM_H_)) { eval 'sub _SYS_SYSTM_H_ () {1;}' unless defined(&_SYS_SYSTM_H_); require 'sys/cdefs.ph'; require 'machine/atomic.ph'; require 'machine/cpufunc.ph'; require 'sys/callout.ph'; require 'sys/queue.ph'; require 'sys/stdint.ph'; if(defined(&_KERNEL)) { eval 'sub KERNEL_PANICKED () { eval q( &__predict_false( &panicked)); }' unless defined(&KERNEL_PANICKED); eval("sub VM_GUEST_NO () { 0; }") unless defined(&VM_GUEST_NO); eval("sub VM_GUEST_VM () { 1; }") unless defined(&VM_GUEST_VM); eval("sub VM_GUEST_XEN () { 2; }") unless defined(&VM_GUEST_XEN); eval("sub VM_GUEST_HV () { 3; }") unless defined(&VM_GUEST_HV); eval("sub VM_GUEST_VMWARE () { 4; }") unless defined(&VM_GUEST_VMWARE); eval("sub VM_GUEST_KVM () { 5; }") unless defined(&VM_GUEST_KVM); eval("sub VM_GUEST_BHYVE () { 6; }") unless defined(&VM_GUEST_BHYVE); eval("sub VM_GUEST_VBOX () { 7; }") unless defined(&VM_GUEST_VBOX); eval("sub VM_GUEST_PARALLELS () { 8; }") unless defined(&VM_GUEST_PARALLELS); eval("sub VM_LAST () { 9; }") unless defined(&VM_LAST); if(defined(&INVARIANTS)) { eval 'sub VNASSERT { my($exp, $vp, $msg) = @_; eval q( &do { &if ( &__predict_false(!($exp))) { &vn_printf($vp, \\"VNASSERT failed: %s not true at %s:%d (%s)\\\\n\\", $exp, &__FILE__, &__LINE__, &__func__); &kassert_panic $msg; } } &while (0)); }' unless defined(&VNASSERT); eval 'sub VNPASS { my($exp, $vp) = @_; eval q( &do { &const \'char\' * &_exp = $exp; &VNASSERT($exp, $vp, (\\"condition %s not met at %s:%d (%s)\\", &_exp, &__FILE__, &__LINE__, &__func__)); } &while (0)); }' unless defined(&VNPASS); eval 'sub __assert_unreachable () { eval q( &panic(\\"executing segment marked as unreachable at %s:%d (%s)\\\\n\\", &__FILE__, &__LINE__, &__func__)); }' unless defined(&__assert_unreachable); } else { eval 'sub VNASSERT { my($exp, $vp, $msg) = @_; eval q( &do { } &while (0)); }' unless defined(&VNASSERT); eval 'sub VNPASS { my($exp, $vp) = @_; eval q( &do { } &while (0)); }' unless defined(&VNPASS); eval 'sub __assert_unreachable () { eval q( &__unreachable()); }' unless defined(&__assert_unreachable); } unless(defined(&CTASSERT)) { eval 'sub CTASSERT { my($x) = @_; eval q( &_Static_assert($x, \\"compile-time assertion failed\\")); }' unless defined(&CTASSERT); } } if(defined(&_STANDALONE)) { eval 'sub kassert_panic () { &printf;}' unless defined(&kassert_panic); } else { if(defined(&WITNESS) || defined(&INVARIANT_SUPPORT)) { if(defined(&KASSERT_PANIC_OPTIONAL)) { } else { eval 'sub kassert_panic () { &panic;}' unless defined(&kassert_panic); } } } if(defined(&INVARIANTS) || defined(&_STANDALONE)) { eval 'sub KASSERT { my($exp,$msg) = @_; eval q( &do { &if ( &__predict_false(!($exp))) &kassert_panic $msg; } &while (0)); }' unless defined(&KASSERT); } else { eval 'sub KASSERT { my($exp,$msg) = @_; eval q( &do { } &while (0)); }' unless defined(&KASSERT); } eval 'sub MPASS { my($ex) = @_; eval q( &MPASS4($ex, $ex, &__FILE__, &__LINE__)); }' unless defined(&MPASS); eval 'sub MPASS2 { my($ex, $what) = @_; eval q( &MPASS4($ex, $what, &__FILE__, &__LINE__)); }' unless defined(&MPASS2); eval 'sub MPASS3 { my($ex, $file, $line) = @_; eval q( &MPASS4($ex, $ex, $file, $line)); }' unless defined(&MPASS3); eval 'sub MPASS4 { my($ex, $what, $file, $line) = @_; eval q( &KASSERT(($ex), (\\"Assertion %s failed at %s:%d\\", $what, $file, $line))); }' unless defined(&MPASS4); eval 'sub __read_mostly () { &__section(".data.read_mostly");}' unless defined(&__read_mostly); eval 'sub __read_frequently () { &__section(".data.read_frequently");}' unless defined(&__read_frequently); eval 'sub __exclusive_cache_line () { &__aligned( &CACHE_LINE_SIZE) &__section(".data.exclusive_cache_line");}' unless defined(&__exclusive_cache_line); if(defined(&_KERNEL)) { require 'sys/param.ph'; require 'sys/pcpu.ph'; require 'sys/kpilite.ph'; eval 'sub ASSERT_ATOMIC_LOAD_PTR { my($var, $msg) = @_; eval q( &KASSERT($sizeof{$var} == $sizeof{ &void } && (( &uintptr_t)($var) & ($sizeof{ &void } - 1)) == 0, $msg)); }' unless defined(&ASSERT_ATOMIC_LOAD_PTR); eval 'sub CRITICAL_ASSERT { my($td) = @_; eval q( &KASSERT(($td)-> &td_critnest >= 1, (\\"Not in critical section\\"));); }' unless defined(&CRITICAL_ASSERT); eval 'sub SCHEDULER_STOPPED_TD { my($td) = @_; eval q(({ &MPASS(($td) == &curthread); &__predict_false(($td)-> &td_stopsched); })); }' unless defined(&SCHEDULER_STOPPED_TD); eval 'sub SCHEDULER_STOPPED () { eval q( &SCHEDULER_STOPPED_TD( &curthread)); }' unless defined(&SCHEDULER_STOPPED); if(defined(&__LP64__)) { eval 'sub IOSIZE_MAX () { &iosize_max();}' unless defined(&IOSIZE_MAX); eval 'sub DEVFS_IOSIZE_MAX () { &devfs_iosize_max();}' unless defined(&DEVFS_IOSIZE_MAX); } else { eval 'sub IOSIZE_MAX () { &SSIZE_MAX;}' unless defined(&IOSIZE_MAX); eval 'sub DEVFS_IOSIZE_MAX () { &SSIZE_MAX;}' unless defined(&DEVFS_IOSIZE_MAX); } eval 'sub HASH_NOWAIT () {0x1;}' unless defined(&HASH_NOWAIT); eval 'sub HASH_WAITOK () {0x2;}' unless defined(&HASH_WAITOK); if(defined(&KLD_MODULE) || defined(&KTR_CRITICAL) || !defined(&_KERNEL) || defined(&GENOFFSET)) { eval 'sub critical_enter () { eval q( &critical_enter_KBI()); }' unless defined(&critical_enter); eval 'sub critical_exit () { eval q( &critical_exit_KBI()); }' unless defined(&critical_exit); } else { eval 'sub critical_enter { my($void) = @_; eval q({ \'struct thread_lite\' * &td; &td = &curthread; ($td->{td_critnest})++; &atomic_interrupt_fence(); }); }' unless defined(&critical_enter); eval 'sub critical_exit { my($void) = @_; eval q({ \'struct thread_lite\' * &td; &td = &curthread; &KASSERT( ($td->{td_critnest}) != 0, (\\"critical_exit: td_critnest == 0\\")); &atomic_interrupt_fence(); ($td->{td_critnest})--; &atomic_interrupt_fence(); &if ( &__predict_false( ($td->{td_owepreempt}))) &critical_exit_preempt(); }); }' unless defined(&critical_exit); } if(defined(&EARLY_PRINTF)) { } eval 'sub HD_COLUMN_MASK () {0xff;}' unless defined(&HD_COLUMN_MASK); eval 'sub HD_DELIM_MASK () {0xff00;}' unless defined(&HD_DELIM_MASK); eval 'sub HD_OMIT_COUNT () {(1<< 16);}' unless defined(&HD_OMIT_COUNT); eval 'sub HD_OMIT_HEX () {(1<< 17);}' unless defined(&HD_OMIT_HEX); eval 'sub HD_OMIT_CHARS () {(1<< 18);}' unless defined(&HD_OMIT_CHARS); eval 'sub ovbcopy { my($f, $t, $l) = @_; eval q( &bcopy(($f), ($t), ($l))); }' unless defined(&ovbcopy); if(defined(&KCSAN)) { eval 'sub bcopy { my($from, $to, $len) = @_; eval q( &kcsan_memmove(($to), ($from), ($len))); }' unless defined(&bcopy); eval 'sub bzero { my($buf, $len) = @_; eval q( &kcsan_memset(($buf), 0, ($len))); }' unless defined(&bzero); eval 'sub bcmp { my($b1, $b2, $len) = @_; eval q( &kcsan_memcmp(($b1), ($b2), ($len))); }' unless defined(&bcmp); eval 'sub memset { my($buf, $c, $len) = @_; eval q( &kcsan_memset(($buf), ($c), ($len))); }' unless defined(&memset); eval 'sub memcpy { my($to, $from, $len) = @_; eval q( &kcsan_memcpy(($to), ($from), ($len))); }' unless defined(&memcpy); eval 'sub memmove { my($dest, $src, $n) = @_; eval q( &kcsan_memmove(($dest), ($src), ($n))); }' unless defined(&memmove); eval 'sub memcmp { my($b1, $b2, $len) = @_; eval q( &kcsan_memcmp(($b1), ($b2), ($len))); }' unless defined(&memcmp); } else { eval 'sub bcopy { my($from, $to, $len) = @_; eval q( &__builtin_memmove(($to), ($from), ($len))); }' unless defined(&bcopy); eval 'sub bzero { my($buf, $len) = @_; eval q( &__builtin_memset(($buf), 0, ($len))); }' unless defined(&bzero); eval 'sub bcmp { my($b1, $b2, $len) = @_; eval q( &__builtin_memcmp(($b1), ($b2), ($len))); }' unless defined(&bcmp); eval 'sub memset { my($buf, $c, $len) = @_; eval q( &__builtin_memset(($buf), ($c), ($len))); }' unless defined(&memset); eval 'sub memcpy { my($to, $from, $len) = @_; eval q( &__builtin_memcpy(($to), ($from), ($len))); }' unless defined(&memcpy); eval 'sub memmove { my($dest, $src, $n) = @_; eval q( &__builtin_memmove(($dest), ($src), ($n))); }' unless defined(&memmove); eval 'sub memcmp { my($b1, $b2, $len) = @_; eval q( &__builtin_memcmp(($b1), ($b2), ($len))); }' unless defined(&memcmp); } eval 'sub bzero_early { my($buf, $len) = @_; eval q( &memset_early(($buf), 0, ($len))); }' unless defined(&bzero_early); eval 'sub bcopy_early { my($from, $to, $len) = @_; eval q( &memmove_early(($to), ($from), ($len))); }' unless defined(&bcopy_early); eval 'sub copystr { my($src, $dst, $len, $outlen) = @_; eval q(({ \'size_t\' &__r, &__len, * &__outlen; &__len = ($len); &__outlen = ($outlen); &__r = &strlcpy(($dst), ($src), &__len); &if ( &__outlen != &NULL) * &__outlen = (( &__r >= &__len) ? &__len : &__r + 1); (( &__r >= &__len) ? &ENAMETOOLONG : 0); })); }' unless defined(©str); if(defined(&KCSAN)) { eval 'sub copyin { my($u, $k, $l) = @_; eval q( &kcsan_copyin(($u), ($k), ($l))); }' unless defined(©in); eval 'sub copyinstr { my($u, $k, $l, $lc) = @_; eval q( &kcsan_copyinstr(($u), ($k), ($l), ($lc))); }' unless defined(©instr); eval 'sub copyout { my($k, $u, $l) = @_; eval q( &kcsan_copyout(($k), ($u), ($l))); }' unless defined(©out); } eval 'sub GETENV_UNSIGNED () { &false;}' unless defined(&GETENV_UNSIGNED); eval 'sub GETENV_SIGNED () { &true;}' unless defined(&GETENV_SIGNED); require 'sys/libkern.ph'; eval 'sub msleep { my($chan, $mtx, $pri, $wmesg, $timo) = @_; eval q( &_sleep(($chan), ($mtx)-> &lock_object, ($pri), ($wmesg), &tick_sbt * ($timo), 0, &C_HARDCLOCK)); }' unless defined(&msleep); eval 'sub msleep_sbt { my($chan, $mtx, $pri, $wmesg, $bt, $pr, $flags) = @_; eval q( &_sleep(($chan), ($mtx)-> &lock_object, ($pri), ($wmesg), ($bt), ($pr), ($flags))); }' unless defined(&msleep_sbt); eval 'sub msleep_spin { my($chan, $mtx, $wmesg, $timo) = @_; eval q( &msleep_spin_sbt(($chan), ($mtx), ($wmesg), &tick_sbt * ($timo), 0, &C_HARDCLOCK)); }' unless defined(&msleep_spin); eval 'sub pause { my($wmesg, $timo) = @_; eval q( &pause_sbt(($wmesg), &tick_sbt * ($timo), 0, &C_HARDCLOCK)); }' unless defined(&pause); eval 'sub pause_sig { my($wmesg, $timo) = @_; eval q( &pause_sbt(($wmesg), &tick_sbt * ($timo), 0, &C_HARDCLOCK | &C_CATCH)); }' unless defined(&pause_sig); eval 'sub tsleep { my($chan, $pri, $wmesg, $timo) = @_; eval q( &_sleep(($chan), &NULL, ($pri), ($wmesg), &tick_sbt * ($timo), 0, &C_HARDCLOCK)); }' unless defined(&tsleep); eval 'sub tsleep_sbt { my($chan, $pri, $wmesg, $bt, $pr, $flags) = @_; eval q( &_sleep(($chan), &NULL, ($pri), ($wmesg), ($bt), ($pr), ($flags))); }' unless defined(&tsleep_sbt); if(defined(&__LP64__)) { } unless(defined(&__LP64__)) { eval 'sub UNR64_LOCKED () {1;}' unless defined(&UNR64_LOCKED); } eval 'sub new_unrhdr64 { my($unr64,$low) = @_; eval q({ ($unr64->{counter}) = $low; }); }' unless defined(&new_unrhdr64); if(defined(&UNR64_LOCKED)) { } else { eval 'sub alloc_unr64 { my($unr64) = @_; eval q({ ( &atomic_fetchadd_64( ($unr64->{counter}), 1)); }); }' unless defined(&alloc_unr64); } if(defined(&NO_OBSOLETE_CODE)) { eval 'sub __gone_ok { my($m, $msg) = @_; eval q( &_Static_assert($m < &P_OSREL_MAJOR( &__FreeBSD_version)), \\"Obsolete code: \\" $msg);); }' unless defined(&__gone_ok); } else { eval 'sub __gone_ok { my($m, $msg) = @_; eval q(); }' unless defined(&__gone_ok); } eval 'sub gone_in { my($major, $msg) = @_; eval q( &__gone_ok($major, $msg) &_gone_in($major, $msg)); }' unless defined(&gone_in); eval 'sub gone_in_dev { my($dev, $major, $msg) = @_; eval q( &__gone_ok($major, $msg) &_gone_in_dev($dev, $major, $msg)); }' unless defined(&gone_in_dev); } } 1;