The Pedigree Project
0.1
|
The kernel. More...
Modules | |
utilities | |
Utilities. | |
processor-specifc kernel | |
processor-specific kernel interface | |
machine-specifc kernel | |
machine-specific kernel interface | |
debugger | |
the kernel debugger | |
linker | |
the kernel linker | |
Classes | |
class | Atomic< T, bAllow > |
class | Atomic< T, true > |
class | Atomic< bool, true > |
struct | BootstrapStruct_t |
Bootstrap structure passed to the kernel entry point. More... | |
class | LockGuard< T > |
class | RecursingLockGuard< T > |
class | Log |
the kernel's log More... | |
Macros | |
#define | DEPRECATED __attribute__((deprecated)) |
#define | NORETURN __attribute__((noreturn)) |
#define | PURE __attribute__((pure)) |
#define | CONST __attribute__((const)) |
#define | ALWAYS_INLINE __attribute__((always_inline)) |
#define | NEVER_INLINE __attribute__((noinline)) |
#define | ALIGN(x) __attribute__((aligned(x))) |
#define | PACKED __attribute__((packed)) |
#define | MAY_ALIAS __attribute__((may_alias)) |
#define | LIKELY(exp) __builtin_expect(!!(exp), 1) |
#define | UNLIKELY(exp) __builtin_expect(!!(exp), 0) |
#define | UNREACHABLE __builtin_unreachable() |
#define | FORMAT(type, idx, first) __attribute__((format(type, idx, first))) |
#define | IS_CONSTANT(x) __builtin_constant_p(x) |
#define | SECTION(x) __attribute__((__section__(x))) |
#define | MUST_USE_RESULT __attribute__((warn_unused_result)) |
#define | USED __attribute__((used)) |
#define | WEAK __attribute__((weak)) |
#define | EXPORTED_PUBLIC __attribute__((visibility("default"))) |
#define | __has_builtin(x) 0 |
#define | __has_feature(x) 0 |
#define | ASSUME_ALIGNMENT(b, sz) __builtin_assume_aligned((b), sz) |
#define | INITIALISATION_ONLY SECTION(".init.text") |
#define | INITIALISATION_ONLY_DATA SECTION(".init.data") |
#define | HAS_ADDRESS_SANITIZER 0 |
#define | HAS_THREAD_SANITIZER 0 |
#define | BARRIER() __asm__ __volatile__("" ::: "memory") |
#define | FENCE() __sync_synchronize() |
#define | SHOW_FILE_IN_LOGS 0 |
#define | FILE_LOG(entry, level) |
#define | LOG_AT_LEVEL(level, text, lock) |
#define | DEBUG_LOG(text) |
#define | DEBUG_LOG_NOLOCK(text) |
#define | NOTICE(text) LOG_AT_LEVEL(Log::Notice, text, 1) |
#define | NOTICE_NOLOCK(text) LOG_AT_LEVEL(Log::Notice, text, 0) |
#define | WARNING(text) LOG_AT_LEVEL(Log::Warning, text, 1) |
#define | WARNING_NOLOCK(text) LOG_AT_LEVEL(Log::Warning, text, 0) |
#define | ERROR(text) LOG_AT_LEVEL(Log::Error, text, 1) |
#define | ERROR_NOLOCK(text) LOG_AT_LEVEL(Log::Error, text, 0) |
#define | FATAL(text) |
#define | FATAL_NOLOCK(text) |
#define | LOG_LENGTH 128 |
#define | LOG_ENTRIES ((1 << 16) / sizeof(LogEntry)) |
#define | LOG_CALLBACK_COUNT 16 |
#define | assert(x) |
#define | assert_heap_ptr_valid(x) |
#define | bool char |
Typedefs | |
typedef StaticCord< 8 > | LogCord |
typedef void(* | BootProgressUpdateFn) (const char *) |
Enumerations | |
enum | NumberType { Hex, Dec, Oct } |
enum | Modifier { Flush } |
Functions | |
void | installSerialLogger () |
void EXPORTED_PUBLIC | panic (const char *msg) NORETURN |
void EXPORTED_PUBLIC | _assert (bool b, const char *file, int line, const char *func) |
bool | _assert_ptr_valid (uintptr_t x) |
Variables | |
class BootstrapStruct_t *g_pBootstrapInfo | EXPORTED_PUBLIC |
size_t | g_BootProgressCurrent |
size_t | g_BootProgressTotal |
BootProgressUpdateFn | g_BootProgressUpdate |
The kernel.
Classes, functions, defines belonging to the kernel
#define ALIGN | ( | x | ) | __attribute__((aligned(x))) |
Specific alignment for a type/variable
Definition at line 46 of file system/include/pedigree/kernel/compiler.h.
Referenced by AtaDisk::doRead().
#define ALWAYS_INLINE __attribute__((always_inline)) |
Functions that should always be inlined
Definition at line 42 of file system/include/pedigree/kernel/compiler.h.
#define assert | ( | x | ) |
If the passed argument resolves to a Boolean false value, execution will be halted and a message displayed.
Definition at line 37 of file assert.h.
Referenced by Semaphore::acquireWithResult(), FileDisk::align(), ScsiDisk::align(), SlamCache::allocate(), SlamAllocator::allocate(), MemoryPool::allocateDoer(), String::assign(), Ext2Directory::cacheDirectoryContents(), PosixSubsystem::copyDescriptors(), AtaDisk::doRead(), Ext2Node::ensureLargeEnough(), Filesystem::find(), PosixSubsystem::findFile(), Ext2Filesystem::findFreeInode(), SlamCache::free(), PosixSubsystem::freeMultipleFds(), RequestQueue::getNextRequest(), Scheduler::getProcess(), Ext2Filesystem::initialise(), SlamCache::initialise(), UsbDevice::initialise(), IoEvent::IoEvent(), Elf::loadModule(), HostedVirtualAddressSpace::map(), PollEvent::PollEvent(), String::prevCharacter(), CdiDisk::read(), File::readBlock(), SlamCache::recovery(), Semaphore::release(), Cache::release(), Ext2Filesystem::releaseInode(), Semaphore::Semaphore(), File::setCachedPage(), Time::Stopwatch::stop(), StringView::substring(), RoundRobin::threadStatusChanged(), AnonymousMemoryMap::trap(), CdiDisk::write(), List< T, nodePoolSize >::~List(), PosixSubsystem::~PosixSubsystem(), Semaphore::~Semaphore(), UnixSocket::~UnixSocket(), and UsbDevice::~UsbDevice().
#define assert_heap_ptr_valid | ( | x | ) |
#define CONST __attribute__((const)) |
Function does not have a side-effect and does only depend on its arguments
Definition at line 40 of file system/include/pedigree/kernel/compiler.h.
#define DEBUG_LOG | ( | text | ) |
Add a debug item to the log
Definition at line 69 of file Log.h.
Referenced by UsbDevice::controlRequest(), Ehci::doAsync(), Ohci::doAsync(), KernelElf::executeModules(), Uhci::executeRequest(), Ehci::executeRequest(), Ohci::executeRequest(), UsbDevice::initialise(), Ehci::initialiseController(), UsbHubDevice::initialiseDriver(), Uhci::irq(), Ohci::irq(), KernelElf::loadModule(), page_align(), Uhci::portReset(), Ehci::portReset(), VmwareGraphics::readRegister(), SlamCache::recovery(), Ohci::removeED(), UsbMassStorageDevice::sendCommand(), GraphicsService::serve(), X86Keyboard::setLedState(), and MemoryMappedFile::trap().
#define DEPRECATED __attribute__((deprecated)) |
Deprecated function/variable/type
Definition at line 33 of file system/include/pedigree/kernel/compiler.h.
#define ERROR | ( | text | ) | LOG_AT_LEVEL(Log::Error, text, 1) |
Add a error message to the log
Definition at line 82 of file Log.h.
Referenced by VirtualTerminalManager::activate(), BusMasterIde::add(), RequestQueue::addAsyncRequest(), Directory::addDirectoryEntry(), Ext2Directory::addEntry(), Uhci::addInterruptInHandler(), Ehci::addInterruptInHandler(), Ohci::addInterruptInHandler(), Uhci::addTransferToTransaction(), Ehci::addTransferToTransaction(), Ohci::addTransferToTransaction(), SlamAllocator::allocate(), Elf::allocate(), X86CommonPhysicalMemoryManager::allocateRegion(), MIPS32VirtualAddressSpace::allocateStack(), Elf::applyRelocation(), Archive::Archive(), Ext2Directory::cacheDirectoryContents(), Iso9660Directory::cacheDirectoryContents(), PedigreeCSyscallManager::call(), PosixSyscallManager::call(), NativeSyscallManager::call(), StreamingScreenLogger::callback(), FramebufferFile::command(), X64VirtualAddressSpace::conditionalTableEntryAllocation(), UsbDevice::controlRequest(), Elf::create(), Elf::createNeededOnly(), Ext2Filesystem::createNode(), Uhci::createTransaction(), Ehci::createTransaction(), Ohci::createTransaction(), Pipe::decreaseRefCount(), Thread::detach(), UsbHub::deviceConnected(), UsbHub::deviceDisconnected(), Uhci::doAsync(), Ehci::doAsync(), Ohci::doAsync(), ArmV7VirtualAddressSpace::doMap(), AtaDisk::doRead(), ScsiDisk::doRead(), DwarfState::DwarfState(), Ext2Node::ensureLargeEnough(), Event::Event(), DwarfCfiAutomaton::executeInstruction(), Bios::executeInterrupt(), CacheManager::executeRequest(), VirtualAddressSpace::expandHeap(), VbeDisplay::fillRectangle(), Ext2Filesystem::findFreeBlocks(), ScsiDisk::flush(), X86Keyboard::getChar(), SerialIO::getChar(), X86Keyboard::getCharNonBlock(), FatFilesystem::getClusterEntry(), File::getFullPath(), Thread::getNextEvent(), MIPS32VirtualAddressSpace::getPageTableChunk(), PPC32StackFrame::getParameter(), Config::Result::getStr(), VbeFramebuffer::hwRedraw(), UsbUlpi::initialise(), PciBus::initialise(), CdiDisk::initialise(), Ext2Filesystem::initialise(), FatFilesystem::initialise(), Heathrow::initialise(), AtaDisk::initialise(), OpenPic::initialise(), ScsiDisk::initialise(), BusMasterIde::initialise(), KernelElf::initialise(), UsbDevice::initialise(), Ehci::initialiseController(), Mac::initialiseDeviceTree(), FtdiSerialDevice::initialiseDriver(), UsbHumanInterfaceDevice::initialiseDriver(), UsbMassStorageDevice::initialiseDriver(), Dm9601::initialiseDriver(), DynamicLinker::initPlt(), Cache::insert(), NetworkFilter::installCallback(), NMFaultHandler::interrupt(), X64InterruptManager::interrupt(), Pic::interrupt(), MemoryMappedFile::invalidate(), Ipc::IpcMessage::IpcMessage(), Nic3C90x::irq(), Ps2Controller::irq(), Ohci::irq(), Processor::jumpUser(), PosixSubsystem::kill(), PosixSubsystem::loadElf(), KernelElf::loadModule(), Elf::loadModule(), DynamicLinker::loadObject(), DynamicLinker::loadProgram(), Device::Address::map(), VbeDisplay::newBuffer(), Nic3C90x::Nic3C90x(), page_align(), PciAtaController::PciAtaController(), PointerGuard< T >::PointerGuard(), Thread::pokeState(), Thread::popState(), String::prevCharacter(), Thread::pushState(), SerialIO::putChar(), DiskImage::read(), File::read(), ScsiDisk::read(), FramebufferFile::readBlock(), File::readBlock(), File::readIntoCache(), NetworkStack::receive(), SlamCache::recovery(), Framebuffer::redraw(), Ext2Filesystem::releaseBlock(), FatFilesystem::remove(), Ohci::removeED(), FatDirectory::removeEntry(), DynamicLinker::resolvePltSymbol(), AsidManager::returnAsid(), Processor::saveState(), Prcm::SelectClockCORE(), Prcm::SelectClockPER(), Prcm::SelectClockPLL(), Rtl8139::send(), Loopback::send(), Ne2k::send(), AtaDisk::sendCommand(), PosixSubsystem::sendSignal(), Prcm::SetClockPLL(), FatFilesystem::setClusterEntry(), Prcm::SetFuncClockCORE(), Prcm::SetFuncClockPER(), Prcm::SetIfaceClockCORE(), Prcm::SetIfaceClockPER(), X86Keyboard::setLedState(), MemoryMappedFile::setPermissions(), VbeDisplay::setScreenMode(), Display::setScreenMode(), Processor::setSingleStep(), VirtualTerminalManager::setTerminalMode(), Thread::shutdown(), UnixSocketSyscalls::shutdown(), AnonymousMemoryMap::split(), MemoryMappedFile::split(), StringView::substring(), Processor::switchAddressSpace(), MemoryMappedFile::sync(), PedigreeCSyscallManager::syscall(), PosixSyscallManager::syscall(), NativeSyscallManager::syscall(), KernelCoreSyscallManager::syscall(), WaitCleanup::terminated(), Subsystem::threadException(), PosixSubsystem::threadException(), Cache::timer(), DynamicLinker::trap(), AnonymousMemoryMap::trap(), MemoryMappedFile::trap(), MemoryMapManager::trap(), KernelElf::unloadModule(), X86CommonPhysicalMemoryManager::unmapRegion(), Event::unserialize(), KeymapManager::useCompiledKeymap(), KeymapManager::useKeymap(), UserManager::UserManager(), Prcm::WaitCoreIdleStatus(), Prcm::WaitPllIdleStatus(), ScsiDisk::write(), File::write(), UnixSocket::writeBytewise(), TextIO::writeStr(), Ext2Node::~Ext2Node(), and Thread::~Thread().
#define EXPORTED_PUBLIC __attribute__((visibility("default"))) |
This function or variable is to be exposed to other objects. This is needed for anything that the kernel will expose to kernel modules.
Definition at line 78 of file system/include/pedigree/kernel/compiler.h.
Referenced by Ps2Controller::dump(), Ps2Mouse::getName(), BootIO::initialise(), CdiIrqHandler::irq(), CdiNet::setStationInfo(), and WaitCleanup::terminated().
#define FATAL | ( | text | ) |
Add a fatal message to the log Breaks into debugger and panics if the debugger isn't around, or the user exits it.
Definition at line 89 of file Log.h.
Referenced by BusMasterIde::add(), HashedPageTable::addMapping(), PerProcessorScheduler::addThread(), BusMasterIde::begin(), TimeoutGuard::cancel(), Ext2Directory::convertToFile(), Ext2Filesystem::createNode(), ArmV7VirtualAddressSpace::doMap(), AtaDisk::doRead(), ScsiDisk::doRead(), AtaDisk::doWrite(), Ext2Node::ensureLargeEnough(), Event::Event(), PosixSubsystem::exit(), VirtualAddressSpace::expandHeap(), FatFilesystem::findFreeCluster(), ArmV7PhysicalMemoryManager::freePageUnlocked(), HostedPhysicalMemoryManager::freePageUnlocked(), X86CommonPhysicalMemoryManager::freePageUnlocked(), Symlink::fromFile(), Pipe::fromFile(), Directory::fromFile(), FatFilesystem::getClusterEntry(), KernelElf::getDependingModule(), Thread::getKernelStack(), Process::getThread(), UserManager::initialise(), X86CommonPhysicalMemoryManager::initialise64(), X86IsaDma::initTransfer(), Cache::insert(), RadixTree< T >::insert(), PPC32InterruptManager::interrupt(), Ipc::IpcMessage::IpcMessage(), Process::kill(), PerProcessorScheduler::killCurrentThread(), KernelElf::loadModule(), X86CommonPhysicalMemoryManager::PageStack::maybeMap(), page_align(), PerProcessorScheduler::processorAddThread(), FileDisk::read(), File::readBytewise(), NetworkStack::registerDevice(), Ext2Filesystem::releaseBlock(), LockManager::released(), Filesystem::remove(), PerProcessorScheduler::schedule(), IoEvent::serialize(), PollEvent::serialize(), FatFilesystem::setClusterEntry(), X86Keyboard::setLedState(), Thread::setStatus(), WaitCleanup::terminated(), Thread::Thread(), RequestQueue::RequestQueueOverrunChecker::timer(), MemoryMapManager::unmapAllUnlocked(), HostedPhysicalMemoryManager::unmapRegion(), SlamAllocator::wipe(), File::writeBytewise(), TextIO::writeStr(), and X86VirtualAddressSpace::X86VirtualAddressSpace().
#define FATAL_NOLOCK | ( | text | ) |
#define FORMAT | ( | type, | |
idx, | |||
first | |||
) | __attribute__((format(type, idx, first))) |
This function handles a format string.
Definition at line 58 of file system/include/pedigree/kernel/compiler.h.
Referenced by String::operator StringView().
#define INITIALISATION_ONLY SECTION(".init.text") |
Pack initialisation functions into a special section that could be freed after the kernel initialisation is finished
Definition at line 98 of file system/include/pedigree/kernel/compiler.h.
Referenced by X86VirtualAddressSpace::getKernelHeapEnd(), KernelElf::getModuleAllocator(), X86GdtManager::instance(), CountCompareTimer::instance(), HostedSyscallManager::instance(), Heathrow::instance(), HostedIrqManager::instance(), X64GdtManager::instance(), NMFaultHandler::instance(), X86InterruptManager::instance(), HostedInterruptManager::instance(), Pit::instance(), HostedSchedulerTimer::instance(), X64InterruptManager::instance(), X64SyscallManager::instance(), Pic::instance(), HostedPhysicalMemoryManager::instance(), X86CommonPhysicalMemoryManager::instance(), OpenPic::instance(), KernelElf::instance(), and PageFaultHandler::registerHandler().
#define IS_CONSTANT | ( | x | ) | __builtin_constant_p(x) |
True if the expression is constant at compile time, false otherwise.
Definition at line 60 of file system/include/pedigree/kernel/compiler.h.
#define LIKELY | ( | exp | ) | __builtin_expect(!!(exp), 1) |
The expression is very likely to be true
Definition at line 52 of file system/include/pedigree/kernel/compiler.h.
Referenced by Pic::control(), Ext2Node::ensureLargeEnough(), File::getPhysicalPage(), Decrementer::interrupt(), HostedInterruptManager::interrupt(), X64InterruptManager::interrupt(), CountCompareTimer::interrupt(), MIPS32InterruptManager::interrupt(), PPC32InterruptManager::interrupt(), ARM926EInterruptManager::interrupt(), Heathrow::interrupt(), X86InterruptManager::interrupt(), HostedIrqManager::interrupt(), Pic::interrupt(), OpenPic::interrupt(), Pit::irq(), HostedSchedulerTimer::irq(), Directory::lookup(), HostedSyscallManager::syscall(), X64SyscallManager::syscall(), and Cache::timer().
#define LOG_AT_LEVEL | ( | level, | |
text, | |||
lock | |||
) |
#define LOG_CALLBACK_COUNT 16 |
Maximum number of output callbacks that can be registered.
Definition at line 130 of file Log.h.
Referenced by Log::flushEntry(), Log::installCallback(), Log::Log(), and Log::removeCallback().
#define LOG_ENTRIES ((1 << 16) / sizeof(LogEntry)) |
The maximum number of static entries in the log.
Definition at line 127 of file Log.h.
Referenced by Log::flushEntry(), Log::getStaticEntry(), and Log::installCallback().
#define LOG_LENGTH 128 |
#define MAY_ALIAS __attribute__((may_alias)) |
The type may alias
Definition at line 50 of file system/include/pedigree/kernel/compiler.h.
#define MUST_USE_RESULT __attribute__((warn_unused_result)) |
This function must have its return value used somehow.
Definition at line 68 of file system/include/pedigree/kernel/compiler.h.
#define NEVER_INLINE __attribute__((noinline)) |
Functions that should never be inlined
Definition at line 44 of file system/include/pedigree/kernel/compiler.h.
#define NORETURN __attribute__((noreturn)) |
Function does not return
Definition at line 35 of file system/include/pedigree/kernel/compiler.h.
Referenced by Thread::detached(), Dm9601::getName(), Ps2Mouse::getName(), Ne2k::getName(), Uhci::getName(), PosixSubsystem::getSignalHandler(), Process::reap(), ARMV7InterruptManager::syscall(), and TimeoutGuard::timedOut().
#define NOTICE | ( | text | ) | LOG_AT_LEVEL(Log::Notice, text, 1) |
Add a notice to the log
Definition at line 74 of file Log.h.
Referenced by Semaphore::acquireWithResult(), VirtualTerminalManager::activate(), DeviceHashTree::add(), FatDirectory::addEntry(), RequestQueue::addRequest(), PerProcessorScheduler::addThread(), Elf::allocate(), MIPS32VirtualAddressSpace::allocateStack(), FatDirectory::cacheDirectoryContents(), StreamingScreenLogger::callback(), TimeoutGuard::cancel(), VFS::checkAccess(), HostedVirtualAddressSpace::clone(), RtcFile::command(), FramebufferFile::command(), BusMasterIde::commandComplete(), MemoryPressureManager::compact(), MemoryMappedFile::compact(), MemoryMapManager::compact(), FatFilesystem::convertFilenameFrom(), Elf::create(), Elf::createNeededOnly(), Ext2Filesystem::createNode(), Pipe::decreaseRefCount(), Device::Device(), UsbHub::deviceConnected(), AtaDisk::doWrite(), Cache::evict(), AllocationCommand::execute(), KernelElf::executeModules(), Cache::executeRequest(), PosixSubsystem::exit(), NativeSyscallManager::factory(), FatFilesystem::findFreeCluster(), FatFilesystem::getClusterEntry(), KernelElf::getDependingModule(), UserManager::getGroup(), PPC32StackFrame::getParameter(), MemFile::getPhysicalPage(), RawFs::getRoot(), VirtualTerminalManager::getTerminalMode(), Thread::getTlsBase(), KernelElf::hasPendingModules(), VbeFramebuffer::hwRedraw(), HostedPhysicalMemoryManager::initialisationDone(), X86CommonPhysicalMemoryManager::initialisationDone(), X86Keyboard::initialise(), UsbUlpi::initialise(), X86GdtManager::initialise(), X64GdtManager::initialise(), CountCompareTimer::initialise(), Iso9660Filesystem::initialise(), CdiDisk::initialise(), Ext2Filesystem::initialise(), FatFilesystem::initialise(), Pc::initialise(), HostedPhysicalMemoryManager::initialise(), X86CommonPhysicalMemoryManager::initialise(), MemoryPool::initialise(), GPTimer::initialise(), AtaDisk::initialise(), ScsiDisk::initialise(), BusMasterIde::initialise(), KernelElf::initialise(), ProcFs::initialise(), Rtc::initialise1(), Rtc::initialise2(), X86CommonPhysicalMemoryManager::initialise64(), Ehci::initialiseController(), X86GdtManager::initialiseDoubleFaultTss(), Dm9601::initialiseDriver(), ARMV7InterruptManager::initialiseProcessor(), DynamicLinker::initPlt(), Gpio::initspecific(), X86IsaDma::initTransfer(), MIPS32TlbManager::interrupt(), Heathrow::interrupt(), X86InterruptManager::interrupt(), HostedIrqManager::interrupt(), Pic::interrupt(), OpenPic::interrupt(), CdiIrqHandler::irq(), Nic3C90x::irq(), AtaController::irq(), Process::kill(), Elf::load(), KernelElf::loadModule(), Elf::loadModule(), DynamicLinker::loadObject(), DynamicLinker::loadProgram(), InputManager::mainThread(), Device::Address::map(), MemoryMapManager::mapAnon(), MemoryMapManager::mapFile(), msdosProbeDisk(), Ne2k::Ne2k(), Nic3C90x::Nic3C90x(), VsidManager::obtainVsid(), VirtualTerminalManager::openInactive(), page_align(), PciAtaController::PciAtaController(), Pipe::Pipe(), Elf::preallocateSymbols(), File::readIntoCache(), SlamCache::recovery(), Ext2Filesystem::remove(), MemoryMapManager::remove(), RawFsDir::removeRecursive(), VirtualTerminalManager::reportPermission(), Nic3C90x::reset(), DynamicLinker::resolvePltSymbol(), Processor::restoreState(), Rtl8139::send(), AtaDisk::sendCommand(), PosixSubsystem::sendSignal(), SerialIO::SerialIO(), X86Serial::setBase(), Ps2Controller::setIrqEnable(), X86Keyboard::setLedState(), VmwareGraphics::setMode(), Framebuffer::setPalette(), MemoryMapManager::setPermissions(), VbeDisplay::setScreenMode(), Nic3C90x::setStationInfo(), CdiNet::setStationInfo(), Dm9601::setStationInfo(), Ne2k::setStationInfo(), VirtualTerminalManager::setTerminalMode(), X86CommonPhysicalMemoryManager::shutdown(), Foo::syscall(), PosixSyscallManager::syscall(), NativeSyscallManager::syscall(), HostedSyscallManager::syscall(), ARMV7InterruptManager::syscall(), KernelCoreSyscallManager::syscall(), X64SyscallManager::syscall(), WaitCleanup::terminated(), Cache::timer(), AnonymousMemoryMap::trap(), MemoryMappedFile::trap(), MemoryMapManager::trap(), KernelElf::unloadModule(), KernelElf::updateModuleStatus(), KernelElf::waitForModulesToLoad(), RequestQueue::work(), and TextIO::writeStr().
#define PACKED __attribute__((packed)) |
No padding for a type/variable
Definition at line 48 of file system/include/pedigree/kernel/compiler.h.
Referenced by X64InterruptManager::initialiseProcessor(), X86InterruptManager::initialiseProcessor(), and HidReport::parseDescriptor().
#define PURE __attribute__((pure)) |
Function does not have a side-effect (except for the return value)
Definition at line 37 of file system/include/pedigree/kernel/compiler.h.
Referenced by X64VirtualAddressSpace::getKernelModulesEnd(), MIPS32InterruptManager::instance(), ARM926EInterruptManager::instance(), ARMV7InterruptManager::instance(), X86InterruptManager::instance(), HostedInterruptManager::instance(), PPC32InterruptManager::instance(), and X64InterruptManager::instance().
#define SECTION | ( | x | ) | __attribute__((__section__(x))) |
This code should be placed in the given section.
Definition at line 65 of file system/include/pedigree/kernel/compiler.h.
#define UNLIKELY | ( | exp | ) | __builtin_expect(!!(exp), 0) |
The expression is very unlikely to be true
Definition at line 54 of file system/include/pedigree/kernel/compiler.h.
Referenced by Directory::addEphemeralFile(), SlamCache::allocate(), SlamAllocator::allocate(), StringView::compare(), Pic::control(), CacheManager::executeRequest(), Filesystem::findNode(), X86CommonPhysicalMemoryManager::PageStack::free(), Directory::getChild(), Directory::getNumChildren(), File::getPhysicalPage(), HostedInterruptManager::interrupt(), X64InterruptManager::interrupt(), X86InterruptManager::interrupt(), HostedTimer::irq(), Rtc::irq(), KernelElf::loadModule(), HostedVirtualAddressSpace::map(), HostedInterruptManager::registerInterruptHandler(), ARMV7InterruptManager::registerInterruptHandler(), MIPS32InterruptManager::registerInterruptHandler(), ARM926EInterruptManager::registerInterruptHandler(), X86InterruptManager::registerInterruptHandler(), PPC32InterruptManager::registerInterruptHandler(), X64InterruptManager::registerInterruptHandler(), ARMV7InterruptManager::registerInterruptHandlerDebugger(), HostedInterruptManager::registerInterruptHandlerDebugger(), ARM926EInterruptManager::registerInterruptHandlerDebugger(), PPC32InterruptManager::registerInterruptHandlerDebugger(), X86InterruptManager::registerInterruptHandlerDebugger(), X64InterruptManager::registerInterruptHandlerDebugger(), MIPS32InterruptManager::registerInterruptHandlerDebugger(), HostedIrqManager::registerIsaIrqHandler(), Pic::registerIsaIrqHandler(), HostedIrqManager::registerPciIrqHandler(), Pic::registerPciIrqHandler(), HostedSyscallManager::registerSyscallHandler(), X64SyscallManager::registerSyscallHandler(), ARM926EInterruptManager::registerSyscallHandler(), ARMV7InterruptManager::registerSyscallHandler(), PPC32InterruptManager::registerSyscallHandler(), MIPS32InterruptManager::registerSyscallHandler(), X86InterruptManager::registerSyscallHandler(), File::returnPhysicalPage(), StringView::substring(), Framebuffer::swBlit(), Framebuffer::swCopy(), Framebuffer::swCreateBuffer(), Framebuffer::swRect(), Framebuffer::swSetPixel(), HostedSyscallManager::syscall(), X64SyscallManager::syscall(), and Cache::timer().
#define UNREACHABLE __builtin_unreachable() |
This code is not reachable.
Definition at line 56 of file system/include/pedigree/kernel/compiler.h.
#define USED __attribute__((used)) |
This function or variable is used, even if it doesn't appear that way.
Definition at line 70 of file system/include/pedigree/kernel/compiler.h.
Referenced by X64InterruptManager::instance(), and X64SyscallManager::instance().
#define WARNING | ( | text | ) | LOG_AT_LEVEL(Log::Warning, text, 1) |
Add a warning message to the log
Definition at line 78 of file Log.h.
Referenced by Spinlock::acquire(), Elf::allocate(), SlamAllocator::allocate(), ArmV7PhysicalMemoryManager::allocateRegion(), HostedPhysicalMemoryManager::allocateRegion(), PpcCommonPhysicalMemoryManager::allocateRegion(), X86CommonPhysicalMemoryManager::allocateRegion(), ArmV7VirtualAddressSpace::allocateStack(), Elf::applyRelocation(), BusMasterIde::begin(), FatDirectory::cacheDirectoryContents(), X64VirtualAddressSpace::clone(), MemoryMapManager::contains(), LwipSocketSyscalls::create(), Elf::create(), Thread::detach(), HostedVirtualAddressSpace::doAllocateStack(), X64VirtualAddressSpace::doAllocateStack(), ArmV7VirtualAddressSpace::doMap(), AtaDisk::doRead(), ScsiDisk::doRead(), UsbHub::doSync(), AtaDisk::doWrite(), DwarfState::DwarfState(), Uhci::executeRequest(), Ehci::executeRequest(), VirtualAddressSpace::expandHeap(), HidReport::InputBlock::feedInput(), VbeDisplay::fillRectangle(), Filesystem::findNode(), SlamCache::free(), X86VirtualAddressSpace::fromFlags(), KernelElf::getDependingModule(), UserManager::getGroup(), X64StackFrame::getParameter(), PPC32StackFrame::getParameter(), File::getPhysicalPage(), Scheduler::getProcess(), DwarfState::getRegister(), PPC32InterruptState::getSyscallNumber(), X86InterruptState::getSyscallParameter(), X64SyscallState::getSyscallParameter(), FatFilesystem::getVolumeLabel(), Decrementer::initialise(), Iso9660Filesystem::initialise(), Ext2Filesystem::initialise(), X86CommonPhysicalMemoryManager::initialise(), AtaDisk::initialise(), RequestQueue::initialise(), InputManager::initialise(), KernelElf::initialise(), UsbDevice::initialise(), DevFs::initialise(), X86CommonPhysicalMemoryManager::initialise64(), DynamicLinker::initPlt(), ConsoleFile::inputLineDiscipline(), Cache::insert(), CdiIrqHandler::irq(), Rtl8139::irq(), Ne2k::irq(), Rtc::irq(), Ohci::irq(), DynamicLinker::loadObject(), DynamicLinker::loadProgram(), InputManager::mainThread(), MIPS32VirtualAddressSpace::map(), Cache::markEditing(), Cache::markNoLongerEditing(), X64VirtualAddressSpace::memIsInHeap(), msdosProbeDisk(), msdosReadTable(), Ne2k::Ne2k(), Nic3C90x::Nic3C90x(), VirtualTerminalManager::openInactive(), ConsoleFile::outputLineDiscipline(), page_align(), Ehci::portReset(), InputManager::putNotification(), ScsiDisk::read(), Ext2Symlink::readBytewise(), ScsiDisk::readSense(), Semaphore::release(), Ext2Filesystem::releaseInode(), PerProcessorScheduler::schedule(), Dm9601::send(), Rtl8139::send(), AtaDisk::sendCommand(), Thread::sendEvent(), PosixSubsystem::sendSignal(), Prcm::SetClockPLL(), HostedVirtualAddressSpace::setFlags(), Prcm::SetFuncClockCORE(), Prcm::SetIfaceClockCORE(), X86Keyboard::setLedState(), Subsystem::setProcess(), Thread::setStatus(), HostedProcessorInformation::setVirtualAddressSpace(), Cache::sync(), PosixSyscallManager::syscall(), WaitCleanup::terminated(), TimeoutGuard::TimeoutGuard(), TextIO::translate(), DynamicLinker::trap(), ScsiDisk::unitReady(), ConditionVariable::wait(), Prcm::WaitCoreIdleStatus(), Prcm::WaitPllIdleStatus(), RequestQueue::work(), Ext2Symlink::writeBytewise(), File::writeCallback(), TextIO::writeStr(), X86VirtualAddressSpace::X86VirtualAddressSpace(), PosixSubsystem::~PosixSubsystem(), and Thread::~Thread().
#define WEAK __attribute__((weak)) |
This function can be overridden by a library.
Definition at line 72 of file system/include/pedigree/kernel/compiler.h.
enum Modifier |
enum NumberType |
void EXPORTED_PUBLIC _assert | ( | bool | b, |
const char * | file, | ||
int | line, | ||
const char * | func | ||
) |
Internal use only, the assert() macro passes the additional arguments automatically
Definition at line 24 of file assert.cc.
References Processor::breakpoint(), Dec, Hex, Processor::m_Initialised, and panic().
void EXPORTED_PUBLIC panic | ( | const char * | msg | ) |
Prints out a message to the screen and the most recent log entries and halts the processor. This function should only be called in unrecoverable emergency cases, e.g. when the kernel is unable to successfully complete its initialisation.
[in] | msg | the message to print to the screen |
Definition at line 121 of file panic.cc.
References GraphicsService::GraphicsProvider::bTextModes, ServiceManager::enumerateOperations(), ServiceManager::getService(), Processor::halt(), ServiceFeatures::probe, ServiceFeatures::provides(), Service::serve(), Processor::setInterrupts(), and Display::setScreenMode().
Referenced by _assert(), Spinlock::acquire(), HashedPageTable::addMapping(), Translations::addTranslation(), PpcCommonPhysicalMemoryManager::PageStack::allocate(), X86CommonPhysicalMemoryManager::allocatePage(), ArmV7PhysicalMemoryManager::allocateRegion(), HostedPhysicalMemoryManager::allocateRegion(), PpcCommonPhysicalMemoryManager::allocateRegion(), X86CommonPhysicalMemoryManager::allocateRegion(), Archive::Archive(), PerProcessorScheduler::checkEventState(), AtaDisk::doWrite(), PanicCommand::execute(), Spinlock::exit(), Log::flushEntry(), PpcCommonPhysicalMemoryManager::freePage(), MIPS32VirtualAddressSpace::generateNullChunk(), X86VirtualAddressSpace::getMapping(), HostedVirtualAddressSpace::getMapping(), MIPS32VirtualAddressSpace::getMapping(), X64VirtualAddressSpace::getMapping(), HashedPageTable::initialise(), PerProcessorScheduler::initialise(), Pc::initialise(), X86CommonPhysicalMemoryManager::initialise(), PPC32VirtualAddressSpace::initialise(), X86CommonPhysicalMemoryManager::initialise64(), PPC32VirtualAddressSpace::initialRoster(), HostedInterruptManager::interrupt(), X64InterruptManager::interrupt(), ARM926EInterruptManager::interrupt(), PPC32InterruptManager::interrupt(), MIPS32TlbManager::interrupt(), X86InterruptManager::interrupt(), X86VirtualAddressSpace::isMapped(), MIPS32VirtualAddressSpace::isMapped(), PerProcessorScheduler::killCurrentThread(), X86VirtualAddressSpace::map(), HostedVirtualAddressSpace::map(), MIPS32VirtualAddressSpace::map(), AsidManager::obtainAsid(), HashedPageTable::setDBAT(), X86VirtualAddressSpace::setFlags(), X64VirtualAddressSpace::setFlags(), HashedPageTable::setIBAT(), Debugger::start(), ARMV7InterruptManager::syscall(), X86VirtualAddressSpace::unmap(), X64VirtualAddressSpace::unmapUnlocked(), SlamAllocator::wipe(), and X86VirtualAddressSpace::X86VirtualAddressSpace().