FreeNOS
SingleCoreServer.cpp
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 #include <FreeNOS/User.h>
19 #include <FreeNOS/API.h>
20 #include <Log.h>
21 #include <Factory.h>
22 #include "SingleCoreServer.h"
23 
25 {
26  return new SingleCoreServer();
27 }
28 
30  : CoreServer()
31 {
32 }
33 
35 {
36  return Success;
37 }
38 
40 {
41  return coreId == 0 ? Core::Success : Core::BootError;
42 }
43 
45 {
46  return Core::Success;
47 }
48 
50 {
51 }
52 
54 {
55  return Core::IOError;
56 }
SingleCoreServer::bootCore
virtual Core::Result bootCore(uint coreId, CoreInfo *info)
Boot a processor core.
Definition: SingleCoreServer.cpp:39
ChannelServer< CoreServer, CoreMessage >::Success
@ Success
Definition: ChannelServer.h:101
Core::IOError
@ IOError
Definition: Core.h:55
Core::BootError
@ BootError
Definition: Core.h:52
SingleCoreServer::discoverCores
virtual Core::Result discoverCores()
Discover processor cores.
Definition: SingleCoreServer.cpp:44
SingleCoreServer::sendIPI
virtual Core::Result sendIPI(uint coreId)
Send Inter-Processor-Interrupt.
Definition: SingleCoreServer.cpp:53
Log.h
uint
unsigned int uint
Unsigned integer number.
Definition: Types.h:44
SingleCoreServer::initialize
virtual Result initialize()
Initialize the server.
Definition: SingleCoreServer.cpp:34
CoreServer
Represents a single Core in a Central Processing Unit (CPU).
Definition: CoreServer.h:49
ChannelServer< CoreServer, CoreMessage >::Result
Result
Result codes.
Definition: ChannelServer.h:99
AbstractFactory::create
static T * create()
Abstract function to create an instance of T.
SingleCoreServer
Implements a CoreServer for a single core only.
Definition: SingleCoreServer.h:35
SingleCoreServer.h
CoreInfo
Per-Core information structure.
Definition: CoreInfo.h:60
Core::Result
Result
Result code for Actions.
Definition: Core.h:47
SingleCoreServer::SingleCoreServer
SingleCoreServer()
Class constructor function.
Definition: SingleCoreServer.cpp:29
Core::Success
@ Success
Definition: Core.h:49
Factory.h
coreId
u8 coreId
Definition: IntelACPI.h:64
SingleCoreServer::waitIPI
virtual void waitIPI() const
Wait for Inter-Processor-Interrupt.
Definition: SingleCoreServer.cpp:49