From fd7c576b141aad882b85b2778972c5fbff57c3c8 Mon Sep 17 00:00:00 2001 From: sunil17112 <52931377+sunil17112@users.noreply.github.com> Date: Wed, 7 Oct 2020 22:34:09 +0530 Subject: [PATCH 1/2] add object file --- app | Bin 0 -> 10672 bytes context.o | Bin 0 -> 496 bytes thread.o | Bin 0 -> 2164 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 app create mode 100644 context.o create mode 100644 thread.o diff --git a/app b/app new file mode 100644 index 0000000000000000000000000000000000000000..571d81ed7852e0dfa4b82325aca4439a0d8bc65b GIT binary patch literal 10672 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 Date: Wed, 7 Oct 2020 22:35:15 +0530 Subject: [PATCH 2/2] implement definition of create thread func --- thread.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/thread.c b/thread.c index 4a544f5..d1ab65a 100644 --- a/thread.c +++ b/thread.c @@ -48,6 +48,37 @@ static void schedule1() // push the current thread to the end of the ready list void create_thread(func_t func, void *param) { + unsigned *stack = malloc(4096); + stack += 1024; + struct thread *t = malloc(sizeof(struct thread)); + + stack=(stack-(sizeof(unsigned)/4)); + *stack=(unsigned)param; // parameter + + stack=(stack-(sizeof(unsigned)/4)); + *stack=0; + + stack=(stack-(sizeof(unsigned)/4)); + *stack=(unsigned)func; + + stack=(stack-(sizeof(unsigned)/4)); + *stack=0; + + stack=(stack-(sizeof(unsigned)/4)); + *stack=0; + + stack=(stack-(sizeof(unsigned)/4)); + *stack=0; + + stack=(stack-(sizeof(unsigned)/4)); + *stack=0; + + + t->esp=stack;// set esp in struct thread (t) + + push_back(t); + //schedule1(); + } // call schedule1