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 |