ldt.h

来自「Jazmyn is a 32-bit, protected mode, mult」· C头文件 代码 · 共 35 行

H
35
字号
#ifndef _LDT_H
#define _LDT_H

ifdef __cplusplus
extern "C" {
#endif

ushort set_cs(uint *ldt_base,uint base,uint limit)
{
        seg_desc *desc = (seg_desc*)ldt_base;
        desc -> lim_low = limit&0xFFFF;
        desc -> lim_flags = ((limit>>16)&0xF)|D_BIG;
        desc -> base_low  = base&0xFFFF;
        desc -> base_mid = (base>>16)&0xFF;
        desc -> base_high = (base>>24)&0xFF;
        desc -> access =D_PRESENT|D_DPL3|D_DT_APP|D_CODE|D_READ;
}

ushort set_ds(uint *ldt_base,uint base,uint limit)
{
        seg_desc *desc = (seg_desc*)ldt_base;
        desc -> lim_low = limit&0xFFFF;
        desc -> lim_flags = ((limit>>16)&0xF)|D_BIG;
        desc -> base_low  = base&0xFFFF;
        desc -> base_mid = (base>>16)&0xFF;
        desc -> base_high = (base>>24)&0xFF;
        desc -> access =D_PRESENT|D_DPL3|D_DT_APP|D_DATA|D_WRITE;
}

ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?