mirror of
https://github.com/reactos/reactos.git
synced 2025-07-14 12:54:13 +00:00
Delete cruft
svn path=/trunk/; revision=14783
This commit is contained in:
parent
7f7e3e1cf6
commit
9a7799d8b8
3 changed files with 0 additions and 514 deletions
|
@ -332,7 +332,6 @@ OBJECTS_KD = \
|
|||
kd/dlog.o \
|
||||
kd/gdbstub.o \
|
||||
kd/kdebug.o \
|
||||
kd/mda.o \
|
||||
kd/service.o
|
||||
|
||||
# User-Mode Debugging (Dbgk)
|
||||
|
|
|
@ -1,131 +0,0 @@
|
|||
/* $Id$
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: ntoskrnl/kd/mda.c
|
||||
* PURPOSE: Support for debugging using an MDA card.
|
||||
*
|
||||
* PROGRAMMERS: David Welch <welch@cwcom.net>
|
||||
*/
|
||||
|
||||
/* INCLUDES ******************************************************************/
|
||||
|
||||
#include <ntoskrnl.h>
|
||||
#include <internal/kdb.h>
|
||||
|
||||
/* VARIABLES ***************************************************************/
|
||||
|
||||
STATIC ULONG MdaIndexPort;
|
||||
STATIC ULONG MdaValuePort;
|
||||
STATIC ULONG MdaStatusPort;
|
||||
STATIC ULONG MdaGfxPort;
|
||||
STATIC ULONG MdaModePort;
|
||||
STATIC PUSHORT VideoBuffer;
|
||||
|
||||
#define MDA_COLUMNS (80)
|
||||
#define MDA_LINES (25)
|
||||
|
||||
STATIC ULONG MdaCursorX, MdaCursorY;
|
||||
|
||||
/* PRIVATE FUNCTIONS ********************************************************/
|
||||
|
||||
#if 0
|
||||
VOID STATIC
|
||||
KdWriteByteMDA(ULONG Reg, ULONG Value)
|
||||
{
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaIndexPort, (CHAR)Reg);
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaValuePort, (CHAR)Value);
|
||||
}
|
||||
|
||||
VOID STATIC
|
||||
KdWriteWordMDA(ULONG Reg, ULONG Value)
|
||||
{
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaIndexPort, (CHAR)Reg);
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaValuePort, (CHAR)(Value >> 8));
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaIndexPort, (CHAR)(Reg + 1));
|
||||
WRITE_PORT_UCHAR((PUCHAR)MdaValuePort, (CHAR)(Value & 0xFF));
|
||||
}
|
||||
#endif
|
||||
|
||||
VOID
|
||||
KdInitializeMda(VOID)
|
||||
{
|
||||
/* Setup the variables for the various port addresses. */
|
||||
MdaIndexPort = 0x3b4;
|
||||
MdaValuePort = 0x3b5;
|
||||
MdaModePort = 0x3b8;
|
||||
MdaStatusPort = 0x3ba;
|
||||
MdaGfxPort = 0x3bf;
|
||||
|
||||
VideoBuffer = (PUSHORT)(0xff3b0000);
|
||||
|
||||
MdaCursorX = MdaCursorY = 0;
|
||||
}
|
||||
|
||||
VOID STATIC
|
||||
KdScrollMda(VOID)
|
||||
{
|
||||
memmove(&VideoBuffer[(MDA_COLUMNS * 0) + 0],
|
||||
&VideoBuffer[(MDA_COLUMNS * 1) + 0],
|
||||
MDA_COLUMNS * (MDA_LINES - 1) * 2);
|
||||
memset(&VideoBuffer[(MDA_COLUMNS * (MDA_LINES - 1)) + 0], 0,
|
||||
MDA_COLUMNS * 2);
|
||||
}
|
||||
|
||||
VOID STATIC
|
||||
KdPutCharMda(CHAR Ch)
|
||||
{
|
||||
if (Ch == '\n')
|
||||
{
|
||||
if (MdaCursorY == (MDA_LINES - 1))
|
||||
{
|
||||
KdScrollMda();
|
||||
}
|
||||
else
|
||||
{
|
||||
MdaCursorY++;
|
||||
}
|
||||
MdaCursorX = 0;
|
||||
return;
|
||||
}
|
||||
VideoBuffer[(MdaCursorY * MDA_COLUMNS) + MdaCursorX] = (Ch & 0xFF) | 0x0700;
|
||||
MdaCursorX++;
|
||||
if (MdaCursorX == (MDA_COLUMNS - 1))
|
||||
{
|
||||
if (MdaCursorY == (MDA_LINES - 1))
|
||||
{
|
||||
KdScrollMda();
|
||||
}
|
||||
else
|
||||
{
|
||||
MdaCursorY++;
|
||||
}
|
||||
MdaCursorX = 0;
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
KdPrintMda(PCH pch)
|
||||
{
|
||||
while((*pch) != 0)
|
||||
{
|
||||
if ((*pch) == '\t')
|
||||
{
|
||||
KdPutCharMda(' ');
|
||||
KdPutCharMda(' ');
|
||||
KdPutCharMda(' ');
|
||||
KdPutCharMda(' ');
|
||||
}
|
||||
if ((*pch) == '\r')
|
||||
{
|
||||
/* Nothing. */
|
||||
}
|
||||
else
|
||||
{
|
||||
KdPutCharMda(*pch);
|
||||
}
|
||||
pch++;
|
||||
}
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -1,382 +0,0 @@
|
|||
#include <roscfg.h>
|
||||
#include <internal/ntoskrnl.h>
|
||||
#include <internal/i386/ke.h>
|
||||
#include <internal/i386/segment.h>
|
||||
#include <internal/ps.h>
|
||||
#include <internal/i386/mm.h>
|
||||
#include <internal/i386/fpu.h>
|
||||
|
||||
#define MULTIBOOT_HEADER_MAGIC (0x1BADB002)
|
||||
|
||||
#define MULTIBOOT_HEADER_FLAGS (0x00010003)
|
||||
|
||||
#define V2P(x) (x - KERNEL_BASE + 0x200000)
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
#define AP_MAGIC (0x12481020)
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
.globl _NtProcessStartup
|
||||
.globl _start
|
||||
.globl _init_stack
|
||||
.globl _init_stack_top
|
||||
.globl _trap_stack
|
||||
.globl _trap_stack_top
|
||||
.globl _unmap_me
|
||||
.globl _unmap_me2
|
||||
.globl _unmap_me3
|
||||
.globl _unmap_me4
|
||||
.globl _pagetable_start
|
||||
.globl _pagetable_end
|
||||
.globl _pae_pagedirtable
|
||||
|
||||
/*
|
||||
* This is called by the realmode loader, with protected mode
|
||||
* enabled, paging disabled and the segment registers pointing
|
||||
* a 4Gb, 32-bit segment starting at zero.
|
||||
*
|
||||
* EAX = Multiboot magic or application processor magic
|
||||
*
|
||||
* EBX = Points to a structure in lowmem with data from the
|
||||
* loader
|
||||
*/
|
||||
|
||||
_NtProcessStartup:
|
||||
_start:
|
||||
jmp _multiboot_entry
|
||||
|
||||
/* Align 32 bits boundary */
|
||||
.align 4
|
||||
|
||||
/* Multiboot header */
|
||||
multiboot_header:
|
||||
/* magic */
|
||||
.long MULTIBOOT_HEADER_MAGIC
|
||||
/* flags */
|
||||
.long MULTIBOOT_HEADER_FLAGS
|
||||
/* checksum */
|
||||
.long -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS)
|
||||
/* header_addr */
|
||||
.long (0x200000 + multiboot_header - KERNEL_BASE)
|
||||
/* load_addr */
|
||||
.long 0x200000
|
||||
/* load_end_addr */
|
||||
.long (__bss_start__ + 0x200000 - KERNEL_BASE)
|
||||
/* bss_end_addr */
|
||||
.long (__bss_end__ + 0x200000 - KERNEL_BASE)
|
||||
/* entry_addr */
|
||||
.long (0x200000 + _start - KERNEL_BASE)
|
||||
|
||||
_multiboot_entry:
|
||||
/*
|
||||
* This must be PIC because we haven't set up paging yet
|
||||
*/
|
||||
|
||||
/*
|
||||
* Gcc expects this at all times
|
||||
*/
|
||||
cld
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
/*
|
||||
* Save the multiboot or application processor magic
|
||||
*/
|
||||
movl %eax, %edx
|
||||
|
||||
cmpl $AP_MAGIC, %edx
|
||||
je .m1
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
/*
|
||||
* Zero the BSS
|
||||
*/
|
||||
movl %eax, %edx
|
||||
movl $0, %eax
|
||||
movl $__bss_end__, %ecx
|
||||
subl $__bss_start__, %ecx
|
||||
shr $2, %ecx
|
||||
movl $__bss_start__, %edi
|
||||
subl $KERNEL_BASE, %edi
|
||||
addl $0x200000, %edi
|
||||
rep
|
||||
stosl
|
||||
|
||||
/*
|
||||
* Initialize the page directory
|
||||
*/
|
||||
movl $V2P(startup_pagedirectory), %esi
|
||||
movl $(V2P(lowmem_pagetable) + 0x3), 0x0(%esi)
|
||||
movl $(V2P(kernel_pagetable) + 0x3), (KERNEL_BASE >> 20)(%esi)
|
||||
movl $(V2P(kernel_pagetable+4096) + 0x3), ((KERNEL_BASE >> 20) + 4)(%esi)
|
||||
|
||||
movl $(V2P(startup_pagedirectory) + 0x3), 0xF00(%esi)
|
||||
movl $(V2P(hyperspace_pagetable) + 0x3), 0xF08(%esi)
|
||||
#ifdef CONFIG_SMP
|
||||
movl $(V2P(apic_pagetable) + 0x3), 0xFEC(%esi)
|
||||
#endif /* CONFIG_SMP */
|
||||
movl $(V2P(kpcr_pagetable) + 0x3), 0xFF0(%esi)
|
||||
|
||||
/*
|
||||
* Initialize the page table that maps low memory
|
||||
*/
|
||||
movl $V2P(lowmem_pagetable), %esi
|
||||
movl $0x7, %eax
|
||||
movl $0, %edi
|
||||
.l3:
|
||||
movl %eax, (%esi, %edi)
|
||||
addl $0x1000, %eax
|
||||
addl $4, %edi
|
||||
cmpl $4096, %edi
|
||||
jl .l3
|
||||
|
||||
/*
|
||||
* Initialize the page table that maps kernel memory
|
||||
*/
|
||||
movl $V2P(kernel_pagetable), %esi
|
||||
movl $0x200003, %eax
|
||||
movl $0, %edi
|
||||
.l4:
|
||||
movl %eax, (%esi, %edi)
|
||||
addl $0x1000, %eax
|
||||
addl $4, %edi
|
||||
cmpl $6144, %edi
|
||||
jl .l4
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
/*
|
||||
* Initialize the page table that maps the APIC register address space
|
||||
*/
|
||||
|
||||
/*
|
||||
* FIXME: APIC register address space can be non-standard so do the
|
||||
* mapping later
|
||||
*/
|
||||
movl $V2P(apic_pagetable), %esi
|
||||
movl $0, %edi
|
||||
movl $0xFEC0001B, %eax
|
||||
movl %eax, (%esi, %edi)
|
||||
movl $0x800, %edi
|
||||
movl $0xFEE0001B, %eax
|
||||
movl %eax, (%esi, %edi)
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
/*
|
||||
* Initialize the page table that maps the initial KPCR (at FF000000)
|
||||
*/
|
||||
movl $V2P(kpcr_pagetable), %esi
|
||||
movl $0, %edi
|
||||
movl $0x1003, %eax
|
||||
movl %eax, (%esi, %edi)
|
||||
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
.m1:
|
||||
/*
|
||||
* Check for pae mode (only possible for an application processor)
|
||||
*/
|
||||
|
||||
movl $(V2P(_Ke386Pae)), %eax
|
||||
cmpb $0, (%eax)
|
||||
je .m3
|
||||
|
||||
/*
|
||||
* Set up the PDBR
|
||||
*/
|
||||
movl $(V2P(_pae_pagedirtable)), %eax
|
||||
movl %eax, %cr3
|
||||
|
||||
/*
|
||||
* Enable pae mode
|
||||
*/
|
||||
movl %cr4, %eax
|
||||
orl $X86_CR4_PAE, %eax
|
||||
movl %eax, %cr4
|
||||
|
||||
jmp .m4
|
||||
|
||||
.m3:
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
/*
|
||||
* Set up the PDBR
|
||||
*/
|
||||
movl $(V2P(startup_pagedirectory)), %eax
|
||||
movl %eax, %cr3
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
.m4:
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Enable paging and set write protect
|
||||
*/
|
||||
movl %cr0, %eax
|
||||
orl $0x80010000, %eax
|
||||
movl %eax, %cr0
|
||||
|
||||
/*
|
||||
* Do an absolute jump because we now want to execute above 0xc0000000
|
||||
*/
|
||||
movl $.l2, %eax
|
||||
jmp *%eax
|
||||
.l2:
|
||||
|
||||
/*
|
||||
* Load the GDTR and IDTR with new tables located above
|
||||
* 0xc0000000
|
||||
*/
|
||||
|
||||
/* FIXME: Application processors should have their own GDT/IDT */
|
||||
lgdt _KiGdtDescriptor
|
||||
lidt _KiIdtDescriptor
|
||||
|
||||
/*
|
||||
* Reload the data segment registers
|
||||
*/
|
||||
movl $KERNEL_DS, %eax
|
||||
movl %eax, %ds
|
||||
movl %eax, %es
|
||||
movl %eax, %gs
|
||||
movl %eax, %ss
|
||||
movl $0, %eax
|
||||
movl %eax, %fs
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
|
||||
cmpl $AP_MAGIC, %edx
|
||||
jne .m2
|
||||
|
||||
/*
|
||||
* This is an application processor executing
|
||||
*/
|
||||
|
||||
/*
|
||||
* Initialize EFLAGS
|
||||
*/
|
||||
pushl $0
|
||||
popfl
|
||||
|
||||
/*
|
||||
* Reserve space for the floating point save area.
|
||||
*/
|
||||
subl $SIZEOF_FX_SAVE_AREA, %esp
|
||||
|
||||
/*
|
||||
* Call the application processor initialization code
|
||||
*/
|
||||
pushl $0
|
||||
pushl $.l7
|
||||
pushl $KERNEL_CS
|
||||
pushl $_KiSystemStartup
|
||||
lret
|
||||
|
||||
/*
|
||||
* Catch illegal returns from KiSystemStartup
|
||||
*/
|
||||
.l7:
|
||||
popl %eax
|
||||
pushl $0
|
||||
call _KeBugCheck@4
|
||||
popl %eax
|
||||
.l8:
|
||||
jmp .l8
|
||||
|
||||
|
||||
.m2:
|
||||
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
/*
|
||||
* Load the PCR selector
|
||||
*/
|
||||
movl $PCR_SELECTOR, %eax
|
||||
movl %eax, %fs
|
||||
|
||||
/*
|
||||
* Load the initial kernel stack
|
||||
*/
|
||||
movl $(_init_stack_top - SIZEOF_FX_SAVE_AREA), %esp
|
||||
|
||||
/*
|
||||
* Initialize EFLAGS
|
||||
*/
|
||||
pushl $0
|
||||
popfl
|
||||
|
||||
/*
|
||||
* Call the main kernel initialization
|
||||
*/
|
||||
movl $0, %ebp
|
||||
pushl %ebx
|
||||
pushl %edx
|
||||
pushl $.l5
|
||||
pushl $KERNEL_CS
|
||||
pushl $__main
|
||||
lret
|
||||
|
||||
/*
|
||||
* Catch illegal returns from main, try bug checking the system,
|
||||
* if that fails then loop forever.
|
||||
*/
|
||||
.l5:
|
||||
popl %eax
|
||||
popl %eax
|
||||
pushl $0
|
||||
call _KeBugCheck@4
|
||||
popl %eax
|
||||
.l6:
|
||||
jmp .l6
|
||||
|
||||
|
||||
/*
|
||||
* This needs to be page aligned so put it at the beginning of the bss
|
||||
* segment
|
||||
*/
|
||||
.bss
|
||||
_pagetable_start:
|
||||
startup_pagedirectory:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
lowmem_pagetable:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
kernel_pagetable:
|
||||
.fill 2*4096, 1, 0
|
||||
|
||||
hyperspace_pagetable:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_pae_pagedirtable:
|
||||
.fill 4096, 1, 0
|
||||
#ifdef CONFIG_SMP
|
||||
apic_pagetable:
|
||||
.fill 4096, 1, 0
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
kpcr_pagetable:
|
||||
.fill 4096, 1, 0
|
||||
_pagetable_end:
|
||||
_unmap_me:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_init_stack:
|
||||
.fill 3*4096, 1, 0
|
||||
_init_stack_top:
|
||||
|
||||
_unmap_me2:
|
||||
.fill 4096, 1, 0
|
||||
|
||||
_trap_stack:
|
||||
.fill 3*4096, 1, 0
|
||||
_trap_stack_top:
|
||||
|
||||
_unmap_me3:
|
||||
.fill 4096, 1, 0
|
Loading…
Add table
Add a link
Reference in a new issue