1191949Ssam/*
2191949Ssam * Copyright 2007 Haiku, Inc.
3191949Ssam * Distributed under the terms of the MIT License.
4191949Ssam *
5191949Ssam * arch-specific config manager
6191949Ssam *
7191949Ssam * Authors (in chronological order):
8191949Ssam *              Fran��ois Revol (revol@free.fr)
9191949Ssam */
10191949Ssam
11191949Ssam#include <KernelExport.h>
12191949Ssam#include "ISA.h"
13191949Ssam#include "arch_cpu.h"
14191949Ssam#include "isa_arch.h"
15191949Ssam
16191949Ssam//#define TRACE_ISA
17191949Ssam#ifdef TRACE_ISA
18191949Ssam#       define TRACE(x) dprintf x
19191949Ssam#else
20191949Ssam#       define TRACE(x) ;
21191949Ssam#endif
22191949Ssam
23191949Ssam
24191949Ssamuint8
25270842Sbruefferarch_isa_read_io_8(int mapped_io_addr)
26191949Ssam{
27191949Ssam	uint8 value = in8(mapped_io_addr);
28191949Ssam
29191949Ssam	TRACE(("isa_read8(%x->%x)\n", mapped_io_addr, value));
30191949Ssam
31191949Ssam	return value;
32191949Ssam}
33191949Ssam
34191949Ssam
35191949Ssamvoid
36191949Ssamarch_isa_write_io_8(int mapped_io_addr, uint8 value)
37191949Ssam{
38191949Ssam	TRACE(("isa_write8(%x->%x)\n", value, mapped_io_addr));
39269999Sgavin
40269999Sgavin	out8(value, mapped_io_addr);
41269999Sgavin}
42198470Srpaulo
43198470Srpaulo
44198470Srpaulouint16
45261702Sbruefferarch_isa_read_io_16(int mapped_io_addr)
46270842Sbrueffer{
47269999Sgavin	return in16(mapped_io_addr);
48269999Sgavin}
49261702Sbrueffer
50261702Sbrueffer
51198470Srpaulovoid
52198470Srpauloarch_isa_write_io_16(int mapped_io_addr, uint16 value)
53203691Sbrucec{
54203691Sbrucec	out16(value, mapped_io_addr);
55220896Sbschmidt}
56220896Sbschmidt
57210289Sbschmidt
58198470Srpaulouint32
59198470Srpauloarch_isa_read_io_32(int mapped_io_addr)
60191949Ssam{
61191949Ssam	return in32(mapped_io_addr);
62191949Ssam}
63191949Ssam
64261702Sbrueffer
65270842Sbrueffervoid
66269999Sgavinarch_isa_write_io_32(int mapped_io_addr, uint32 value)
67269999Sgavin{
68261702Sbrueffer	out32(value, mapped_io_addr);
69261702Sbrueffer}
70198470Srpaulo
71198470Srpaulo
72203691Sbrucecphys_addr_t
73203691Sbrucecarch_isa_ram_address(phys_addr_t physical_address_in_system_memory)
74220896Sbschmidt{
75220896Sbschmidt	// this is what the BeOS kernel does
76210289Sbschmidt	return physical_address_in_system_memory;
77191949Ssam}
78191949Ssam
79191949Ssam
80270842Sbruefferstatus_t
81203691Sbrucecarch_isa_init(void)
82191949Ssam{
83191949Ssam	return B_OK;
84191949Ssam}
85191949Ssam