1
0
mirror of https://github.com/deadw00d/AROS.git synced 2026-03-18 01:53:01 +00:00

fix i386 build

git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@53522 fb15a70f-31f2-0310-bbcc-cdcc74a49acc
This commit is contained in:
NicJA
2017-02-08 17:14:02 +00:00
parent 8482c5fe6c
commit a42ee4ec8e
7 changed files with 18 additions and 16 deletions

View File

@ -27,8 +27,7 @@ int krnBug(const char *format, va_list args, APTR kernelBase);
void krnDisplayAlert(const char *text, struct KernelBase *KernelBase);
void krnPanic(struct KernelBase *KernelBase, const char *fmt, ...);
#define __save_flags(x) __asm__ __volatile__("pushfq ; popq %0":"=g" (x): /* no input */)
#define __restore_flags(x) __asm__ __volatile__("pushq %0 ; popfq": /* no output */ :"g" (x):"memory", "cc")
#define __cli() __asm__ __volatile__("cli": : :"memory")
#define __sti() __asm__ __volatile__("sti": : :"memory")

View File

@ -124,7 +124,6 @@ static void smp_Entry(IPTR stackBase, spinlock_t *apicReadyLock, struct KernelBa
KrnSpinUnLock((spinlock_t *)apicReadyLock);
#if defined(__AROSEXEC_SMP__)
D(bug("[Kernel:SMP] %s[%03u]: Starting up Scheduler...\n", __func__, apicCPUNo));
while (1) {};
}

View File

@ -15,8 +15,8 @@
#include <exec/rawfmt.h>
#include "kernel_base.h"
#include "kernel_debug.h"
#include "kernel_intern.h"
#include "kernel_debug.h"
#include "apic.h"
#define __AROS_KERNEL__
@ -95,9 +95,6 @@ struct Task *cpu_InitBootStrap(apicid_t cpuNo)
IntETask(bstask->tc_UnionETask.tc_ETask)->iet_CpuNumber = cpuNo;
IntETask(bstask->tc_UnionETask.tc_ETask)->iet_CpuAffinity = KrnGetCPUMask(cpuNo);
#if (0)
//TODO: set tasks SysBase->TaskExitCode
#endif
bsctx->Flags = 0;
return bstask;
@ -122,16 +119,22 @@ void cpu_BootStrap(struct Task *bstask)
krnLeaveSupervisorRing(FLAGS_INTENABLED);
D(bug("[Kernel:SMP] %s[%03u]: Enabling Exec Interrupts...\n", __func__, cpuNo));
D(
bug("[Kernel:SMP] %s[%03u]: Starting up Scheduler...\n", __func__, cpuNo);
bug("[Kernel:SMP] %s[%03u]: Enabling Exec Interrupts...\n", __func__, cpuNo);
)
/* We now start up the interrupts */
Permit();
Enable();
D(bug("[Kernel:SMP] %s[%03u]: Creating Idle Task ...\n", __func__, cpuNo));
D(bug("[Kernel:SMP] %s[%03u]: Creating Idle Task ...\n", __func__, cpuNo));
Exec_X86CreateIdleTask(SysBase);
D(bug("[Kernel:SMP] %s[%03u]: Done\n", __func__, cpuNo));
/* clean up now we are done */
RemTask(bstask);
}
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright <20> 1995-2014, The AROS Development Team. All rights reserved.
Copyright <20> 1995-2017, The AROS Development Team. All rights reserved.
$Id$
*/
@ -10,11 +10,6 @@
#include "kernel_debug.h"
#include "kernel_intern.h"
#define __save_flags(x) __asm__ __volatile__("pushf ; pop %0":"=g" (x): /* no input */)
#define __restore_flags(x) __asm__ __volatile__("push %0 ; popf": /* no output */ :"g" (x):"memory", "cc")
#define __cli() __asm__ __volatile__("cli": : :"memory")
#define __sti() __asm__ __volatile__("sti": : :"memory")
__attribute__((section(".data"))) static unsigned int debug_y_resolution = 0;
__attribute__((section(".data"))) static void *debug_framebuffer = NULL;

View File

@ -33,6 +33,9 @@ struct PlatformData
#define TLS_SIZE sizeof(struct tss)
#define TLS_ALIGN 64
#define __save_flags(x) __asm__ __volatile__("pushf ; pop %0":"=g" (x): /* no input */)
#define __restore_flags(x) __asm__ __volatile__("push %0 ; popf": /* no output */ :"g" (x):"memory", "cc")
#define krnLeaveSupervisorRing(_flags) \
asm("movl %[user_ds],%%eax\n\t" \
"mov %%eax,%%ds\n\t" \

View File

@ -38,7 +38,7 @@ static int PlatformInit(struct KernelBase *KernelBase)
// Setup the base syscall handler(s) ...
NEWLIST(&data->kb_SysCallHandlers);
krnAddSysCallHandler(data, &x86_SCSupervisorHandler, TRUE);
krnAddSysCallHandler(data, &x86_SCSupervisorHandler, FALSE, TRUE);
/*
* Now we have a complete memory list and working AllocMem().

View File

@ -62,6 +62,9 @@ struct PlatformData
#define TLS_SIZE sizeof(tls_t)
#define TLS_ALIGN sizeof(APTR)
#define __save_flags(x) __asm__ __volatile__("pushfq ; popq %0":"=g" (x): /* no input */)
#define __restore_flags(x) __asm__ __volatile__("pushq %0 ; popfq": /* no output */ :"g" (x):"memory", "cc")
#define krnLeaveSupervisorRing(_flags) \
asm volatile ( \
"mov %[user_ds],%%ds\n\t" \