From 1f11f4eb90a7492119ecd5dfaf0ec73dea7d2f1f Mon Sep 17 00:00:00 2001 From: Jean-Philippe Bernardy Date: Mon, 24 Jan 2005 00:01:37 +0000 Subject: Some more gmini hw support git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5644 a1c6a512-1295-4272-9138-f99709370657 --- firmware/export/system.h | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'firmware/export') diff --git a/firmware/export/system.h b/firmware/export/system.h index 74074d5..a394429 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h @@ -179,21 +179,25 @@ static inline unsigned long SWAB32(unsigned long value) #elif CONFIG_CPU == TCC730 -extern void* interrupt_vector[16] __attribute__ ((section(".idata"))); +extern void* volatile interrupt_vector[16] __attribute__ ((section(".idata"))); -extern void ddma_transfer(int dir, int mem, long intAddr, void* extAddr, +extern void ddma_transfer(int dir, int mem, long intAddr, long extAddr, int num); -static inline void clear_watchdog(void) -{ - WDTCON = 0x0A; -} - -#define HIGHEST_IRQ_LEVEL (1<<15) +#define HIGHEST_IRQ_LEVEL (1) static inline int set_irq_level(int level) { - return 0; + int result; + __asm__ ("ld %0, 0\n\t" + "tstsr ie\n\t" + "incc %0" : "=r"(result)); + if (level > 0) + __asm__ volatile ("clrsr ie"); + else + __asm__ volatile ("setsr ie"); + + return result; } static inline unsigned short SWAB16(unsigned short value) -- cgit v1.1