summaryrefslogtreecommitdiff
path: root/dev/console.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-06-26 21:26:28 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-06-26 21:26:28 -0400
commit54b49f933abe452a48bf13c9c948946672bb784b (patch)
tree3f26334dcc4e6acbfebcaf70116058a89f05e6e1 /dev/console.hh
parent4799a7b87439913765029117eb51fcacd6f07edb (diff)
downloadgem5-54b49f933abe452a48bf13c9c948946672bb784b.tar.xz
rewrote uart and renamed console.cc to simconsole to reduce confusion
base/traceflags.py: removed TsunamiUart/TlaserUart and added a plain Uart dev/alpha_console.cc: updated for new simconsole dev/platform.hh: added a uart member to platform dev/simconsole.cc: dev/simconsole.hh: removed lots of legacy code, it should all be ours now. converted tabs to 8 spaces added our copyright dev/tsunami.cc: uses simconsole.hh rather than console.hh dev/tsunami_cchip.cc: dev/tsunami_io.cc: never needed console.hh dev/tsunami_io.hh: this does need eventq.hh and it just happend to be working whenn console.hh was included everywhere dev/tsunamireg.h: added a couple more 8250/16550 uart defines dev/uart.cc: new uart code, rewritten to support both tlaser and tsunami (both a 8250 and 8530 uart). dev/uart.hh: updated for new uart, legacy code removed --HG-- rename : dev/console.cc => dev/simconsole.cc rename : dev/console.hh => dev/simconsole.hh rename : dev/tsunami_uart.cc => dev/uart.cc rename : dev/tsunami_uart.hh => dev/uart.hh extra : convert_revision : e663352d49d4c2d3c95643030cf73c0e85ba2f08
Diffstat (limited to 'dev/console.hh')
-rw-r--r--dev/console.hh162
1 files changed, 0 insertions, 162 deletions
diff --git a/dev/console.hh b/dev/console.hh
deleted file mode 100644
index 87be9ccbc..000000000
--- a/dev/console.hh
+++ /dev/null
@@ -1,162 +0,0 @@
-/* $Id$ */
-
-/* @file
- * User Console Interface
- */
-
-#ifndef __CONSOLE_HH__
-#define __CONSOLE_HH__
-
-#include <iostream>
-
-#include "base/circlebuf.hh"
-#include "cpu/intr_control.hh"
-#include "base/pollevent.hh"
-#include "base/socket.hh"
-#include "sim/sim_object.hh"
-
-class ConsoleListener;
-class SimConsole : public SimObject
-{
- protected:
- class Event : public PollEvent
- {
- protected:
- SimConsole *cons;
-
- public:
- Event(SimConsole *c, int fd, int e);
- void process(int revent);
- };
-
- friend class Event;
- Event *event;
-
- protected:
- int number;
- int in_fd;
- int out_fd;
-
- protected:
- ConsoleListener *listener;
-
- public:
- SimConsole(const std::string &name, const std::string &file, int num);
- ~SimConsole();
-
- protected:
- CircleBuf txbuf;
- CircleBuf rxbuf;
- std::ostream *outfile;
-#if TRACING_ON == 1
- CircleBuf linebuf;
-#endif
-
- public:
- ///////////////////////
- // Terminal Interface
-
- void attach(int fd, ConsoleListener *l = NULL) { attach(fd, fd, l); }
- void attach(int in, int out, ConsoleListener *l = NULL);
- void detach();
-
- void data();
-
- void close();
- void read(uint8_t &c) { read(&c, 1); }
- size_t read(uint8_t *buf, size_t len);
- void write(uint8_t c) { write(&c, 1); }
- size_t write(const uint8_t *buf, size_t len);
-
- void configTerm();
-
- protected:
- // interrupt status/enable
- int _status;
- int _enable;
-
- // interrupt handle
- IntrControl *intr;
- // Platform so we can post interrupts
- Platform *platform;
-
- public:
- /////////////////
- // OS interface
-
- // Get a character from the console.
- bool in(uint8_t &value);
-
- // get a character from the console in the console specific format
- // corresponds to GETC:
- // retval<63:61>
- // 000: success: character received
- // 001: success: character received, more pending
- // 100: failure: no character ready
- // 110: failure: character received with error
- // 111: failure: character received with error, more pending
- // retval<31:0>
- // character read from console
- //
- // Interrupts are cleared when the buffer is empty.
- uint64_t console_in();
-
- // Send a character to the console
- void out(char c, bool raise_int = true);
-
- enum {
- TransmitInterrupt = 1,
- ReceiveInterrupt = 2
- };
-
- // Read the current interrupt status of this console.
- int intStatus() { return _status; }
-
- // Set the interrupt enable bits.
- int clearInt(int i);
- void raiseInt(int i);
-
- void initInt(IntrControl *i);
- void setInt(int bits);
-
- void setPlatform(Platform *p);
-
- virtual void serialize(std::ostream &os);
- virtual void unserialize(Checkpoint *cp, const std::string &section);
-};
-
-class ConsoleListener : public SimObject
-{
- protected:
- class Event : public PollEvent
- {
- protected:
- ConsoleListener *listener;
-
- public:
- Event(ConsoleListener *l, int fd, int e)
- : PollEvent(fd, e), listener(l) {}
- void process(int revent);
- };
-
- friend class Event;
- Event *event;
-
- typedef std::list<SimConsole *> list_t;
- typedef list_t::iterator iter_t;
- list_t ConsoleList;
-
- protected:
- ListenSocket listener;
-
- public:
- ConsoleListener(const std::string &name);
- ~ConsoleListener();
-
- void add(SimConsole *cons);
-
- void accept();
- void listen(int port);
-};
-
-#endif // __CONSOLE_HH__