Preparing for re-writing of diskwrite tool
This commit is contained in:
parent
81bc8da50d
commit
762a06f406
24
makefile
24
makefile
|
|
@ -1,6 +1,6 @@
|
||||||
CC := gcc
|
CC := gcc
|
||||||
AS := nasm
|
AS := nasm
|
||||||
CFLAGS = -c -mno-sse -mno-sse2 -mno-red-zone -ffreestanding -m32 -nostdlib -O3 -fno-pie -fno-stack-protector -mno-mmx
|
CFLAGS:=-g -c -m32 -fno-pie -mno-sse -O3 -D __bits__=32 -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -Wno-incompatible-pointer-types -Wno-address-of-packed-member -Wno-discarded-qualifiers -fno-stack-protector -mno-red-zone -mno-sse -mno-sse2 -ffreestanding -nostdlib -mno-mmx
|
||||||
BL_ASFLAGS := -f bin
|
BL_ASFLAGS := -f bin
|
||||||
SRCS := $(wildcard src/kernel/*/*.c)
|
SRCS := $(wildcard src/kernel/*/*.c)
|
||||||
OBJS := $(patsubst src/kernel/%.c, bin/kernel/%.o, $(SRCS))
|
OBJS := $(patsubst src/kernel/%.c, bin/kernel/%.o, $(SRCS))
|
||||||
|
|
@ -9,6 +9,7 @@ all: bootloader tools kernel
|
||||||
cp bin/bootloader.bin image.bin
|
cp bin/bootloader.bin image.bin
|
||||||
qemu-img resize -f raw image.bin 512M
|
qemu-img resize -f raw image.bin 512M
|
||||||
./diskwrite -v kernel.elf -o image.bin
|
./diskwrite -v kernel.elf -o image.bin
|
||||||
|
./diskwrite -v idm.elf -o image.bin
|
||||||
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
qemu-system-i386 -hda image.bin --no-reboot --no-shutdown -m 32m -smp 2 -serial mon:stdio -D intlog.txt -d int
|
||||||
tools:
|
tools:
|
||||||
$(CC) tools/diskwrite.c -o diskwrite
|
$(CC) tools/diskwrite.c -o diskwrite
|
||||||
|
|
@ -19,25 +20,30 @@ bootloader:
|
||||||
# kernel: $(OBJS)
|
# kernel: $(OBJS)
|
||||||
kernel:
|
kernel:
|
||||||
nasm src/kernel/entry.s -o bin/kernel/entry.o -f elf32
|
nasm src/kernel/entry.s -o bin/kernel/entry.o -f elf32
|
||||||
|
gcc src/kmodules/disk_driver.c $(CFLAGS) -o bin/modules/disk_driver.o -m32
|
||||||
sh c_build_helper.sh
|
sh c_build_helper.sh
|
||||||
nasm src/kernel/arch_i386/idt.s -o bin/kernel/idt.o -felf32
|
nasm src/kernel/arch_i386/idt.s -o bin/kernel/idt.o -felf32
|
||||||
# ld -T linker.ld bin/kernel/entry.o bin/kernel/*.o -melf_i386
|
# ld -T linker.ld bin/kernel/entry.o bin/kernel/*.o -melf_i386
|
||||||
ld -T linker.ld bin/kernel/*.o -melf_i386 -o kernel.elf
|
ld -T linker.ld bin/kernel/*.o -melf_i386 -o kernel.elf
|
||||||
ld -T linker.ld -o kernel_interface.elf -r -R kernel.elf -melf_i386
|
ld -T linker.ld -o kernel_interface.elf -r -R kernel.elf -melf_i386
|
||||||
|
ld bin/modules/disk_driver.o kernel_interface.elf -o idm.elf -melf_i386
|
||||||
# %.o: $(SRCS)
|
# %.o: $(SRCS)
|
||||||
# mkdir -p bin/kernel/$(shell dirname $@)
|
# mkdir -p bin/kernel/$(shell dirname $@)
|
||||||
# $(CC) $(CFLAGS) $< -o $@
|
# $(CC) $(CFLAGS) $< -o $@
|
||||||
|
|
||||||
init:
|
init:
|
||||||
@mkdir mount
|
mkdir mount
|
||||||
@mkdir bin
|
mkdir bin
|
||||||
@mkdir bin/boot
|
mkdir bin/boot
|
||||||
@mkdir bin/kernel
|
mkdir bin/kernel
|
||||||
|
mkdir bin/modules
|
||||||
|
|
||||||
.PHONY: tools makefile src/
|
.PHONY: tools makefile src/
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@rm diskwrite
|
rm diskwrite
|
||||||
@rm image.bin
|
rm image.bin
|
||||||
@rm -rf bin/
|
rm -rf bin/
|
||||||
@rm -rf mount/
|
rm -rf mount/
|
||||||
|
rm *.elf
|
||||||
|
rm intlog.txt
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
#include<stdint.h>
|
||||||
|
|
||||||
|
void main(){
|
||||||
|
uint32_t *t = (void *)0xb8000;
|
||||||
|
}
|
||||||
|
|
@ -183,8 +183,13 @@ int create_file(char *path, fat_info *info, FILE *file){
|
||||||
//searching for a free dirent
|
//searching for a free dirent
|
||||||
file_t *root_dir = (file_t *)root_dir_buffer;
|
file_t *root_dir = (file_t *)root_dir_buffer;
|
||||||
uint32_t free_file_index = 0;
|
uint32_t free_file_index = 0;
|
||||||
|
// printf("filename: %s\n", root_dir[free_file_index].filename);
|
||||||
|
for(uint32_t i = 0; i < 0x1000; i++){
|
||||||
|
printf("%2x ", root_dir_buffer[i]);
|
||||||
|
}
|
||||||
while(root_dir[free_file_index].filename[0] && free_file_index < dirent_count){
|
while(root_dir[free_file_index].filename[0] && free_file_index < dirent_count){
|
||||||
free_file_index++;
|
free_file_index++;
|
||||||
|
printf("\033[0;31mSearching for file, indexx %d\033[0m", free_file_index);
|
||||||
}
|
}
|
||||||
if(free_file_index >= dirent_count){
|
if(free_file_index >= dirent_count){
|
||||||
//!FIXME
|
//!FIXME
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue