Subversion Repositories HelenOS

Rev

Rev 98 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 98 Rev 99
Line 45... Line 45...
45
.section K_TEXT_START
45
.section K_TEXT_START
46
 
46
 
47
memmap_arch_init:
47
memmap_arch_init:
48
	
48
	
49
e820begin:
49
e820begin:
50
	xorl	%ebx,%ebx	#at first call must be ebx==0
50
	xorl	%ebx,%ebx	# during first call, ebx must be 0
51
	
51
	
52
	movw	$e820table,%di
52
	movw	$e820table,%di
53
	movb	$E820_MAX_RECORDS,(e820counter)
53
	movb	$E820_MAX_RECORDS,(e820counter)
54
e820loop:	
54
e820loop:	
55
	movl	$E820_SMAP,%edx 	# constrol sequence "SMAP"
55
	movl	$E820_SMAP,%edx 	# constrol sequence "SMAP"
Line 60... Line 60...
60
	movl	$E820_RECORD_SIZE,%ecx
60
	movl	$E820_RECORD_SIZE,%ecx
61
	int 	$0x15
61
	int 	$0x15
62
	jc		e820end	
62
	jc		e820end	
63
	
63
	
64
	
64
	
65
	cmpl	$E820_SMAP,%eax		# verifiing BIOS
65
	cmpl	$E820_SMAP,%eax		# verifying BIOS
66
	jne		e820end
66
	jne		e820end
67
	
67
	
68
	movw	%di,%ax		# next record
68
	movw	%di,%ax		# next record
69
	addw	$E820_RECORD_SIZE,%ax
69
	addw	$E820_RECORD_SIZE,%ax
70
	movw	%ax,%di
70
	movw	%ax,%di
Line 84... Line 84...
84
 
84
 
85
e820counter:
85
e820counter:
86
	.byte 0
86
	.byte 0
87
		 
87
		 
88
e820table:
88
e820table:
89
	.space  (32*E820_RECORD_SIZE),0 #prostor na 32 zaznamu delky E820_RECORD_SIZE
89
	.space  (32*E820_RECORD_SIZE),0 # space for 32 records, each E820_RECORD_SIZE bytes long