system.c File Reference

#include "debug.h"
#include "kernel.h"
#include "system.h"
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <sys/sigcontext.h>
#include <minix/endpoint.h>
#include <ibm/memory.h>
#include "protect.h"

Include dependency graph for system.c:

Go to the source code of this file.

Defines

#define map(call_nr, handler)

Functions

FORWARD _PROTOTYPE (void initialize,(void))
PUBLIC void sys_task ()
PRIVATE void initialize (void)
PUBLIC int get_priv (struct proc *rc, int proc_type)
PUBLIC void get_randomness (int source)
PUBLIC void send_sig (int proc_nr, int sig_nr)
PUBLIC void cause_sig (int proc_nr, int sig_nr)
PUBLIC phys_bytes umap_bios (struct proc *rp, vir_bytes vir_addr, vir_bytes bytes)
PUBLIC phys_bytes umap_local (struct proc *rp, int seg, vir_bytes vir_addr, vir_bytes bytes)
PUBLIC phys_bytes umap_remote (struct proc *rp, int seg, vir_bytes vir_addr, vir_bytes bytes)
PUBLIC int virtual_copy (struct vir_addr *src_addr, struct vir_addr *dst_addr, vir_bytes bytes)
PUBLIC void clear_endpoint (struct proc *rc)

Variables

PUBLIC int(* call_vec [NR_SYS_CALLS])(message *m_ptr)


Define Documentation

#define map call_nr,
handler   ) 
 

Value:

{extern int dummy[NR_SYS_CALLS>(unsigned)(call_nr-KERNEL_CALL) ? 1:-1];} \
    call_vec[(call_nr-KERNEL_CALL)] = (handler)

Definition at line 53 of file system.c.

Referenced by countmatch(), GetFatMap(), makebitmap(), mini_receive(), and remap().


Function Documentation

FORWARD _PROTOTYPE void  initialize,
(void) 
 

PUBLIC void cause_sig int  proc_nr,
int  sig_nr
 

Definition at line 269 of file system.c.

References lock_dequeue(), proc::p_pending, proc::p_rts_flags, PM_PROC_NR, proc_addr, send_sig(), SIG_PENDING, sigaddset, sigismember, and SIGNALED.

Referenced by do_kill(), and exception().

PUBLIC void clear_endpoint struct proc rc  ) 
 

Definition at line 479 of file system.c.

References BEG_PROC_ADDR, EDSTDIED, END_PROC_ADDR, ESRCDIED, i, isemptyp, lock_dequeue(), lock_enqueue(), NIL_PROC, NO_ENDPOINT, okendpt, proc::p_q_link, proc::p_rts_flags, panic, priv, proc_addr, proc_nr, RECEIVING, SENDING, and unset_sys_bit.

Referenced by clear_proc(), and do_kill().

PUBLIC int get_priv struct proc rc,
int  proc_type
 

Definition at line 187 of file system.c.

References BEG_PRIV_ADDR, ENOSPC, if(), INIT_PROC_NR, NONE, OK, proc_nr, sp, SYS_PROC, and USER_PRIV_ID.

Referenced by do_privctl().

PUBLIC void get_randomness int  source  ) 
 

Definition at line 214 of file system.c.

References randomness::bin, krandom, randomness::r_buf, randomness::r_next, randomness::r_size, RANDOM_ELEMENTS, RANDOM_SOURCES, and read_clock().

Referenced by do_int86(), and generic_handler().

PRIVATE void initialize void   ) 
 

Definition at line 114 of file system.c.

References memory::base, bootdev, caddr, daddr, biosdev::device, exit(), get_master(), i, irq_hooks, L, lowsec, master(), mem, mon2abs(), mon_return, biosdev::name, NONE, NR_IRQ_HOOKS, NR_PARTITIONS, offsetof, p, biosdev::primary, raw_copy(), readerr(), relocate(), rem_part, runsize, biosdev::secondary, size, sp, strcpy(), table, and vec2abs().

PUBLIC void send_sig int  proc_nr,
int  sig_nr
 

Definition at line 246 of file system.c.

References isemptyn, isokprocn, lock_notify(), n, proc::p_endpoint, priv, proc_addr, sigaddset, and SYSTEM.

Referenced by cause_sig(), kputc(), and prepare_shutdown().

PUBLIC void sys_task  ) 
 

Definition at line 62 of file system.c.

References ANY, call_nr, call_vec, EBADREQUEST, ECALLDENIED, EDONTREPLY, initialize(), KERNEL_CALL, lock_send(), m, NR_SYS_CALLS, OK, okendpt, priv, proc_addr, receive, result, s, TRUE, who_e, and who_p.

PUBLIC phys_bytes umap_bios struct proc rp,
vir_bytes  vir_addr,
vir_bytes  bytes
 

Definition at line 303 of file system.c.

References BASE_MEM_TOP, BIOS_MEM_BEGIN, BIOS_MEM_END, and UPPER_MEM_END.

Referenced by do_umap(), and virtual_copy().

PUBLIC phys_bytes umap_local struct proc rp,
int  seg,
vir_bytes  vir_addr,
vir_bytes  bytes
 

Definition at line 333 of file system.c.

References CLICK_SHIFT, D, S, and T.

Referenced by do_int86(), do_newmap(), do_sigreturn(), do_sigsend(), do_trace(), do_umap(), do_vcopy(), do_vdevio(), do_vm_map(), and virtual_copy().

PUBLIC phys_bytes umap_remote struct proc rp,
int  seg,
vir_bytes  vir_addr,
vir_bytes  bytes
 

Definition at line 391 of file system.c.

References far_mem::in_use, far_mem::mem_len, far_mem::mem_phys, and NR_REMOTE_SEGS.

Referenced by do_umap(), and virtual_copy().

PUBLIC int virtual_copy struct vir_addr src_addr,
struct vir_addr dst_addr,
vir_bytes  bytes
 

Definition at line 413 of file system.c.

References _DST_, _SRC_, BIOS_SEG, EDEADSRCDST, EDOM, EINVAL, i, isokendpt, LOCAL_SEG, NULL, vir_addr::offset, offset, p, PHYS_SEG, proc_addr, proc_nr, REMOTE_SEG, vir_addr::segment, SEGMENT_INDEX, SEGMENT_TYPE, type, umap_bios(), umap_local(), and umap_remote().

Referenced by do_vcopy().


Variable Documentation

PUBLIC int(* call_vec[NR_SYS_CALLS])(message *m_ptr)
 

Definition at line 51 of file system.c.

Referenced by main(), and sys_task().


Generated on Fri Apr 14 22:57:59 2006 for minix by  doxygen 1.4.6