Kaynağa Gözat

Added debugging statements

tags/v0.9.3
Michael Brown 18 yıl önce
ebeveyn
işleme
a6ba48e51e
1 değiştirilmiş dosya ile 19 ekleme ve 1 silme
  1. 19
    1
      src/arch/i386/interface/pcbios/biosint.c

+ 19
- 1
src/arch/i386/interface/pcbios/biosint.c Dosyayı Görüntüle

@@ -37,13 +37,21 @@ void hook_bios_interrupt ( unsigned int interrupt, unsigned int handler,
37 37
 		.offset = handler,
38 38
 	};
39 39
 
40
+	DBG ( "Hooking INT %#02x to %04x:%04x\n",
41
+	      interrupt, rm_cs, handler );
42
+
40 43
 	if ( ( chain_vector->segment != 0 ) ||
41 44
 	     ( chain_vector->offset != 0 ) ) {
42 45
 		/* Already hooked; do nothing */
46
+		DBG ( "...already hooked\n" );
43 47
 		return;
44 48
 	}
49
+
45 50
 	copy_from_real ( chain_vector, 0, ( interrupt * 4 ),
46 51
 			 sizeof ( *chain_vector ) );
52
+	DBG ( "...chaining to %04x:%04x\n",
53
+	      chain_vector->segment, chain_vector->offset );
54
+
47 55
 	copy_to_real ( 0, ( interrupt * 4 ), &vector, sizeof ( vector ) );
48 56
 	hooked_bios_interrupts++;
49 57
 }
@@ -65,11 +73,21 @@ int unhook_bios_interrupt ( unsigned int interrupt, unsigned int handler,
65 73
 			    struct segoff *chain_vector ) {
66 74
 	struct segoff vector;
67 75
 
76
+	DBG ( "Unhooking INT %#02x from %04x:%04x\n",
77
+	      interrupt, rm_cs, handler );
78
+
68 79
 	copy_from_real ( &vector, 0, ( interrupt * 4 ), sizeof ( vector ) );
69
-	if ( ( vector.segment != rm_cs ) || ( vector.offset != handler ) )
80
+	if ( ( vector.segment != rm_cs ) || ( vector.offset != handler ) ) {
81
+		DBG ( "...cannot unhook; vector points to %04x:%04x\n",
82
+		      vector.segment, vector.offset );
70 83
 		return -EBUSY;
84
+	}
85
+
86
+	DBG ( "...restoring to %04x:%04x\n",
87
+	      chain_vector->segment, chain_vector->offset );
71 88
 	copy_to_real ( 0, ( interrupt * 4 ), chain_vector,
72 89
 		       sizeof ( *chain_vector ) );
90
+
73 91
 	chain_vector->segment = 0;
74 92
 	chain_vector->offset = 0;
75 93
 	hooked_bios_interrupts--;

Loading…
İptal
Kaydet