Komponenty | |
class | process_t |
struct | thread_t |
Przestrzenie nazw | |
namespace | Scheduler |
namespace | Timer |
Funkcje | |
void | allocate_context (Thread::thread_t *obj, bool supervisor, uint32 stack, uint32 proc_addr) |
int | ProcessRegister (class process_t *proc) |
int | ProcessKill (int no) |
process_t * | ProcessGet (int i) |
int | MmapDestroyStack (class mmap_t *m, struct mmap_s *s) |
void | count_prior (thread_t *thread, uint32 i, bool move) |
void | prior_thread () |
int | ThreadFinishOff (thread_t *thread) |
int | ProcFinishOff (process_t *proc) |
void | ZombieSlayerThread () |
void | MemsetThread () |
void | IdleThread () |
void | ABCThread () |
void | MatkaTeresaThread () |
void | BaonKilinski () |
void | init () |
proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556 | |
class IPC::Lock::lock_t | lock_queues ("queues") |
class IPC::Lock::lock_t | lock_sleep ("sleep") |
int | wake_threads () |
int | enqueue_thread (thread_t *thread, blist_t *queue) |
int | unqueue_thread (thread_t *thread, blist_t *queue) |
uint32 | thread_load (thread_t *thread) |
int | sleepcompar (const void *a, const void *b) |
int | sleep (thread_t *thread, uint64 time) |
int | sleep (uint64 time) |
int | awake (thread_t *thread) |
int | sem_sleep (thread_t *thread, struct sem_t *sem_id, uint64 sem_dt) |
int | sem_sleep (struct sem_t *sem_id, uint64 sem_dt) |
int | sem_awake (thread_t *thread) |
thread_t * | ThreadGet (int procno, int threadno) |
int | ThreadKill (thread_t *thread) |
int | ThreadKill (int procno, int threadno) |
Zmienne | |
const uint32 | TSP_SIZE = 0x100 |
process_t | kernel_process |
class blist_t | Processes |
int | LastProcessNum = 1 |
const uint32 | DEF_THREAD_PRIOR = 0x5 |
const uint32 | PROC_NAME = 0x10 |
struct thread_t * | MemsetThreadHandle = NULL |
struct thread_t * | IdleThreadHandle = NULL |
thread_t volatile * | t1 = NULL |
thread_t volatile * | t2 = NULL |
int volatile | i = 0 |
class process_t proc2 | proc3 |
class Memory::Pager::memtree m2 | m3 |
class Memory::Heap::heapbox | heap |
class blist_t | threads_queue [THREAD_QUEUES] |
class blist_t | threads_sleep |
class blist_t | threads_dead |
const uint32 | THREAD_NAME = 0x20 |
const uint32 | THREAD_QUEUES = 32 |
const uint32 | LOWEST_PRIORITY = 31 |
const uint32 | TH_BUSY = 0x0004 |
const uint32 | TH_ACTIVE = 0x0008 |
const uint32 | TH_ASLEEP = 0x0010 |
const uint32 | TH_DYING = 0x0020 |
const uint32 | TH_BLOCKED = 0x0040 |
const uint32 | TH_IDLE = 0x0080 |
class IPC::Lock::lock_t | lock_queues |
class IPC::Lock::lock_t | lock_sleep |
void Thread::ABCThread | ( | ) |
Definicja w linii 270 pliku scheduler.cpp.
Odwołuje się do i, Thread::process_t::no, Thread::thread_t::proc i sleep().
Odwołania w init().
void Thread::allocate_context | ( | Thread::thread_t * | obj, | |
bool | supervisor, | |||
uint32 | stack, | |||
uint32 | proc_addr | |||
) |
Definicja w linii 41 pliku context.cpp.
Odwołuje się do Arch::x86::GDT::code_sel_kernel, Arch::x86::GDT::code_sel_user, Thread::thread_t::context, Arch::x86::GDT::data_sel_kernel, Arch::x86::GDT::data_sel_user, FAC_ISP, FAC_KSP, FAC_THREAD, FAC_TSP, Memory::Heap::heap0, Arch::x86::Thread::context_t::isp, Arch::x86::Thread::context_t::ksp, memset(), NO_ALIGN, NULL, Arch::x86::Thread::REG_STACK_SIZE, Arch::x86::Thread::context_t::supervisor, Arch::x86::Thread::context_t::tsp i TSP_SIZE.
Odwołania w Thread::process_t::create_thread().
int Thread::awake | ( | thread_t * | thread | ) |
Definicja w linii 213 pliku thread.cpp.
Odwołuje się do _Pf, EINVAL, enqueue_thread(), ESUCCESS, i, IPC::Lock::lock_t::lock(), Thread::Scheduler::lock_scheduler, lock_sleep, lock_system, Thread::Scheduler::multitasking_running, preturn, Thread::thread_t::priority, Thread::thread_t::state, TH_ACTIVE, TH_ASLEEP, threads_queue, threads_sleep, IPC::Lock::lock_t::ulock() i unqueue_thread().
Odwołania w sem_awake() i wake_threads().
void Thread::BaonKilinski | ( | ) |
Definicja w linii 376 pliku scheduler.cpp.
Odwołuje się do NULL, sleep(), Thread::thread_t::state, t1, t2 i TH_ASLEEP.
void Thread::count_prior | ( | thread_t * | thread, | |
uint32 | i, | |||
bool | move | |||
) |
Definicja w linii 49 pliku scheduler.cpp.
Odwołuje się do ABS, Thread::thread_t::best_priority, enqueue_thread(), IPC::Lock::lock_t::lock(), lock_queues, lock_system, MAX, MIN, Thread::thread_t::prior_diff, PRIOR_THREAD_DELTA, Thread::thread_t::priority, thread_load(), THREAD_QUEUES, threads_queue, IPC::Lock::lock_t::ulock(), unqueue_thread() i Thread::thread_t::worst_priority.
Odwołania w prior_thread().
int Thread::enqueue_thread | ( | thread_t * | thread, | |
blist_t * | queue | |||
) |
Definicja w linii 75 pliku thread.cpp.
Odwołuje się do EFAIL, ESUCCESS, i, IPC::Lock::lock_t::lock(), lock_queues, NULL, blist_t::ptr() i IPC::Lock::lock_t::ulock().
Odwołania w awake(), Thread::Scheduler::choose_next_thread(), count_prior() i Thread::process_t::create_thread().
void Thread::IdleThread | ( | ) |
void Thread::init | ( | ) |
proste operacje na sieci porozumiewa sie z pci32 by znalezc karte sieciowa 3c556
ustawienie timera ktory seeduje linear congruential generator DEF_SECOND/32 na sekunde i czeka na pierwsze seedowanie. w momencie gdy rtc timer pracuje, malo mozliwe jest by parzystosc rdtsc() zmieniala sie miedzy wywolaniami rdtsc_runner() w przewidywalny sposob
Definicja w linii 403 pliku scheduler.cpp.
Odwołuje się do ABCThread(), Memory::Heap::allocate_heapbox(), Memory::Pager::allocate_memtree(), Arch::x86::check_cpuid(), cout(), Arch::x86::cpu_flags, Arch::x86::CPU_SEP, Arch::x86::cpu_signature, Arch::x86::CPU_TCS, Arch::x86::cpu_vendor_name, Arch::x86::cpuid(), Arch::x86::cpuid_success, Thread::process_t::create_thread(), ESUCCESS, FAC_THREAD, FAC_THRLIST, FAC_THRSLEEP, heap, Memory::Heap::heap0, i, IdleThread(), IdleThreadHandle, Thread::process_t::init(), blist_t::init(), string::inval(), kernel_process, Memory::Pager::kmem, lock_queues, Thread::Scheduler::lock_scheduler, m3, MemsetThread(), MemsetThreadHandle, prior_thread(), proc3, Processes, ProcessRegister(), string::set(), Thread::thread_t::state, string::strcmp(), sysfail, TH_IDLE, THREAD_QUEUES, threads_dead, threads_queue, threads_sleep, IPC::Lock::lock_t::ulock(), Arch::x86::RTC::up_time, Thread::thread_t::work_time i ZombieSlayerThread().
Odwołania w main().
class IPC::Lock::lock_t Thread::lock_queues | ( | "queues" | ) |
class IPC::Lock::lock_t Thread::lock_sleep | ( | "sleep" | ) |
void Thread::MatkaTeresaThread | ( | ) |
void Thread::MemsetThread | ( | ) |
Definicja w linii 218 pliku scheduler.cpp.
Odwołuje się do Memory::Physical::alloc4kDirty_high(), Memory::Physical::alloc4kDirty_low(), ESUCCESS, Memory::zone::free(), i, NULL, Memory::Physical::PAGESCLEANMAX, say, sleep(), Memory::Physical::zero_pages_high i Memory::Physical::zero_pages_low.
Odwołania w init().
Definicja w linii 174 pliku process.cpp.
Odwołuje się do disalloc4k(), end, ESUCCESS, i, mmap_s::info, Thread::process_t::mem, PAGE_SIZE, PTE_PRESENT, Memory::Pager::memtree::pte_val() i mmap_s::start.
Odwołania w Thread::process_t::alloc_stack().
void Thread::prior_thread | ( | ) |
Definicja w linii 86 pliku scheduler.cpp.
Odwołuje się do bli_dt, count_prior(), CRT_STACK, CRT_STACK_SIZE, disalloc4k(), blist_t::head, i, Memory::Pager::kmem, IPC::Lock::lock_t::lock(), lock_queues, blist_s::next, PAGE_SIZE, PRIOR_THREAD_SLEEP, PTE_PRESENT, sleep(), THREAD_QUEUES, threads_queue, threads_sleep i IPC::Lock::lock_t::ulock().
Odwołania w init().
process_t * Thread::ProcessGet | ( | int | i | ) |
Definicja w linii 99 pliku process.cpp.
Odwołuje się do bli_dt, blist_t::head, blist_s::next, NULL i Processes.
Odwołania w ProcessKill() i ThreadGet().
int Thread::ProcessKill | ( | int | no | ) |
Definicja w linii 82 pliku process.cpp.
Odwołuje się do bli_dt, current_thread, EFAIL, ESUCCESS, blist_t::head, blist_s::next, NULL, ProcessGet(), Thread::process_t::thread_list i ThreadKill().
int Thread::ProcessRegister | ( | class process_t * | proc | ) |
Definicja w linii 73 pliku process.cpp.
Odwołuje się do LastProcessNum, Thread::process_t::no, NULL, Processes i blist_t::ptr().
Odwołania w init() i Module::init().
int Thread::ProcFinishOff | ( | process_t * | proc | ) |
Definicja w linii 158 pliku scheduler.cpp.
Odwołuje się do procenv_t::api, blist_t::del(), Memory::Heap::heapbox::destruct(), Memory::Pager::memtree::done(), mmap_t::done(), EINVAL, Thread::process_t::env, ESUCCESS, blist_t::find(), blist_t::head, Thread::process_t::heap, IPC::Lock::lock_t::lock(), lock_queues, Thread::process_t::mem, Memory::Pager::memtree::memory_map, NULL, Processes, Thread::process_t::thread_list i IPC::Lock::lock_t::ulock().
Odwołania w ZombieSlayerThread().
int Thread::sem_awake | ( | thread_t * | thread | ) |
Definicja w linii 264 pliku thread.cpp.
Odwołuje się do awake(), NULL, Thread::thread_t::sem_dt i Thread::thread_t::sem_id.
Odwołania w sem_post().
Definicja w linii 251 pliku thread.cpp.
Odwołuje się do Thread::thread_t::sem_dt, Thread::thread_t::sem_id i sleep().
Odwołania w sem_sleep() i sem_wait().
int Thread::sleep | ( | uint64 | time | ) |
int Thread::sleep | ( | thread_t * | thread, | |
uint64 | time | |||
) |
Definicja w linii 152 pliku thread.cpp.
Odwołuje się do _Pf, Thread::thread_t::awake_time, blistsort_ptr(), current_thread, EFAIL, ESUCCESS, i, IPC::Lock::lock_t::lock(), lock_queues, Thread::Scheduler::lock_scheduler, lock_sleep, lock_system, NULL, preturn, Thread::thread_t::priority, sleepcompar(), Thread::thread_t::state, TH_ACTIVE, TH_ASLEEP, TH_BUSY, TH_DYING, threads_queue, threads_sleep, IPC::Lock::lock_t::ulock(), unqueue_thread() i Arch::x86::RTC::up_time.
Odwołania w ABCThread(), BaonKilinski(), Net::EthernetFrameDemultiplexingThread(), Net::EthernetFrameReceptionThread(), IPC::Lock::lock_t::lock(), MatkaTeresaThread(), MemsetThread(), prior_thread(), API::v1::req(), sem_sleep(), sleep(), ThreadKill(), Thread::Timer::TimerThread(), VarieteThread() i ZombieSlayerThread().
int Thread::sleepcompar | ( | const void * | a, | |
const void * | b | |||
) |
uint32 Thread::thread_load | ( | thread_t * | thread | ) |
Definicja w linii 103 pliku thread.cpp.
Odwołuje się do _Pf, Thread::thread_t::creation_time, i, Thread::thread_t::load, preturn, Thread::thread_t::run1_time, Thread::thread_t::run2_time, Thread::thread_t::running_time, Thread::thread_t::save1_time, Thread::thread_t::save2_time i Arch::x86::RTC::up_time.
Odwołania w count_prior().
int Thread::ThreadFinishOff | ( | thread_t * | thread | ) |
Definicja w linii 119 pliku scheduler.cpp.
Odwołuje się do bli_dt, threnv_t::cd, blist_t::del(), mmap_s::destroy, IPC::Message::mailbox::done(), Thread::thread_t::env, ESUCCESS, blist_t::find(), blist_t::head, Thread::thread_t::inbox, mmap_t::map, mmap_t::mdel(), Thread::process_t::mem, Memory::Pager::memtree::memory_map, blist_s::next, Thread::thread_t::no, NULL, Thread::thread_t::proc, Arch::x86::Interr::except2_t::stack, Arch::x86::Interr::stackPtr, Arch::x86::Interr::stackVac, Thread::thread_t::state, TH_BLOCKED, mmap_s::thread, Thread::process_t::thread_list i threads_dead.
Odwołania w ZombieSlayerThread().
thread_t * Thread::ThreadGet | ( | int | procno, | |
int | threadno | |||
) |
Definicja w linii 271 pliku thread.cpp.
Odwołuje się do bli_dt, blist_t::head, blist_s::next, NULL, ProcessGet() i Thread::process_t::thread_list.
Odwołania w ThreadKill().
int Thread::ThreadKill | ( | int | procno, | |
int | threadno | |||
) |
int Thread::ThreadKill | ( | thread_t * | thread | ) |
Definicja w linii 285 pliku thread.cpp.
Odwołuje się do NULL, blist_t::ptr(), sleep(), Thread::thread_t::state, TH_DYING i threads_dead.
Odwołania w Net::EthernetFrameReceptionThread(), ProcessKill(), ThreadKill() i VarieteThread().
int Thread::unqueue_thread | ( | thread_t * | thread, | |
blist_t * | queue | |||
) |
Definicja w linii 85 pliku thread.cpp.
Odwołuje się do _Pf, bli_dt, blist_t::del(), EFAIL, ESUCCESS, blist_t::head, IPC::Lock::lock_t::lock(), lock_queues, blist_s::next, preturn i IPC::Lock::lock_t::ulock().
Odwołania w awake(), Thread::Scheduler::choose_high(), Thread::Scheduler::choose_next_thread(), count_prior() i sleep().
int Thread::wake_threads | ( | ) |
Definicja w linii 46 pliku thread.cpp.
Odwołuje się do _PF, awake(), Thread::thread_t::awake_time, bli_dt, EFAIL, ESUCCESS, blist_t::head, lock_queues, lock_sleep, lock_system, IPC::Lock::lock_t::locked(), Thread::Scheduler::multitasking_running, blist_s::next, Preturn, threads_sleep i Arch::x86::RTC::up_time.
Odwołania w Arch::x86::RTC::rtc_handler().
void Thread::ZombieSlayerThread | ( | ) |
Definicja w linii 184 pliku scheduler.cpp.
Odwołuje się do bli_dt, blist_t::head, blist_s::next, NULL, Thread::thread_t::proc, ProcFinishOff(), sleep(), Thread::process_t::thread_list, ThreadFinishOff() i threads_dead.
Odwołania w init().
const uint32 Thread::DEF_THREAD_PRIOR = 0x5 |
Definicja w linii 39 pliku thread.cpp.
Odwołania w init(), Arch::x86::Interr::stack_fault() i VarieteThread().
int volatile Thread::i = 0 |
Definicja w linii 269 pliku scheduler.cpp.
Odwołania w ABCThread(), mmap_t::add(), Memory::Physical::alloc4kDirty_high(), Memory::Physical::alloc4kDirty_low(), Thread::process_t::alloc_stack(), Net::Arp::arp_cache_insert(), ATAReadSector(), ATAReadSectorWRetryCHS(), awake(), Memory::Heap::can_be_aligned(), fat_t::chain_length(), Thread::Scheduler::choose_high(), fat_t::cluster_no(), string::cut(), Syms::Mangle::Cxx::d_nestedname(), Syms::Mangle::Cxx::d_sourcename(), Syms::Mangle::Cxx::d_subst(), Syms::Mangle::Cxx::d_symb(), Syms::Mangle::Cxx::d_type(), debug_dump_call_trace(), mmap_t::del(), Syms::Mangle::Cxx::demangle(), Syms::Mangle::demangle(), Memory::Heap::heapbox::destruct(), e3c556_irq(), e3c556_poll(), enqueue_thread(), Net::eth_transmit(), Net::ethernet_address::ethernet_address(), Net::EthernetFrameDemultiplexingThread(), Net::EthernetFrameReceptionThread(), fat_t::fat_rawrw(), stack_t::find(), find_bios32_service_directory_header(), mmap_t::firstfit(), mmap_t::fitbelow(), Memory::Pager::FrameAssign(), init(), Module::init(), Syms::init(), Memory::Heap::init(), Memory::Physical::init(), Mboot::init(), fat_t::lfn2name(), fat_t::lfn_parse_dir(), mmap_t::lgth(), mmap_t::mdel(), MemsetThread(), mmap_t::mfitbelow(), MmapDestroyStack(), Memory::Heap::morecore(), Net::netif::netif(), Memory::Heap::new_bl_bl(), Net::onFramesReceived(), Net::onFramesTransmitted(), fat_t::open(), stack_t::pop_value(), print(), prior_thread(), Net::ICMP::processDatagram(), fat_t::read_chain(), fat_t::read_next_clust(), fat_t::readdir(), API::v1::req(), fat_t::sfn2name(), Memory::Shmem::shmem_attach(), Memory::Shmem::shmem_create(), sleep(), Debug::Profiler::stats(), string::strcmp(), sub(), Arch::x86::Sysenter::SysEnter(), thread_load(), API::v1::user_morecore(), VarieteThread(), fat_t::verify() i fat_t::write_next_clust().
struct thread_t * Thread::IdleThreadHandle = NULL |
Definicja w linii 46 pliku scheduler.cpp.
Odwołania w Thread::Scheduler::choose_next_thread() i init().
Definicja w linii 67 pliku process.cpp.
Odwołania w init(), Thread::Timer::initTimerThread() i main().
int Thread::LastProcessNum = 1 |
Odwołania w awake(), sleep() i wake_threads().
const uint32 Thread::LOWEST_PRIORITY = 31 |
Definicja w linii 31 pliku thread.hpp.
class Memory::Pager::memtree m2 Thread::m3 |
struct thread_t * Thread::MemsetThreadHandle = NULL [read] |
class process_t proc2 Thread::proc3 |
const uint32 Thread::PROC_NAME = 0x10 |
Definicja w linii 32 pliku process.hpp.
Odwołania w Thread::process_t::init() i Thread::process_t::InitKeepHeap().
class blist_t Thread::Processes |
Definicja w linii 68 pliku process.cpp.
Odwołania w init(), ProcessGet(), ProcessRegister() i ProcFinishOff().
thread_t volatile* Thread::t1 = NULL |
Definicja w linii 267 pliku scheduler.cpp.
Odwołania w BaonKilinski(), Syms::Mangle::Cxx::d_check(), Syms::Mangle::Cxx::d_nestedname(), Syms::Mangle::Cxx::d_sourcename() i MatkaTeresaThread().
thread_t volatile * Thread::t2 = NULL |
const uint32 Thread::TH_ACTIVE = 0x0008 |
Definicja w linii 34 pliku thread.hpp.
Odwołania w awake(), Thread::Scheduler::choose_next_thread(), Thread::process_t::create_thread() i sleep().
const uint32 Thread::TH_ASLEEP = 0x0010 |
const uint32 Thread::TH_BLOCKED = 0x0040 |
const uint32 Thread::TH_BUSY = 0x0004 |
Definicja w linii 33 pliku thread.hpp.
Odwołania w Thread::Scheduler::choose_next_thread() i sleep().
const uint32 Thread::TH_DYING = 0x0020 |
const uint32 Thread::TH_IDLE = 0x0080 |
Definicja w linii 38 pliku thread.hpp.
Odwołania w Thread::Scheduler::choose_next_thread() i init().
const uint32 Thread::THREAD_NAME = 0x20 |
const uint32 Thread::THREAD_QUEUES = 32 |
Definicja w linii 30 pliku thread.hpp.
Odwołania w Thread::Scheduler::choose_high(), count_prior(), init() i prior_thread().
class blist_t Thread::threads_dead |
Definicja w linii 43 pliku thread.cpp.
Odwołania w init(), ThreadFinishOff(), ThreadKill() i ZombieSlayerThread().
class blist_t Thread::threads_queue |
Definicja w linii 40 pliku thread.cpp.
Odwołania w awake(), Thread::Scheduler::choose_high(), Thread::Scheduler::choose_next_thread(), count_prior(), Thread::process_t::create_thread(), init(), prior_thread() i sleep().
class blist_t Thread::threads_sleep |
Definicja w linii 42 pliku thread.cpp.
Odwołania w awake(), init(), prior_thread(), sleep() i wake_threads().
const uint32 Thread::TSP_SIZE = 0x100 |