AAAA
This commit is contained in:
parent
619295cef2
commit
f16d003bff
13
Makefile
Normal file
13
Makefile
Normal file
|
@ -0,0 +1,13 @@
|
|||
.PHONY: clean
|
||||
|
||||
build/liblily.a: build build/lily.o
|
||||
ar rcs build/liblily.a build/lily.o
|
||||
|
||||
build/lily.o: build lily.c lily.h
|
||||
gcc -I. -lc -c lily.c -o ./build/lily.o
|
||||
|
||||
build:
|
||||
mkdir build
|
||||
|
||||
clean:
|
||||
rm -rf build/
|
35
lily.c
Normal file
35
lily.c
Normal file
|
@ -0,0 +1,35 @@
|
|||
#define _GNU_SOURCE 1
|
||||
#include <sys/mman.h>
|
||||
#include <string.h>
|
||||
#include "lily.h"
|
||||
|
||||
void* lily_alloc(uint size){
|
||||
return mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS, -1, 0);
|
||||
}
|
||||
void* lily_alloc_zeroed(uint size){
|
||||
return lily_alloc(size);
|
||||
}
|
||||
void lily_dealloc(void* ptr, uint size){
|
||||
munmap(ptr, size);
|
||||
}
|
||||
void* lily_realloc(void* ptr, uint size, uint size_new){
|
||||
return mremap(ptr, size, size_new, MREMAP_MAYMOVE);
|
||||
}
|
||||
void lily_memset(void* dest, void* src, uint count, uint size){
|
||||
uint total_size = count * size;
|
||||
memcpy(dest, src, size);
|
||||
|
||||
uint copied = size;
|
||||
|
||||
while (copied < total_size) {
|
||||
uint copy_size;
|
||||
if(copied > total_size - copied)
|
||||
copy_size = total_size - copied;
|
||||
else
|
||||
copy_size = copied;
|
||||
memcpy(dest, (dest + copied), copy_size);
|
||||
copied += copy_size;
|
||||
}
|
||||
|
||||
}
|
||||
|
14
lily.h
Normal file
14
lily.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
#ifndef __LILY_H_DEFINED
|
||||
#define __LILY_H_DEFINED
|
||||
|
||||
#define uint unsigned long long int
|
||||
|
||||
void* lily_alloc(uint size);
|
||||
void* lily_alloc_zeroed(uint size);
|
||||
void lily_dealloc(void* ptr, uint size);
|
||||
void* lily_realloc(void* ptr, uint size, uint size_new);
|
||||
void lily_memset(void* dest, void* src, uint count, uint size);
|
||||
void lily_getrandom(void* dest, uint size);
|
||||
|
||||
|
||||
#endif // __LILY_H_DEFINED
|
Loading…
Reference in a new issue