The Pedigree Project  0.1
Debugger.h
1 /*
2  * Copyright (c) 2008-2014, Pedigree Developers
3  *
4  * Please see the CONTRIB file in the root of the source tree for a full
5  * list of contributors.
6  *
7  * Permission to use, copy, modify, and distribute this software for any
8  * purpose with or without fee is hereby granted, provided that the above
9  * copyright notice and this permission notice appear in all copies.
10  *
11  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18  */
19 
20 #ifndef DEBUGGER_H
21 #define DEBUGGER_H
22 
23 #include "pedigree/kernel/processor/InterruptHandler.h"
24 #include "pedigree/kernel/processor/state_forward.h"
25 #include "pedigree/kernel/processor/types.h"
26 #include "pedigree/kernel/utilities/StaticString.h"
27 
31 #define ASSERT_FAILED_SENTINEL \
32  0xa55e4710 // A cack-handed way of writing "assertio(n)".
33 
34 #ifdef DEBUGGER
35 
42 class Debugger : public InterruptHandler
43 {
44  public:
48  inline static Debugger &instance()
49  {
50  return m_Instance;
51  }
52 
56  void initialise();
57 
61  void start(InterruptState &state, LargeStaticString &description);
62 
67  virtual void interrupt(size_t interruptNumber, InterruptState &state);
68 
69  InterruptState *m_pTempState;
70 
71  private:
75  Debugger();
76  Debugger(const Debugger &);
77  Debugger &operator=(const Debugger &);
78  ~Debugger();
79 
83  int m_nIoType;
84 
89 };
90 
93 #endif
94 
95 #endif
void initialise()
Definition: Debugger.cc:107
virtual void interrupt(size_t interruptNumber, InterruptState &state)
Definition: Debugger.cc:455
static Debugger & instance()
Definition: Debugger.h:48
void start(InterruptState &state, LargeStaticString &description)
Definition: Debugger.cc:121
static Debugger m_Instance
Definition: Debugger.h:88
int m_nIoType
Definition: Debugger.h:83
Abstract base class for interrupt-handlers.
Debugger()
Definition: Debugger.cc:99