+++ /dev/null
-#include <geekos/fmtout.h>
-#include <geekos/string.h>
-#include <geekos/idt.h>
-#include <geekos/vm_cons.h>
-
-#define CONS_PORT 0xc0c0
-
-void VMConsPutChar(unsigned char c) {
- /* send char */
- Out_Byte(CONS_PORT, c);
-}
-
-
-
-
-void VMConsPutLineN(char * line, int len) {
- int i;
- for (i = 0; i < len && line[i] != 0; i++) {
- VMConsPutChar(line[i]);
- }
-}
-
-
-void VMConsPutLine(char * line) {
- int i;
- for (i = 0; line[i]!= 0; i++) {
- VMConsPutChar(line[i]);
- }
-}
-
-
-void VMConsPrintHex(unsigned char x)
-{
- unsigned char z;
-
- z = (x >> 4) & 0xf ;
- VMConsPrint("%x", z);
- z = x & 0xf;
- VMConsPrint("%x", z);
-}
-
-void VMConsMemDump(unsigned char *start, int n)
-{
- int i, j;
-
- for (i=0;i<n;i+=16) {
- VMConsPrint("%8x", (unsigned)(start+i));
- for (j=i; j<i+16 && j<n; j+=2) {
- VMConsPrint(" ");
- VMConsPrintHex(*((unsigned char *)(start+j)));
- if ((j+1)<n) {
- VMConsPrintHex(*((unsigned char *)(start+j+1)));
- }
- }
- VMConsPrint(" ");
- for (j=i; j<i+16 && j<n;j++) {
- VMConsPrint("%c", ((start[j]>=32) && (start[j]<=126)) ? start[j] : '.');
- }
- VMConsPrint("\n");
- }
-}
-
-
-static struct Output_Sink vm_cons_output_sink;
-static void VMCons_Emit(struct Output_Sink * o, int ch) {
- VMConsPutChar((unsigned char)ch);
-}
-static void VMCons_Finish(struct Output_Sink * o) { return; }
-
-
-static void __inline__ VMConsPrintInternal(const char * format, va_list ap) {
- Format_Output(&vm_cons_output_sink, format, ap);
-}
-
-
-void VMConsPrint(const char * format, ...) {
- va_list args;
- bool iflag = Begin_Int_Atomic();
-
- va_start(args, format);
- VMConsPrintInternal(format, args);
- va_end(args);
-
- End_Int_Atomic(iflag);
-}
-
-void VMConsPrintList(const char * format, va_list ap) {
- bool iflag = Begin_Int_Atomic();
- VMConsPrintInternal(format, ap);
- End_Int_Atomic(iflag);
-
-}
-
-
-
-
-void VMConsPrintLevel(int level, const char * format, ...) {
- va_list args;
- bool iflag = Begin_Int_Atomic();
-
- va_start(args, format);
- VMConsPrintInternal(format, args);
- va_end(args);
-
- End_Int_Atomic(iflag);
-}
-
-void Init_VMCons() {
-
- vm_cons_output_sink.Emit = &VMCons_Emit;
- vm_cons_output_sink.Finish = &VMCons_Finish;
-
- VMConsPrint("Initializing VM Console\n");
-
- return;
-}