int status;
PPCODE:
status = init_ports();
- if (status < 0) {
+ if (status < 0) {
XSRETURN_UNDEF;
} else {
XPUSHs(sv_2mortal(newSVuv(1)));
PPCODE:
status = trb_register_write(trb_address,reg_address, value);
if (status < 0) {
- XSRETURN_UNDEF;
+ XSRETURN_UNDEF;
+ } else {
+ XPUSHs(sv_2mortal(newSVuv(1)));
}
- XPUSHs(sv_2mortal(newSVuv(buffer[1])));
void
trb_read_uid_c(trb_address)
for (i = 0 ; i < status; i++) {
XPUSHs(sv_2mortal(newSVuv(buffer[i])));
}
+
+void
+trb_register_modify(trb_address, reg_address, mode, bitMask, bitValue)
+ U16 trb_address
+ U16 reg_address
+ int mode
+ U32 bitMask
+ U32 bitValue
+ INIT:
+ int status;
+
+ PPCODE:
+ status = trb_register_modify(trb_address, reg_address, mode, bitMask, bitValue);
+ if (status < 0) {
+ XSRETURN_UNDEF;
+ } else {
+ XPUSHs(sv_2mortal(newSVuv(1)));
+ }
\ No newline at end of file
trb_read_uid_c
trb_nettrace
trb_nettrace_c
+ trb_setbit
+ trb_clearbit
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
return \@array;
}
+sub trb_setbit {
+ my ($trb_address, $reg_address, $bitMask) = @_;
+ my $ret = trb_register_modify($trb_address, $reg_address,
+ 1, $bitMask, 0);
+ return $ret;
+}
+
+sub trb_clearbit {
+ my ($trb_address, $reg_address, $bitMask) = @_;
+ my $ret = trb_register_modify($trb_address, $reg_address,
+ 2, $bitMask, 0);
+ return $ret;
+}
+
1;
__END__
# Below is stub documentation for your module. You'd better edit it!