FreeNOS
lib
libarch
CoreManager.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2015 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 __LIBARCH_COREMANAGER_H
19
#define __LIBARCH_COREMANAGER_H
20
21
#include <
Types.h
>
22
#include <
List.h
>
23
#include "
CoreInfo.h
"
24
36
class
CoreManager
37
{
38
private
:
39
40
public
:
41
45
enum
Result
46
{
47
Success
,
48
IOError
,
49
NotFound
,
50
InvalidArgument
51
};
52
56
CoreManager
();
57
63
List<uint>
&
getCores
();
64
70
virtual
Result
initialize
() = 0;
71
77
virtual
Result
discover
() = 0;
78
86
virtual
Result
boot
(
CoreInfo
*info) = 0;
87
88
protected
:
89
91
List<uint>
m_cores
;
92
};
93
99
#endif
/* __LIBARCH_COREMANAGER_H */
CoreManager::discover
virtual Result discover()=0
Discover processors.
CoreManager::NotFound
@ NotFound
Definition:
CoreManager.h:49
CoreManager::m_cores
List< uint > m_cores
List of core ids found.
Definition:
CoreManager.h:91
Types.h
CoreManager::InvalidArgument
@ InvalidArgument
Definition:
CoreManager.h:50
CoreManager
Generic Core Manager.
Definition:
CoreManager.h:36
CoreManager::initialize
virtual Result initialize()=0
Initialize the CoreManager.
CoreInfo
Per-Core information structure.
Definition:
CoreInfo.h:60
CoreManager::IOError
@ IOError
Definition:
CoreManager.h:48
CoreManager::Success
@ Success
Definition:
CoreManager.h:47
CoreManager::CoreManager
CoreManager()
Constructor.
Definition:
CoreManager.cpp:20
CoreManager::getCores
List< uint > & getCores()
Get list of core identities.
Definition:
CoreManager.cpp:24
CoreManager::boot
virtual Result boot(CoreInfo *info)=0
Boot a processor.
CoreInfo.h
List< uint >
CoreManager::Result
Result
Result codes.
Definition:
CoreManager.h:45
List.h
Generated by
1.8.17