Subversion Repositories HelenOS

Rev

Rev 2294 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2294 Rev 2300
Line 44... Line 44...
44
#include <arch/machine.h>
44
#include <arch/machine.h>
45
 
45
 
46
/** Address of devices. */
46
/** Address of devices. */
47
#define GXEMUL_VIDEORAM            0x10000000
47
#define GXEMUL_VIDEORAM            0x10000000
48
#define GXEMUL_KBD                 0x10000000
48
#define GXEMUL_KBD                 0x10000000
-
 
49
#define GXEMUL_HALT_OFFSET         0x10
49
#define GXEMUL_RTC                 0x15000000
50
#define GXEMUL_RTC                 0x15000000
50
#define GXEMUL_RTC_FREQ_OFFSET     0x100
51
#define GXEMUL_RTC_FREQ_OFFSET     0x100
51
#define GXEMUL_RTC_ACK_OFFSET      0x110
52
#define GXEMUL_RTC_ACK_OFFSET      0x110
52
#define GXEMUL_IRQC                0x16000000
53
#define GXEMUL_IRQC                0x16000000
53
#define GXEMUL_IRQC_MASK_OFFSET    0x4
54
#define GXEMUL_IRQC_MASK_OFFSET    0x4
Line 291... Line 292...
291
size_t machine_get_memory_size(void)
292
size_t machine_get_memory_size(void)
292
{
293
{
293
    return  *((int*)(GXEMUL_MP + GXEMUL_MP_MEMSIZE_OFFSET));
294
    return  *((int*)(GXEMUL_MP + GXEMUL_MP_MEMSIZE_OFFSET));
294
}
295
}
295
 
296
 
296
void machine_debug_putc(char ch) {
297
void machine_debug_putc(char ch)
-
 
298
{
-
 
299
    char * addr = 0;
-
 
300
    if (!hw_map_init_called) {
-
 
301
        addr = (char *) GXEMUL_KBD;
-
 
302
    } else {
-
 
303
        addr = (char *) gxemul_hw_map.videoram;
-
 
304
    }
-
 
305
 
-
 
306
    *(addr) = ch;
-
 
307
}
-
 
308
 
-
 
309
void machine_cpu_halt(void)
-
 
310
{
-
 
311
    char * addr = 0;
297
    if (!hw_map_init_called) {
312
    if (!hw_map_init_called) {
298
        *((volatile char *) GXEMUL_KBD) = ch;
313
        addr = (char *) GXEMUL_KBD;
299
    } else {
314
    } else {
300
        *((char *) gxemul_hw_map.videoram) = ch;
315
        addr = (char *) gxemul_hw_map.videoram;
301
    }
316
    }
-
 
317
   
-
 
318
    *(addr + GXEMUL_HALT_OFFSET) = '\0';
302
}
319
}
303
 
320
 
-
 
321
 
304
/** @}
322
/** @}
305
 */
323
 */