From 734836af9ffe3bcae15160838c11df2ab2b2c37b Mon Sep 17 00:00:00 2001 From: stefan Date: Sun, 15 Aug 2010 13:58:52 +0000 Subject: [PATCH] - minor changes git-svn-id: http://svn.lfbs.rwth-aachen.de/svn/scc/trunk/MetalSVM@90 315a16e6-25f9-4109-90ae-ca3045a26c18 --- kernel/tests.c | 134 ------------------------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 kernel/tests.c diff --git a/kernel/tests.c b/kernel/tests.c deleted file mode 100644 index a4bc23cd..00000000 --- a/kernel/tests.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2010 Stefan Lankes, Chair for Operating Systems, - * RWTH Aachen University - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * This file is part of MetalSVM. - */ - -#include -#include -#include -#include -#include -#include -#include - -static sem_t consuming, producing; -static mailbox_int32_t mbox; -static int val = 0; - -static int STDCALL consumer(void* arg) -{ - int i, m = 0; - - for(i=0; i<5; i++) { - sem_wait(&consuming); - kprintf("Consumer got %d\n", val); - val = 0; - sem_post(&producing); - } - - for(i=0; i<5; i++) { - mailbox_int32_fetch(&mbox, &m); - kprintf("Got mail %d\n", m); - } - - return 0; -} - -static int STDCALL producer(void* arg) -{ - int i; - int mail[5] = {1, 2, 3, 4, 5}; - - for(i=0; i<5; i++) { - sem_wait(&producing); - kprintf("Produce value: current val %d\n", val); - val = 42; - sem_post(&consuming); - } - - for(i=0; i<5; i++) { - //kprintf("Send mail %d\n", mail[i]); - mailbox_int32_post(&mbox, mail[i]); - } - - return 0; -} - -static int STDCALL foo(void* arg) -{ - int i; - - if (!arg) - return 0; - - for(i=0; i<5; i++) { - kputs((char*) arg); - sleep(1); - } - - return 42; -} - -static int STDCALL join_test(void* arg) -{ - tid_t id; - int ret, result = -1234; - - ret = create_kernel_task(&id, foo, "Hello from foo2\n"); - kprintf("Wait for task %u: ret = %d\n", id, ret); - ret = join_task(id, &result); - kprintf("Task %u finished: ret = %d, result = %d\n", id, ret, result); - - return 0; -} - -static int STDCALL userfoo(void* arg) -{ - int i; - - if (!arg) - return 0; - - for (i = 0; i < 5; i++) { - SYSCALL1(__NR_write, arg); - } - - // demo of a general protection fault - //kprintf("test user\n"); - - /* task exit */ - SYSCALL1(__NR_exit, 0); - - return 0; -} - -int test_init(void) -{ - tid_t id1, id2, id3, id4, id5; - - sem_init(&producing, 1); - sem_init(&consuming, 0); - mailbox_int32_init(&mbox); - - create_kernel_task(&id1, foo, "Hello from foo1\n"); - create_kernel_task(&id2, join_test, NULL); - create_kernel_task(&id3, producer, NULL); - create_kernel_task(&id4, consumer, NULL); - create_user_task(&id5, userfoo, "Hello from user process foo\n", 0); - - return 0; -}