;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 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
;
; PROTSEG.DEF
; GDT selectors and linear address space definitions
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

idt_size                EQU 800h
ldt_size                EQU 200h

k_data_size             EQU 2000h
l_stack_size            EQU 2000h
thread_data_size        EQU 0FFFFh

stack0_size             EQU 1000h

;
; physical address space
;

core_save_phys          EQU 00011EC00h

;
; linear address space
;

video_local_linear      EQU 0000A0000h
ems_linear              EQU 0000D0000h
fixed_vm_linear         EQU 0000E0000h
vm_linear               EQU 0000E1000h

long_map_linear         EQU 000110000h
long_idt_linear         EQU 00011F000h
long_map_size           EQU 000010000h

local_page_linear       EQU 000200000h

serv_alloc_linear       EQU 040000000h

boot_efi_linear         EQU 040000000h

long_buf_linear         EQU 040000000h
long_buf_size           EQU 07F000000h

serv_linear             EQU 080000000h
serv_size               EQU 038000000h

serv_byte_linear        EQU 0B8000000h
serv_byte_size          EQU 004000000h

flat_size               EQU 0BE000000h

system_mem_start        EQU 0BE000000h

long_section_alias      EQU 0BEE00000h

handle_linear           EQU 0BF000000h
long_process_linear     EQU 0BF400000h

long_alloc_section      EQU 0BF7EFFE8h
long_alloc_base         EQU 0BF7EFFF0h
long_ldt_spinlock       EQU 0BF7EFFF8h
long_ldt_linear         EQU 0BF7F0000h

process_page_linear     EQU 0BF800000h

sys_page_linear         EQU 0C0000000h

ssl_linear              EQU 0C1000000h
ssl_size                EQU 000100000h

global_byte_linear      EQU 0C1100000h
global_byte_size        EQU 006F00000h

global_page_linear      EQU 0C8000000h
global_page_size        EQU 032000000h

fixed_process_linear    EQU 0FA000000h
fixed_process_size      EQU 001000000h

phys_bitmap_linear      EQU 0FB000000h

alias_linear            EQU 0FD800000h

video_focus_linear      EQU 0FE000000h

page0_linear            EQU 0FE022000h
gdt_core_linear         EQU 0FE023000h
gdt_linear              EQU 0FE024FB8h      ; this address must be aligned to core_data_sel
system_linear           EQU 0FE035000h
system_linear_size      EQU 000F7B000h

serv_gate_linear        EQU 0FEFB0000h
osgate_linear           EQU 0FEFC0000h
usergate_linear         EQU 0FEFD0000h

kernel_linear           EQU 0FF000000h

long_code_linear        EQU 018000000000h
long_code_size          EQU 007FC0000000h

long_section_linear     EQU 01FFC0000000h
long_section_size       EQU 000000200000h

long_stack_linear       EQU 020000000000h
long_stack_size         EQU 060000000000h

long_ldata_linear       EQU 080000000000h
long_ldata_size         EQU 080000000000h
