XS(XS_Net__LibnetRaw_libnet_do_checksum) [...] u_char buf = (u_char)SvUV(ST(0)); [...] RETVAL = libnet_do_checksum(&buf, protocol, len); sv_setuv(ST(0), (UV)buf); SvSETMAGIC(ST(0)); #### XS(XS_Net__LibnetRaw_libnet_destroy_packet) [...] u_char * buf = (u_char *)SvPV(ST(0),PL_na); RETVAL = libnet_destroy_packet(&buf); #### OUTPUT: buf sv_setsv(ST(0),&PL_sv_undef); #### XS(XS_Net__LibnetRaw_libnet_init_packet) [...] u_char * buf = (u_char *)SvPV(ST(1),PL_na); [...] RETVAL = libnet_init_packet(p_size, &buf); sv_setpv((SV*)ST(1), buf);