Rev 1037 | Rev 1052 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1037 | Rev 1039 | ||
|---|---|---|---|
| Line 149... | Line 149... | ||
| 149 | addl 8(%ebx), %ecx # mbi->mem_upper |
149 | addl 8(%ebx), %ecx # mbi->mem_upper |
| 150 | 150 | ||
| 151 | mem_invalid: |
151 | mem_invalid: |
| 152 | movl %ecx, e801memorysize |
152 | movl %ecx, e801memorysize |
| 153 | 153 | ||
| 154 | bt $3, %eax # mbi->flags[3] (mods_count, mods_addr valid) |
154 | bt $3, %eax # mbi->flags[3] (mods_count, mods_addr valid) |
| 155 | jc mods_valid |
155 | jc mods_valid |
| 156 | 156 | ||
| 157 | xorl %ecx, %ecx |
157 | xorl %ecx, %ecx |
| 158 | xorl %edx, %edx |
158 | movl %ecx, init |
| 159 | jmp mods_invalid |
159 | jmp mods_end |
| 160 | 160 | ||
| 161 | mods_valid: |
161 | mods_valid: |
| - | 162 | ||
| - | 163 | xorq %rcx, %rcx |
|
| 162 | movl 20(%ebx), %ecx # mbi->mods_count |
164 | movl 20(%ebx), %ecx # mbi->mods_count |
| - | 165 | movl %ecx, init |
|
| - | 166 | ||
| 163 | cmpl $0, %ecx |
167 | cmpl $0, %ecx |
| 164 | je mods_invalid |
168 | je mods_end |
| 165 | 169 | ||
| 166 | xorq %rdx, %rdx |
- | |
| 167 | movq %rdx, %rcx |
- | |
| 168 | movl 24(%ebx), %esi # mbi->mods_addr |
170 | movl 24(%ebx), %esi # mbi->mods_addr |
| 169 | movl 0(%esi), %edx # mods->mod_start |
171 | movq $init, %rdi |
| - | 172 | ||
| 170 | movl 4(%esi), %ecx # mods->mod_end |
173 | mods_loop: |
| - | 174 | ||
| 171 | subl %edx, %ecx |
175 | xorq %rdx, %rdx |
| - | 176 | movl 0(%esi), %edx # mods->mod_start |
|
| 172 | addq $0xffffffff80000000, %rdx |
177 | addq $0xffffffff80000000, %rdx |
| - | 178 | movq %rdx, 4(%rdi) |
|
| 173 | 179 | ||
| 174 | mods_invalid: |
180 | xorq %rdx, %rdx |
| 175 | # movq %rcx, init_size |
181 | movl 4(%esi), %edx |
| - | 182 | subl 0(%esi), %edx # mods->mod_end - mods->mod_start |
|
| 176 | # movq %rdx, init_addr |
183 | movq %rdx, 12(%rdi) |
| - | 184 | ||
| - | 185 | addl $16, %esi |
|
| - | 186 | addq $16, %rdi |
|
| - | 187 | ||
| - | 188 | loop mods_loop |
|
| - | 189 | ||
| - | 190 | mods_end: |
|
| 177 | 191 | ||
| 178 | bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid) |
192 | bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid) |
| 179 | jc mmap_valid |
193 | jc mmap_valid |
| 180 | 194 | ||
| 181 | xorl %edx, %edx |
195 | xorl %edx, %edx |