kern

diff src/segm-asm.S @ 8:78d5c304ddd0

minor changes
author John Tsiombikas <nuclear@member.fsf.org>
date Wed, 16 Feb 2011 07:50:25 +0200
parents 611b2d66420b
children 4eaecb14fe31
line diff
     1.1 --- a/src/segm-asm.S	Wed Feb 16 07:26:03 2011 +0200
     1.2 +++ b/src/segm-asm.S	Wed Feb 16 07:50:25 2011 +0200
     1.3 @@ -1,27 +1,25 @@
     1.4  	.data
     1.5 +	.align 4
     1.6 +/* memory reserved for setup_selectors */
     1.7  off:.long 0
     1.8  seg:.short 0
     1.9 -
    1.10 -	.align
    1.11 -	.short 0
    1.12 -gdt_lim:
    1.13 -	.short 0
    1.14 -gdt_addr:
    1.15 -	.long 0
    1.16 +/* memory reserved for set_gdt */
    1.17 +lim:.short 0
    1.18 +addr:.long 0
    1.19  
    1.20  	.text
    1.21  /* setup_selectors(uint16_t code, uint16_t data)
    1.22   * loads the requested selectors to all the selector registers */
    1.23  	.globl setup_selectors
    1.24  setup_selectors:
    1.25 -	/* setup data selectors */
    1.26 +	/* set data selectors directly */
    1.27  	movl 8(%esp), %eax
    1.28  	movw %ax, %ss
    1.29  	movw %ax, %es
    1.30  	movw %ax, %ds
    1.31  	movw %ax, %gs
    1.32  	movw %ax, %fs
    1.33 -	/* setup code selector */
    1.34 +	/* set cs using a long jump */
    1.35  	movl 4(%esp), %eax
    1.36  	movw %ax, (seg)
    1.37  	movl $ldcs, (off)
    1.38 @@ -34,8 +32,8 @@
    1.39  	.globl set_gdt
    1.40  set_gdt:
    1.41  	movl 4(%esp), %eax
    1.42 -	movl %eax, (gdt_addr)
    1.43 +	movl %eax, (addr)
    1.44  	movw 8(%esp), %ax
    1.45 -	movw %ax, (gdt_lim)
    1.46 -	lgdt (gdt_lim)	
    1.47 +	movw %ax, (lim)
    1.48 +	lgdt (lim)	
    1.49  	ret