The Pedigree Project  0.1
ThreadsCommand.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 THREADSCOMMAND_H
21 #define THREADSCOMMAND_H
22 
23 #ifdef THREADS
24 
25 #include "pedigree/kernel/debugger/DebuggerCommand.h"
26 #include "pedigree/kernel/debugger/DebuggerIO.h"
27 #include "pedigree/kernel/debugger/Scrollable.h"
28 #include "pedigree/kernel/processor/state_forward.h"
29 #include "pedigree/kernel/processor/types.h"
30 #include "pedigree/kernel/utilities/StaticString.h"
31 
32 class Thread;
33 
41 {
42  public:
47 
52 
56  void autocomplete(const HugeStaticString &input, HugeStaticString &output);
57 
61  bool execute(
62  const HugeStaticString &input, HugeStaticString &output,
63  InterruptState &state, DebuggerIO *screen);
64 
69  {
70  return NormalStaticString("threads");
71  }
72 
74  void setPointers(Thread **ppThread, InterruptState *pState)
75  {
76  // m_ppThread = ppThread;
77  // m_pState = pState;
78  }
79 
80  //
81  // Scrollable interface
82  //
83  virtual const char *getLine1(
84  size_t index, DebuggerIO::Colour &colour, DebuggerIO::Colour &bgColour);
85  virtual const char *getLine2(
86  size_t index, size_t &colOffset, DebuggerIO::Colour &colour,
87  DebuggerIO::Colour &bgColour);
88  virtual size_t getLineCount();
89 
90  private:
91  bool swapThread(InterruptState &state, DebuggerIO *pScreen);
92  size_t m_SelectedLine;
93  size_t m_nLines;
94 };
95 
98 #endif
99 
100 #endif
bool execute(const HugeStaticString &input, HugeStaticString &output, InterruptState &state, DebuggerIO *screen)
void setPointers(Thread **ppThread, InterruptState *pState)
Definition: Thread.h:54
const NormalStaticString getString()
void autocomplete(const HugeStaticString &input, HugeStaticString &output)