| /* |
| * Creation Date: <2003/12/19 00:20:11 samuel> |
| * Time-stamp: <2004/01/07 19:19:14 samuel> |
| * |
| * <kernel.h> |
| * |
| * |
| * |
| * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se) |
| * Stefan Reinauer |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * version 2 |
| * |
| */ |
| |
| #ifndef _H_KERNEL |
| #define _H_KERNEL |
| |
| #include "kernel/stack.h" |
| #include "asm/io.h" |
| |
| /* Interrupt status */ |
| #define FORTH_INTSTAT_CLR 0x0 |
| #define FORTH_INTSTAT_STOP 0x1 |
| #define FORTH_INTSTAT_DBG 0x2 |
| |
| extern volatile int interruptforth; |
| extern int enterforth( xt_t xt ); |
| extern void panic(const char *error) __attribute__ ((noreturn)); |
| |
| extern xt_t findword(const char *s1); |
| extern void modules_init( void ); |
| extern void init_trampoline(ucell *t); |
| extern void forth_init(void); |
| |
| /* arch kernel hooks */ |
| extern void exception(cell no); |
| |
| #ifdef FCOMPILER |
| extern void include_file( const char *str ); |
| extern void encode_file( const char *str ); |
| extern int get_inputbyte( void ); |
| extern void put_outputbyte( int c ); |
| #endif |
| |
| #ifndef BOOTSTRAP |
| #undef putchar |
| #undef getchar |
| |
| extern int putchar( int ch ); |
| extern int getchar( void ); |
| #endif |
| |
| extern int availchar( void ); |
| |
| #endif /* _H_KERNEL */ |