Support multi page task mapping
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user