;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; RDOS operating system
; Copyright (C) 1988-2000, Leif Ekblad
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version. The only exception to this rule
; is for commercial usage in embedded systems. For information on
; usage in commercial embedded systems, contact embedded@rdos.net
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program; if not, write to the Free Software
; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
;
; The author of this program may be contacted at leif@rdos.net
;
; DRIVER.DEF
; Device driver fixed GDT selectors. All selectors must be in the
; range 400h-0FFFh and the least 3 significant bits should be 0
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;
; GDT system selectors
;

;
; do not change order for this, used in boot loader
;
idt_sel				EQU 8
gdt_sel				EQU 10h
device_code_sel		EQU 18h
flat_sel			EQU 20h

system_data_sel		EQU 28h
kernel_code			EQU 30h
;
shutdown_code_sel	EQU 38h

;
; processor core selector
;

core_data_sel       EQU 40h

double_tss_sel      EQU 48h
double_tss_data_sel EQU 50h

;
; used in kernel and device-drivers only
;

shutdown_pretask_gate	EQU 68h
;
process_sel			EQU 70h
core_save_sel       EQU 78h
core_image_sel      EQU 80h
temp_sel			EQU 88h
;
tss_data_sel        EQU 90h
shutdown_task_gate	EQU 98h
phys_bit_sel        EQU 0A0h
;
acpi_data_sel       EQU 0A8h
;
mem_sel				EQU 0B0h
small_mem_sel		EQU 0B8h
local_mem_sel		EQU 0C0h
local_linear_sel	EQU 0C8h
;
dosb800				EQU 0D0h
bios_data			EQU 0D8h
proc_data_sel		EQU 0E0h
swap_data_sel       EQU 0E8h
;
task_code_sel		EQU 0F0h
task_data_sel		EQU 0F8h
;
event_def_sel		EQU 100h
event_list_sel		EQU 108h
;
hook_in_sel			EQU 110h
hook_out_sel		EQU 118h
;
osgate_sel			EQU 120h
usergate_sel		EQU 128h
;
raw_switch_sel16	EQU 130h
;
virt_thread_sel		EQU 138h
;
random_proc_sel     EQU 140h
;
term_code_sel		EQU 14Bh
state_data_sel		EQU 150h
io_bitmap_sel		EQU 158h
;
multicore_code_sel  EQU 160h
multicore_data_sel  EQU 168h
;
kernel_tss			EQU 178h
virt_tss			EQU 180h
kernel_stack		EQU 188h
;
env_proc_sel        EQU 190h
;
long_kernel_code_sel    EQU 1A0h
long_kernel_data_sel    EQU 1A8h
;
flat_code_sel		EQU 1B3h
flat_data_sel		EQU 1BBh
;
virt_idt_sel		EQU 1C0h
;
fault_sector_sel    EQU 1C8h
;
std_dev_process_sel EQU 1D0h
;
kernel32_code		EQU 1D8h
int_data_sel		EQU 1E0h
def_exception_sel	EQU 1E8h
;
vm_linear_sel		EQU 1F0h
vm_int_sel			EQU 1F8h

long_user_data_sel  EQU 203h
long_user_code_sel  EQU 20Bh
;
callb_exc16_sel		EQU 213h
callb_exc32_sel		EQU 21Bh
callb_int16_sel		EQU 223h
callb_int32_sel		EQU 22Bh
callb_vm16_sel		EQU 233h
callb_vm32_sel		EQU 23Bh
;
irq_data_sel		EQU 240h

long_ldt_sel        EQU 248h

__0000				EQU 253h
__0040				EQU 25Bh
__B000				EQU 263h
__B800				EQU 26Bh
__F000				EQU 273h

app_data_sel		EQU 278h

__A000				EQU 283h
__C000				EQU 28Bh

handle_sel			EQU 290h
handle_mem_sel		EQU 298h
handle_data_sel		EQU 2A0h
long_mem_sel        EQU 2A8h        

sys_dir_sel			EQU 2B0h
sys_page_sel		EQU 2B8h
process_dir_sel		EQU 2C0h
process_page_sel	EQU 2C8h

sched_code_sel      EQU 2D0h
sched_data_sel      EQU 2D8h

;
; GDT selectors device-driver selectors
;
;
exec_code_sel       EQU 3F0h
exec_data_sel		EQU 3F8h

guidev_code_sel     EQU 400h
guidev_data_sel     EQU 408h

audio_code_sel      EQU 410h
audio_data_sel      EQU 418h

fat_code_sel		EQU 420h
rdfs_code_sel		EQU 428h

pcfont_data_sel     EQU 430h
mon_video_data_sel	EQU 438h

mail_code_sel		EQU 440h

real_text_sel       EQU 448h

mon_video_code_sel	EQU 450h
video_pos_sel		EQU 458h

keymap_code_sel     EQU 460h
keymap_data_sel     EQU 468h

dos_process_sel		EQU 470h
dos_vm_sel			EQU 47Bh

kdebug_code_sel		EQU 480h
kdebug_data_sel		EQU 488h

ac97_code_sel       EQU 490h
pcbios_proc_sel     EQU 498h

pcbios_code_sel		EQU 4A0h
pcbios_data_sel		EQU 4A8h

key_focus_sel		EQU 4B0h
key_local_sel		EQU 4B8h

video_state_focus_sel	EQU 4C0h
video_state_local_sel	EQU 4C8h

mouse_local_sel		EQU 4D0h
mouse_focus_sel		EQU 4D8h

dosemu_code_sel     EQU 4E0h
dosemu_data_sel     EQU 4E8h

pci_code_sel		EQU 4F0h
pci_data_sel		EQU 4F8h

dpmi_data_sel		EQU 500h
raw_switch_sel		EQU 50Bh

dpmi_code16_sel		EQU 510h
dpmi_code32_sel		EQU 518h

state_save_sel		EQU 523h

discbuf_code_sel	EQU 530h

emulator_code_sel	EQU 540h
emulator_data_sel	EQU 548h

sernet_code_sel		EQU 550h
sernet_data_sel		EQU 558h

ip_code_sel			EQU 560h
ip_data_sel			EQU 568h

env_code_sel        EQU 570h

socket_code_sel		EQU 580h
socket_data_sel		EQU 588h

smp_deb_code_sel    EQU 590h
smp_deb_data_sel    EQU 598h

ems_process_sel		EQU 5A0h

fs_code_sel			EQU 5B0h
fs_data_sel			EQU 5B8h
fs_sys_data_sel     EQU 5C0h
fs_process_sel		EQU 5C8h

rem_debug_code_sel  EQU 5D0h
rem_debug_data_sel  EQU 5D8h

debug_code_sel		EQU 5F0h
test_sel			EQU 5F8h

disc_drive_sel		EQU 608h

mail_local_sel		EQU 610h
mail_global_sel		EQU 618h

mousedev_code_sel	EQU 620h
mousedev_data_sel	EQU 628h

disc_code_sel		EQU 630h
disc_data_sel		EQU 638h

elf_code_sel		EQU 640h

debug_tss_sel		EQU 650h

cd_code_sel			EQU 660h
cd_data_sel			EQU 668h

net_code_sel		EQU 670h
net_data_sel		EQU 678h
net_mem_sel			EQU 680h

focus_process_sel   EQU 688h

pnp_code_sel        EQU 690h
pnp_data_sel        EQU 698h

video_mem_focus_sel	EQU 6A0h
video_mem_local_sel	EQU 6A8h

video_x_focus_sel	EQU 6B0h
video_x_local_sel	EQU 6B8h

rs485_code_sel		EQU 6C0h
rs485_data_sel		EQU 6C8h
rs485_task_sel		EQU 6D0h

serial_code_sel		EQU 6E0h
serial_data_sel		EQU 6E8h

rtc_code_sel		EQU 6F0h
rtc_data_sel		EQU 6F8h

state_code_sel		EQU 700h

font_code_sel		EQU 710h
font_data_sel		EQU 718h

floppy_code_sel		EQU 720h
floppy_data_sel		EQU 728h

printer_code_sel	EQU 730h
printer_data_sel    EQU 738h

xms_local_sel		EQU 740h

com_code_sel		EQU 750h
com_data_sel        EQU 758h

ramdrive_process_sel EQU 780h
flashfs_code_sel	EQU 788h

ne_code_sel			EQU 790h
pe_code_sel			EQU 7A0h

ether_code_sel		EQU 7B0h
ether_data_sel		EQU 7B8h
ether_mem_sel		EQU 7C0h

ppp_code_sel		EQU 7D0h
ppp_data_sel		EQU 7D8h

ide_code_sel		EQU 7F0h
ide_data_sel        EQU 7F8h
ide_data_sel1		EQU 800h
ide_data_sel2		EQU 808h

ipc_code_sel		EQU 810h
ipc_data_sel		EQU 818h

ether_data2_sel		EQU 820h

lon_code_sel        EQU 830h
lon_data_sel        EQU 838h

v86_bios_ds_sel		EQU 840h
v86_bios_es_sel		EQU 848h

video_proc_sel		EQU 860h
video_local_sel		EQU 870h
video_focus_sel		EQU 878h

piclcd_code_sel     EQU 880h
piclcd_data_sel     EQU 888h

vga_code_sel	    EQU 8A0h
vga_data_sel	    EQU 8A8h

power_code_sel      EQU 8C0h
power_data_sel      EQU 8C8h

pckey_code_sel      EQU 8D0h
pckey_data_sel      EQU 8D8h

anio_code_sel		EQU 8F0h
flash_disc_sel      EQU 8F8h

ser_key_code_sel    EQU 900h
ser_key_data_sel    EQU 908h

dcf_code_sel		EQU 910h
dcf_data_sel		EQU 918h

digio_code_sel		EQU 920h
digio_data_sel		EQU 928h

flash_disc_code_sel	EQU 940h
flash_disc_data_sel	EQU 948h

bsp_code_sel        EQU 960h
bsp_data_sel        EQU 968h

touch_code_sel      EQU 970h
touch_data_sel      EQU 978h

uhci_code_sel       EQU 980h
uhci_data_sel       EQU 988h

usb_code_sel        EQU 990h
usb_data_sel        EQU 998h

stdcom_code_sel     EQU 9A0h
stdcom_data_sel     EQU 9A8h

usbcom_code_sel     EQU 9B0h
usbcom_data_sel     EQU 9B8h

ohci_code_sel       EQU 9C0h
ohci_data_sel       EQU 9C8h

ir_code_sel         EQU 9D0h
ir_data_sel         EQU 9D8h

audio_dev_code_sel  EQU 9E0h
audio_dev_data_sel  EQU 9E8h

hub_code_sel        EQU 9F0h
hub_data_sel        EQU 9F8h

wd_code_sel         EQU 0A00h
wd_data_sel         EQU 0A08h

hid_code_sel        EQU 0A20h
hid_data_sel        EQU 0A28h

ehci_code_sel       EQU 0A30h
ehci_data_sel       EQU 0A38h

apic_code_sel       EQU 0A40h
apic_data_sel       EQU 0A48h
apic_mem_sel        EQU 0A50h

pic_code_sel        EQU 0A60h
pic_data_sel        EQU 0A68h

util_code_sel       EQU 0A70h
util_data_sel       EQU 0A78h

usb_print_code_sel  EQU 0A80h
usb_print_data_sel  EQU 0A88h

load_device32_sel   EQU 0A90h

ahci_code_sel       EQU 0AA0h
ahci_data_sel       EQU 0AA8h

freetype_code_sel   EQU 0AB0h
freetype_data_sel   EQU 0AB8h

wh1080_code_sel     EQU 0AC0h
wh1080_data_sel     EQU 0AC8h

ser_print_code_sel  EQU 0AD0h
ser_print_data_sel  EQU 0AD8h

ini_file_code_sel   EQU 0AE0h
ini_file_data_sel   EQU 0AE8h

tibbo_code_sel      EQU 0AF0h
tibbo_data_sel      EQU 0AF8h

acpi_code_sel       EQU 0B00h
;acpi_data_sel      EQU 0B08h

carddev_code_sel    EQU 0B10h
carddev_data_sel    EQU 0B18h

long_dev_code_sel       EQU 0B20h

tlist_code_sel      EQU 0B30h
tlist_data_sel      EQU 0B38h

sd_card_code_sel    EQU 0B40h
sd_card_data_sel    EQU 0B48h

usb_disc_code_sel   EQU 0B50h
usb_disc_data_sel   EQU 0B58h

can_code_sel        EQU 0B60h
can_data_sel        EQU 0B68h

can_com_code_sel    EQU 0B70h
can_com_data_sel    EQU 0B78h

xhci_code_sel       EQU 0B80h
xhci_data_sel       EQU 0B88h
xhci_hcc_sel        EQU 0B90h
xhci_reg_sel        EQU 0B98h
xhci_port_sel       EQU 0BA0h
xhci_db_sel         EQU 0BA8h
xhci_rts_sel        EQU 0BB0h
xhci_device_ptr_sel EQU 0BB8h
xhci_cmd_ring_sel   EQU 0BC0h
xhci_event_ring_sel EQU 0BC8h

ssl_code_sel        EQU 0BD0h
ssl_data_sel        EQU 0BD8h

bignum_code_sel     EQU 0BE0h
bignum_data_sel     EQU 0BE8h

debug_dev32_code_sel    EQU 0EF0h
debug_dev32_data_sel    EQU 0EF8h

video_page0_sel		EQU 0F00h
video_page1_sel		EQU 0F08h
video_page2_sel		EQU 0F10h
video_page3_sel		EQU 0F18h
video_page4_sel		EQU 0F20h
video_page5_sel		EQU 0F28h
video_page6_sel		EQU 0F30h
video_page7_sel		EQU 0F38h
