Functions | |
| void | setup_os_slot () |
| in: edx -> APPDATA for OS/IDLE slot in: ebx = stack base More... | |
| void | osloop_has_work () |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MAIN OS LOOP END ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; More... | |
| void | wakeup_osloop () |
| void | delay_hs_unprotected () |
| this is for syscall More... | |
| void | syscall_reserveportarea (arg_t edx, arg_t ecx, arg_t ebx, arg_t eax) |
| ReservePortArea and FreePortArea. More... | |
| void | is_region_userspace (dword base, dword len) |
| Check if given memory region lays in lower 2gb (userspace memory) or not. More... | |
| void | is_string_userspace (dword base) |
| Check whether given string lays in userspace memory, i.e. below OS_BASE. More... | |
Variables | |
| db | debug_direct_print |
| The following variable, if equal to 1, duplicates debug output to the screen. More... | |
| db | launcher_start |
| Start the first app (LAUNCHER) after kernel is loaded? (1=yes, 2 or 0=no) More... | |
| label | B32 |
| dd | bios32_entry |
| dd | tmp_page_tabs |
| label | ap_init16 |
| label | gdts_ap |
| dd | cr3_ap |
| dd | cr4_ap |
| fix | __DEBUG__ |
| fix | __DEBUG_LEVEL__ |
| label | high_code |
| db | use_mwait_for_idle |
| label | ahci_code_end |
| label | no_lib_load |
| label | no_pal_vga |
| label | no_pal_ega |
| label | ps2_keyboard_functions |
| label | first_app_found |
| dd | ap_initialized |
| label | ap_init_high |
| label | boot_log |
| label | register_ramdisk |
| --------------------------------------------------------------------------— Register ramdisk file system More... | |
| label | osloop |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MAIN OS LOOP START ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; More... | |
| dd | osloop_nonperiodic_work |
| rb | idle_addr |
| label | idle_thread |
| label | idle_loop |
| The following code can be executed by all CPUs in the system. All other parts of the kernel do not expect multi-CPU. Also, APs don't even have a stack here. Beware. Don't do anything here. Anything at all. More... | |
| label | reserve_irqs_ports |
| dd | process_number |
| label | set_variables |
| label | display_number |
| label | display_number_force |
| label | normalize_number |
| label | division_64_bits |
| label | draw_num_text |
| label | sys_setup |
| --------------------------------------------------------------------------— More... | |
| label | sys_getsetup |
| --------------------------------------------------------------------------— More... | |
| label | get_timer_ticks |
| --------------------------------------------------------------------------— More... | |
| label | sys_end |
| --------------------------------------------------------------------------— More... | |
| label | restore_default_cursor_before_killing |
| ---------------------------------------------------------------------------— ecx - ptr WDATA More... | |
| label | sys_system_table |
| label | sys_system |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_shutdown |
| ---------------------------------------------------------------------------— 18.9 = system shutdown More... | |
| label | shutdown_processes |
| label | is_kernel_thread |
| ---------------------------------------------------------------------------— in: eax – APPDATA ptr out: Z/z – is/not kernel thread More... | |
| label | sysfn_terminate |
| ---------------------------------------------------------------------------— 18.2 = TERMINATE More... | |
| label | sysfn_terminate2 |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_deactivate |
| ---------------------------------------------------------------------------— 18.1 = DEACTIVATE WINDOW More... | |
| label | sysfn_activate |
| ---------------------------------------------------------------------------— 18.3 = ACTIVATE WINDOW More... | |
| label | sysfn_zmodif |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_getidletime |
| ---------------------------------------------------------------------------— 18.4 = GET IDLETIME More... | |
| label | sysfn_getcpuclock |
| ---------------------------------------------------------------------------— 18.5 = GET TSC/SEC More... | |
| label | get_cpu_freq |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_getactive |
| label | sysfn_sound_flag |
| ---------------------------------------------------------------------------— 18.8 = get/set sound_flag More... | |
| label | sysfn_minimize |
| ---------------------------------------------------------------------------— 18.10 = minimize window More... | |
| label | sysfn_getdiskinfo |
| ---------------------------------------------------------------------------— 18.11 = get disk info table More... | |
| label | sysfn_getversion |
| ---------------------------------------------------------------------------— 18.13 = get kernel ID and version More... | |
| label | sysfn_waitretrace |
| ---------------------------------------------------------------------------— 18.14 = sys wait retrace More... | |
| label | sysfn_centermouse |
| ---------------------------------------------------------------------------— 18.15 = mouse centered More... | |
| label | sysfn_mouse_acceleration |
| ---------------------------------------------------------------------------— 18.19 = set/get mouse features More... | |
| label | sysfn_getfreemem |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_getallmem |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_pid_to_slot |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_min_rest_window |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_min_windows |
| ---------------------------------------------------------------------------— More... | |
| label | sysfn_set_screen_sizes |
| ---------------------------------------------------------------------------— More... | |
| RECT | screen_workarea |
| dd | display_width_standard |
| dd | display_height_standard |
| db | do_not_touch_winmap |
| db | window_minimize |
| db | sound_flag |
| label | version_inf |
| dd | _rev |
| label | sys_cachetodiskette |
| ---------------------------------------------------------------------------— More... | |
| label | sys_cpuusage |
| ---------------------------------------------------------------------------— More... | |
| label | sys_redrawstat |
| redraw status More... | |
| label | sheduler |
| label | sys_sheduler |
| label | cache_disable |
| label | cache_enable |
| label | is_cache_enabled |
| label | modify_pce |
| db | cpustring |
| db | background_defined |
| diamond, 11.04.2006 More... | |
| label | checkmisc |
| --------------------------------------------------------------------------— More... | |
| label | backgr |
| -----------------------------------— More... | |
| label | set_bgr_event |
| -----------------------------------— More... | |
| label | nobackgr |
| -----------------------------------— More... | |
| label | markz |
| -----------------------------------— More... | |
| label | no_mark_system_shutdown |
| label | noshutdown |
| -----------------------------------— More... | |
| label | newct |
| -----------------------------------— More... | |
| label | redrawscreen |
| --------------------------------------------------------------------------— eax - ptr to WDATA More... | |
| label | newdw2 |
| -----------------------------------— More... | |
| label | bgli |
| -----------------------------------— More... | |
| label | newdw8 |
| -----------------------------------— More... | |
| label | nobgrd |
| label | ricino |
| -----------------------------------— More... | |
| label | not_this_task |
| label | calculatebackground |
| --------------------------------------------------------------------------— background More... | |
| dd | imax |
| label | delay_ms |
| --------------------------------------------------------------------------— delay in 1/1000 sec More... | |
| label | set_app_param |
| --------------------------------------------------------------------------— More... | |
| label | delay_hs |
| delay in 1/100 secs More... | |
| label | memmove |
| --------------------------------------------------------------------------— very often call this subrutine memory move in bytes More... | |
| label | set_io_access_rights |
| in: eax = port ebp = subfunction 0 - set access 1 - clear access out: not return value More... | |
| label | r_f_port_area |
| reserve/free group of ports eax = 46 - number function ebx = 0 - reserve, 1 - free ecx = number start arrea of ports edx = number end arrea of ports (include last number of port) Return value: eax = 0 - succesful eax = 1 - error The system has reserve this ports: 0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (include last number of port). destroys eax,ebx, ebp More... | |
| label | drawbackground |
| --------------------------------------------------------------------------— More... | |
| label | syscall_putimage |
| --------------------------------------------------------------------------— PutImage More... | |
| label | sys_putimage |
| label | sys_putimage_bpp |
| -----------------------------------— More... | |
| label | sys_putimage_palette |
| label | put_mono_image |
| --------------------------------------------------------------------------— More... | |
| label | put_2bit_image |
| --------------------------------------------------------------------------— More... | |
| label | put_4bit_image |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init24bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init8bpp |
| label | putimage_init9bpp |
| label | putimage_get24bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get8bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get9bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init1bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get1bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init2bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get2bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init4bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get4bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init32bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get32bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init15bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_init16bpp |
| label | putimage_get15bpp |
| --------------------------------------------------------------------------— More... | |
| label | putimage_get16bpp |
| --------------------------------------------------------------------------— More... | |
| label | _rdtsc |
| label | sys_msg_board_str |
| label | sys_msg_board_byte |
| label | sys_msg_board_word |
| label | sys_msg_board_dword |
| rb | msg_board_data |
| dd | msg_board_count |
| dd | msg_board_pos |
| for printing debug output on the screen More... | |
| label | sys_msg_board |
| label | f61call |
| label | sys_gs |
| direct screen access More... | |
| label | syscall_getscreensize |
| GetScreenSize. More... | |
| label | syscall_cdaudio |
| --------------------------------------------------------------------------— More... | |
| label | syscall_getpixel_WinMap |
| --------------------------------------------------------------------------— GetPixel WinMap More... | |
| label | syscall_getpixel |
| --------------------------------------------------------------------------— GetPixel More... | |
| label | syscall_getarea |
| --------------------------------------------------------------------------— More... | |
| label | syscall_threads |
| label | calculate_fast_getting_offset_for_WinMapAddress |
| ---------------------------------------------------------------------------— More... | |
| label | calculate_fast_getting_offset_for_LFB |
| ---------------------------------------------------------------------------— More... | |
| label | set_screen |
| ---------------------------------------------------------------------------— More... | |
| dp | apm_entry |
| dd | apm_vf |
| label | sys_apm |
| label | undefined_syscall |
| Undefined system call. More... | |
| void delay_hs_unprotected | ( | ) |
this is for syscall
| void is_region_userspace | ( | dword | base, |
| dword | len | ||
| ) |
Check if given memory region lays in lower 2gb (userspace memory) or not.
| base | Base address of region |
| len | Lenght of region |
| void is_string_userspace | ( | dword | base | ) |
Check whether given string lays in userspace memory, i.e. below OS_BASE.
| base | Base address of string |
| void osloop_has_work | ( | ) |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MAIN OS LOOP END ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
| void setup_os_slot | ( | ) |
in: edx -> APPDATA for OS/IDLE slot in: ebx = stack base
| void syscall_reserveportarea | ( | arg_t | edx, |
| arg_t | ecx, | ||
| arg_t | ebx, | ||
| arg_t | eax | ||
| ) |
ReservePortArea and FreePortArea.
| edx | number end arrea of ports (include last number of port) |
| ecx | number start arrea of ports |
| ebx | sub function 0 - reserve, 1 - free |
| eax | 46 - number function |
| void wakeup_osloop | ( | ) |
| fix __DEBUG__ |
| fix __DEBUG_LEVEL__ |
| label _rdtsc |
| dd _rev |
| label ahci_code_end |
| label ap_init16 |
| label ap_init_high |
| dd ap_initialized |
| dp apm_entry |
| dd apm_vf |
| label B32 |
| label backgr |
-----------------------------------—
| db background_defined |
| label bgli |
-----------------------------------—
| dd bios32_entry |
| label boot_log |
| label cache_disable |
| label cache_enable |
| label calculate_fast_getting_offset_for_LFB |
---------------------------------------------------------------------------—
| label calculate_fast_getting_offset_for_WinMapAddress |
---------------------------------------------------------------------------—
| label calculatebackground |
--------------------------------------------------------------------------— background
| label checkmisc |
--------------------------------------------------------------------------—
| db cpustring |
| dd cr3_ap |
| dd cr4_ap |
| db debug_direct_print |
The following variable, if equal to 1, duplicates debug output to the screen.
| label delay_hs |
| label delay_ms |
--------------------------------------------------------------------------— delay in 1/1000 sec
| dd display_height_standard |
| label display_number |
| label display_number_force |
| dd display_width_standard |
| label division_64_bits |
| db do_not_touch_winmap |
| label draw_num_text |
| label drawbackground |
--------------------------------------------------------------------------—
| label f61call |
| label first_app_found |
| label gdts_ap |
| label get_cpu_freq |
---------------------------------------------------------------------------—
| label get_timer_ticks |
--------------------------------------------------------------------------—
| label high_code |
| rb idle_addr |
| label idle_loop |
The following code can be executed by all CPUs in the system. All other parts of the kernel do not expect multi-CPU. Also, APs don't even have a stack here. Beware. Don't do anything here. Anything at all.
| label idle_thread |
| dd imax |
| label is_cache_enabled |
| label is_kernel_thread |
---------------------------------------------------------------------------— in: eax – APPDATA ptr out: Z/z – is/not kernel thread
| db launcher_start |
Start the first app (LAUNCHER) after kernel is loaded? (1=yes, 2 or 0=no)
| label markz |
-----------------------------------—
| label memmove |
--------------------------------------------------------------------------— very often call this subrutine memory move in bytes
| label modify_pce |
| dd msg_board_count |
| rb msg_board_data |
| dd msg_board_pos |
| label newct |
-----------------------------------—
| label newdw2 |
-----------------------------------—
| label newdw8 |
-----------------------------------—
| label no_lib_load |
| label no_mark_system_shutdown |
| label no_pal_ega |
| label no_pal_vga |
| label nobackgr |
-----------------------------------—
| label nobgrd |
| label normalize_number |
| label noshutdown |
-----------------------------------—
| label not_this_task |
| label osloop |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; MAIN OS LOOP START ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
| dd osloop_nonperiodic_work |
| dd process_number |
| label ps2_keyboard_functions |
| label put_2bit_image |
--------------------------------------------------------------------------—
| label put_4bit_image |
--------------------------------------------------------------------------—
| label put_mono_image |
--------------------------------------------------------------------------—
| label putimage_get15bpp |
--------------------------------------------------------------------------—
| label putimage_get16bpp |
--------------------------------------------------------------------------—
| label putimage_get1bpp |
--------------------------------------------------------------------------—
| label putimage_get24bpp |
--------------------------------------------------------------------------—
| label putimage_get2bpp |
--------------------------------------------------------------------------—
| label putimage_get32bpp |
--------------------------------------------------------------------------—
| label putimage_get4bpp |
--------------------------------------------------------------------------—
| label putimage_get8bpp |
--------------------------------------------------------------------------—
| label putimage_get9bpp |
--------------------------------------------------------------------------—
| label putimage_init15bpp |
--------------------------------------------------------------------------—
| label putimage_init16bpp |
| label putimage_init1bpp |
--------------------------------------------------------------------------—
| label putimage_init24bpp |
--------------------------------------------------------------------------—
| label putimage_init2bpp |
--------------------------------------------------------------------------—
| label putimage_init32bpp |
--------------------------------------------------------------------------—
| label putimage_init4bpp |
--------------------------------------------------------------------------—
| label putimage_init8bpp |
| label putimage_init9bpp |
| label r_f_port_area |
reserve/free group of ports eax = 46 - number function ebx = 0 - reserve, 1 - free ecx = number start arrea of ports edx = number end arrea of ports (include last number of port) Return value: eax = 0 - succesful eax = 1 - error The system has reserve this ports: 0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (include last number of port). destroys eax,ebx, ebp
| label redrawscreen |
--------------------------------------------------------------------------— eax - ptr to WDATA
| label register_ramdisk |
--------------------------------------------------------------------------— Register ramdisk file system
| label reserve_irqs_ports |
| label restore_default_cursor_before_killing |
---------------------------------------------------------------------------— ecx - ptr WDATA
| label ricino |
-----------------------------------—
| RECT screen_workarea |
| label set_app_param |
--------------------------------------------------------------------------—
| label set_bgr_event |
-----------------------------------—
| label set_io_access_rights |
in: eax = port ebp = subfunction 0 - set access 1 - clear access out: not return value
| label set_screen |
---------------------------------------------------------------------------—
| label set_variables |
| label sheduler |
| label shutdown_processes |
| db sound_flag |
| label sys_apm |
| label sys_cachetodiskette |
---------------------------------------------------------------------------—
| label sys_cpuusage |
---------------------------------------------------------------------------—
| label sys_end |
--------------------------------------------------------------------------—
| label sys_getsetup |
--------------------------------------------------------------------------—
| label sys_gs |
direct screen access
| label sys_msg_board |
| label sys_msg_board_byte |
| label sys_msg_board_dword |
| label sys_msg_board_str |
| label sys_msg_board_word |
| label sys_putimage |
| label sys_putimage_bpp |
-----------------------------------—
| label sys_putimage_palette |
| label sys_redrawstat |
redraw status
| label sys_setup |
--------------------------------------------------------------------------—
| label sys_sheduler |
| label sys_system |
---------------------------------------------------------------------------—
| label sys_system_table |
| label syscall_cdaudio |
--------------------------------------------------------------------------—
| label syscall_getarea |
--------------------------------------------------------------------------—
| label syscall_getpixel |
--------------------------------------------------------------------------— GetPixel
| label syscall_getpixel_WinMap |
--------------------------------------------------------------------------— GetPixel WinMap
| label syscall_getscreensize |
GetScreenSize.
| label syscall_putimage |
--------------------------------------------------------------------------— PutImage
| label syscall_threads |
| label sysfn_activate |
---------------------------------------------------------------------------— 18.3 = ACTIVATE WINDOW
| label sysfn_centermouse |
---------------------------------------------------------------------------— 18.15 = mouse centered
| label sysfn_deactivate |
---------------------------------------------------------------------------— 18.1 = DEACTIVATE WINDOW
| label sysfn_getactive |
| label sysfn_getallmem |
---------------------------------------------------------------------------—
| label sysfn_getcpuclock |
---------------------------------------------------------------------------— 18.5 = GET TSC/SEC
| label sysfn_getdiskinfo |
---------------------------------------------------------------------------— 18.11 = get disk info table
| label sysfn_getfreemem |
---------------------------------------------------------------------------—
| label sysfn_getidletime |
---------------------------------------------------------------------------— 18.4 = GET IDLETIME
| label sysfn_getversion |
---------------------------------------------------------------------------— 18.13 = get kernel ID and version
| label sysfn_min_rest_window |
---------------------------------------------------------------------------—
| label sysfn_min_windows |
---------------------------------------------------------------------------—
| label sysfn_minimize |
---------------------------------------------------------------------------— 18.10 = minimize window
| label sysfn_mouse_acceleration |
---------------------------------------------------------------------------— 18.19 = set/get mouse features
| label sysfn_pid_to_slot |
---------------------------------------------------------------------------—
| label sysfn_set_screen_sizes |
---------------------------------------------------------------------------—
| label sysfn_shutdown |
---------------------------------------------------------------------------— 18.9 = system shutdown
| label sysfn_sound_flag |
---------------------------------------------------------------------------— 18.8 = get/set sound_flag
| label sysfn_terminate |
---------------------------------------------------------------------------— 18.2 = TERMINATE
| label sysfn_terminate2 |
---------------------------------------------------------------------------—
| label sysfn_waitretrace |
---------------------------------------------------------------------------— 18.14 = sys wait retrace
| label sysfn_zmodif |
---------------------------------------------------------------------------—
| dd tmp_page_tabs |
| label undefined_syscall |
Undefined system call.
| db use_mwait_for_idle |
| label version_inf |
| db window_minimize |