Apache-Mmap
view release on metacpan or search on metacpan
ret->prot = prot;
ret->flags = flags;
ret->addr = mmap(0, len, prot, flags, fd, off);
if (ret->addr == MAP_FAILED) {
XSRETURN_UNDEF;
}
RETVAL = ret;
OUTPUT:
RETVAL
SV *
STORE( self, what )
Mmap *self
SV *what
PROTOTYPE: $$
CODE:
memcpy( self->addr, SvPV( what, self->cur ), self->cur );
memset( self->addr + self->cur, 0, self->len - self->cur );
} else {
memcpy( self->addr, SvPV( what, na ), self->len );
self->cur = self->len;
}
/* return copy of what we stored */
RETVAL = newSVpv( self->addr, self->cur );
OUTPUT:
RETVAL
SV *
FETCH( self )
Mmap *self
PROTOTYPE: $
CODE:
/* Make sure region was mapped with read privledges */
if( !( self->prot & PROT_READ ) ) {
croak( "Apache::Mmap::FETCH: Attempt to read from write only region" );
XSRETURN_UNDEF;
}
/* Return a PV with the contents of the mapped region */
RETVAL = newSVpv( self->addr, self->cur );
OUTPUT:
RETVAL
void
DESTROY( self )
Mmap *self
PROTOTYPE: $
CODE:
if( self == NULL || self->addr == NULL ) {
warn( "Apache::Mmap::DESTROY: Attempt to destroy null ptr or region\n" );
##
## $Id: typemap,v 1.1 1997/09/09 03:30:02 fletch Exp $
##
TYPEMAP
Mmap* O_OBJECT
size_t T_IV
off_t T_IV
OUTPUT
O_OBJECT
$arg = newSV( 0 );
sv_setref_iv( $arg, CLASS, (IV)$var );
INPUT
O_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) )
$var = ($type)SvIV((SV*)SvRV( $arg ));
else{
warn( \"${Package}::$func_name() -- $var is not a blessed SV reference\" );
XSRETURN_UNDEF;
}
( run in 0.321 second using v1.01-cache-2.11-cpan-4e96b696675 )