# sysproto.h

Go to the documentation of this file.

    00001 /*****************************************************************************************
    00002  Copyright (c) 2002-2004 The UbixOS Project
    00003  All rights reserved.
    00004
    00005  Redistribution and use in source and binary forms, with or without modification, are
    00006  permitted provided that the following conditions are met:
    00007
    00008  Redistributions of source code must retain the above copyright notice, this list of
    00009  conditions, the following disclaimer and the list of authors.  Redistributions in binary
    00010  form must reproduce the above copyright notice, this list of conditions, the following
    00011  disclaimer and the list of authors in the documentation and/or other materials provided
    00012  with the distribution. Neither the name of the UbixOS Project nor the names of its
    00013  contributors may be used to endorse or promote products derived from this software
    00014  without specific prior written permission.
    00015
    00016  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
    00017  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    00018  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
    00019  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    00020  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
    00021  OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    00022  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
    00023  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    00024  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    00025
    00026  $Id: sysproto_8h-source.html 88 2016-01-12 00:11:29Z reddawg $
    00027
    00028 *****************************************************************************************/
    00029
    00030 #ifndef _SYSPROTO_H
    00031 #define _SYSPROTO_H
    00032
    00033 #include <sys/signal.h>
    00034 #include <sys/thread.h>
    00035
    00036 typedef int register_t;
    00037
    00038 #define PAD_(t) (sizeof(register_t) <= sizeof(t) ? \
    00039                 0 : sizeof(register_t) - sizeof(t))
    00040
    00041 #if BYTE_ORDER == LITTLE_ENDIAN
    00042 #define PADL_(t)        0
    00043 #define PADR_(t)        PAD_(t)
    00044 #else
    00045 #define PADL_(t)        PAD_(t)
    00046 #define PADR_(t)        0
    00047 #endif
    00048
    00049 //Protos
    00050 struct write_args {
    00051   char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00052   char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)];
    00053   char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
    00054   };
    00055
    00056 struct open_args {
    00057   char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
    00058   char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
    00059   char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
    00060   };
    00061
    00062 struct setitimer_args {
    00063   char which_l_[PADL_(u_int)]; u_int which; char which_r_[PADR_(u_int)];
    00064   char itv_l_[PADL_(struct itimerval *)]; struct itimerval * itv; char itv_r_[PADR_(struct itimerval *)];
    00065   char oitv_l_[PADL_(struct itimerval *)]; struct itimerval * oitv; char oitv_r_[PADR_(struct itimerval *)];
    00066   };
    00067
    00068 //Old
    00069
    00070 struct sysctl_args {
    00071         char name_l_[PADL_(int *)]; int * name; char name_r_[PADR_(int *)];
    00072         char namelen_l_[PADL_(u_int)]; u_int namelen; char namelen_r_[PADR_(u_int)];
    00073         char old_l_[PADL_(void *)]; void * old; char old_r_[PADR_(void *)];
    00074         char oldlenp_l_[PADL_(size_t *)]; size_t * oldlenp; char oldlenp_r_[PADR_(size_t *)];
    00075         char new_l_[PADL_(void *)]; void * new; char new_r_[PADR_(void *)];
    00076         char newlen_l_[PADL_(size_t)]; size_t newlen; char newlen_r_[PADR_(size_t)];
    00077 };
    00078
    00079 struct getpid_args {
    00080         register_t dummy;
    00081 };
    00082 struct issetugid_args {
    00083         register_t dummy;
    00084 };
    00085 struct fcntl_args {
    00086         char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00087         char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
    00088         char arg_l_[PADL_(long)]; long arg; char arg_r_[PADR_(long)];
    00089 };
    00090
    00091 struct pipe_args {
    00092   register_t dummy;
    00093   };
    00094
    00095 struct readlink_args {
    00096         char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
    00097         char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
    00098         char count_l_[PADL_(int)]; int count; char count_r_[PADR_(int)];
    00099 };
    00100
    00101 struct getuid_args {
    00102         register_t dummy;
    00103 };
    00104
    00105 struct getgid_args {
    00106         register_t dummy;
    00107 };
    00108 struct close_args {
    00109         char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00110 };
    00111
    00112 struct mmap_args {
    00113    char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)];
    00114   char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)];
    00115   char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)];
    00116   char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
    00117   char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00118   char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
    00119   char pos_l_[PADL_(off_t)]; off_t pos; char pos_r_[PADR_(off_t)];
    00120   };
    00121
    00122 struct obreak_args {
    00123   char nsize_l_[PADL_(char *)];char * nsize;char nsize_r_[PADR_(char *)];
    00124   };
    00125
    00126 struct sigaction_args {
    00127   char sig_l_[PADL_(int)]; int sig; char sig_r_[PADR_(int)];
    00128   char act_l_[PADL_(const struct sigaction *)]; const struct sigaction * act; char act_r_[PADR_(const struct sigaction *)];
    00129   char oact_l_[PADL_(struct sigaction *)]; struct sigaction * oact; char oact_r_[PADR_(struct sigaction *)];
    00130   };
    00131
    00132 struct getdtablesize_args {
    00133         register_t dummy;
    00134 };
    00135
    00136 struct munmap_args {
    00137         char addr_l_[PADL_(void *)]; void * addr; char addr_r_[PADR_(void *)];
    00138         char len_l_[PADL_(size_t)]; size_t len; char len_r_[PADR_(size_t)];
    00139 };
    00140
    00141 struct sigprocmask_args {
    00142   char how_l_[PADL_(int)]; int how; char how_r_[PADR_(int)];
    00143   char set_l_[PADL_(const sigset_t *)]; const sigset_t * set; char set_r_[PADR_(const sigset_t *)];
    00144   char oset_l_[PADL_(sigset_t *)]; sigset_t * oset; char oset_r_[PADR_(sigset_t *)];
    00145   };
    00146 struct gettimeofday_args {
    00147   char tp_l_[PADL_(struct timeval *)]; struct timeval * tp; char tp_r_[PADR_(struct timeval *)];
    00148   char tzp_l_[PADL_(struct timezone *)]; struct timezone * tzp; char tzp_r_[PADR_(struct timezone *)];
    00149   };
    00150 struct fstat_args {
    00151         char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00152         char sb_l_[PADL_(struct stat *)]; struct stat * sb; char sb_r_[PADR_(struct stat *)];
    00153 };
    00154 struct ioctl_args {
    00155         char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00156         char com_l_[PADL_(u_long)]; u_long com; char com_r_[PADR_(u_long)];
    00157         char data_l_[PADL_(caddr_t)]; caddr_t data; char data_r_[PADR_(caddr_t)];
    00158 };
    00159
    00160 struct read_args {
    00161         char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
    00162         char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)];
    00163         char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
    00164 };
    00165
    00166 //Func Defs
    00167 int sys_write(struct thread *td, struct write_args *uap);
    00168 int sys_open(struct thread *td, struct open_args *uap);
    00169 int setitimer(struct thread *td, struct setitimer_args *uap);
    00170
    00171 #endif
    00172
    00173 /***
    00174  END
    00175  ***/
    00176