|
@@ -105,20 +105,13 @@ have_pxenv:
|
105
|
105
|
|
106
|
106
|
/* Record entry point and UNDI segments */
|
107
|
107
|
pushl %es:0x0a(%bx) /* Entry point */
|
108
|
|
- popl entry_segoff
|
109
|
108
|
pushw %es:0x24(%bx) /* UNDI code segment */
|
110
|
109
|
pushw %es:0x26(%bx) /* UNDI code size */
|
111
|
|
- popl undi_code_segoff
|
112
|
110
|
pushw %es:0x20(%bx) /* UNDI data segment */
|
113
|
111
|
pushw %es:0x22(%bx) /* UNDI data size */
|
114
|
|
- popl undi_data_segoff
|
115
|
112
|
|
116
|
113
|
/* Print "PXENV+ at <address>" */
|
117
|
114
|
movw $10f, %si
|
118
|
|
- call print_message
|
119
|
|
- call print_segoff
|
120
|
|
- movb $( ',' ), %al
|
121
|
|
- call print_character
|
122
|
115
|
jmp check_have_stack
|
123
|
116
|
.section ".prefix.data", "aw", @progbits
|
124
|
117
|
10: .asciz " PXENV+ at "
|
|
@@ -129,19 +122,13 @@ have_ppxe:
|
129
|
122
|
movw %es, ppxe_segment
|
130
|
123
|
|
131
|
124
|
pushl %es:0x10(%bx) /* Entry point */
|
132
|
|
- popl entry_segoff
|
133
|
125
|
pushw %es:0x30(%bx) /* UNDI code segment */
|
134
|
126
|
pushw %es:0x36(%bx) /* UNDI code size */
|
135
|
|
- popl undi_code_segoff
|
136
|
127
|
pushw %es:0x28(%bx) /* UNDI data segment */
|
137
|
128
|
pushw %es:0x2e(%bx) /* UNDI data size */
|
138
|
|
- popl undi_data_segoff
|
|
129
|
+
|
139
|
130
|
/* Print "!PXE at <address>" */
|
140
|
131
|
movw $10f, %si
|
141
|
|
- call print_message
|
142
|
|
- call print_segoff
|
143
|
|
- movb $( ',' ), %al
|
144
|
|
- call print_character
|
145
|
132
|
jmp check_have_stack
|
146
|
133
|
.section ".prefix.data", "aw", @progbits
|
147
|
134
|
10: .asciz " !PXE at "
|
|
@@ -201,6 +188,17 @@ memory_scan_common:
|
201
|
188
|
*****************************************************************************
|
202
|
189
|
*/
|
203
|
190
|
check_have_stack:
|
|
191
|
+ /* Save common values pushed onto the stack */
|
|
192
|
+ popl undi_data_segoff
|
|
193
|
+ popl undi_code_segoff
|
|
194
|
+ popl entry_segoff
|
|
195
|
+
|
|
196
|
+ /* Print have !PXE/PXENV+ message; structure pointer in %es:%bx */
|
|
197
|
+ call print_message
|
|
198
|
+ call print_segoff
|
|
199
|
+ movb $( ',' ), %al
|
|
200
|
+ call print_character
|
|
201
|
+
|
204
|
202
|
/* Check for entry point */
|
205
|
203
|
movl entry_segoff, %eax
|
206
|
204
|
testl %eax, %eax
|