#include <minix/com.h>#include <minix/callnr.h>#include <minix/endpoint.h>#include "debug.h"#include "kernel.h"#include "proc.h"#include <signal.h>Include dependency graph for proc.c:

Go to the source code of this file.
Defines | |
| #define | BuildMess(m_ptr, src, dst_ptr) |
| #define | CopyMess(s, sp, sm, dp, dm) |
| #define | Q_BALANCE_TICKS 100 |
Functions | |
| FORWARD | _PROTOTYPE (int mini_send,(struct proc *caller_ptr, int dst_e, message *m_ptr, unsigned flags)) |
| FORWARD | _PROTOTYPE (int mini_receive,(struct proc *caller_ptr, int src, message *m_ptr, unsigned flags)) |
| FORWARD | _PROTOTYPE (int mini_notify,(struct proc *caller_ptr, int dst)) |
| FORWARD | _PROTOTYPE (int deadlock,(int function, register struct proc *caller, int src_dst)) |
| FORWARD | _PROTOTYPE (void enqueue,(struct proc *rp)) |
| FORWARD | _PROTOTYPE (void sched,(struct proc *rp, int *queue, int *front)) |
| FORWARD | _PROTOTYPE (void pick_proc,(void)) |
| PUBLIC int | sys_call (int call_nr, int src_dst_e, message *m_ptr, long bit_map) |
| PRIVATE int | deadlock (int function, struct proc *cp, int src_dst) |
| PRIVATE int | mini_send (struct proc *caller_ptr, int dst_e, message *m_ptr, unsigned flags) |
| PRIVATE int | mini_receive (struct proc *caller_ptr, int src_e, message *m_ptr, unsigned flags) |
| PRIVATE int | mini_notify (struct proc *caller_ptr, int dst) |
| PUBLIC int | lock_notify (int src_e, int dst_e) |
| PRIVATE void | enqueue (struct proc *rp) |
| PRIVATE void | dequeue (struct proc *rp) |
| PRIVATE void | sched (struct proc *rp, int *queue, int *front) |
| PRIVATE void | pick_proc () |
| PUBLIC void | balance_queues (timer_t *tp) |
| PUBLIC int | lock_send (int dst_e, message *m_ptr) |
| PUBLIC void | lock_enqueue (struct proc *rp) |
| PUBLIC void | lock_dequeue (struct proc *rp) |
| PUBLIC int | isokendpt_f (int e, int *p, int fatalflag) |
|
|
Value: (m_ptr)->m_source = proc_addr(src)->p_endpoint; \ (m_ptr)->m_type = NOTIFY_FROM(src); \ (m_ptr)->NOTIFY_TIMESTAMP = get_uptime(); \ switch (src) { \ case HARDWARE: \ (m_ptr)->NOTIFY_ARG = priv(dst_ptr)->s_int_pending; \ priv(dst_ptr)->s_int_pending = 0; \ break; \ case SYSTEM: \ (m_ptr)->NOTIFY_ARG = priv(dst_ptr)->s_sig_pending; \ priv(dst_ptr)->s_sig_pending = 0; \ break; \ } Definition at line 63 of file proc.c. Referenced by mini_notify(), and mini_receive(). |
|
|
Value: cp_mess(proc_addr(s)->p_endpoint, \ (sp)->p_memmap[D].mem_phys, \ (vir_bytes)sm, (dp)->p_memmap[D].mem_phys, (vir_bytes)dm) Definition at line 79 of file proc.c. Referenced by mini_notify(), mini_receive(), mini_send(), and sys_call(). |
|
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
Definition at line 657 of file proc.c. References BEG_PROC_ADDR, dequeue(), END_PROC_ADDR, enqueue(), if(), isemptyp, lock, proc::p_max_priority, proc::p_priority, proc::p_quantum_size, and proc::p_rts_flags. Referenced by init_clock(). |
|
||||||||||||||||
|
Definition at line 230 of file proc.c. References ANY, okendpt, proc::p_getfrom_e, proc::p_rts_flags, proc::p_sendto_e, proc_addr, proc_nr, RECEIVING, and SENDING. Referenced by sys_call(). |
|
|
Definition at line 548 of file proc.c. References if(), iskernelp, next_ptr, NIL_PROC, proc::p_nextready, panic, pick_proc(), priv, proc_nr, proc_ptr, rdy_head, rdy_tail, and STACK_GUARD. Referenced by balance_queues(), lock_dequeue(), mini_receive(), and mini_send(). |
|
|
Definition at line 502 of file proc.c. References front, NIL_PROC, proc::p_nextready, pick_proc(), rdy_head, rdy_tail, and sched(). Referenced by balance_queues(), lock_enqueue(), mini_notify(), mini_receive(), and mini_send(). |
|
||||||||||||||||
|
Definition at line 750 of file proc.c. References _ENDPOINT_G, _ENDPOINT_P, isemptyn, isokprocn, ok(), panic, and proc_addr. |
|
|
Definition at line 726 of file proc.c. References dequeue(), k_reenter, lock, and unlock. Referenced by cause_sig(), clear_endpoint(), clear_proc(), do_clocktick(), do_nice(), and do_trace(). |
|
|
Definition at line 714 of file proc.c. References enqueue(), lock, and unlock. Referenced by clear_endpoint(), do_clocktick(), do_endksig(), do_exec(), do_newmap(), do_nice(), and do_trace(). |
|
||||||||||||
|
Definition at line 470 of file proc.c. References EDEADSRCDST, isokendpt, k_reenter, lock, mini_notify(), proc_addr, result, and unlock. Referenced by cause_alarm(), clock_handler(), generic_handler(), and send_sig(). |
|
||||||||||||
|
Definition at line 699 of file proc.c. References lock, mini_send(), NON_BLOCKING, proc_ptr, result, and unlock. Referenced by sys_task(). |
|
||||||||||||
|
Definition at line 430 of file proc.c. References ANY, BuildMess, CopyMess, enqueue(), HARDWARE, m, OK, proc::p_getfrom_e, proc::p_messbuf, proc::p_misc_flags, proc::p_rts_flags, priv, proc_addr, proc_nr, RECEIVING, REPLY_PENDING, SENDING, and set_sys_bit. Referenced by lock_notify(), and sys_call(). |
|
||||||||||||||||||||
|
Definition at line 332 of file proc.c. References ANY, bit_nr, BITCHUNK_BITS, BuildMess, chunk, CopyMess, dequeue(), EINVAL, ENOTREADY, enqueue(), ESRCDIED, HARDWARE, i, id_to_nr, m, map, NIL_PROC, NO_ENDPOINT, NON_BLOCKING, NONE, NR_SYS_CHUNKS, NR_SYS_PROCS, OK, okendpt, proc::p_caller_q, proc::p_getfrom_e, proc::p_messbuf, proc::p_q_link, priv, proc_addr, proc_nr, RECEIVING, REPLY_PENDING, SENDING, and SLOT_FREE. Referenced by sys_call(). |
|
||||||||||||||||||||
|
Definition at line 282 of file proc.c. References _ENDPOINT_P, ANY, CopyMess, dequeue(), EDSTDIED, ENOTREADY, enqueue(), NIL_PROC, NO_ENDPOINT, NON_BLOCKING, OK, proc::p_caller_q, proc::p_getfrom_e, proc::p_messbuf, proc::p_q_link, proc::p_rts_flags, proc_addr, RECEIVING, and SENDING. Referenced by lock_send(), and sys_call(). |
|
|
Definition at line 630 of file proc.c. References bill_ptr, BILLABLE, next_ptr, NIL_PROC, NR_SCHED_QUEUES, priv, and rdy_head. |
|
||||||||||||||||
|
Definition at line 597 of file proc.c. References IDLE_Q. Referenced by enqueue(). |
|
||||||||||||||||||||
|
Definition at line 94 of file proc.c. References ANY, CHECK_DEADLOCK, CHECK_DST, CHECK_PTR, CLICK_SHIFT, CopyMess, D, deadlock(), EBADCALL, ECALLDENIED, ECHO, EDEADSRCDST, EFAULT, EINVAL, ELOCKED, ETRAPDENIED, flags, get_sys_bit, iskerneln, isokendpt, MESS_SIZE, mini_notify(), mini_receive(), mini_send(), NOTIFY, nr_to_id, OK, proc::p_memmap, proc::p_misc_flags, proc::p_nr, proc::p_rts_flags, priv, proc_nr, proc_ptr, RECEIVE, REPLY_PENDING, result, S, SEND, SENDREC, SLOT_FREE, SYSCALL_FLAGS, and SYSCALL_FUNC. |
1.4.6