36,6 → 36,7 |
#define KERN_mips32_ASM_H_ |
|
#include <arch/types.h> |
#include <typedefs.h> |
#include <config.h> |
|
|
55,7 → 56,11 |
{ |
uintptr_t v; |
|
asm volatile ("and %0, $29, %1\n" : "=r" (v) : "r" (~(STACK_SIZE-1))); |
asm volatile ( |
"and %0, $29, %1\n" |
: "=r" (v) |
: "r" (~(STACK_SIZE-1)) |
); |
|
return v; |
} |
63,13 → 68,44 |
extern void cpu_halt(void); |
extern void asm_delay_loop(uint32_t t); |
extern void userspace_asm(uintptr_t ustack, uintptr_t uspace_uarg, |
uintptr_t entry); |
uintptr_t entry); |
|
extern ipl_t interrupts_disable(void); |
extern ipl_t interrupts_enable(void); |
extern void interrupts_restore(ipl_t ipl); |
extern ipl_t interrupts_read(void); |
extern void asm_delay_loop(uint32_t t); |
|
static inline void pio_write_8(ioport8_t *port, uint8_t v) |
{ |
*port = v; |
} |
|
static inline void pio_write_16(ioport16_t *port, uint16_t v) |
{ |
*port = v; |
} |
|
static inline void pio_write_32(ioport32_t *port, uint32_t v) |
{ |
*port = v; |
} |
|
static inline uint8_t pio_read_8(ioport8_t *port) |
{ |
return *port; |
} |
|
static inline uint16_t pio_read_16(ioport16_t *port) |
{ |
return *port; |
} |
|
static inline uint32_t pio_read_32(ioport32_t *port) |
{ |
return *port; |
} |
|
#endif |
|
/** @} |