diff options
Diffstat (limited to 'i386/i386at/gpl/linux/linux_sched.c')
-rw-r--r-- | i386/i386at/gpl/linux/linux_sched.c | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/i386/i386at/gpl/linux/linux_sched.c b/i386/i386at/gpl/linux/linux_sched.c deleted file mode 100644 index fdb0f693..00000000 --- a/i386/i386at/gpl/linux/linux_sched.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Linux scheduling support. - * - * Copyright (C) 1996 The University of Utah and the Computer Systems - * Laboratory at the University of Utah (CSL) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - * - * Author: Shantanu Goel, University of Utah CSL - */ - -/* - * linux/kernel/sched.c - * - * Copyright (C) 1991, 1992 Linus Torvalds - */ - -#include <sys/types.h> - -#include <mach/boolean.h> - -#include <kern/thread.h> -#include <kern/sched_prim.h> - -#include <i386at/gpl/linux/linux_emul.h> - -#define MACH_INCLUDE -#include <linux/sched.h> -#include <linux/fs.h> -#include <linux/blkdev.h> - -#include <asm/system.h> - -struct tq_struct tq_last = -{ - &tq_last, 0, 0, 0 -}; - -DECLARE_TASK_QUEUE(tq_timer); - -static struct wait_queue **auto_config_queue; - -void -tqueue_bh (void *unused) -{ - run_task_queue(&tq_timer); -} - -void -add_wait_queue (struct wait_queue **q, struct wait_queue *wait) -{ - unsigned long flags; - - if (! linux_auto_config) - { - save_flags (flags); - cli (); - assert_wait ((event_t) q, FALSE); - restore_flags (flags); - return; - } - - if (auto_config_queue) - printf ("add_wait_queue: queue not empty\n"); - auto_config_queue = q; -} - -void -remove_wait_queue (struct wait_queue **q, struct wait_queue *wait) -{ - unsigned long flags; - - if (! linux_auto_config) - { - save_flags (flags); - thread_wakeup ((event_t) q); - restore_flags (flags); - return; - } - - auto_config_queue = NULL; -} - -void -__down (struct semaphore *sem) -{ - int s; - unsigned long flags; - - if (! linux_auto_config) - { - save_flags (flags); - s = splhigh (); - while (sem->count <= 0) - { - assert_wait ((event_t) &sem->wait, FALSE); - splx (s); - thread_block (0); - s = splhigh (); - } - splx (s); - restore_flags (flags); - return; - } - - while (sem->count <= 0) - barrier (); -} - -void -__sleep_on (struct wait_queue **q, int interruptible) -{ - unsigned long flags; - - if (! q) - return; - save_flags (flags); - if (! linux_auto_config) - { - assert_wait ((event_t) q, interruptible); - sti (); - thread_block (0); - restore_flags (flags); - return; - } - - add_wait_queue (q, NULL); - sti (); - while (auto_config_queue) - barrier (); - restore_flags (flags); -} - -void -sleep_on (struct wait_queue **q) -{ - __sleep_on (q, FALSE); -} - -void -interruptible_sleep_on (struct wait_queue **q) -{ - __sleep_on (q, TRUE); -} - -void -wake_up (struct wait_queue **q) -{ - unsigned long flags; - - if (! linux_auto_config) - { - if (q != &wait_for_request) - { - save_flags (flags); - thread_wakeup ((event_t) q); - restore_flags (flags); - } - return; - } - - if (auto_config_queue == q) - auto_config_queue = NULL; -} - -void -__wait_on_buffer (struct buffer_head *bh) -{ - unsigned long flags; - - save_flags (flags); - if (! linux_auto_config) - { - while (1) - { - cli (); - if (! buffer_locked (bh)) - break; - bh->b_wait = (struct wait_queue *) 1; - assert_wait ((event_t) bh, FALSE); - sti (); - thread_block (0); - } - restore_flags (flags); - return; - } - - sti (); - while (buffer_locked (bh)) - barrier (); - restore_flags (flags); -} - -void -unlock_buffer (struct buffer_head *bh) -{ - unsigned long flags; - - save_flags (flags); - cli (); - clear_bit (BH_Lock, &bh->b_state); - if (bh->b_wait && ! linux_auto_config) - { - bh->b_wait = NULL; - thread_wakeup ((event_t) bh); - } - restore_flags (flags); -} - -void -schedule () -{ - if (! linux_auto_config) - thread_block (0); -} - -void -cdrom_sleep (int t) -{ - int xxx; - - assert_wait ((event_t) &xxx, TRUE); - thread_set_timeout (t); - thread_block (0); -} |