Dokumentacja przestrzeni nazw Thread
[Multitasking]


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_tProcessGet (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_tThreadGet (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_tMemsetThreadHandle = NULL
struct thread_tIdleThreadHandle = 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


Opis szczegółowy

Uwaga:
priorities are not respected; this is a round-robin scheduler right now. otherwise thread would starve under the current thread-priority implementation
Do zrobienia:
priorytety w scheduler

Dokumentacja funkcji

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 
)

int Thread::awake ( thread_t *  thread  ) 

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 
)

int Thread::enqueue_thread ( thread_t *  thread,
blist_t queue 
)

void Thread::IdleThread (  ) 

Definicja w linii 259 pliku scheduler.cpp.

Odwołania w init().

void Thread::init (  ) 

class IPC::Lock::lock_t Thread::lock_queues ( "queues"   ) 

class IPC::Lock::lock_t Thread::lock_sleep ( "sleep"   ) 

void Thread::MatkaTeresaThread (  ) 

Definicja w linii 359 pliku scheduler.cpp.

Odwołuje się do NULL, sleep(), t1 i t2.

void Thread::MemsetThread (  ) 

int Thread::MmapDestroyStack ( class mmap_t m,
struct mmap_s s 
)

void Thread::prior_thread (  ) 

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  ) 

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  ) 

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().

int Thread::sem_sleep ( struct sem_t sem_id,
uint64  sem_dt 
)

Definicja w linii 259 pliku thread.cpp.

Odwołuje się do current_thread i sem_sleep().

int Thread::sem_sleep ( thread_t *  thread,
struct sem_t sem_id,
uint64  sem_dt 
)

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  ) 

Definicja w linii 208 pliku thread.cpp.

Odwołuje się do current_thread i sleep().

int Thread::sleep ( thread_t *  thread,
uint64  time 
)

int Thread::sleepcompar ( const void *  a,
const void *  b 
)

Definicja w linii 138 pliku thread.cpp.

Odwołuje się do _Pf, bli_dt i preturn.

Odwołania w sleep().

uint32 Thread::thread_load ( thread_t *  thread  ) 

int Thread::ThreadFinishOff ( thread_t *  thread  ) 

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 
)

Definicja w linii 297 pliku thread.cpp.

Odwołuje się do ThreadGet() i ThreadKill().

int Thread::ThreadKill ( thread_t *  thread  ) 

int Thread::unqueue_thread ( thread_t *  thread,
blist_t queue 
)

int Thread::wake_threads (  ) 

void Thread::ZombieSlayerThread (  ) 


Dokumentacja zmiennych

Definicja w linii 31 pliku process.hpp.

Odwołania w Thread::process_t::create_thread().

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().

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().

Definicja w linii 70 pliku process.cpp.

Odwołania w ProcessRegister().

Odwołania w awake(), sleep() i wake_threads().

Definicja w linii 31 pliku thread.hpp.

Definicja w linii 401 pliku scheduler.cpp.

Odwołania w init().

struct thread_t * Thread::MemsetThreadHandle = NULL [read]

Definicja w linii 46 pliku scheduler.cpp.

Odwołania w init().

class process_t proc2 Thread::proc3

Definicja w linii 400 pliku scheduler.cpp.

Odwołania w init().

const uint32 Thread::PROC_NAME = 0x10

Definicja w linii 68 pliku process.cpp.

Odwołania w init(), ProcessGet(), ProcessRegister() i ProcFinishOff().

thread_t volatile* Thread::t1 = NULL

thread_t volatile * Thread::t2 = NULL

Definicja w linii 267 pliku scheduler.cpp.

Odwołania w BaonKilinski() i MatkaTeresaThread().

const uint32 Thread::TH_ACTIVE = 0x0008

const uint32 Thread::TH_ASLEEP = 0x0010

Definicja w linii 35 pliku thread.hpp.

Odwołania w awake(), BaonKilinski() i sleep().

const uint32 Thread::TH_BLOCKED = 0x0040

Definicja w linii 37 pliku thread.hpp.

Odwołania w ThreadFinishOff().

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

Definicja w linii 36 pliku thread.hpp.

Odwołania w sleep() i ThreadKill().

const uint32 Thread::TH_IDLE = 0x0080

Definicja w linii 38 pliku thread.hpp.

Odwołania w Thread::Scheduler::choose_next_thread() i init().

Definicja w linii 29 pliku thread.hpp.

Odwołania w Thread::process_t::create_thread().

Definicja w linii 43 pliku thread.cpp.

Odwołania w init(), ThreadFinishOff(), ThreadKill() i ZombieSlayerThread().

Definicja w linii 42 pliku thread.cpp.

Odwołania w awake(), init(), prior_thread(), sleep() i wake_threads().

const uint32 Thread::TSP_SIZE = 0x100

Definicja w linii 10 pliku context.hpp.

Odwołania w allocate_context().


Wygenerowano Sat Jul 19 02:21:28 2008 dla panaLiX programem  doxygen 1.5.6