view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
op_refcnt_lock|5.009002|5.009002|u
OpREFCNT_set|5.006000||Viu
OP_REFCNT_TERM|5.006000||Viu
OP_REFCNT_UNLOCK|5.006000||Viu
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OP_SIBLING|5.021002||Viu
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
OpSLAB|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
op_refcnt_lock|5.009002|5.009002|u
OpREFCNT_set|5.006000||Viu
OP_REFCNT_TERM|5.006000||Viu
OP_REFCNT_UNLOCK|5.006000||Viu
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OP_SIBLING|5.021002||Viu
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
OpSLAB|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_null||5.007002|
op_parent|||n
op_prepend_elem||5.013006|
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_sibling_splice||5.021002|n
op_std_init|||
open_script|||
openn_cleanup|||
openn_setup|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_null||5.007002|
op_parent|||n
op_prepend_elem||5.013006|
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_sibling_splice||5.021002|n
op_std_init|||
open_script|||
openn_cleanup|||
openn_setup|||
view all matches for this distribution
view release on metacpan or search on metacpan
package Devel::Scooby;
# Scooby.pm - a relocation mechanism for use with the Mobile::Location
# and Mobile::Executive modules.
#
# Author: Paul Barry, paul.barry@itcarlow.ie
# Create: October 2002.
# Update: April/May 2003 - Version 4.x series.
# Notes: This code takes advantage of the CPAN modules
# PadWalker and Storable (with a little help from the
# Data::Dumper module when it comes to Objects). The Crypt::RSA
# module provides PK+/PK- support.
#
# Version 1.x supported relocating simple Perl code.
# Version 2.x supported relocating SCALARs, ARRAYs, and
# HASHes and references to same.
# Version 3.x supported relocating Perl OO objects. Note
# that this will only occur after Scooby has contacted
# the receiving Location and determined that any
# required classes exist on the remote Perl system.
# Version 4.x supports authenticated relocation using Crypt::RSA,
# as well as encryption of the mobile agent source code.
#
our $VERSION = 4.12;
# subroutine that was just called (thanks to Perl's debugging
# mechanisms).
#
# OUT: nothing.
if ( $sub =~ /^Mobile::Executive::relocate$/ )
{
use Socket; # Functional interface to Socket API.
use Storable qw( freeze thaw ); # Provides a persistence mechanism.
use PadWalker qw( peek_my ); # Provides access to all lexically scoped variables.
_get_store_pkplus( $key_server, $LOCALHOST, $RESPONDER_PPORT );
_get_store_pkplus( $key_server, $remote, $remote_port );
open RELOCATE_FILE, "$Mobile::Executive::absolute_fn"
or die "Scooby: Unable to open file for relocation: $!.\n";
# Dump the current state of the agent to a temporary disk-file
# so that we can encrypt it with the next Location's PK+.
my $tmp_filename = "$0.$$.temporary.tmp";
print TCP_SOCK $cyphertext;
close TCP_SOCK
or warn "Scooby: close failed: $!.\n";
exit; # We are done on this Location, having just relocated
# to another. This is why we "exit" at this time.
}
# Call the original subroutine with parameters (if there was any).
# We only get to here if there's no request for relocation.
if ( defined @_ )
{
&$sub( @_ );
}
# IN: The IP name (or address) of the remote Location.
# The protocol port number of the remote Location.
# The "thawed" output from the Storable::thaw method.
#
# OUT: The stringified representation of the Perl code that can be
# executed to reinitialize the relocated variables.
#
# NOTE: This code also checks to see if any required modules exist
# on the remote Location. It will "die" if some are missing.
my $remote = shift;
=back
The B<-d> switch to C<perl> invokes Scooby as a debugger. Unlike a traditional debugger that expects to interact with a human, Scooby runs automatically. It NEVER interacts with a human, it interacts with the mobile agent machinery.
Scooby can be used to relocate Perl source code which contains the following:
=over 4
SCALARs (both numbers and strings).
References to a simple HASH.
Objects.
References to objects are B<not> supported and are in no way guaranteed to behave the way you expect them to after relocation (even though they do relocate).
The relocation of more complex data structures is B<not> supported at this time (refer to the TO DO LIST section, below).
=back
=head1 Internal methods/subroutines
=head1 TO DO LIST
Loads. The biggest item on the list would be to enhance Scooby to allow it to handle more complex data structures, such as ARRAYs of HASHes and HASHes of ARRAYs, etc., etc.
My initial plan was to allow for the automatic relocation of open disk-files. However, on reflection, I decided not to do this at this time, but may return to the idea at some stage in the future.
The current implementation checks to see if "used" classes are available on the next Location before attempting relocation, but does not check to see if "used" modules are available. It would be nice if it did.
It would also be nice to incorporate an updated B<Class::Tom> (by James Duncan) to handle the relocation of objects to a Location without the need to have the module exist on the remote Location. On my system (Linux), the most recent B<Class::Tom> g...
=head1 SEE ALSO
The B<Mobile::Executive> module and the B<Mobile::Location> class. Internally, this module uses the following CPAN modules: B<PadWalker> and B<Storable>, in addition to the standard B<Data::Dumper> module. The B<Crypt::RSA> modules provides encrypt...
view all matches for this distribution
view release on metacpan or search on metacpan
src/ppport.h view on Meta::CPAN
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Devel/ppport.h view on Meta::CPAN
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
lib/Devel/ppport.h view on Meta::CPAN
op_refcnt_lock|5.009002|5.009002|u
OpREFCNT_set|5.006000||Viu
OP_REFCNT_TERM|5.006000||Viu
OP_REFCNT_UNLOCK|5.006000||Viu
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OP_SIBLING|5.021002||Viu
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
OpSLAB|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
make
make check
make install
Caution: if you get an error like:
relocation R_X86_64_PC32 against symbol `bcm2835_peripherals' can not be used when making a shared object; recompile with -fPIC
then you will need to build bcm2835 like this:
cd bcm2835
./configure CFLAGS=-fPIC CXXFLAGS=-fPIC
view all matches for this distribution
view release on metacpan or search on metacpan
XS/ppport.h view on Meta::CPAN
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
XS/ppport.h view on Meta::CPAN
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Device/OUI.pm view on Meta::CPAN
disable the cache file. (C<< Device::OUI->cache_file( undef ) >>).
=head2 Device::OUI->search_url( $url )
The URL for the OUI search page. Normally you don't need to change this,
but it is provided as a configuration option in case the page is relocated.
You can also set this to undef to disable runtime searches.
This value is used by L</search_url_for|search_url_for> to create a search
url for a specific OUI. The default implementation allows you to include
a '%s' token in the URL, in which case the URL will be formatted with
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|5.010001||nViu
MARK|5.003007|5.003007|
markstack_grow|5.021001|5.021001|u
matcher_matches_sv|5.027008||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
measure_struct|5.007003||Viu
memCHRs||5.003007|p
mem_collxfrm|5.003007||dViu
_mem_collxfrm|5.025002||Viu
memEQ|5.004000|5.003007|p
op_prepend_elem|5.013006|5.013006|
op_refcnt_dec|||xiu
op_refcnt_inc|||xiu
op_refcnt_lock|5.009002|5.009002|u
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
opslab_force_free|5.017002||Viu
opslab_free|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_prepend_elem||5.013006|
op_refcnt_dec|||
op_refcnt_inc|||
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_scope||5.013007|
op_sibling_splice||5.021002|n
op_std_init|||
op_unscope|||
open_script|||
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
malloced_size|||n
malloc||5.007002|n
markstack_grow||5.021001|
matcher_matches_sv|||
maybe_multimagic_gv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
op_null||5.007002|
op_parent|||n
op_prepend_elem||5.013006|
op_refcnt_lock||5.009002|
op_refcnt_unlock||5.009002|
op_relocate_sv|||
op_sibling_splice||5.021002|n
op_std_init|||
open_script|||
openn_cleanup|||
openn_setup|||
view all matches for this distribution
view release on metacpan or search on metacpan
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
op_refcnt_lock|5.009002|5.009002|u
OpREFCNT_set|5.006000||Viu
OP_REFCNT_TERM|5.006000||Viu
OP_REFCNT_UNLOCK|5.006000||Viu
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OP_SIBLING|5.021002||Viu
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
OpSLAB|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
[Dependencies::Stats]
- Dependencies changed since 1.11044404, see misc/*.deps* for details
- test: -3
1.11044404 2010-11-02T16:25:56Z
- Upgrade to recent @KENTNL changes ( remove inc/ and xt/ from source tree, relocate perlcritic.rc )
- Now have a convenience function, usable by all consuming roles that permit filtering packages that match criteira
added to MetaNoIndex. Once your role uses this function, the attribute also bolted on by this change ( meta_noindex
= 1 ) will control this behaviour. Thanks to xdg/David Golden for this suggestion.
[Dependencies::Stats]
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Dist/Zilla/Role/FileFinder.pm view on Meta::CPAN
#pod Another plugin that knows how to use FileFinder plugins might be configured
#pod like this:
#pod
#pod [ModuleRelocator]
#pod finder = RootModules
#pod relocate_to = attic
#pod
#pod Finders may operate on any rules they like, checking file size, content, name,
#pod or other properties. They should re-perform their "finding" on each call to
#pod C<find_files> as the files in the distribution may have changed.
#pod
lib/Dist/Zilla/Role/FileFinder.pm view on Meta::CPAN
Another plugin that knows how to use FileFinder plugins might be configured
like this:
[ModuleRelocator]
finder = RootModules
relocate_to = attic
Finders may operate on any rules they like, checking file size, content, name,
or other properties. They should re-perform their "finding" on each call to
C<find_files> as the files in the distribution may have changed.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Dpkg/Shlibs/Objdump/Object.pm view on Meta::CPAN
$self->parse_dynamic_symbol($_);
} elsif ($section eq 'dynreloc') {
if (/^\S+\s+(\S+)\s+(.+)$/) {
$self->{dynrelocs}{$2} = $1;
} else {
warning(g_('cannot parse dynamic relocation record: %s'), $_);
}
} elsif ($section eq 'dyninfo') {
if (/^\s*NEEDED\s+(\S+)/) {
push @{$self->{NEEDED}}, $1;
} elsif (/^\s*SONAME\s+(\S+)/) {
lib/Dpkg/Shlibs/Objdump/Object.pm view on Meta::CPAN
chomp;
$self->{flags}{$_} = 1 foreach (split(/,\s*/));
}
}
}
# Update status of dynamic symbols given the relocations that have
# been parsed after the symbols.
$self->apply_relocations();
return $section ne 'none';
}
# Output format of objdump -w -T
lib/Dpkg/Shlibs/Objdump/Object.pm view on Meta::CPAN
} else {
warning(g_('cannot parse dynamic symbol definition: %s'), $line);
}
}
sub apply_relocations {
my $self = shift;
foreach my $sym (values %{$self->{dynsyms}}) {
# We want to mark as undefined symbols those which are currently
# defined but that depend on a copy relocation.
next if not $sym->{defined};
my @relocs;
# When objdump qualifies the symbol with a version it will use @ when
view all matches for this distribution
view release on metacpan or search on metacpan
malloc_good_size|||n
malloced_size|||n
malloc||5.007002|n
markstack_grow|||
matcher_matches_sv|||
mayberelocate|||
measure_struct|||
memEQs|5.009005||p
memEQ|5.004000||p
memNEs|5.009005||p
memNE|5.004000||p
view all matches for this distribution
view release on metacpan or search on metacpan
MAX_UTF8_TWO_BYTE|5.019004||Viu
MAYBE_DEREF_GV|5.015003||Viu
MAYBE_DEREF_GV_flags|5.015003||Viu
MAYBE_DEREF_GV_nomg|5.015003||Viu
maybe_multimagic_gv|5.019004||Viu
mayberelocate|5.015006||Viu
MBLEN_LOCK|5.033005||Viu
MBLEN_UNLOCK|5.033005||Viu
MBOL|5.003007||Viu
MBOL_t8|5.035004||Viu
MBOL_t8_p8|5.033003||Viu
op_refcnt_lock|5.009002|5.009002|u
OpREFCNT_set|5.006000||Viu
OP_REFCNT_TERM|5.006000||Viu
OP_REFCNT_UNLOCK|5.006000||Viu
op_refcnt_unlock|5.009002|5.009002|u
op_relocate_sv|5.021005||Viu
op_scope|5.013007|5.013007|x
OP_SIBLING|5.021002||Viu
OpSIBLING|5.021007|5.003007|p
op_sibling_splice|5.021002|5.021002|n
OpSLAB|5.017002||Viu
view all matches for this distribution
view release on metacpan or search on metacpan
lib/ELF/Writer.pm view on Meta::CPAN
has osabi_version => ( is => 'rw', default => sub { 0 } );
our (%type_to_sym, %type_from_sym);
_init_enum(\%type_to_sym, \%type_from_sym,
'none' => 0,
'relocatable' => 1,
'executable' => 2,
'shared' => 3,
'core' => 4,
);
lib/ELF/Writer.pm view on Meta::CPAN
Depends on osabi. Not used for Linux. Defaults to 0.
=head2 type, type_sym
16-bit integer, or one of: C<"relocatable">, C<"executable">, C<"shared">, C<"core">.
Must be set before writing.
=head2 machine, machine_sym
16-bit integer, or one of: C<"Sparc">, C<"x86">, C<"MIPS">, C<"PowerPC">, C<"ARM">, C<"SuperH">,
view all matches for this distribution
view release on metacpan or search on metacpan
libev/ev_iouring.c view on Meta::CPAN
* of linux aio or epoll and so on and so on. and you could do event stuff
* without any syscalls. what's not to like?
* d) ok, it's vastly more complex, but that's ok, really.
* e) why two mmaps instead of one? one would be more space-efficient,
* and I can't see what benefit two would have (other than being
* somehow resizable/relocatable, but that's apparently not possible).
* f) hmm, it's practically undebuggable (gdb can't access the memory, and
* the bizarre way structure offsets are communicated makes it hard to
* just print the ring buffer heads, even *iff* the memory were visible
* in gdb. but then, that's also ok, really.
* g) well, you cannot specify a timeout when waiting for events. no,
view all matches for this distribution