FreeNOS
RecoveryServer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2020 Niek Linnenbank
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef __SERVER_RECOVERY_RECOVERYSERVER_H
19#define __SERVER_RECOVERY_RECOVERYSERVER_H
20
21#include <ChannelServer.h>
22#include <Types.h>
23#include "Recovery.h"
24#include "RecoveryMessage.h"
25
53class RecoveryServer : public ChannelServer<RecoveryServer, RecoveryMessage>
54{
55 private:
56
57 public:
58
63
64 private:
65
72
81 bool reloadProgram(const ProcessID pid,
82 const char *path) const;
83
91 bool cleanupProgram(const ProcessID pid) const;
92
102 bool rewriteProgram(const ProcessID pid,
103 const Address program,
104 const Size size) const;
105};
106
112#endif /* __SERVER_RECOVERY_RECOVERYSERVER_H */
Template class which serves incoming messages from Channels using MessageHandlers.
Recovery Server.
bool rewriteProgram(const ProcessID pid, const Address program, const Size size) const
Overwrite process with given program data.
void restartProcess(RecoveryMessage *msg)
Restart a process.
bool cleanupProgram(const ProcessID pid) const
Release and unmap program data.
RecoveryServer()
Class constructor function.
bool reloadProgram(const ProcessID pid, const char *path) const
Overwrite the given process by fetching a fresh program data copy.
u32 ProcessID
Process Identification Number.
Definition Types.h:140
unsigned long Address
A memory address.
Definition Types.h:131
unsigned int Size
Any sane size indicator cannot go negative.
Definition Types.h:128
Recovery IPC message.