From be2a48a154c869fadd76643df6c76cda81b463cd Mon Sep 17 00:00:00 2001 From: Yanyan Jiang Date: Thu, 20 Apr 2017 13:17:16 -0400 Subject: [PATCH] fix bugs --- Makefile | 14 ++++++++------ am/am.h | 2 +- apps/video/src/main.cpp | 2 +- klib/klib.c | 2 -- klib/klib.h | 12 ++++++++++++ klib/string.c | 9 +++++++++ 6 files changed, 31 insertions(+), 10 deletions(-) delete mode 100644 klib/klib.c create mode 100644 klib/string.c diff --git a/Makefile b/Makefile index f719923f..d430bdd2 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ ifneq ($(MAKECMDGOALS), clean) ifeq ($(ARCH), ) -$(error "Usage: make [play|clean] ARCH=[mips32-npc|x86-linux|x86-qemu] APP=[hello,video,...]") +$(error "Usage: make [play|clean] ARCH=[mips32-npc|x86-linux|x86-qemu] APP=[hello|video|...]") endif endif @@ -34,15 +34,15 @@ APP_DEP = $(addsuffix .d, $(basename $(APP_SRC))) # Klib archive KLIB = ./build/libkern-$(ARCH).a -KLIB_SRC = $(shell find -L ./klib/src -name "*.c" -o -name "*.cpp" -o -name "*.S") -KLIB_OBJ = $(addsuffix .o, $(basename $(APP_SRC))) -KLIB_DEP = $(addsuffix .d, $(basename $(APP_SRC))) +KLIB_SRC = $(shell find -L ./klib/ -name "*.c" -o -name "*.cpp" -o -name "*.S") +KLIB_OBJ = $(addsuffix .o, $(basename $(KLIB_SRC))) +KLIB_DEP = $(addsuffix .d, $(basename $(KLIB_SRC))) # ----------------------------------------------------------------------------- # Basic compilation flags -CFLAGS += -std=gnu99 -I ./am/ -I./$(AM_PATH)/include -I./$(APP_PATH)/include -O2 -MD -Wall -Werror -ggdb -CXXFLAGS += -std=c++11 -I ./am/ -I./$(AM_PATH)/include -I./$(APP_PATH)/include -O2 -MD -Wall -Werror -ggdb +CFLAGS += -std=gnu99 -I ./am/ -I./$(AM_PATH)/include -I./klib -I./$(APP_PATH)/include -O2 -MD -Wall -Werror -ggdb +CXXFLAGS += -std=c++11 -I ./am/ -I./$(AM_PATH)/include -I./klib -I./$(APP_PATH)/include -O2 -MD -Wall -Werror -ggdb ASFLAGS += -I ./am/ -I./$(AM_PATH)/include -I./$(APP_PATH)/include -MD # Arch-dependent compilation flags @@ -81,6 +81,8 @@ $(APP_LIB): $(APP_OBJ) ar rcs $(APP_LIB) $(APP_OBJ) -include $(APP_DEP) +# ----------------------------------------------------------------------------- + .PHONY: play clean play: $(AM_LIB) $(DEST) diff --git a/am/am.h b/am/am.h index 99fb6f1e..0c0b7c34 100755 --- a/am/am.h +++ b/am/am.h @@ -86,7 +86,7 @@ void _pte_init(void*(*palloc)(), void (*pfree)(void*)); void _protect(_Protect *p); void _release(_Protect *p); void _map(_Protect *p, void *va, void *pa); -void _ummap(_Protect *p, void *va); +void _unmap(_Protect *p, void *va); void _switch(_Protect *p); _RegSet *_umake(_Area ustack, _Area kstack, void *entry, int argc, char **argv); diff --git a/apps/video/src/main.cpp b/apps/video/src/main.cpp index 8f023fc0..499c68d1 100644 --- a/apps/video/src/main.cpp +++ b/apps/video/src/main.cpp @@ -1,5 +1,6 @@ #include #include +#include _Pixel canvas[N][N]; bool used[N][N]; @@ -66,7 +67,6 @@ int main() { _trm_init(); _ioe_init(); - ulong last = 0; while (true) { diff --git a/klib/klib.c b/klib/klib.c deleted file mode 100644 index e0688696..00000000 --- a/klib/klib.c +++ /dev/null @@ -1,2 +0,0 @@ -// the implementation goes here -// may need other files diff --git a/klib/klib.h b/klib/klib.h index 37bbd666..071e18dd 100755 --- a/klib/klib.h +++ b/klib/klib.h @@ -5,9 +5,21 @@ #ifndef __KLIB_H__ #define __KLIB_H__ +#include + +#ifdef __cplusplus +extern "C" { +#endif + // We're expecting: // assert, printf, sprintf // memcpy, memset, strcpy, strlen, itoa, atoi, ... // kalloc, kree +size_t strlen(const char *s); + +#ifdef __cplusplus +} +#endif + #endif diff --git a/klib/string.c b/klib/string.c new file mode 100644 index 00000000..9cd8e082 --- /dev/null +++ b/klib/string.c @@ -0,0 +1,9 @@ +#include + +size_t strlen(const char *s) { + size_t sz = 0; + for (; *s; s ++) { + sz ++; + } + return sz; +}