%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/bitset.ph |
require '_h2ph_pre.ph'; no warnings qw(redefine misc); unless(defined(&_SYS_BITSET_H_)) { eval 'sub _SYS_BITSET_H_ () {1;}' unless defined(&_SYS_BITSET_H_); eval 'sub __constexpr_cond { my($expr) = @_; eval q(( &__builtin_constant_p(($expr)) && ($expr))); }' unless defined(&__constexpr_cond); eval 'sub __bitset_mask { my($_s, $n) = @_; eval q((1 << ( &__constexpr_cond( &__bitset_words(($_s)) == 1) ? ( &__size_t)($n) : (($n) % &_BITSET_BITS)))); }' unless defined(&__bitset_mask); eval 'sub __bitset_word { my($_s, $n) = @_; eval q(( &__constexpr_cond( &__bitset_words(($_s)) == 1) ? 0: (($n) / &_BITSET_BITS))); }' unless defined(&__bitset_word); eval 'sub BIT_CLR { my($_s, $n, $p) = @_; eval q((($p)-> $__bits[ &__bitset_word($_s, $n)] &= ~ &__bitset_mask(($_s), ($n)))); }' unless defined(&BIT_CLR); eval 'sub BIT_COPY { my($_s, $f, $t) = @_; eval q(( &void)(*($t) = *($f))); }' unless defined(&BIT_COPY); eval 'sub BIT_ISSET { my($_s, $n, $p) = @_; eval q((((($p)-> $__bits[ &__bitset_word($_s, $n)] & &__bitset_mask(($_s), ($n))) != 0))); }' unless defined(&BIT_ISSET); eval 'sub BIT_SET { my($_s, $n, $p) = @_; eval q((($p)-> $__bits[ &__bitset_word($_s, $n)] |= &__bitset_mask(($_s), ($n)))); }' unless defined(&BIT_SET); eval 'sub BIT_ZERO { my($_s, $p) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($p)-> $__bits[ &__i] = 0; } &while (0)); }' unless defined(&BIT_ZERO); eval 'sub BIT_FILL { my($_s, $p) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($p)-> $__bits[ &__i] = -1; } &while (0)); }' unless defined(&BIT_FILL); eval 'sub BIT_SETOF { my($_s, $n, $p) = @_; eval q( &do { &BIT_ZERO($_s, $p); ($p)-> $__bits[ &__bitset_word($_s, $n)] = &__bitset_mask(($_s), ($n)); } &while (0)); }' unless defined(&BIT_SETOF); eval 'sub BIT_EMPTY { my($_s, $p) = @_; eval q( &__extension__ ({ &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &if (($p)-> $__bits[ &__i]) &break; &__i == &__bitset_words(($_s)); })); }' unless defined(&BIT_EMPTY); eval 'sub BIT_ISFULLSET { my($_s, $p) = @_; eval q( &__extension__ ({ &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &if (($p)-> $__bits[ &__i] != -1) &break; &__i == &__bitset_words(($_s)); })); }' unless defined(&BIT_ISFULLSET); eval 'sub BIT_SUBSET { my($_s, $p, $c) = @_; eval q( &__extension__ ({ &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &if ((($c)-> $__bits[ &__i] & ($p)-> $__bits[ &__i]) != ($c)-> $__bits[ &__i]) &break; &__i == &__bitset_words(($_s)); })); }' unless defined(&BIT_SUBSET); eval 'sub BIT_OVERLAP { my($_s, $p, $c) = @_; eval q( &__extension__ ({ &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &if ((($c)-> $__bits[ &__i] & ($p)-> $__bits[ &__i]) != 0) &break; &__i != &__bitset_words(($_s)); })); }' unless defined(&BIT_OVERLAP); eval 'sub BIT_CMP { my($_s, $p, $c) = @_; eval q( &__extension__ ({ &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &if ((($c)-> $__bits[ &__i] != ($p)-> $__bits[ &__i])) &break; &__i != &__bitset_words(($_s)); })); }' unless defined(&BIT_CMP); eval 'sub BIT_OR { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] |= ($s)-> $__bits[ &__i]; } &while (0)); }' unless defined(&BIT_OR); eval 'sub BIT_OR2 { my($_s, $d, $s1, $s2) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] = ($s1)-> $__bits[ &__i] | ($s2)-> $__bits[ &__i];} &while (0)); }' unless defined(&BIT_OR2); eval 'sub BIT_AND { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] &= ($s)-> $__bits[ &__i]; } &while (0)); }' unless defined(&BIT_AND); eval 'sub BIT_AND2 { my($_s, $d, $s1, $s2) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] = ($s1)-> $__bits[ &__i] & ($s2)-> $__bits[ &__i];} &while (0)); }' unless defined(&BIT_AND2); eval 'sub BIT_ANDNOT { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] &= ~($s)-> $__bits[ &__i]; } &while (0)); }' unless defined(&BIT_ANDNOT); eval 'sub BIT_ANDNOT2 { my($_s, $d, $s1, $s2) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] = ($s1)-> $__bits[ &__i] & ~($s2)-> $__bits[ &__i];} &while (0)); }' unless defined(&BIT_ANDNOT2); eval 'sub BIT_XOR { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] ^= ($s)-> $__bits[ &__i]; } &while (0)); }' unless defined(&BIT_XOR); eval 'sub BIT_XOR2 { my($_s, $d, $s1, $s2) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) ($d)-> $__bits[ &__i] = ($s1)-> $__bits[ &__i] ^ ($s2)-> $__bits[ &__i];} &while (0)); }' unless defined(&BIT_XOR2); eval 'sub BIT_CLR_ATOMIC { my($_s, $n, $p) = @_; eval q( &atomic_clear_long(($p)-> $__bits[ &__bitset_word($_s, $n)], &__bitset_mask(($_s), $n))); }' unless defined(&BIT_CLR_ATOMIC); eval 'sub BIT_SET_ATOMIC { my($_s, $n, $p) = @_; eval q( &atomic_set_long(($p)-> $__bits[ &__bitset_word($_s, $n)], &__bitset_mask(($_s), $n))); }' unless defined(&BIT_SET_ATOMIC); eval 'sub BIT_SET_ATOMIC_ACQ { my($_s, $n, $p) = @_; eval q( &atomic_set_acq_long(($p)-> $__bits[ &__bitset_word($_s, $n)], &__bitset_mask(($_s), $n))); }' unless defined(&BIT_SET_ATOMIC_ACQ); eval 'sub BIT_TEST_CLR_ATOMIC { my($_s, $n, $p) = @_; eval q(( &atomic_testandclear_long( ($p)-> $__bits[ &__bitset_word(($_s), ($n))], ($n)) != 0)); }' unless defined(&BIT_TEST_CLR_ATOMIC); eval 'sub BIT_TEST_SET_ATOMIC { my($_s, $n, $p) = @_; eval q(( &atomic_testandset_long( ($p)-> $__bits[ &__bitset_word(($_s), ($n))], ($n)) != 0)); }' unless defined(&BIT_TEST_SET_ATOMIC); eval 'sub BIT_AND_ATOMIC { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &atomic_clear_long(($d)-> $__bits[ &__i], ~($s)-> $__bits[ &__i]); } &while (0)); }' unless defined(&BIT_AND_ATOMIC); eval 'sub BIT_OR_ATOMIC { my($_s, $d, $s) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &atomic_set_long(($d)-> $__bits[ &__i], ($s)-> $__bits[ &__i]); } &while (0)); }' unless defined(&BIT_OR_ATOMIC); eval 'sub BIT_COPY_STORE_REL { my($_s, $f, $t) = @_; eval q( &do { &__size_t &__i; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &atomic_store_rel_long(($t)-> $__bits[ &__i], ($f)-> $__bits[ &__i]); } &while (0)); }' unless defined(&BIT_COPY_STORE_REL); eval 'sub BIT_FFS_AT { my($_s, $p, $start) = @_; eval q( &__extension__ ({ &__size_t &__i; \'long __bit\', &__mask; &__mask = ~0 << (($start) % &_BITSET_BITS); &__bit = 0; &for ( &__i = &__bitset_word(($_s), ($start)); &__i < &__bitset_words(($_s)); &__i++) { &if ((($p)-> $__bits[ &__i] & &__mask) != 0) { &__bit = &ffsl(($p)-> $__bits[ &__i] & &__mask); &__bit += &__i * &_BITSET_BITS; &break; } &__mask = ~0; } &__bit; })); }' unless defined(&BIT_FFS_AT); eval 'sub BIT_FFS { my($_s, $p) = @_; eval q( &BIT_FFS_AT(($_s), ($p), 0)); }' unless defined(&BIT_FFS); eval 'sub BIT_FLS { my($_s, $p) = @_; eval q( &__extension__ ({ &__size_t &__i; \'long __bit\'; &__bit = 0; &for ( &__i = &__bitset_words(($_s)); &__i > 0; &__i--) { &if (($p)-> $__bits[ &__i - 1] != 0) { &__bit = &flsl(($p)-> $__bits[ &__i - 1]); &__bit += ( &__i - 1) * &_BITSET_BITS; &break; } } &__bit; })); }' unless defined(&BIT_FLS); eval 'sub BIT_COUNT { my($_s, $p) = @_; eval q( &__extension__ ({ &__size_t &__i; \'long __count\'; &__count = 0; &for ( &__i = 0; &__i < &__bitset_words(($_s)); &__i++) &__count += &__bitcountl(($p)-> $__bits[ &__i]); &__count; })); }' unless defined(&BIT_COUNT); eval 'sub BITSET_T_INITIALIZER { my($x) = @_; eval q({ . &__bits = { $x } }); }' unless defined(&BITSET_T_INITIALIZER); eval 'sub BITSET_FSET { my($n) = @_; eval q([ 0... (($n) - 1) ] = (-1)); }' unless defined(&BITSET_FSET); eval 'sub BITSET_SIZE { my($_s) = @_; eval q(( &__bitset_words(($_s)) * $sizeof{\'long\'})); }' unless defined(&BITSET_SIZE); eval 'sub BITSET_ALLOC { my($_s, $mt, $mf) = @_; eval q( &malloc( &BITSET_SIZE(($_s)), $mt, ($mf))); }' unless defined(&BITSET_ALLOC); } 1;