forked from KolibriOS/kolibrios
kernel: export GetCpuFreq
git-svn-id: svn://kolibrios.org@3481 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -218,10 +218,10 @@ KEY_BUFF equ (OS_BASE+0x000F401)
|
||||
BTN_COUNT equ (OS_BASE+0x000F500)
|
||||
BTN_BUFF equ (OS_BASE+0x000F501)
|
||||
|
||||
CPU_FREQ equ (OS_BASE+0x000F600)
|
||||
;CPU_FREQ equ (OS_BASE+0x000F600)
|
||||
|
||||
;unused ? no active references
|
||||
MOUSE_PORT equ (OS_BASE+0x000F604)
|
||||
;MOUSE_PORT equ (OS_BASE+0x000F604)
|
||||
|
||||
;unused
|
||||
PS2_CHUNK equ (OS_BASE+0x000FB00)
|
||||
|
@@ -335,7 +335,8 @@ __exports:
|
||||
delay_hs, 'Delay', \ ; ebx
|
||||
set_mouse_data, 'SetMouseData', \ ;
|
||||
set_keyboard_data, 'SetKeyboardData', \ ; gcc fastcall
|
||||
timer_hs, 'TimerHs' ; stdcall
|
||||
timer_hs, 'TimerHs', \ ; stdcall
|
||||
get_cpu_freq, 'GetCpuFreq'
|
||||
|
||||
|
||||
|
||||
|
@@ -81,7 +81,7 @@ if lang eq ru
|
||||
boot_pal_vga db '<27><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> VGA 640x480 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',0
|
||||
boot_failed db '<27><><EFBFBD><EFBFBD>㧪<EFBFBD> <20><>ࢮ<EFBFBD><E0A2AE> <20>ਫ<EFBFBD><E0A8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> 㤠<><E3A4A0><EFBFBD><EFBFBD>',0
|
||||
boot_mtrr db '<27><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> MTRR',0
|
||||
|
||||
|
||||
boot_APIC_found db 'APIC <20><><EFBFBD><EFBFBD>祭', 0
|
||||
boot_APIC_nfound db 'APIC <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', 0
|
||||
if preboot_blogesc
|
||||
@@ -119,7 +119,7 @@ else
|
||||
boot_pal_vga db 'Setting VGA 640x480 palette',0
|
||||
boot_failed db 'Failed to start first app',0
|
||||
boot_mtrr db 'Setting MTRR',0
|
||||
|
||||
|
||||
boot_APIC_found db 'APIC enabled', 0
|
||||
boot_APIC_nfound db 'APIC not found', 0
|
||||
if preboot_blogesc
|
||||
@@ -332,6 +332,8 @@ mem_block_list rd 64*2
|
||||
mem_used_list rd 64*2
|
||||
mem_hash_cnt rd 64
|
||||
|
||||
cpu_freq rq 1
|
||||
|
||||
heap_mutex MUTEX
|
||||
heap_size rd 1
|
||||
heap_free rd 1
|
||||
|
@@ -165,6 +165,7 @@ raise_event: ;; EXPORT use
|
||||
; esi - event data (=0 => skip)
|
||||
;scratched: ebx,ecx,esi,edi
|
||||
call NotDummyTest ; not returned for fail !!!
|
||||
mov [check_idle_semaphore], 5
|
||||
or esi, esi
|
||||
jz @f
|
||||
lea edi, [ebx+EVENT.code]
|
||||
|
@@ -420,7 +420,7 @@ high_code:
|
||||
|
||||
call calculate_fast_getting_offset_for_WinMapAddress
|
||||
; for Qemu or non standart video cards
|
||||
; Unfortunately [BytesPerScanLine] does not always
|
||||
; Unfortunately [BytesPerScanLine] does not always
|
||||
; equal to [_display.width] * [ScreenBPP] / 8
|
||||
call calculate_fast_getting_offset_for_LFB
|
||||
|
||||
@@ -837,16 +837,19 @@ end if
|
||||
rdtsc ;call _rdtsc
|
||||
sti
|
||||
sub eax, ecx
|
||||
xor edx, edx
|
||||
shld edx, eax, 2
|
||||
shl eax, 2
|
||||
mov [CPU_FREQ], eax ; save tsc / sec
|
||||
; mov ebx, 1000000
|
||||
; div ebx
|
||||
mov dword [cpu_freq], eax
|
||||
mov dword [cpu_freq+4], edx
|
||||
mov ebx, 1000000
|
||||
div ebx
|
||||
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20>ந<EFBFBD><E0AEA8><EFBFBD><EFBFBD><EFBFBD>⥫쭮<E2A5AB><ECADAE><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⭮<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||
; ᮢ<><E1AEA2>襭<EFBFBD><E8A5AD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>筠, <20><> <20>⮡<EFBFBD> <20><>⪭<EFBFBD><E2AAAD><EFBFBD> <20>⥫<EEA1A8><E2A5AB>
|
||||
; <20><>⨬<EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>...
|
||||
mov edx, 2251799814
|
||||
mul edx
|
||||
shr edx, 19
|
||||
; mov edx, 2251799814
|
||||
; mul edx
|
||||
; shr edx, 19
|
||||
mov [stall_mcs], edx
|
||||
; PRINT CPU FREQUENCY
|
||||
mov esi, boot_cpufreq
|
||||
@@ -2240,10 +2243,14 @@ sysfn_getidletime: ; 18.4 = GET IDLETIME
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
||||
mov eax, [CPU_FREQ]
|
||||
mov eax, dword [cpu_freq]
|
||||
mov [esp+32], eax
|
||||
ret
|
||||
;------------------------------------------------------------------------------
|
||||
get_cpu_freq:
|
||||
mov eax, dword [cpu_freq]
|
||||
mov edx, dword [cpu_freq+4]
|
||||
ret
|
||||
; SAVE ramdisk to /hd/1/menuet.img
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
include 'blkdev/rdsave.inc'
|
||||
|
Reference in New Issue
Block a user