Support multi page task mapping

This commit is contained in:
tuyuyang
2024-07-28 14:02:14 +08:00
parent 19d467463b
commit 4716a4e018
13 changed files with 41 additions and 48 deletions
@@ -50,7 +50,7 @@ int main(void)
shellInit(&shell, shellBuffer, 512);
while (connect_session(&session_fs, "MemFS", 8092) < 0)
while (connect_session(&session_fs, "MemFS", 0x10000) < 0)
;
if (!session_fs.buf) {
printf("session connect faield\n");
@@ -108,7 +108,7 @@ int main(int argc, char** argv)
struct Session fs_session;
static char id_buf[33] = { 0 };
if (id > 1) {
if (connect_session(&fs_session, "MemFS", 8192) < 0) {
if (connect_session(&fs_session, "MemFS", 0x2000) < 0) {
printf("connect fs_session failed\n");
} else {
int fd;
@@ -15,11 +15,12 @@
int spawn(struct Session* session, int fd, ipc_read_fn ipc_read, ipc_fsize_fn ipc_fsize, char* name, char** argv)
{
/* read elf image */
int max_communicate_size = session->capacity - 0x1000;
int file_size = ipc_fsize(session, fd);
void* img = malloc(file_size);
int read_len = 0;
while (read_len < file_size) {
int cur_read_len = file_size - read_len < 4096 ? file_size - read_len : 4096;
int cur_read_len = file_size - read_len < max_communicate_size ? file_size - read_len : max_communicate_size;
if (cur_read_len < 0) {
return -1;
}