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