|
[ source navigation ] [ diff markup ] [ identifier search ] [ general search ] |
|||
|
001 /* Copyright (C) 2004 David Decotigny 001 /* Copyright (C) 2004 David Decotigny >> 002 Copyright (C) 1999 Free Software Foundation, Inc. 002 003 003 This program is free software; you can redi 004 This program is free software; you can redistribute it and/or 004 modify it under the terms of the GNU Genera 005 modify it under the terms of the GNU General Public License 005 as published by the Free Software Foundatio 006 as published by the Free Software Foundation; either version 2 006 of the License, or (at your option) any lat 007 of the License, or (at your option) any later version. 007 008 008 This program is distributed in the hope tha 009 This program is distributed in the hope that it will be useful, 009 but WITHOUT ANY WARRANTY; without even the 010 but WITHOUT ANY WARRANTY; without even the implied warranty of 010 MERCHANTABILITY or FITNESS FOR A PARTICULAR 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 011 GNU General Public License for more details 012 GNU General Public License for more details. 012 013 013 You should have received a copy of the GNU 014 You should have received a copy of the GNU General Public License 014 along with this program; if not, write to t 015 along with this program; if not, write to the Free Software 015 Foundation, Inc., 59 Temple Place - Suite 3 016 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 016 USA. 017 USA. 017 */ 018 */ 018 #ifndef _SOS_BOCHS_H_ 019 #ifndef _SOS_BOCHS_H_ 019 #define _SOS_BOCHS_H_ 020 #define _SOS_BOCHS_H_ 020 021 021 /** 022 /** 022 * @file bochs.h 023 * @file bochs.h 023 * 024 * 024 * If you compiled Bochs with the --enable-e9- 025 * If you compiled Bochs with the --enable-e9-hack, then any character 025 * printed to the 0xE9 I/O port is printed to 026 * printed to the 0xE9 I/O port is printed to the xterm that is 026 * running Bochs. This may appear to be a deta 027 * running Bochs. This may appear to be a detail, but in fact, this 027 * functionnality is *VERY* precious for debug 028 * functionnality is *VERY* precious for debugging purposes. This 028 * """driver""" handles this feature. 029 * """driver""" handles this feature. 029 */ 030 */ 030 031 031 #include <sos/errno.h> 032 #include <sos/errno.h> 032 #include <sos/types.h> 033 #include <sos/types.h> 033 034 034 sos_ret_t sos_bochs_setup(void); 035 sos_ret_t sos_bochs_setup(void); 035 << 036 sos_ret_t sos_bochs_putchar(char c); << 037 036 038 sos_ret_t sos_bochs_putstring(const char* str) 037 sos_ret_t sos_bochs_putstring(const char* str); 039 038 040 /** Print the least signficant 32 (nbytes == 4 039 /** Print the least signficant 32 (nbytes == 4), 24 (nbytes == 3), 16 041 (nbytes == 2) or 8 (nbytes == 1) bits of v 040 (nbytes == 2) or 8 (nbytes == 1) bits of val in hexadecimal. */ 042 sos_ret_t sos_bochs_puthex(unsigned val, int n 041 sos_ret_t sos_bochs_puthex(unsigned val, int nbytes); 043 042 044 /** hexdump-style pretty printing */ 043 /** hexdump-style pretty printing */ 045 sos_ret_t sos_bochs_hexdump(const void* addr, 044 sos_ret_t sos_bochs_hexdump(const void* addr, int nbytes); 046 045 047 /** 046 /** 048 * Print the formatted string. Very restricted 047 * Print the formatted string. Very restricted version of printf(3): 049 * 1/ can print max 255 chars, 2/ supports onl 048 * 1/ can print max 255 chars, 2/ supports only %d/%i, %c, %s, %x 050 * without any support for flag charachters (e 049 * without any support for flag charachters (eg %08x). 051 */ 050 */ 052 sos_ret_t sos_bochs_printf(const char *format, 051 sos_ret_t sos_bochs_printf(const char *format, /* args */...) 053 __attribute__ ((format (printf, 1, 2))); 052 __attribute__ ((format (printf, 1, 2))); 054 053 055 #endif 054 #endif
[ source navigation ] | [ diff markup ] | [ identifier search ] | [ general search ] |