Main Page | Directories | File List | Globals

init_task.c File Reference

#include <agnix/agnix.h>
#include <agnix/tasks.h>
#include <agnix/memory.h>
#include <agnix/linkage.h>
#include <asm/segment.h>
#include <asm/desc.h>
#include <agnix/adi/chips/cpu.h>
#include <agnix/console.h>

Include dependency graph for init_task.c:

Go to the source code of this file.

Functions

u32 idle_esp[0x2000] __attribute__ ((__section__(".data.init_task")))
tss_wrap_s init_tss[MAX_TASKS] __attribute__ ((__aligned__(32)))
u16 kernel_task_init (struct task_s **task, struct tss_s **tss, u32 page, u32 eip)
u16 __init idle_task_init (void)

Variables

task_s * init_task [MAX_TASKS]
tss_s * idle_tss
task_s * idle_task
tss_s * syscall_tss
task_s * syscall_task


Function Documentation

struct tss_wrap_s init_tss [MAX_TASKS] __attribute__ (__aligned__(32))   ) 
 

u32 idle_esp [0x2000] __attribute__ (__section__(".data.init_task"))   ) 
 

u16 __init idle_task_init void   ) 
 

Definition at line 50 of file init_task.c.

References kernel_task_init().

Referenced by tasks_init().

00051 {
00052     u16 entry;
00053     
00054     entry = kernel_task_init(&idle_task, &idle_tss, (u32)idle_esp, 0);
00055     load_TR(entry);
00056 
00057     return entry;
00058 }

Here is the call graph for this function:

u16 kernel_task_init struct task_s **  task,
struct tss_s **  tss,
u32  page,
u32  eip
 

Definition at line 32 of file init_task.c.

References get_free_pages(), get_free_tss(), and task_kernel_create().

Referenced by idle_task_init().

00033 {
00034     struct tss_wrap_s *tss_wrap;
00035     
00036     tss_wrap = get_free_tss();
00037     *tss = &(tss_wrap->tss);
00038 
00039     if (!page)
00040         page = get_free_pages(1);
00041 
00042     *task = (struct task_s *)page;
00043     (*task)->t_pid = 0;
00044     (*task)->t_state = TASK_STAT_STARTING;
00045     (*task)->tss_wrap = tss_wrap;
00046     
00047     return task_kernel_create(tss_wrap, eip, page + 0x1000);
00048 }

Here is the call graph for this function:


Variable Documentation

struct task_s* idle_task
 

Definition at line 28 of file init_task.c.

Referenced by schedule_task().

struct tss_s* idle_tss
 

Definition at line 27 of file init_task.c.

struct task_s* init_task[MAX_TASKS]
 

Definition at line 25 of file init_task.c.

struct task_s* syscall_task
 

Definition at line 30 of file init_task.c.

struct tss_s* syscall_tss
 

Definition at line 29 of file init_task.c.

Dokumentacje wygenerowano programem Doxygen 1.4.2 dla projektu Agnix