gem5
v20.1.0.0
dev
serial
uart.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2004-2005 The Regents of The University of Michigan
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are
7
* met: redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer;
9
* redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution;
12
* neither the name of the copyright holders nor the names of its
13
* contributors may be used to endorse or promote products derived from
14
* this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
33
#ifndef __UART_HH__
34
#define __UART_HH__
35
36
#include "
base/callback.hh
"
37
#include "
dev/io_device.hh
"
38
#include "
dev/serial/serial.hh
"
39
#include "params/Uart.hh"
40
41
class
Platform
;
42
43
const
int
RX_INT
= 0x1;
44
const
int
TX_INT
= 0x2;
45
46
class
Uart
:
public
BasicPioDevice
47
{
48
protected
:
49
int
status
;
50
Platform
*
platform
;
51
SerialDevice
*
device
;
52
53
public
:
54
typedef
UartParams
Params
;
55
Uart
(
const
Params
*
p
,
Addr
pio_size);
56
57
const
Params
*
58
params
()
const
59
{
60
return
dynamic_cast<
const
Params
*
>
(
_params
);
61
}
62
66
virtual
void
dataAvailable
() = 0;
67
72
bool
intStatus
() {
return
status
? true :
false
; }
73
};
74
75
#endif // __UART_HH__
io_device.hh
Uart::Uart
Uart(const Params *p, Addr pio_size)
Definition:
uart.cc:35
Uart::Params
UartParams Params
Definition:
uart.hh:54
Uart
Definition:
uart.hh:46
Uart::device
SerialDevice * device
Definition:
uart.hh:51
PioDevice::Params
PioDeviceParams Params
Definition:
io_device.hh:131
Uart::status
int status
Definition:
uart.hh:49
serial.hh
Platform
Definition:
platform.hh:49
TX_INT
const int TX_INT
Definition:
uart.hh:44
Uart::intStatus
bool intStatus()
Return if we have an interrupt pending.
Definition:
uart.hh:72
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition:
types.hh:142
Uart::dataAvailable
virtual void dataAvailable()=0
Inform the uart that there is data available.
SerialDevice
Base class for serial devices such as terminals.
Definition:
serial.hh:91
RX_INT
const int RX_INT
Definition:
uart.hh:43
SimObject::_params
const SimObjectParams * _params
Cached copy of the object parameters.
Definition:
sim_object.hh:110
BasicPioDevice
Definition:
io_device.hh:150
Uart::params
const Params * params() const
Definition:
uart.hh:58
MipsISA::p
Bitfield< 0 > p
Definition:
pra_constants.hh:323
callback.hh
Uart::platform
Platform * platform
Definition:
uart.hh:50
Generated on Wed Sep 30 2020 14:02:11 for gem5 by
doxygen
1.8.17