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 Wildnerprint_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