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_COUNT equ (OS_BASE+0x000F500)
|
||||||
BTN_BUFF equ (OS_BASE+0x000F501)
|
BTN_BUFF equ (OS_BASE+0x000F501)
|
||||||
|
|
||||||
CPU_FREQ equ (OS_BASE+0x000F600)
|
;CPU_FREQ equ (OS_BASE+0x000F600)
|
||||||
|
|
||||||
;unused ? no active references
|
;unused ? no active references
|
||||||
MOUSE_PORT equ (OS_BASE+0x000F604)
|
;MOUSE_PORT equ (OS_BASE+0x000F604)
|
||||||
|
|
||||||
;unused
|
;unused
|
||||||
PS2_CHUNK equ (OS_BASE+0x000FB00)
|
PS2_CHUNK equ (OS_BASE+0x000FB00)
|
||||||
|
@@ -335,7 +335,8 @@ __exports:
|
|||||||
delay_hs, 'Delay', \ ; ebx
|
delay_hs, 'Delay', \ ; ebx
|
||||||
set_mouse_data, 'SetMouseData', \ ;
|
set_mouse_data, 'SetMouseData', \ ;
|
||||||
set_keyboard_data, 'SetKeyboardData', \ ; gcc fastcall
|
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_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_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_mtrr db '<27><>⠭<EFBFBD><E2A0AD><EFBFBD><EFBFBD> MTRR',0
|
||||||
|
|
||||||
boot_APIC_found db 'APIC <20><><EFBFBD><EFBFBD>祭', 0
|
boot_APIC_found db 'APIC <20><><EFBFBD><EFBFBD>祭', 0
|
||||||
boot_APIC_nfound db 'APIC <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', 0
|
boot_APIC_nfound db 'APIC <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', 0
|
||||||
if preboot_blogesc
|
if preboot_blogesc
|
||||||
@@ -119,7 +119,7 @@ else
|
|||||||
boot_pal_vga db 'Setting VGA 640x480 palette',0
|
boot_pal_vga db 'Setting VGA 640x480 palette',0
|
||||||
boot_failed db 'Failed to start first app',0
|
boot_failed db 'Failed to start first app',0
|
||||||
boot_mtrr db 'Setting MTRR',0
|
boot_mtrr db 'Setting MTRR',0
|
||||||
|
|
||||||
boot_APIC_found db 'APIC enabled', 0
|
boot_APIC_found db 'APIC enabled', 0
|
||||||
boot_APIC_nfound db 'APIC not found', 0
|
boot_APIC_nfound db 'APIC not found', 0
|
||||||
if preboot_blogesc
|
if preboot_blogesc
|
||||||
@@ -332,6 +332,8 @@ mem_block_list rd 64*2
|
|||||||
mem_used_list rd 64*2
|
mem_used_list rd 64*2
|
||||||
mem_hash_cnt rd 64
|
mem_hash_cnt rd 64
|
||||||
|
|
||||||
|
cpu_freq rq 1
|
||||||
|
|
||||||
heap_mutex MUTEX
|
heap_mutex MUTEX
|
||||||
heap_size rd 1
|
heap_size rd 1
|
||||||
heap_free rd 1
|
heap_free rd 1
|
||||||
|
@@ -165,6 +165,7 @@ raise_event: ;; EXPORT use
|
|||||||
; esi - event data (=0 => skip)
|
; esi - event data (=0 => skip)
|
||||||
;scratched: ebx,ecx,esi,edi
|
;scratched: ebx,ecx,esi,edi
|
||||||
call NotDummyTest ; not returned for fail !!!
|
call NotDummyTest ; not returned for fail !!!
|
||||||
|
mov [check_idle_semaphore], 5
|
||||||
or esi, esi
|
or esi, esi
|
||||||
jz @f
|
jz @f
|
||||||
lea edi, [ebx+EVENT.code]
|
lea edi, [ebx+EVENT.code]
|
||||||
|
@@ -420,7 +420,7 @@ high_code:
|
|||||||
|
|
||||||
call calculate_fast_getting_offset_for_WinMapAddress
|
call calculate_fast_getting_offset_for_WinMapAddress
|
||||||
; for Qemu or non standart video cards
|
; for Qemu or non standart video cards
|
||||||
; Unfortunately [BytesPerScanLine] does not always
|
; Unfortunately [BytesPerScanLine] does not always
|
||||||
; equal to [_display.width] * [ScreenBPP] / 8
|
; equal to [_display.width] * [ScreenBPP] / 8
|
||||||
call calculate_fast_getting_offset_for_LFB
|
call calculate_fast_getting_offset_for_LFB
|
||||||
|
|
||||||
@@ -837,16 +837,19 @@ end if
|
|||||||
rdtsc ;call _rdtsc
|
rdtsc ;call _rdtsc
|
||||||
sti
|
sti
|
||||||
sub eax, ecx
|
sub eax, ecx
|
||||||
|
xor edx, edx
|
||||||
|
shld edx, eax, 2
|
||||||
shl eax, 2
|
shl eax, 2
|
||||||
mov [CPU_FREQ], eax ; save tsc / sec
|
mov dword [cpu_freq], eax
|
||||||
; mov ebx, 1000000
|
mov dword [cpu_freq+4], edx
|
||||||
; div ebx
|
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>
|
; <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>
|
; ᮢ<><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>...
|
; <20><>⨬<EFBFBD><E2A8AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>...
|
||||||
mov edx, 2251799814
|
; mov edx, 2251799814
|
||||||
mul edx
|
; mul edx
|
||||||
shr edx, 19
|
; shr edx, 19
|
||||||
mov [stall_mcs], edx
|
mov [stall_mcs], edx
|
||||||
; PRINT CPU FREQUENCY
|
; PRINT CPU FREQUENCY
|
||||||
mov esi, boot_cpufreq
|
mov esi, boot_cpufreq
|
||||||
@@ -2240,10 +2243,14 @@ sysfn_getidletime: ; 18.4 = GET IDLETIME
|
|||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
||||||
mov eax, [CPU_FREQ]
|
mov eax, dword [cpu_freq]
|
||||||
mov [esp+32], eax
|
mov [esp+32], eax
|
||||||
ret
|
ret
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
|
get_cpu_freq:
|
||||||
|
mov eax, dword [cpu_freq]
|
||||||
|
mov edx, dword [cpu_freq+4]
|
||||||
|
ret
|
||||||
; SAVE ramdisk to /hd/1/menuet.img
|
; SAVE ramdisk to /hd/1/menuet.img
|
||||||
;!!!!!!!!!!!!!!!!!!!!!!!!
|
;!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
include 'blkdev/rdsave.inc'
|
include 'blkdev/rdsave.inc'
|
||||||
|
Reference in New Issue
Block a user