Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1826390
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类: LINUX

2012-06-29 10:43:52

#include
#include

static tss_t ALIGN(PAGE_SIZE) tss;

tss_t *tss_get()
{
return &tss;
}

static void tss_update(addr_t kern_stack, uint32_t kern_seg)
{
tss.esp0 = kern_stack;
tss.ss0  = kern_seg;
}

static void tss_init()
{
KPRINTF("tss_init\n");
extern struct thread_t task0;
memset(&tss, 0, sizeof(tss_t));
tss_update((uint32_t)&task0 + STACK_SIZE, KERNEL_DS_SEL);
load_tr();
}
INITFUNC(tss_init, INIT_TSS);

阅读(1482) | 评论(0) | 转发(0) |
0

上一篇:kernel/idt.c

下一篇:kernel/memory.c

给主人留下些什么吧!~~