Subversion Repositories Kolibri OS

Rev

Rev 3531 | Rev 3934 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3531 Rev 3573
Line 296... Line 296...
296
	rdmsr
296
	rdmsr
297
	mov	[esp+16], edx
297
	mov	[esp+16], edx
298
	pop	edx ecx
298
	pop	edx ecx
299
	ret
299
	ret
Line -... Line 300...
-
 
300
 
-
 
301
;------------------------------------------------
-
 
302
uglobal
-
 
303
 
-
 
304
align 4
-
 
305
diff16 "apic_data : ", 0, $
-
 
306
apic_data:
-
 
307
 
-
 
308
    .counter dd ?
-
 
309
    .ticks   dd ?
-
 
310
    .t_freq  dd ?
-
 
311
endg
300
 
312
 
-
 
313
apic_timer_reset:
-
 
314
	mov	eax, [pll_frequency.osc]
301
apic_timer_reset:
315
	shr	eax, 1					; default prescaler - fix it !!
-
 
316
	mov	[apic_data.t_freq], eax
302
	xor	eax, eax
317
	shr	eax, 4					; 16 per second
-
 
318
	mov	[apic_data.ticks], eax
303
	mov	[apic_data+0], eax
319
 
304
	mov	ebx, LAPIC_BAR+ 0x320
320
	mov	ebx, LAPIC_BAR+ 0x320
305
	mov	eax, [ebx]
321
	mov	edx, [ebx]
306
	and	eax, 0xFFFEFF00
322
	and	edx, 0xFFFEFF00
307
	or	eax, 0x0000003F       ; int vector + norestart
323
	or	edx, 0x0002003F 			; int vector + restart
308
	mov	[ebx], eax
324
	mov	[ebx], edx
309
	mov	dword[apic_data + 8], 100000000
325
	mov	dword [LAPIC_BAR + 0x380], eax		; load APICTIC
Line 310... Line 326...
310
	ret
326
	ret
311
 
327
 
312
 
328
 
313
apic_timer_int:
329
apic_timer_int:
314
	push	eax
330
	push	eax
315
	inc	dword [apic_data + 0]
331
	inc	dword [apic_data.counter]
316
	mov	eax,  [apic_data + 8]
332
;        mov     eax,  [apic_data.ticks]
317
	mov	dword [LAPIC_BAR + 0x380], eax	      ; load APICTIC
333
;        mov     dword [LAPIC_BAR + 0x380], eax          ; reload APICTIC
318
	mov	dword [LAPIC_BAR + 0x0B0], 0	    ; end of interrupt
334
	mov	dword [LAPIC_BAR + 0x0B0], 0		; end of interrupt