sysinterf.h

Go to the documentation of this file.
00001 /*
00002 ** sysinterf.h for lseos in lseos-lib/libc/sysinterf
00003 ** 
00004 ** Copyright (c)2004 Vianney Rancurel
00005 ** Login   <vianney@epita.fr>
00006 ** 
00007 ** Started on  Wed Apr 28 13:44:20 2004 Vianney Rancurel
00008 ** Last update Mon Dec  6 17:32:00 2004 Vianney Rancurel
00009 */
00010 #ifndef __SYSINTERF_SYSINTERF_H__
00011 #define __SYSINTERF_SYSINTERF_H__       1
00012 /*
00013  * lseos specific interface
00014  */
00015 
00016 #include <sysinterf/types.h>
00017 #include <machdep/machdep.h>
00018 #include <conven/queue.h>
00019 
00020 #include <sysinterf/assert.h>
00021 #include <sysinterf/errno.h>
00022 #include <sysinterf/signal.h>
00023 #include <sysinterf/wait.h>
00024 #include <sysinterf/malloc.h>
00025 #include <sysinterf/time.h>
00026 #include <sysinterf/fd.h>
00027 #include <sysinterf/prop.h>
00028 #include <sysinterf/notify.h>
00029 #include <sysinterf/copy.h>
00030 #include <sysinterf/stcb.h>
00031 #include <sysinterf/ltcb.h>
00032 #include <sysinterf/sec.h>
00033 #include <sysinterf/npx.h>
00034 
00035 /* procs */
00036 
00037 /* posix inheritance (posix syscalls we have keeped) */
00038 int _exit(int code);
00039 int setpgid(pid_t pid, pid_t pgid);
00040 uid_t getuid();
00041 uid_t geteuid();
00042 gid_t getgid();
00043 gid_t getegid();
00044 int getgroups(int gidsetlen, gid_t *gidset);
00045 int setgroups(int ngroups, const gid_t *gidset);
00046 int setuid(uid_t uid);
00047 int seteuid(uid_t euid);
00048 int setgid(gid_t gid);
00049 int setegid(gid_t egid);
00050 int sigreturn(void *sc);
00051 int sigsuspend(sigset_t *mask);
00052 int sigprocmask(int how, const sigset_t *set, sigset_t *oset);
00053 int ptrace(int request, pid_t pid, caddr_t addr, int data);
00054 
00055 struct vm86;
00056 /* lseos specific */
00057 int vm86(struct vm86 *p);
00058 int tcbsizepg(int signalable, int iomap_present);
00059 int nicepid(pid_t pid, int incr);
00060 int sigaction2(int sig, const struct sigaction2 *act, struct sigaction2 *oact);
00061 int _sgdt(int start_idx, union descriptor *descs, int *nb_sels);
00062 int _sidt(int cpu, int start_idx, union descriptor *descs, int *nb_sels);
00063 int _lidt(int cpu, int start_idx, union descriptor *descs, int nb_sels);
00064 int _rcr3(u_int sel);
00065 int idtrsv(int cpu, int from, int nb_sels);
00066 int idtrele(int cpu, int idxsel, int nb_sels);
00067 int runq(int cpu, struct s_runqop *runqop_ret);
00068 int reparent(u_int sel, u_int link);
00069 int clearbsy(u_int sel);
00070 int setbsy(u_int sel);
00071 int setrunq(u_int sel);
00072 int remrunq(u_int sel);
00073 u_int getsel(pid_t pid);
00074 int _ioacquire(pid_t pid, int ioport);
00075 int _iorele(pid_t pid, int ioport);
00076 int reboot(void);
00077 int spid(u_int sel, pid_t *pid_ret);
00078 int sppid(u_int sel, pid_t *pid_ret);
00079 int sppid2(pid_t, pid_t *pid_ret);
00080 int sasid(u_int sel, asid_t *asid_ret);
00081 int setasuid(asid_t asid, uid_t uid);
00082 int spgid(u_int sel, pid_t *pgid_ret);
00083 int spgid2(pid_t, pid_t *pgid_ret);
00084 asid_t getasid(void);
00085 int sinfo(struct s_core_info *info);
00086 int dump(void);
00087 int setrunq2(pid_t pid);
00088 int remrunq2(pid_t pid);
00089 pid_t tcbreg(kaddr_t ka, int nb_pgs, u_int sel, int cpu);
00090 int tcbunreg(pid_t pid);
00091 int kill2(pid_t pid, int signum, int sigcode, void *addr);
00092 int scred(pid_t pid, struct s_ucred *ucred);
00093 
00094 /* aspaces */
00095 
00096 asid_t asreg(kaddr_t ka, paddr_t pgdir, u_int32_t opts);
00097 int sas(asid_t asid, struct s_as_export *aspace_returned);
00098 int lasep(asid_t asid, int exec_pc, int exec_sp, int exec_fp);
00099 paddr_t prsv(asid_t asid, paddr_t paddr, int nb_pgs, u_int32_t modeopts);
00100 vaddr_t krsv(asid_t asid, int nb_pgs, int type);
00101 vaddr_t vrsv(asid_t asid, vaddr_t addr, int nb_pgs, u_int32_t modeopts);
00102 int _prele(asid_t asid, paddr_t paddr, int nb_pgs, u_int32_t opts);
00103 int prele(asid_t asid, paddr_t paddr, int nb_pgs, int dont_clean);
00104 int _krele(asid_t asid, vaddr_t vaddr, int nb_pgs,
00105            u_int32_t opts);
00106 int krele(asid_t asid, vaddr_t vaddr, int nb_pgs);
00107 int _vrele(asid_t asid, vaddr_t vaddr, int nb_pgs,
00108            u_int32_t opts);
00109 int vrele(asid_t asid, vaddr_t vaddr, int nb_pgs);
00110 int wire(asid_t asid, vaddr_t vaddr, int nb_pgs, paddr_t paddr,
00111          u_int32_t flags);
00112 int _vmap(asid_t asid, vaddr_t vaddr, int nb_pgs, paddr_t paddr,
00113           u_int32_t flags);
00114 int vmap(asid_t asid, vaddr_t vaddr, int nb_pgs, paddr_t paddr,
00115          u_int32_t flags);
00116 int pdef(paddr_t paddr, int nb_pgs, asid_t *asid_ret,
00117          u_int32_t *pmode_ret, u_int32_t *pmodeopt_ret, int *refcnt);
00118 int kdef(kaddr_t kaddr, int nb_pgs, asid_t *asid_ret);
00119 int vdef(asid_t asid, vaddr_t vaddr, int nb_pgs, paddr_t *paddr_ret,
00120         u_int32_t *flags_ret, u_int32_t *paddr_mode_ret,
00121         u_int32_t *paddr_modeopt_ret);
00122 int _vunmap(asid_t asid, vaddr_t vaddr, int nb_pgs,
00123             u_int32_t opts);
00124 int vunmap(asid_t asid, vaddr_t vaddr, int nb_pgs);
00125 int paggregate(asid_t asid, paddr_t paddr, int nb_pgs);
00126 int pshare(asid_t asid, paddr_t paddr, int nb_pgs, int type);
00127 int pgive(asid_t asid, asid_t newasid, paddr_t paddr, int nb_pgs);
00128 int aggdef(asid_t asid, vaddr_t va, int nb_pgs, int *agg_nb_pgs_ret,
00129           vaddr_t *agg_va_ret, paddr_t *agg_pa_ret);
00130 int aspgdir(asid_t asid);
00131 int memdef(asid_t asid, u_int32_t opts, struct s_memdef *memdefp, int *nb_memdefsp, int *againp);
00132 int procdef(int start, struct s_procdef *procdefp, int *nb_procdefsp, int *againp);
00133 int asop(pid_t pid, asid_t refasid, u_int32_t mode);
00134 int asunreg(asid_t asid);
00135 
00136 /* misc */
00137 
00138 int dwrite(char *str, int len, int bold);
00139 void uassert(char *file, int line, char *error);
00140 void kassert(char *file, int line, char *error);
00141 int memdump(asid_t asid, asid_t subasid);
00142 int check(void);
00143 
00144 #endif

Generated on Wed May 24 23:04:17 2006 for LSE/OS by  doxygen 1.4.6