1/*
2 * Copyright 2007 Haiku, Inc.
3 * Distributed under the terms of the MIT License.
4 *
5 * arch-specific config manager
6 *
7 * Authors (in chronological order):
8 *              Fran��ois Revol (revol@free.fr)
9 */
10
11#include <KernelExport.h>
12#include "ISA.h"
13#include "arch_cpu.h"
14#include "isa_arch.h"
15
16//#define TRACE_ISA
17#ifdef TRACE_ISA
18#       define TRACE(x) dprintf x
19#else
20#       define TRACE(x) ;
21#endif
22
23
24uint8
25arch_isa_read_io_8(int mapped_io_addr)
26{
27	uint8 value = in8(mapped_io_addr);
28
29	TRACE(("isa_read8(%x->%x)\n", mapped_io_addr, value));
30
31	return value;
32}
33
34
35void
36arch_isa_write_io_8(int mapped_io_addr, uint8 value)
37{
38	TRACE(("isa_write8(%x->%x)\n", value, mapped_io_addr));
39
40	out8(value, mapped_io_addr);
41}
42
43
44uint16
45arch_isa_read_io_16(int mapped_io_addr)
46{
47	return in16(mapped_io_addr);
48}
49
50
51void
52arch_isa_write_io_16(int mapped_io_addr, uint16 value)
53{
54	out16(value, mapped_io_addr);
55}
56
57
58uint32
59arch_isa_read_io_32(int mapped_io_addr)
60{
61	return in32(mapped_io_addr);
62}
63
64
65void
66arch_isa_write_io_32(int mapped_io_addr, uint32 value)
67{
68	out32(value, mapped_io_addr);
69}
70
71
72phys_addr_t
73arch_isa_ram_address(phys_addr_t physical_address_in_system_memory)
74{
75	// this is what the BeOS kernel does
76	return physical_address_in_system_memory;
77}
78
79
80status_t
81arch_isa_init(void)
82{
83	return B_OK;
84}
85