s/ppc/m68k/
Lure the preprocessor to not replace #n by "123" for syscalls... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22739 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -2,73 +2,75 @@
|
|||||||
** Copyright 2002, Travis Geiselbrecht. All rights reserved.
|
** Copyright 2002, Travis Geiselbrecht. All rights reserved.
|
||||||
** Distributed under the terms of the NewOS License.
|
** Distributed under the terms of the NewOS License.
|
||||||
*/
|
*/
|
||||||
#warning make sure $ isn't hex
|
|
||||||
|
|
||||||
#define FUNC(name) .align 2 ; .globl _##name ; .type _##name,@function ; _##name:
|
#define FUNC(name) .align 2 ; .globl name ; .type name,@function ; name:
|
||||||
|
|
||||||
|
/* lure the preprocessor to not substitute the syscall as string */
|
||||||
|
#define IMM #
|
||||||
|
|
||||||
#define SYSCALL0(name, n) \
|
#define SYSCALL0(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL1(name, n) \
|
#define SYSCALL1(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL2(name, n) \
|
#define SYSCALL2(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL3(name, n) \
|
#define SYSCALL3(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL4(name, n) \
|
#define SYSCALL4(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL5(name, n) \
|
#define SYSCALL5(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL6(name, n) \
|
#define SYSCALL6(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL7(name, n) \
|
#define SYSCALL7(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL8(name, n) \
|
#define SYSCALL8(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL9(name, n) \
|
#define SYSCALL9(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
#define SYSCALL10(name, n) \
|
#define SYSCALL10(name, n) \
|
||||||
FUNC(name) \
|
FUNC(name) \
|
||||||
moveq.l #$n,%d0 ; \
|
move.l IMM n,%d0 ; \
|
||||||
trap #0 ; \
|
trap #0 ; \
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
static vint32 *sConversionFactor;
|
static vint32 *sConversionFactor;
|
||||||
|
|
||||||
void
|
void
|
||||||
__ppc_setup_system_time(vint32 *cvFactor)
|
__m68k_setup_system_time(vint32 *cvFactor)
|
||||||
{
|
{
|
||||||
sConversionFactor = cvFactor;
|
sConversionFactor = cvFactor;
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,7 @@ __ppc_setup_system_time(vint32 *cvFactor)
|
|||||||
bigtime_t
|
bigtime_t
|
||||||
system_time(void)
|
system_time(void)
|
||||||
{
|
{
|
||||||
uint64 timeBase = __ppc_get_time_base();
|
uint64 timeBase = __m68k_time_base();
|
||||||
|
|
||||||
uint32 cv = *sConversionFactor;
|
uint32 cv = *sConversionFactor;
|
||||||
return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32);
|
return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32);
|
||||||
|
|||||||
@@ -7,15 +7,9 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
/* int64 __ppc_get_time_base(void)
|
/* int64 __m68k_get_time_base(void)
|
||||||
* r3/r4
|
|
||||||
*/
|
*/
|
||||||
FUNCTION(__ppc_get_time_base):
|
FUNCTION(__m68k_get_time_base):
|
||||||
/* get TB (time base) register */
|
#warning M68K: implement __m68k_get_time_base()
|
||||||
carry: mftbu %r3
|
rts
|
||||||
mftb %r4
|
|
||||||
mftbu %r5 // read the upper half again
|
|
||||||
cmpw %r3, %r5 // and check if the values have changed
|
|
||||||
bne carry // try again, if they had
|
|
||||||
blr
|
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ __arch_init_time(struct real_time_data *data, bool setDefaults)
|
|||||||
sRealTimeData->version = 0;
|
sRealTimeData->version = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__ppc_setup_system_time(&sRealTimeData->system_time_conversion_factor);
|
__m68k_setup_system_time(&sRealTimeData->system_time_conversion_factor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user