Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 426 → Rev 425

/SPARTAN/trunk/arch/mips32/include/arg.h
29,6 → 29,8
#ifndef __mips32_ARG_H__
#define __mips32_ARG_H__
 
//#include <stackarg.h>
 
#include <arch/types.h>
 
typedef struct va_list {
37,13 → 39,13
} va_list;
 
#define va_start(ap, lst) \
(ap).pos = sizeof(lst); \
(ap).pos = sizeof(lst); \
(ap).last = (__u8 *) &(lst)
 
/**
* va_arg macro for MIPS32 - problem is that 64 bit values must be aligned on an 8-byte boundary (32bit values not)
* To satisfy this, paddings must be sometimes inserted.
*/
* va_arg macro for MIPS32 - problem is that 64 bit values must be aligned on an 8-byte boundary (32bit values not)
* To satisfy this, paddings must be sometimes inserted.
*/
#define va_arg(ap, type) \
(*((type *)((ap).last + ((ap).pos += sizeof(type) + ((sizeof(type)==8)&&(((ap).pos)&(4))?4:0)) - sizeof(type))))
 
/SPARTAN/trunk/arch/sparc64/Makefile.inc
14,17 → 14,11
ASFLAGS=
 
DEFS=-DARCH=$(ARCH)
CFLAGS=$(DEFS) -nostdlib -fno-builtin -mcpu=ultrasparc -m64 -O2
CFLAGS=$(DEFS) -nostdlib -fno-builtin -O2
LFLAGS=-M -no-check-sections -N
 
arch_sources= \
src/arch/asm.S \
src/arch/console.c \
src/arch/context.S \
src/arch/dummy.s \
src/arch/sparc64.c \
src/arch/start.S \
src/arch/mm/frame.c \
src/arch/mm/page.c
src/arch/sparc64.c
 
/SPARTAN/trunk/arch/sparc64/src/asm.S
File deleted
/SPARTAN/trunk/arch/sparc64/src/mm/frame.c
File deleted
/SPARTAN/trunk/arch/sparc64/src/mm/page.c
File deleted
/SPARTAN/trunk/arch/sparc64/src/context.S
File deleted
/SPARTAN/trunk/arch/sparc64/src/console.c
File deleted
/SPARTAN/trunk/arch/sparc64/src/dummy.s
30,6 → 30,8
 
.global asm_delay_loop
.global before_thread_runs_arch
.global context_restore_arch
.global context_save_arch
.global cpu_arch_init
.global cpu_halt
.global cpu_identify
44,6 → 46,10
.global fpu_context_save
.global fpu_enable
.global fpu_init
.global frame_arch_init
.global memcpy
.global memsetb
.global page_arch_init
.global panic_printf
.global userspace
 
51,6 → 57,8
 
asm_delay_loop:
before_thread_runs_arch:
context_restore_arch:
context_save_arch:
cpu_arch_init:
cpu_halt:
cpu_identify:
65,6 → 73,10
fpu_context_save:
fpu_enable:
fpu_init:
frame_arch_init:
memcpy:
memsetb:
page_arch_init:
panic_printf:
userspace:
 
/SPARTAN/trunk/arch/sparc64/src/start.S
26,11 → 26,6
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
 
.register %g2, #scratch
.register %g3, #scratch
.register %g6, #scratch
.register %g7, #scratch
 
.section K_TEXT_START, "ax"
 
.global kernel_image_start
56,11 → 51,7
call ofw_init
nop
 
call main_bsp
nop
 
/* Not reached. */
 
2:
b 2b
nop
 
/SPARTAN/trunk/arch/sparc64/_link.ld
30,7 → 30,7
hardcoded_kdata_size = .;
LONG(kdata_end - kdata_start);
hardcoded_load_address = .;
QUAD(0x4000);
LONG(0x4000);
*(.bss); /* uninitialized static variables */
*(COMMON); /* global variables */
 
/SPARTAN/trunk/arch/sparc64/include/context.h
29,15 → 29,10
#ifndef __sparc64_CONTEXT_H__
#define __sparc64_CONTEXT_H__
 
#ifndef __sparc64_TYPES_H__
# include <arch/types.h>
#endif
#include <arch/types.h>
#include <typedefs.h>
#include <align.h>
 
#ifndef __ALIGN_H__
# include <align.h>
#endif
 
#define STACK_ALIGNMENT 8
#define STACK_ITEM_SIZE 8
 
/*
45,35 → 40,16
*/
#define SP_DELTA (0+STACK_ITEM_SIZE)
 
#ifdef context_set
#undef context_set
#endif
 
#define context_set(c, _pc, stack, size) \
(c)->pc = ((__address) _pc) - 8; \
(c)->sp = ((__address) stack) + (ALIGN((size), STACK_ALIGNMENT) + 1) - SP_DELTA;
 
/*
* Only save registers that must be preserved across
* function calls.
*/
struct context {
__u64 l0;
__u64 l1;
__u64 l2;
__u64 l3;
__u64 l4;
__u64 l5;
__u64 l6;
__u64 l7;
__u64 i1;
__u64 i2;
__u64 i3;
__u64 i4;
__u64 i5;
__address sp; /* %i6 */
__address pc; /* %i7 */
 
__address bsp;
__address sp;
__address pc;
ipl_t ipl;
};
} __attribute__ ((packed));
 
#endif
/SPARTAN/trunk/arch/sparc64/include/types.h
35,8 → 35,8
 
typedef unsigned char __u8;
typedef unsigned short __u16;
typedef unsigned int __u32;
typedef unsigned long __u64;
typedef unsigned long __u32;
typedef long long __u64;
 
typedef __u64 __address;
 
/SPARTAN/trunk/arch/sparc64/include/arg.h
29,6 → 29,6
#ifndef __sparc64_ARG_H__
#define __sparc64_ARG_H__
 
#include <stdarg.h>
#include <stackarg.h>
 
#endif
/SPARTAN/trunk/arch/sparc64/include/asm.h
78,11 → 78,6
*/
static inline __address get_stack_base(void)
{
__address v;
__asm__ volatile ("and %%o6, %1, %0\n" : "=r" (v) : "r" (~(STACK_SIZE-1)));
return v;
}
 
void cpu_halt(void);
/SPARTAN/trunk/arch/ppc32/Makefile.inc
18,7 → 18,6
LFLAGS=-M -no-check-sections -N
 
arch_sources= \
src/arch/console.c \
src/arch/context.S \
src/arch/debug/panic.s \
src/arch/fpu_context.c \
/SPARTAN/trunk/arch/ppc32/src/console.c
File deleted
/SPARTAN/trunk/genarch/include/firmware/ofw/ofw.h
26,8 → 26,8
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
#ifndef __OFW_H__
#define __OFW_H__
#ifndef __ppc32_OFW_H__
#define __ppc32_OFW_H__
 
#include <arch/types.h>
 
58,5 → 58,6
extern phandle ofw_find_device(const char *name);
extern int ofw_get_property(const phandle device, const char *name, void *buf, const int buflen);
extern void *ofw_claim(const void *addr, const int size, const int align);
extern void putchar(const char ch);
 
#endif
/SPARTAN/trunk/genarch/src/firmware/ofw/ofw.c
98,3 → 98,8
{
return (void *) ofw_call("claim", 3, 1, addr, size, align);
}
 
void putchar(const char ch)
{
ofw_putchar(ch);
}
/SPARTAN/trunk/build.sparc64
1,6 → 1,3
#! /bin/sh
 
# Generate context_offset.h
(cd tools/sparc64/;make gencontext;./gencontext)
 
make all ARCH=sparc64
/SPARTAN/trunk/clean.sparc64
1,6 → 1,3
#! /bin/sh
 
make dist-clean ARCH=sparc64
 
rm tools/sparc64/gencontext
rm arch/sparc64/include/context_offset.h
/SPARTAN/trunk/tools/sparc64/gencontext.c
File deleted