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:
@ -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")
|
||||
|
||||
|
||||
@ -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) {};
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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" \
|
||||
|
||||
@ -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().
|
||||
|
||||
@ -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" \
|
||||
|
||||
Reference in New Issue
Block a user