1 /* $OpenBSD: db_output.h,v 1.16 2013/12/12 21:00:09 guenther Exp $ */ 2 /* $NetBSD: db_output.h,v 1.9 1996/04/04 05:13:50 cgd Exp $ */ 3 4 /* 5 * Mach Operating System 6 * Copyright (c) 1993,1992,1991,1990 Carnegie Mellon University 7 * All Rights Reserved. 8 * 9 * Permission to use, copy, modify and distribute this software and its 10 * documentation is hereby granted, provided that both the copyright 11 * notice and this permission notice appear in all copies of the 12 * software, derivative works or modified versions, and any portions 13 * thereof, and that both notices appear in supporting documentation. 14 * 15 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 16 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 17 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 18 * 19 * Carnegie Mellon requests users of this software to return to 20 * 21 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 22 * School of Computer Science 23 * Carnegie Mellon University 24 * Pittsburgh PA 15213-3890 25 * 26 * any improvements or extensions that they make and grant Carnegie Mellon 27 * the rights to redistribute these changes. 28 * 29 * Author: David B. Golub, Carnegie Mellon University 30 * Date: 8/90 31 */ 32 33 /* 34 * Printing routines for kernel debugger. 35 */ 36 void db_force_whitespace(void); 37 void db_putchar(int); 38 int db_print_position(void); 39 int db_printf(const char *, ...) 40 __attribute__((__format__(__kprintf__,1,2))); 41 int db_vprintf(const char *, va_list) 42 __attribute__((__format__(__kprintf__,1,0))); 43 void db_end_line(int); 44 45 /* 46 * This is a replacement for the non-standard %z, %n and %r printf formats 47 * in db_printf. 48 * 49 * db_format(buf, bufsize, val, format, alt, width) 50 * 51 * val is the value we want printed. 52 * format is one of DB_FORMAT_[ZRN] 53 * alt specifies if we should provide an "alternate" format (# in the printf 54 * format). 55 * width is the field width. 0 is the same as no width specifier. 56 */ 57 #define DB_FORMAT_Z 1 58 #define DB_FORMAT_R 2 59 #define DB_FORMAT_N 3 60 #define DB_FORMAT_BUF_SIZE 64 /* should be plenty for all formats */ 61 char *db_format(char *, size_t, long, int, int, int); 62 63 /* XXX - this is the wrong place, but we have no better. */ 64 void db_stack_dump(void); 65