]> jspc29.x-matter.uni-frankfurt.de Git - trbnettools.git/commitdiff
updates
authorhadaq <hadaq>
Sun, 26 Feb 2012 15:32:18 +0000 (15:32 +0000)
committerhadaq <hadaq>
Sun, 26 Feb 2012 15:32:18 +0000 (15:32 +0000)
libtrbnet_perl/TrbNet.xs
libtrbnet_perl/lib/HADES/TrbNet.pm

index 2b1b08b28a917cd9fd630a3a54bd7154fd20f5af..49f97754130567b24c5b546a991a63fb8f0107ff 100644 (file)
@@ -57,7 +57,7 @@ trb_register_read_c(trb_address, reg_address)
        int i;
 
      PPCODE:
-       status = trb_register_read(trb_address, reg_address, buffer, BUFFER_SIZE);
+       status = trb_register_read(trb_address, reg_address, (uint32_t*)buffer, BUFFER_SIZE);
        if (status <= 0) {
           XSRETURN_UNDEF;
        }
@@ -76,7 +76,7 @@ trb_register_read_mem_c(trb_address, reg_address, option, size)
        int i;
 
      PPCODE:
-       status = trb_register_read_mem(trb_address, reg_address, option, size, buffer, BUFFER_SIZE);
+       status = trb_register_read_mem(trb_address, reg_address, option, size, (uint32_t*)buffer, BUFFER_SIZE);
        if (status <= 0) {
           XSRETURN_UNDEF;
        }
@@ -108,7 +108,23 @@ trb_read_uid_c(trb_address)
        
      PPCODE:
        i = 0;
-       status = trb_read_uid(trb_address, buffer, BUFFER_SIZE);
+       status = trb_read_uid(trb_address, (uint32_t*)buffer, BUFFER_SIZE);
+       if (status <= 0) {
+          XSRETURN_UNDEF;
+       }
+       for (i = 0 ; i < status; i++) {
+          XPUSHs(sv_2mortal(newSVuv(buffer[i])));
+       }
+
+void
+trb_nettrace_c(trb_address)
+       U16 trb_address;
+     INIT:
+       int status;
+       int i;
+
+     PPCODE:
+       status = trb_nettrace(trb_address, (uint32_t*)buffer, BUFFER_SIZE);
        if (status <= 0) {
           XSRETURN_UNDEF;
        }
index d402de2ec973cb2039fa615bf187fdd1c47c64b8..2378107da4478bb83a1c9dad0c927a1f28e087c4 100644 (file)
@@ -28,6 +28,8 @@ our %EXPORT_TAGS = ( 'all' => [ qw(
        trb_register_write
        trb_read_uid
        trb_read_uid_c
+       trb_nettrace
+       trb_nettrace_c
 ) ] );
 
 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
@@ -93,6 +95,21 @@ sub trb_read_uid {
     return \%hash;
 }
 
+sub trb_nettrace {
+    my ($trb_address) = @_;
+    my @res = trb_nettrace_c($trb_address);
+    return if (! defined $res[0]);
+
+    my @array;
+    my $c = 0;
+    for (my $i = 0; $i < scalar @res; $i += 2) {
+      $array[$c]->{'address'} = $res[$i];
+      $array[$c]->{'port'} = $res[$i + 1];
+      $c++;
+    }
+    return \@array;
+}
+
 1;
 __END__
 # Below is stub documentation for your module. You'd better edit it!