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