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