#include <minix/com.h>#include <minix/portio.h>#include "const.h"#include "priv.h"Go to the source code of this file.
Classes | |
| struct | proc |
Defines | |
| #define | VMSTYPE_SYS_NONE 0 |
| #define | VMSTYPE_KERNELCALL 1 |
| #define | VMSTYPE_DELIVERMSG 2 |
| #define | VMSTYPE_MAP 3 |
| #define | RTS_SLOT_FREE 0x01 |
| #define | RTS_PROC_STOP 0x02 |
| #define | RTS_SENDING 0x04 |
| #define | RTS_RECEIVING 0x08 |
| #define | RTS_SIGNALED 0x10 |
| #define | RTS_SIG_PENDING 0x20 |
| #define | RTS_P_STOP 0x40 |
| #define | RTS_NO_PRIV 0x80 |
| #define | RTS_NO_ENDPOINT 0x100 |
| #define | RTS_VMINHIBIT 0x200 |
| #define | RTS_PAGEFAULT 0x400 |
| #define | RTS_VMREQUEST 0x800 |
| #define | RTS_VMREQTARGET 0x1000 |
| #define | RTS_SYS_LOCK 0x2000 |
| #define | RTS_PREEMPTED 0x4000 |
| #define | RTS_NO_QUANTUM 0x8000 |
| #define | rts_f_is_runnable(flg) ((flg) == 0) |
| #define | proc_is_runnable(p) (rts_f_is_runnable((p)->p_rts_flags)) |
| #define | proc_is_preempted(p) ((p)->p_rts_flags & RTS_PREEMPTED) |
| #define | proc_no_quantum(p) ((p)->p_rts_flags & RTS_NO_QUANTUM) |
| #define | RTS_ISSET(rp, f) (((rp)->p_rts_flags & (f)) == (f)) |
| #define | RTS_SET(rp, f) |
| #define | RTS_UNSET(rp, f) |
| #define | RTS_LOCK_SET(rp, f) |
| #define | RTS_LOCK_UNSET(rp, f) |
| #define | RTS_LOCK_SETFLAGS(rp, f) |
| #define | MF_REPLY_PEND 0x001 |
| #define | MF_VIRT_TIMER 0x002 |
| #define | MF_PROF_TIMER 0x004 |
| #define | MF_ASYNMSG 0x010 |
| #define | MF_FULLVM 0x020 |
| #define | MF_DELIVERMSG 0x040 |
| #define | MF_SIG_DELAY 0x080 |
| #define | MF_SC_ACTIVE 0x100 |
| #define | MF_SC_DEFER 0x200 |
| #define | MF_SC_TRACE 0x400 |
| #define | MF_USED_FPU 0x800 |
| #define | MF_FPU_INITIALIZED 0x1000 |
| #define | NR_SCHED_QUEUES 16 |
| #define | TASK_Q 0 |
| #define | MAX_USER_Q 0 |
| #define | USER_Q (NR_SCHED_QUEUES / 2) |
| #define | MIN_USER_Q (NR_SCHED_QUEUES - 1) |
| #define | BEG_PROC_ADDR (&proc[0]) |
| #define | BEG_USER_ADDR (&proc[NR_TASKS]) |
| #define | END_PROC_ADDR (&proc[NR_TASKS + NR_PROCS]) |
| #define | NIL_PROC ((struct proc *) 0) |
| #define | NIL_SYS_PROC ((struct proc *) 1) |
| #define | cproc_addr(n) (&(proc + NR_TASKS)[(n)]) |
| #define | proc_addr(n) (&(proc[NR_TASKS + (n)])) |
| #define | proc_nr(p) ((p)->p_nr) |
| #define | isokprocn(n) ((unsigned) ((n) + NR_TASKS) < NR_PROCS + NR_TASKS) |
| #define | isemptyn(n) isemptyp(proc_addr(n)) |
| #define | isemptyp(p) ((p)->p_rts_flags == RTS_SLOT_FREE) |
| #define | iskernelp(p) ((p) < BEG_USER_ADDR) |
| #define | iskerneln(n) ((n) < 0) |
| #define | isuserp(p) isusern((p) >= BEG_USER_ADDR) |
| #define | isusern(n) ((n) >= 0) |
| #define | isrootsysn(n) ((n) == ROOT_SYS_PROC_NR) |
Variables | |
| EXTERN struct proc | proc [NR_TASKS+NR_PROCS] |
| EXTERN struct proc * | rdy_head [NR_SCHED_QUEUES] |
| EXTERN struct proc * | rdy_tail [NR_SCHED_QUEUES] |
| #define RTS_LOCK_SET | ( | rp, | |||
| f | ) |
Value:
do { \ int u = 0; \ if(!intr_disabled()) { u = 1; lock; } \ if(proc_is_runnable(rp)) { dequeue(rp); } \ (rp)->p_rts_flags |= (f); \ if(u) { unlock; } \ } while(0)
| #define RTS_LOCK_SETFLAGS | ( | rp, | |||
| f | ) |
Value:
do { \ int u = 0; \ if(!intr_disabled()) { u = 1; lock; } \ if(proc_is_runnable(rp) && (f)) { dequeue(rp); } \ (rp)->p_rts_flags = (f); \ if(u) { unlock; } \ } while(0)
| #define RTS_LOCK_UNSET | ( | rp, | |||
| f | ) |
Value:
do { \ int rts; \ int u = 0; \ if(!intr_disabled()) { u = 1; lock; } \ rts = (rp)->p_rts_flags; \ (rp)->p_rts_flags &= ~(f); \ if(!rts_f_is_runnable(rts) && proc_is_runnable(rp)) { \ enqueue(rp); \ } \ if(u) { unlock; } \ } while(0)
| #define RTS_SET | ( | rp, | |||
| f | ) |
Value:
do { \ vmassert(intr_disabled()); \ if(proc_is_runnable(rp)) { dequeue(rp); } \ (rp)->p_rts_flags |= (f); \ vmassert(intr_disabled()); \ } while(0)
| #define RTS_UNSET | ( | rp, | |||
| f | ) |
Value:
do { \ int rts; \ vmassert(intr_disabled()); \ rts = (rp)->p_rts_flags; \ (rp)->p_rts_flags &= ~(f); \ if(!rts_f_is_runnable(rts) && proc_is_runnable(rp)) { \ enqueue(rp); \ } \ vmassert(intr_disabled()); \ } while(0)
1.5.8