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