xref: /dragonfly/share/examples/libusb20/util.c (revision dacffe4a)
1*dacffe4aSSascha Wildner /* ----------------------------------------------------------------------------
2*dacffe4aSSascha Wildner  * "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp):
3*dacffe4aSSascha Wildner  * <joerg@FreeBSD.ORG> wrote this file.  As long as you retain this notice you
4*dacffe4aSSascha Wildner  * can do whatever you want with this stuff. If we meet some day, and you think
5*dacffe4aSSascha Wildner  * this stuff is worth it, you can buy me a beer in return.        Joerg Wunsch
6*dacffe4aSSascha Wildner  * ----------------------------------------------------------------------------
7*dacffe4aSSascha Wildner  *
8*dacffe4aSSascha Wildner  * $FreeBSD: head/share/examples/libusb20/util.c 257779 2013-11-07 07:22:51Z hselasky $
9*dacffe4aSSascha Wildner  */
10*dacffe4aSSascha Wildner 
11*dacffe4aSSascha Wildner /*
12*dacffe4aSSascha Wildner  * Helper functions common to all examples
13*dacffe4aSSascha Wildner  */
14*dacffe4aSSascha Wildner 
15*dacffe4aSSascha Wildner #include <stdio.h>
16*dacffe4aSSascha Wildner #include <stdint.h>
17*dacffe4aSSascha Wildner #include <stdlib.h>
18*dacffe4aSSascha Wildner 
19*dacffe4aSSascha Wildner #include <libusb20.h>
20*dacffe4aSSascha Wildner #include <libusb20_desc.h>
21*dacffe4aSSascha Wildner 
22*dacffe4aSSascha Wildner #include "util.h"
23*dacffe4aSSascha Wildner 
24*dacffe4aSSascha Wildner /*
25*dacffe4aSSascha Wildner  * Print "len" bytes from "buf" in hex, followed by an ASCII
26*dacffe4aSSascha Wildner  * representation (somewhat resembling the output of hd(1)).
27*dacffe4aSSascha Wildner  */
28*dacffe4aSSascha Wildner void
print_formatted(uint8_t * buf,uint32_t len)29*dacffe4aSSascha Wildner print_formatted(uint8_t *buf, uint32_t len)
30*dacffe4aSSascha Wildner {
31*dacffe4aSSascha Wildner   int i, j;
32*dacffe4aSSascha Wildner 
33*dacffe4aSSascha Wildner   for (j = 0; j < len; j += 16)
34*dacffe4aSSascha Wildner     {
35*dacffe4aSSascha Wildner       printf("%02x: ", j);
36*dacffe4aSSascha Wildner 
37*dacffe4aSSascha Wildner       for (i = 0; i < 16 && i + j < len; i++)
38*dacffe4aSSascha Wildner 	printf("%02x ", buf[i + j]);
39*dacffe4aSSascha Wildner       printf("  ");
40*dacffe4aSSascha Wildner       for (i = 0; i < 16 && i + j < len; i++)
41*dacffe4aSSascha Wildner 	{
42*dacffe4aSSascha Wildner 	  uint8_t c = buf[i + j];
43*dacffe4aSSascha Wildner 	  if(c >= ' ' && c <= '~')
44*dacffe4aSSascha Wildner 	    printf("%c", (char)c);
45*dacffe4aSSascha Wildner 	  else
46*dacffe4aSSascha Wildner 	    putchar('.');
47*dacffe4aSSascha Wildner 	}
48*dacffe4aSSascha Wildner       putchar('\n');
49*dacffe4aSSascha Wildner     }
50*dacffe4aSSascha Wildner }
51