ORG!
This commit is contained in:
parent
286803f026
commit
e3aa2e3d59
|
@ -1,7 +1,6 @@
|
|||
#include "type32.h"
|
||||
#include "grub.h"
|
||||
#include "kdef32.h"
|
||||
|
||||
UINT32 HKA32 HkKernelEntry(multiboot_info_t* multibootInfo)
|
||||
{
|
||||
//setup new gdt
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#ifndef _MEM_32_H_
|
||||
#define _MEM_32_H_
|
||||
|
||||
#include "../hdr/io32.h"
|
||||
#include "type32.h"
|
||||
#include "io32.h"
|
||||
|
||||
#pragma push()
|
||||
#pragma pack(1)
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
#include "util.h"
|
||||
#include "type32.h"
|
||||
#include "kdef32.h"
|
||||
|
||||
INT32 HKA32 HkSetBit32(void* dst,UINT32 bit)
|
||||
{
|
||||
if (dst == NULL)
|
||||
return -1;
|
||||
INT32 quo = bit/32;
|
||||
bit = bit%32;
|
||||
INT32* cDst = (INT32*)dst + quo;
|
||||
*(INT32*)(cDst) |= 1 << bit;
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT32 HKA32 HkClearBit32(void* dst, UINT32 bit)
|
||||
{
|
||||
if (dst == NULL)
|
||||
return -1;
|
||||
INT32 quo = bit / 32;
|
||||
bit = bit % 32;
|
||||
INT32* cDst = (INT32*)dst + quo;
|
||||
*(INT32*)(cDst) &= ~(1 << bit);
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT32 HKA32 HkGetBit32(void* dst, UINT32 bit)
|
||||
{
|
||||
if (dst == NULL)
|
||||
return -1;
|
||||
INT32 quo = bit / 32;
|
||||
bit = bit % 32;
|
||||
INT32* cDst = (INT32*)dst + quo;
|
||||
return *(INT32*)(cDst) & (1 << bit);
|
||||
}
|
||||
|
||||
INT32 HKA32 HkToggleBit32(void* dst, UINT32 bit)
|
||||
{
|
||||
if (dst == NULL)
|
||||
return -1;
|
||||
INT32 quo = bit / 32;
|
||||
bit = bit % 32;
|
||||
INT32* cDst = (INT32*)dst + quo;
|
||||
*(INT32*)(cDst) |= 1 << bit;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
INT32 HKA32 HkMemcpy(void* src, void* dst, UINT32 size)
|
||||
{
|
||||
if (src == NULL || dst == NULL)
|
||||
return -1;
|
||||
char* cSrc = (char*)src;
|
||||
char* cDst = (char*)dst;
|
||||
while (size--)
|
||||
*(cDst++) = *(cSrc++);
|
||||
return 0;
|
||||
}
|
||||
|
||||
INT32 HKA32 HkMemmove(void* src, void* dst, UINT32 size)
|
||||
{
|
||||
if (src == NULL || dst == NULL)
|
||||
return -1;
|
||||
char* cSrc = (char*)src;
|
||||
char* cDst = (char*)dst;
|
||||
if (cSrc >= cDst)
|
||||
{
|
||||
return HkMemcpy(src,dst,size);
|
||||
}
|
||||
cSrc += size;
|
||||
cDst += size;
|
||||
while (size--)
|
||||
*(--cDst) = *(--cSrc);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _UTIL_H_
|
||||
#define _UTIL_H_
|
||||
#include "io32.h"
|
||||
#include "kdef32.h"
|
||||
|
||||
INT32 HKA32 HkClearBit32(void* dst, UINT32 bit);
|
||||
INT32 HKA32 HkGetBit32(void* dst, UINT32 bit);
|
||||
INT32 HKA32 HkToggleBit32(void* dst, UINT32 bit);
|
||||
INT32 HKA32 HkMemcpy(void* src, void* dst, UINT32 size);
|
||||
INT32 HKA32 HkMemmove(void* src, void* dst, UINT32 size);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue