1 /* $OpenBSD: db_output.h,v 1.17 2021/02/09 14:37:13 jcs 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 void db_resize(int, int); 45 46 /* 47 * This is a replacement for the non-standard %z, %n and %r printf formats 48 * in db_printf. 49 * 50 * db_format(buf, bufsize, val, format, alt, width) 51 * 52 * val is the value we want printed. 53 * format is one of DB_FORMAT_[ZRN] 54 * alt specifies if we should provide an "alternate" format (# in the printf 55 * format). 56 * width is the field width. 0 is the same as no width specifier. 57 */ 58 #define DB_FORMAT_Z 1 59 #define DB_FORMAT_R 2 60 #define DB_FORMAT_N 3 61 #define DB_FORMAT_BUF_SIZE 64 /* should be plenty for all formats */ 62 char *db_format(char *, size_t, long, int, int, int); 63 64 /* XXX - this is the wrong place, but we have no better. */ 65 void db_stack_dump(void); 66