summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorGravatar Dan Dennedy 2008-04-22 10:51:50 -0700
committerGravatar Dan Dennedy 2008-04-22 10:51:50 -0700
commit7c4d4970543f1829e783cc2bea2421913cc23a04 (patch)
tree96697b7ba341760df6f5bf745a102938d509a9bc /tools
parentMerge branch 'master' of dennedy.org:git/dennedy.org/libraw1394 (diff)
parentSet handle->iso.packets to NULL after freeing to avoid double-frees. (diff)
Merge commit 'krh/juju'
Conflicts: configure.ac
Diffstat (limited to 'tools')
-rw-r--r--tools/Makefile.am2
-rw-r--r--tools/testlibraw.c76
2 files changed, 60 insertions, 18 deletions
diff --git a/tools/Makefile.am b/tools/Makefile.am
index 29b250e..5be1b6f 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -2,4 +2,4 @@ MAINTAINERCLEANFILES = Makefile.in
# testlibraw
bin_PROGRAMS = testlibraw sendiso dumpiso
-LDADD = ../src/libraw1394.la
+LDADD = ../$(LIB_SUBDIR)/libraw1394.la
diff --git a/tools/testlibraw.c b/tools/testlibraw.c
index 5f73bd9..2f02a6d 100644
--- a/tools/testlibraw.c
+++ b/tools/testlibraw.c
@@ -1,4 +1,5 @@
-/*
+/* -*- c-basic-offset: 8 -*-
+ *
* libraw1394 - library for raw access to the 1394 bus with the Linux subsystem.
*
* Copyright (C) 1999,2000 Andreas Bombe
@@ -13,12 +14,13 @@
#include <string.h>
#include <sys/poll.h>
#include <stdlib.h>
+#include <arpa/inet.h>
#include "../src/raw1394.h"
#include "../src/csr.h"
-#define TESTADDR (CSR_REGISTER_BASE + CSR_CYCLE_TIME)
+#define TESTADDR (CSR_REGISTER_BASE + CSR_CONFIG_ROM)
const char not_compatible[] = "\
This libraw1394 does not work with your version of Linux. You need a different\n\
@@ -45,12 +47,18 @@ int my_tag_handler(raw1394handle_t handle, unsigned long tag,
return 0;
}
+static const unsigned char fcp_data[] =
+ { 0x1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
+
int my_fcp_handler(raw1394handle_t handle, nodeid_t nodeid, int response,
size_t length, unsigned char *data)
{
printf("got fcp %s from node %d of %d bytes:",
(response ? "response" : "command"), nodeid & 0x3f, length);
+ if (memcmp(fcp_data, data, sizeof fcp_data) != 0)
+ printf("ERROR: fcp payload not correct\n");
+
while (length) {
printf(" %02x", *data);
data++;
@@ -62,6 +70,47 @@ int my_fcp_handler(raw1394handle_t handle, nodeid_t nodeid, int response,
return 0;
}
+static void
+test_fcp(raw1394handle_t handle)
+{
+ printf("\ntesting FCP monitoring on local node\n");
+ raw1394_set_fcp_handler(handle, my_fcp_handler);
+ raw1394_start_fcp_listen(handle);
+ raw1394_write(handle, raw1394_get_local_id(handle),
+ CSR_REGISTER_BASE + CSR_FCP_COMMAND, sizeof(fcp_data),
+ (quadlet_t *)fcp_data);
+ raw1394_write(handle, raw1394_get_local_id(handle),
+ CSR_REGISTER_BASE + CSR_FCP_RESPONSE, sizeof(fcp_data),
+ (quadlet_t *)fcp_data);
+}
+
+static void
+read_topology_map(raw1394handle_t handle)
+{
+ quadlet_t map[70];
+ nodeid_t local_id;
+ int node_count, self_id_count, i, retval;
+
+ local_id = raw1394_get_local_id(handle) | 0xffc0;
+
+ retval = raw1394_read(handle, local_id,
+ CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP, 12, &map[0]);
+ if (retval < 0)
+ perror("topology map: raw1394_read failed with error");
+
+ self_id_count = ntohl(map[2]) & 0xffff;
+ node_count = ntohl(map[2]) >> 16;
+ retval = raw1394_read(handle, local_id,
+ CSR_REGISTER_BASE + CSR_TOPOLOGY_MAP + 12,
+ self_id_count * sizeof map[0], &map[3]);
+ if (retval < 0)
+ perror("topology map: raw1394_read failed with error");
+
+ printf("topology map: %d nodes, %d self ids, generation %d\n",
+ node_count, self_id_count, ntohl(map[1]));
+ for (i = 0; i < self_id_count; i++)
+ printf(" 0x%08x\n", ntohl(map[3 + i]));
+}
int main(int argc, char **argv)
{
@@ -73,7 +122,6 @@ int main(int argc, char **argv)
int retval;
struct pollfd pfd;
- unsigned char fcp_test[] = { 0x1, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef };
quadlet_t rom[0x100];
size_t rom_size;
unsigned char rom_version;
@@ -150,17 +198,8 @@ int main(int argc, char **argv)
}
}
- printf("\ntesting FCP monitoring on local node\n");
- raw1394_set_fcp_handler(handle, my_fcp_handler);
- raw1394_start_fcp_listen(handle);
- raw1394_write(handle, raw1394_get_local_id(handle),
- CSR_REGISTER_BASE + CSR_FCP_COMMAND, sizeof(fcp_test),
- (quadlet_t *)fcp_test);
- raw1394_write(handle, raw1394_get_local_id(handle),
- CSR_REGISTER_BASE + CSR_FCP_RESPONSE, sizeof(fcp_test),
- (quadlet_t *)fcp_test);
-
-
+ test_fcp(handle);
+ read_topology_map(handle);
printf("testing config rom stuff\n");
retval=raw1394_get_config_rom(handle, rom, 0x100, &rom_size, &rom_version);
@@ -176,16 +215,19 @@ int main(int argc, char **argv)
retval=raw1394_update_config_rom(handle, rom, rom_size, rom_version);
printf("update_config_rom returned %d\n",retval);
+ printf("\nposting 0xdeadbeef as an echo request\n");
+ raw1394_echo_request(handle, 0xdeadbeef);
-
- printf("\npolling for leftover messages\n");
+ printf("polling for leftover messages\n");
pfd.fd = raw1394_get_fd(handle);
pfd.events = POLLIN;
pfd.revents = 0;
while (1) {
retval = poll(&pfd, 1, 10);
if (retval < 1) break;
- raw1394_loop_iterate(handle);
+ retval = raw1394_loop_iterate(handle);
+ if (retval != 0)
+ printf("raw1394_loop_iterate() returned 0x%08x\n", retval);
}
if (retval < 0) perror("poll failed");
d>2001-01-19Fix building errors.c.Gravatar aeb 2-0/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@50 53a565d1-3bb7-0310-b661-cf11e63c67ab 2001-01-19First implementation of new error reporting API.Gravatar aeb 7-28/+134 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@49 53a565d1-3bb7-0310-b661-cf11e63c67ab 2001-01-04Fix misplaced device file in Debian installation.Gravatar aeb 3-3/+10 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@48 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-12-12Debian scripts use makedev (>=2.3.1-49) in postinst by default now.Gravatar aeb 7-30/+104 Postinst script using mknod added as alternative. Revision bumped up to 0.8.1. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@47 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-25Fix postinst ldconfig.Gravatar aeb 2-11/+11 Fix device file creation. Install NEWS and README as documentation in the dev package. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@46 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-25Add some information about return values.Gravatar aeb 1-3/+29 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@45 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-24Bump up version numbers for release.Gravatar aeb 2-3/+11 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@44 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-24Added libraw1394.postinst.in to list of distributed files.Gravatar aeb 3-3/+35 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@43 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-23Add ldconfig in deb postinst for Debian policy conformance.Gravatar aeb 2-2/+17 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@42 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-23Removed acconfig.h, which wasn't needed for some time.Gravatar aeb 1-13/+0 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@41 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-11-22Added ieee1394.h header.Gravatar aeb 3-1/+38 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@40 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-13Fix raw1394_start_iso_write() which uses wrong variable.Gravatar aeb 1-1/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@39 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-10Work around compiler warnings for int/ptr casts.Gravatar aeb 6-10/+20 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@38 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-10Added control files for Debian packages.Gravatar aeb 6-8/+106 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@37 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-09-01Added missing prototypes for iso send functions.Gravatar aeb 1-0/+7 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@36 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-08-08Added raw1394_get_irm_id().Gravatar aeb 7-7/+39 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@35 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-08-06Added support for isochronous sending.Gravatar aeb 3-0/+35 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@34 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-07-05Added raw1394_reset_bus() call.Gravatar aeb 4-0/+23 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@33 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-22- Set library version info in configure.in, use in src/Makefile.am.Gravatar aeb 4-2/+16 - Enable compiler warnings. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@32 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-15Update libtool version number.Gravatar aeb 2-2/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@31 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-14Added copyright headers.Gravatar aeb 6-0/+54 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@30 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-11Added explicit AC_PROG_INSTALL call.Gravatar aeb 1-0/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@29 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-09Fix size of error field.Gravatar aeb 1-2/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@28 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-06-02Modified support for 32/64 bit environments, control struct fields have ↵Gravatar aeb 7-43/+28 fixed size now. git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@27 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-05-28Added support for environments with 64 bit kernel and 32 bit userland.Gravatar aeb 8-7/+45 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@26 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-27Fixed missing setting of ext code in raw1394_start_lock()Gravatar aeb 1-0/+1 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@25 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-15Fixed lock transaction to actually return response value.Gravatar aeb 3-5/+11 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@24 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-12Add userdata functions as news.Gravatar aeb 1-0/+4 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@23 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-04-05Add userdata functions.Gravatar aeb 3-0/+18 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@22 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Bump version number to 0.6.Gravatar aeb 3-5/+6 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@21 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention byte order change.Gravatar aeb 1-0/+2 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@20 53a565d1-3bb7-0310-b661-cf11e63c67ab 2000-03-18Mention SourceForge home.Gravatar aeb 1-1/+5 git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@19 53a565d1-3bb7-0310-b661-cf11e63c67ab