|
@@ -50,6 +50,7 @@ extern struct segoff __text16 ( int15_vector );
|
50
|
50
|
*/
|
51
|
51
|
enum {
|
52
|
52
|
TEXT = 0,
|
|
53
|
+ BASEMEM,
|
53
|
54
|
};
|
54
|
55
|
|
55
|
56
|
/**
|
|
@@ -59,6 +60,7 @@ enum {
|
59
|
60
|
*/
|
60
|
61
|
struct hidden_region __data16_array ( hidden_regions, [] ) = {
|
61
|
62
|
[TEXT] = { 0, 0 },
|
|
63
|
+ [BASEMEM] = { 0, ( 640 * 1024 ) },
|
62
|
64
|
{ 0, 0, } /* Terminator */
|
63
|
65
|
};
|
64
|
66
|
#define hidden_regions __use_data16 ( hidden_regions )
|
|
@@ -72,10 +74,13 @@ struct hidden_region __data16_array ( hidden_regions, [] ) = {
|
72
|
74
|
void hide_etherboot ( void ) {
|
73
|
75
|
hidden_regions[TEXT].start = virt_to_phys ( _text );
|
74
|
76
|
hidden_regions[TEXT].end = virt_to_phys ( _end );
|
|
77
|
+ hidden_regions[BASEMEM].start = ( rm_cs << 4 );
|
75
|
78
|
|
76
|
|
- DBG ( "Hiding [%lx,%lx)\n",
|
|
79
|
+ DBG ( "Hiding [%lx,%lx) and [%lx,%lx)\n",
|
77
|
80
|
( unsigned long ) hidden_regions[TEXT].start,
|
78
|
|
- ( unsigned long ) hidden_regions[TEXT].end );
|
|
81
|
+ ( unsigned long ) hidden_regions[TEXT].end,
|
|
82
|
+ ( unsigned long ) hidden_regions[BASEMEM].start,
|
|
83
|
+ ( unsigned long ) hidden_regions[BASEMEM].end );
|
79
|
84
|
|
80
|
85
|
hook_bios_interrupt ( 0x15, ( unsigned int ) int15,
|
81
|
86
|
&int15_vector );
|