/kernel/trunk/arch/ia32/include/types.h |
---|
32,11 → 32,14 |
#define NULL 0 |
typedef signed char __s8; |
typedef signed short __s16; |
typedef signed long __s32; |
typedef signed long long __s64; |
typedef unsigned char __u8; |
typedef unsigned short __u16; |
typedef unsigned long __u32; |
typedef long long __u64; |
typedef unsigned long long __u64; |
typedef __u32 __address; |
typedef __u32 pfn_t; |
/kernel/trunk/arch/ia32/include/elf.h |
---|
29,15 → 29,8 |
#ifndef __ia32_ELF_H__ |
#define __ia32_ELF_H__ |
#include <elf32.h> |
#define ELF_MACHINE EM_386 |
#define ELF_DATA_ENCODING ELFDATA2LSB |
#define ELF_CLASS ELFCLASS32 |
/* |
* Main ELF loader function |
*/ |
#define elf_load(header, as) elf32_load(header, as) |
#endif |
/kernel/trunk/arch/ia32/Makefile.inc |
---|
42,7 → 42,7 |
IA32_CPU = pentium4 |
endif |
DEFS += -D_CPU=${IA32_CPU} |
DEFS += -D_CPU=${IA32_CPU} -D__32_BITS__ |
## Accepted CPUs |
# |
/kernel/trunk/arch/ia32/src/userspace.c |
---|
39,7 → 39,7 |
* Change CPU protection level to 3, enter userspace. |
* |
*/ |
void userspace(void) |
void userspace(__address entry) |
{ |
ipl_t ipl; |
60,7 → 60,7 |
"pushl %4\n" |
"iret" |
: |
: "i" (selector(UDATA_DES) | PL_USER), "r" (USTACK_ADDRESS+(THREAD_STACK_SIZE)), "r" (ipl), "i" (selector(UTEXT_DES) | PL_USER), "i" (UTEXT_ADDRESS) |
: "i" (selector(UDATA_DES) | PL_USER), "r" (USTACK_ADDRESS+(THREAD_STACK_SIZE)), "r" (ipl), "i" (selector(UTEXT_DES) | PL_USER), "r" (entry) |
: "eax"); |
/* Unreachable */ |