diff options
| -rw-r--r-- | ao-tools/ao-usbtrng/ao-usbtrng.1 | 20 | ||||
| -rw-r--r-- | ao-tools/ao-usbtrng/ao-usbtrng.c | 44 | 
2 files changed, 32 insertions, 32 deletions
| diff --git a/ao-tools/ao-usbtrng/ao-usbtrng.1 b/ao-tools/ao-usbtrng/ao-usbtrng.1 index b4a3e5ec..eabdd8a1 100644 --- a/ao-tools/ao-usbtrng/ao-usbtrng.1 +++ b/ao-tools/ao-usbtrng/ao-usbtrng.1 @@ -20,24 +20,24 @@  .SH NAME  ao-usbtrng \- dump random numbers from USBtrng  .SH SYNOPSIS -.B "ao-usbtrng" -[\-T \fItty-device\fP] -[\--tty \fItty-device\fP] -[\-D \fIaltos-device\fP] -[\--device \fIaltos-device\fP] -\fIkbytes\fP +.B "ao-usbtrng" [OPTION...] [KBYTES]  .SH DESCRIPTION  .I ao-usbtrng -dumps random numbers from a USBtrng device +dumps random numbers from a USBtrng device. If provided KBYTES specifies the number of 1024 byte blocks to produce on standard output. Without KBYTES +.I ao-usbtrng +produces random bytes continuously until killed.  .SH OPTIONS  .TP -\-T tty-device | --tty tty-device +\-v, --verbose +increase verbosity +.TP +\-T, -tty=TTYDEVICE  This selects which tty device the debugger uses to communicate with  the target device. The special name 'BITBANG' directs ao-dbg to use  the cp2103 connection, otherwise this should be a usb serial port  connected to a suitable cc1111 debug node.  .TP -\-D AltOS-device | --device AltOS-device +\-D, --device=ALTOSDEVICE  Search for a connected device. This requires an argument of one of the  following forms:  .IP @@ -52,7 +52,7 @@ product, leaving out the serial number will cause the tool to match  one of the available devices.  .SH USAGE  .I ao-usbtrng -opens the target device and reads the specified number of kbytes of +opens the target device and reads the specified number of KBYTES of  random data.  .SH AUTHOR  Keith Packard diff --git a/ao-tools/ao-usbtrng/ao-usbtrng.c b/ao-tools/ao-usbtrng/ao-usbtrng.c index 232f4e3e..456885d9 100644 --- a/ao-tools/ao-usbtrng/ao-usbtrng.c +++ b/ao-tools/ao-usbtrng/ao-usbtrng.c @@ -35,14 +35,13 @@  static const struct option options[] = {  	{ .name = "tty", .has_arg = 1, .val = 'T' },  	{ .name = "device", .has_arg = 1, .val = 'D' }, -	{ .name = "raw", .has_arg = 0, .val = 'r' }, -	{ .name = "verbose", .has_arg = 1, .val = 'v' }, +	{ .name = "verbose", .has_arg = 0, .val = 'v' },  	{ 0, 0, 0, 0},  };  static void usage(char *program)  { -	fprintf(stderr, "usage: %s [--verbose=<verbose>] [--device=<device>] [-tty=<tty>] <kbytes>\n", program); +	fprintf(stderr, "usage: %s [--verbose] [--device=<AltOS-device>] [-tty=<tty>] [<kbytes>]\n", program);  	exit(1);  } @@ -58,21 +57,17 @@ main (int argc, char **argv)  {  	char			*device = NULL;  	char			*filename; -	Elf			*e; -	unsigned int		s;  	int			i;  	int			c; -	int			tries;  	struct cc_usb		*cc = NULL;  	char			*tty = NULL; -	int			success;  	int			verbose = 0;  	int			ret = 0; -	int			expected_size; -	int			kbytes; +	int			kbytes = 0; /* 0 == continuous */ +	int			written;  	uint8_t			bits[1024]; -	while ((c = getopt_long(argc, argv, "rT:D:c:s:v:", options, NULL)) != -1) { +	while ((c = getopt_long(argc, argv, "vT:D:", options, NULL)) != -1) {  		switch (c) {  		case 'T':  			tty = optarg; @@ -89,12 +84,8 @@ main (int argc, char **argv)  		}  	} -	if (!argv[optind]) -		usage(argv[0]); - -	kbytes = atoi(argv[optind]); -	if (kbytes < 1) -		kbytes = 1; +	if (optind < argc) +		kbytes = atoi(argv[optind]);  	ao_verbose = verbose; @@ -113,13 +104,22 @@ main (int argc, char **argv)  	if (!cc)  		exit(1); -	cc_usb_printf(cc, "f %d\n", kbytes); +	if (kbytes) { +		cc_usb_printf(cc, "f %d\n", kbytes); -	while (kbytes--) { -		int	i; -		for (i = 0; i < 1024; i++) -			bits[i] = cc_usb_getchar(cc); -		write(1, bits, 1024); +		while (kbytes--) { +			for (i = 0; i < 1024; i++) +				bits[i] = cc_usb_getchar(cc); +			write(1, bits, 1024); +		} +	} else { /* 0 == continuous */ +		written = 0; +		while (written >= 0) { +			cc_usb_printf(cc, "f 1\n"); +			for (i = 0; i < 1024; i++) +				bits[i] = cc_usb_getchar(cc); +			written = write(1, bits, 1024); +		}  	}  	done(cc, ret); | 
