1 /* * $OpenBSD: hexdump.h,v 1.3 2001/09/30 07:17:03 pvalchev Exp $*/ 2 /* 3 * Copyright (c) 1989 The Regents of the University of California. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 3. All advertising materials mentioning features or use of this software 15 * must display the following acknowledgement: 16 * This product includes software developed by the University of 17 * California, Berkeley and its contributors. 18 * 4. Neither the name of the University nor the names of its contributors 19 * may be used to endorse or promote products derived from this software 20 * without specific prior written permission. 21 * 22 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 23 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 25 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 28 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 29 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 31 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 32 * SUCH DAMAGE. 33 * 34 * from: @(#)hexdump.h 5.4 (Berkeley) 6/1/90 35 */ 36 37 typedef struct _pr { 38 struct _pr *nextpr; /* next print unit */ 39 #define F_ADDRESS 0x001 /* print offset */ 40 #define F_BPAD 0x002 /* blank pad */ 41 #define F_C 0x004 /* %_c */ 42 #define F_CHAR 0x008 /* %c */ 43 #define F_DBL 0x010 /* %[EefGf] */ 44 #define F_INT 0x020 /* %[di] */ 45 #define F_P 0x040 /* %_p */ 46 #define F_STR 0x080 /* %s */ 47 #define F_U 0x100 /* %_u */ 48 #define F_UINT 0x200 /* %[ouXx] */ 49 #define F_TEXT 0x400 /* no conversions */ 50 u_int flags; /* flag values */ 51 int bcnt; /* byte count */ 52 char *cchar; /* conversion character */ 53 char *fmt; /* printf format */ 54 char *nospace; /* no whitespace version */ 55 } PR; 56 57 typedef struct _fu { 58 struct _fu *nextfu; /* next format unit */ 59 struct _pr *nextpr; /* next print unit */ 60 #define F_IGNORE 0x01 /* %_A */ 61 #define F_SETREP 0x02 /* rep count set, not default */ 62 u_int flags; /* flag values */ 63 int reps; /* repetition count */ 64 int bcnt; /* byte count */ 65 char *fmt; /* format string */ 66 } FU; 67 68 typedef struct _fs { /* format strings */ 69 struct _fs *nextfs; /* linked list of format strings */ 70 struct _fu *nextfu; /* linked list of format units */ 71 int bcnt; 72 } FS; 73 74 extern FS *fshead; /* head of format strings list */ 75 extern int blocksize; /* data block size */ 76 enum _vflag { ALL, DUP, FIRST, WAIT }; /* -v values */ 77 char *emalloc(); 78 79 void bpad __P((PR *)); 80 void conv_c __P((PR *, u_char *)); 81 void conv_u __P((PR *, u_char *)); 82 int next __P((char **)); 83 void doskip __P((char *, int)); 84 void nomem __P((void)); 85 void odoffset __P((int, char ***)); 86 void newsyntax __P((int, char ***)); 87 void oldsyntax __P((int, char ***)); 88 int size __P((FS *)); 89 void rewrite __P((FS *)); 90 void display __P((void)); 91 void badcnt __P((char *)); 92 void add __P((char *)); 93 void addfile __P((char *)); 94 void badcnt __P((char *)); 95 void badconv __P((char *)); 96 void badfmt __P((char *)); 97 void badsfmt __P((void)); 98 void escape __P((char *)); 99 void usage __P((void)); 100