FreeNOS
|
Per-Core information structure. More...
#include <CoreInfo.h>
Public Member Functions | |
bool | operator== (const struct CoreInfo &info) const |
bool | operator!= (const struct CoreInfo &info) const |
Data Fields | |
uint | booted |
Set to non-zero by early boot code when this core is running. More... | |
uint | coreId |
Core identifier. More... | |
Memory::Range | memory |
Defines the physical memory available to the core. More... | |
Address | kernelEntry |
Kernel entry point. More... | |
Memory::Range | kernel |
Kernel memory range. More... | |
char | kernelCommand [KERNEL_PATHLEN] |
Kernel command. More... | |
Address | bootImageAddress |
Boot image physical memory address. More... | |
Address | bootImageSize |
Boot image size in bytes. More... | |
Address | coreChannelAddress |
Physical memory address of IPC channel for CoreServer of this core. More... | |
Size | coreChannelSize |
Size of the IPC channel in bytes. More... | |
Address | heapAddress |
Physical memory address of the kernel heap. More... | |
Size | heapSize |
Size in bytes of the kernel heap. More... | |
uint | timerCounter |
Arch-specific timer counter. More... | |
Per-Core information structure.
This struct contains information relevant for each core in the system. The kernel and coreserver use this struct for memory management and setting up IPC communication channels between cores.
Definition at line 60 of file CoreInfo.h.
|
inline |
Definition at line 106 of file CoreInfo.h.
|
inline |
Definition at line 101 of file CoreInfo.h.
uint CoreInfo::booted |
Set to non-zero by early boot code when this core is running.
Definition at line 63 of file CoreInfo.h.
Address CoreInfo::bootImageAddress |
Boot image physical memory address.
Definition at line 81 of file CoreInfo.h.
Referenced by Kernel::initializeHeap(), Kernel::Kernel(), kernel_main(), Kernel::loadBootImage(), multibootToCoreInfo(), CoreServer::prepareCore(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().
Address CoreInfo::bootImageSize |
Boot image size in bytes.
Definition at line 84 of file CoreInfo.h.
Referenced by Kernel::initializeHeap(), Kernel::Kernel(), kernel_main(), Kernel::loadBootImage(), multibootToCoreInfo(), CoreServer::prepareCore(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().
Address CoreInfo::coreChannelAddress |
Physical memory address of IPC channel for CoreServer of this core.
Definition at line 87 of file CoreInfo.h.
Referenced by Kernel::Kernel(), CoreServer::prepareCoreInfo(), CoreServer::setupChannels(), and SystemInfoHandler().
Size CoreInfo::coreChannelSize |
Size of the IPC channel in bytes.
Definition at line 90 of file CoreInfo.h.
Referenced by Kernel::Kernel(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().
uint CoreInfo::coreId |
Core identifier.
Zero for the boot core
Definition at line 66 of file CoreInfo.h.
Referenced by ARMKernel::ARMKernel(), SunxiCpuConfig::boot(), IntelMP::boot(), ProcessShares::createShare(), ARMKernel::dataAbort(), IntelKernel::exception(), ProcessShares::findShare(), IntelKernel::IntelKernel(), ARMKernel::interrupt(), Kernel::Kernel(), kernel_main(), multibootToCoreInfo(), ARMKernel::prefetchAbort(), CoreServer::prepareCoreInfo(), ProcessShares::releaseShare(), ARMKernel::reserved(), SunxiKernel::SunxiKernel(), SystemInfoHandler(), ARMKernel::trap(), and ARMKernel::undefinedInstruction().
Address CoreInfo::heapAddress |
Physical memory address of the kernel heap.
Definition at line 93 of file CoreInfo.h.
Referenced by Kernel::initializeHeap(), Kernel::Kernel(), and CoreServer::prepareCoreInfo().
Size CoreInfo::heapSize |
Size in bytes of the kernel heap.
Definition at line 96 of file CoreInfo.h.
Referenced by Kernel::initializeHeap(), Kernel::Kernel(), and CoreServer::prepareCoreInfo().
Memory::Range CoreInfo::kernel |
Kernel memory range.
Definition at line 75 of file CoreInfo.h.
Referenced by Kernel::Kernel(), kernel_main(), multibootToCoreInfo(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().
char CoreInfo::kernelCommand[KERNEL_PATHLEN] |
Kernel command.
Definition at line 78 of file CoreInfo.h.
Referenced by IntelMP::boot(), multibootToCoreInfo(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().
Address CoreInfo::kernelEntry |
Kernel entry point.
Definition at line 72 of file CoreInfo.h.
Referenced by SunxiCpuConfig::boot(), and CoreServer::prepareCoreInfo().
Memory::Range CoreInfo::memory |
Defines the physical memory available to the core.
Definition at line 69 of file CoreInfo.h.
Referenced by ARMKernel::ARMKernel(), IntelMP::boot(), SunxiCoreServer::bootCore(), Kernel::initializeHeap(), IntelKernel::IntelKernel(), Kernel::Kernel(), kernel_main(), multibootToCoreInfo(), CoreServer::prepareCore(), and CoreServer::prepareCoreInfo().
uint CoreInfo::timerCounter |
Arch-specific timer counter.
Definition at line 99 of file CoreInfo.h.
Referenced by IntelKernel::IntelKernel(), CoreServer::prepareCoreInfo(), and SystemInfoHandler().