From 54f32e597f03b38978c4ddf551e11cbb6e7e954b Mon Sep 17 00:00:00 2001 From: KAAAsS Date: Thu, 21 Apr 2022 22:26:27 +0800 Subject: [PATCH] =?UTF-8?q?memcpy=20=E5=A4=8D=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lab5/user/lab5/apps/init.c | 20 ++++++++++++++++++-- lab5/user/lab5/apps/init_test.c | 2 ++ lab5/user/lib/string.c | 1 + 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lab5/user/lab5/apps/init.c b/lab5/user/lab5/apps/init.c index 7531246..a607369 100644 --- a/lab5/user/lab5/apps/init.c +++ b/lab5/user/lab5/apps/init.c @@ -418,6 +418,14 @@ int fs_read(char *path, off_t offset, ssize_t count) { return ret; } +void memcpy2(void *dst, const void *src, u64 len) +{ + u64 i = 0; + for (; i < len; i += 1) { + ((u8 *) dst)[i] = ((u8 *) src)[i]; + } +} + /** * 读入文件并返回长度 */ @@ -454,8 +462,16 @@ int fs_read_all(char *path, void **ret_buf) return cur; } // FIXME: 此处在 Release 模式下第一次读取前 16 字节为空 - memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur); - memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur); + // memcpy(buf, (const void *) TMPFS_READ_BUF_VADDR, cur); + printf("first bytes: %c %c\n", ((u8*) TMPFS_READ_BUF_VADDR)[0], + ((u8*) TMPFS_READ_BUF_VADDR)[1]); + printf("memcpy %x %x %d\n", buf, (const void *) TMPFS_READ_BUF_VADDR, cur); + memcpy2(buf, (const void *) TMPFS_READ_BUF_VADDR, cur); +// u64 i = 0; +// for (; i < cur; i += 1) { +// ((u8 *) buf)[i] = ((u8 *) TMPFS_READ_BUF_VADDR)[i]; +// } + pos += cur; buf += cur; } diff --git a/lab5/user/lab5/apps/init_test.c b/lab5/user/lab5/apps/init_test.c index 58c6b66..4aa908e 100644 --- a/lab5/user/lab5/apps/init_test.c +++ b/lab5/user/lab5/apps/init_test.c @@ -43,6 +43,8 @@ int main() usys_fs_load_cpio(CPIO_BIN); boot_fs(); + builtin_cmd("cat tar/cat_test.txt"); + return 0; test_readline(); test_echo(); diff --git a/lab5/user/lib/string.c b/lab5/user/lib/string.c index 5f4893a..3f348a9 100644 --- a/lab5/user/lib/string.c +++ b/lab5/user/lib/string.c @@ -1,4 +1,5 @@ #include +#include "print.h" /* * A very shabby implementation, optimize it if you like.