summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: f4bac96)
raw | patch | inline | side by side (parent: f4bac96)
author | Alexander Shiryaev <aixp@mail.ru> | |
Sat, 3 Oct 2015 19:20:07 +0000 (22:20 +0300) | ||
committer | Alexander Shiryaev <aixp@mail.ru> | |
Sat, 3 Oct 2015 19:20:07 +0000 (22:20 +0300) |
BlackBox/_Linux_/Lin/Rsrc/blackbox.c | patch | blob | history |
index 4637982a894c559e4b9713b97b84f7a86f4b872e..322123398b6f9babe0cf3bb6c6e3cbc3a7f2d838 100644 (file)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-/* #include <malloc.h> */
#include <errno.h>
#include <fcntl.h>
#define exeSize 17028
-#define pageSize 4096
-
/* fixup types */
#define absolute 100
#define relative 101
return 1;
}
-void * MEMALLOC (size_t len)
+void * MemAlloc (size_t len)
{
void * res;
mod.imp = NULL;
for (i = 0; i < nofImps; i++)
{
- imp = (ImpList*)MEMALLOC(sizeof(ImpList));
+ imp = (ImpList*)MemAlloc(sizeof(ImpList));
ReadName(imp->name);
if (mod.imp == NULL)
mod.imp = imp;
int isLib;
char* im;
- mod.dad = (int) MEMALLOC(mod.ds);
- mod.mad = (int) MEMALLOC(mod.ms + mod.cs + mod.vs);
+ mod.dad = (int) MemAlloc(mod.ds);
+ mod.mad = (int) MemAlloc(mod.ms + mod.cs + mod.vs);
if ((mod.dad == 0) || (mod.mad == 0))
{
printf("BootLoader: Couldn't initalize heap\n");
return 1;
}
-int MOD (int x, int y)
-{
- int res;
-
- if (x >= 0) {
- res = x % y;
- } else {
- res = x - y * ((x + 1) / y - 1);
- }
- return res;
-}
-
int main (int argc, char *argv[])
{
- int i, ok;
+ int i;
BodyProc body;
int callBackAdr;
Module *k, *m;
modlist = NULL;
dprintf("initializing BlackBox for Linux...\n");
-
/*f = fopen(bbfile, "rb");*/
f = fopen(argv[0], "r");
if (f != NULL)
else
{
/* assign the boot info to first variable in Kernel */
- bootInfo = MEMALLOC(sizeof(BootInfo));
+ bootInfo = MemAlloc(sizeof(BootInfo));
bootInfo->modList = modlist;
bootInfo->argc = argc;
bootInfo->argv = argv;
dprintf("before body\n");
body = (BodyProc)(m->code);
k->opts = k->opts | init; /* include init in opts */
- /*
- ok = mprotect(
- (void *)(((m->code) / pageSize) * pageSize),
- (((m->csize) + MOD(m->code, pageSize) - 1) / pageSize) * pageSize + pageSize,
- PROT_READ|PROT_WRITE|PROT_EXEC);
- if (ok != 0){
- printf("mprotect failed: %s\n", strerror(errno));
- return 100;
- }
- */
body();
dprintf("after body\n");
}