The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/compat/freebsd32/freebsd32.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*-
    2  * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
    3  *
    4  * Copyright (c) 2001 Doug Rabson
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   17  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   19  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   20  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   21  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   22  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   23  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   24  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   25  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   26  * SUCH DAMAGE.
   27  *
   28  * $FreeBSD$
   29  */
   30 
   31 #ifndef _COMPAT_FREEBSD32_FREEBSD32_H_
   32 #define _COMPAT_FREEBSD32_FREEBSD32_H_
   33 
   34 #include <sys/abi_compat.h>
   35 #include <sys/procfs.h>
   36 #include <sys/socket.h>
   37 #include <sys/user.h>
   38 
   39 /*
   40  * i386 is the only arch with a 32-bit time_t
   41  */
   42 #ifdef __amd64__
   43 typedef int32_t time32_t;
   44 #else
   45 typedef int64_t time32_t;
   46 #endif
   47 
   48 struct timeval32 {
   49         time32_t tv_sec;
   50         int32_t tv_usec;
   51 };
   52 
   53 struct timespec32 {
   54         time32_t tv_sec;
   55         int32_t tv_nsec;
   56 };
   57 
   58 struct itimerspec32 {
   59         struct timespec32  it_interval;
   60         struct timespec32  it_value;
   61 };
   62 
   63 struct bintime32 {
   64         time32_t sec;
   65         uint32_t frac[2];
   66 };
   67 
   68 struct rusage32 {
   69         struct timeval32 ru_utime;
   70         struct timeval32 ru_stime;
   71         int32_t ru_maxrss;
   72         int32_t ru_ixrss;
   73         int32_t ru_idrss;
   74         int32_t ru_isrss;
   75         int32_t ru_minflt;
   76         int32_t ru_majflt;
   77         int32_t ru_nswap;
   78         int32_t ru_inblock;
   79         int32_t ru_oublock;
   80         int32_t ru_msgsnd;
   81         int32_t ru_msgrcv;
   82         int32_t ru_nsignals;
   83         int32_t ru_nvcsw;
   84         int32_t ru_nivcsw;
   85 };
   86 
   87 struct wrusage32 {
   88         struct rusage32 wru_self;
   89         struct rusage32 wru_children;
   90 };
   91 
   92 struct itimerval32 {
   93         struct timeval32 it_interval;
   94         struct timeval32 it_value;
   95 };
   96 
   97 struct umtx_time32 {
   98         struct  timespec32      _timeout;
   99         uint32_t                _flags;
  100         uint32_t                _clockid;
  101 };
  102 
  103 struct umtx_robust_lists_params_compat32 {
  104         uint32_t        robust_list_offset;
  105         uint32_t        robust_priv_list_offset;
  106         uint32_t        robust_inact_offset;
  107 };
  108 
  109 struct umutex32 {
  110         volatile __lwpid_t      m_owner;        /* Owner of the mutex */
  111         __uint32_t              m_flags;        /* Flags of the mutex */
  112         __uint32_t              m_ceilings[2];  /* Priority protect ceiling */
  113         __uint32_t              m_rb_lnk;       /* Robust linkage */
  114         __uint32_t              m_pad;
  115         __uint32_t              m_spare[2];
  116 };
  117 
  118 #define FREEBSD4_MFSNAMELEN     16
  119 #define FREEBSD4_MNAMELEN       (88 - 2 * sizeof(int32_t))
  120 
  121 /* 4.x version */
  122 struct statfs32 {
  123         int32_t f_spare2;
  124         int32_t f_bsize;
  125         int32_t f_iosize;
  126         int32_t f_blocks;
  127         int32_t f_bfree;
  128         int32_t f_bavail;
  129         int32_t f_files;
  130         int32_t f_ffree;
  131         fsid_t  f_fsid;
  132         uid_t   f_owner;
  133         int32_t f_type;
  134         int32_t f_flags;
  135         int32_t f_syncwrites;
  136         int32_t f_asyncwrites;
  137         char    f_fstypename[FREEBSD4_MFSNAMELEN];
  138         char    f_mntonname[FREEBSD4_MNAMELEN];
  139         int32_t f_syncreads;
  140         int32_t f_asyncreads;
  141         int16_t f_spares1;
  142         char    f_mntfromname[FREEBSD4_MNAMELEN];
  143         int16_t f_spares2 __packed;
  144         int32_t f_spare[2];
  145 };
  146 
  147 struct iovec32 {
  148         u_int32_t iov_base;
  149         int     iov_len;
  150 };
  151 
  152 struct msghdr32 {
  153         u_int32_t        msg_name;
  154         socklen_t        msg_namelen;
  155         u_int32_t        msg_iov;
  156         int              msg_iovlen;
  157         u_int32_t        msg_control;
  158         socklen_t        msg_controllen;
  159         int              msg_flags;
  160 };
  161 
  162 #if defined(__amd64__)
  163 #define __STAT32_TIME_T_EXT     1
  164 #endif
  165 
  166 struct stat32 {
  167         dev_t st_dev;
  168         ino_t st_ino;
  169         nlink_t st_nlink;
  170         mode_t  st_mode;
  171         u_int16_t st_padding0;
  172         uid_t   st_uid;
  173         gid_t   st_gid;
  174         u_int32_t st_padding1;
  175         dev_t st_rdev;
  176 #ifdef  __STAT32_TIME_T_EXT
  177         __int32_t st_atim_ext;
  178 #endif
  179         struct timespec32 st_atim;
  180 #ifdef  __STAT32_TIME_T_EXT
  181         __int32_t st_mtim_ext;
  182 #endif
  183         struct timespec32 st_mtim;
  184 #ifdef  __STAT32_TIME_T_EXT
  185         __int32_t st_ctim_ext;
  186 #endif
  187         struct timespec32 st_ctim;
  188 #ifdef  __STAT32_TIME_T_EXT
  189         __int32_t st_btim_ext;
  190 #endif
  191         struct timespec32 st_birthtim;
  192         off_t   st_size;
  193         int64_t st_blocks;
  194         u_int32_t st_blksize;
  195         u_int32_t st_flags;
  196         u_int64_t st_gen;
  197         u_int64_t st_spare[10];
  198 };
  199 struct freebsd11_stat32 {
  200         u_int32_t st_dev;
  201         u_int32_t st_ino;
  202         mode_t  st_mode;
  203         u_int16_t st_nlink;
  204         uid_t   st_uid;
  205         gid_t   st_gid;
  206         u_int32_t st_rdev;
  207         struct timespec32 st_atim;
  208         struct timespec32 st_mtim;
  209         struct timespec32 st_ctim;
  210         off_t   st_size;
  211         int64_t st_blocks;
  212         u_int32_t st_blksize;
  213         u_int32_t st_flags;
  214         u_int32_t st_gen;
  215         int32_t st_lspare;
  216         struct timespec32 st_birthtim;
  217         unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
  218         unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
  219 };
  220 
  221 struct ostat32 {
  222         __uint16_t st_dev;
  223         __uint32_t st_ino;
  224         mode_t  st_mode;
  225         __uint16_t st_nlink;
  226         __uint16_t st_uid;
  227         __uint16_t st_gid;
  228         __uint16_t st_rdev;
  229         __int32_t st_size;
  230         struct timespec32 st_atim;
  231         struct timespec32 st_mtim;
  232         struct timespec32 st_ctim;
  233         __int32_t st_blksize;
  234         __int32_t st_blocks;
  235         u_int32_t st_flags;
  236         __uint32_t st_gen;
  237 };
  238 
  239 struct jail32_v0 {
  240         u_int32_t       version;
  241         uint32_t        path;
  242         uint32_t        hostname;
  243         u_int32_t       ip_number;
  244 };
  245 
  246 struct jail32 {
  247         uint32_t        version;
  248         uint32_t        path;
  249         uint32_t        hostname;
  250         uint32_t        jailname;
  251         uint32_t        ip4s;
  252         uint32_t        ip6s;
  253         uint32_t        ip4;
  254         uint32_t        ip6;
  255 };
  256 
  257 struct sigaction32 {
  258         u_int32_t       sa_u;
  259         int             sa_flags;
  260         sigset_t        sa_mask;
  261 };
  262 
  263 struct thr_param32 {
  264         uint32_t start_func;
  265         uint32_t arg;
  266         uint32_t stack_base;
  267         uint32_t stack_size;
  268         uint32_t tls_base;
  269         uint32_t tls_size;
  270         uint32_t child_tid;
  271         uint32_t parent_tid;
  272         int32_t  flags;
  273         uint32_t rtp;
  274         uint32_t spare[3];
  275 };
  276 
  277 struct i386_ldt_args32 {
  278         uint32_t start;
  279         uint32_t descs;
  280         uint32_t num;
  281 };
  282 
  283 struct mq_attr32 {
  284         int     mq_flags;
  285         int     mq_maxmsg;
  286         int     mq_msgsize;
  287         int     mq_curmsgs;
  288         int     __reserved[4];
  289 };
  290 
  291 struct kinfo_proc32 {
  292         int     ki_structsize;
  293         int     ki_layout;
  294         uint32_t ki_args;
  295         uint32_t ki_paddr;
  296         uint32_t ki_addr;
  297         uint32_t ki_tracep;
  298         uint32_t ki_textvp;
  299         uint32_t ki_fd;
  300         uint32_t ki_vmspace;
  301         uint32_t ki_wchan;
  302         pid_t   ki_pid;
  303         pid_t   ki_ppid;
  304         pid_t   ki_pgid;
  305         pid_t   ki_tpgid;
  306         pid_t   ki_sid;
  307         pid_t   ki_tsid;
  308         short   ki_jobc;
  309         short   ki_spare_short1;
  310         uint32_t ki_tdev_freebsd11;
  311         sigset_t ki_siglist;
  312         sigset_t ki_sigmask;
  313         sigset_t ki_sigignore;
  314         sigset_t ki_sigcatch;
  315         uid_t   ki_uid;
  316         uid_t   ki_ruid;
  317         uid_t   ki_svuid;
  318         gid_t   ki_rgid;
  319         gid_t   ki_svgid;
  320         short   ki_ngroups;
  321         short   ki_spare_short2;
  322         gid_t   ki_groups[KI_NGROUPS];
  323         uint32_t ki_size;
  324         int32_t ki_rssize;
  325         int32_t ki_swrss;
  326         int32_t ki_tsize;
  327         int32_t ki_dsize;
  328         int32_t ki_ssize;
  329         u_short ki_xstat;
  330         u_short ki_acflag;
  331         fixpt_t ki_pctcpu;
  332         u_int   ki_estcpu;
  333         u_int   ki_slptime;
  334         u_int   ki_swtime;
  335         u_int   ki_cow;
  336         u_int64_t ki_runtime;
  337         struct  timeval32 ki_start;
  338         struct  timeval32 ki_childtime;
  339         int     ki_flag;
  340         int     ki_kiflag;
  341         int     ki_traceflag;
  342         char    ki_stat;
  343         signed char ki_nice;
  344         char    ki_lock;
  345         char    ki_rqindex;
  346         u_char  ki_oncpu_old;
  347         u_char  ki_lastcpu_old;
  348         char    ki_tdname[TDNAMLEN+1];
  349         char    ki_wmesg[WMESGLEN+1];
  350         char    ki_login[LOGNAMELEN+1];
  351         char    ki_lockname[LOCKNAMELEN+1];
  352         char    ki_comm[COMMLEN+1];
  353         char    ki_emul[KI_EMULNAMELEN+1];
  354         char    ki_loginclass[LOGINCLASSLEN+1];
  355         char    ki_moretdname[MAXCOMLEN-TDNAMLEN+1];
  356         char    ki_sparestrings[46];
  357         int     ki_spareints[KI_NSPARE_INT];
  358         uint64_t ki_tdev;
  359         int     ki_oncpu;
  360         int     ki_lastcpu;
  361         int     ki_tracer;
  362         int     ki_flag2;
  363         int     ki_fibnum;
  364         u_int   ki_cr_flags;
  365         int     ki_jid;
  366         int     ki_numthreads;
  367         lwpid_t ki_tid;
  368         struct  priority ki_pri;
  369         struct  rusage32 ki_rusage;
  370         struct  rusage32 ki_rusage_ch;
  371         uint32_t ki_pcb;
  372         uint32_t ki_kstack;
  373         uint32_t ki_udata;
  374         uint32_t ki_tdaddr;
  375         uint32_t ki_spareptrs[KI_NSPARE_PTR];   /* spare room for growth */
  376         int     ki_sparelongs[KI_NSPARE_LONG];
  377         int     ki_sflag;
  378         int     ki_tdflags;
  379 };
  380 
  381 struct kinfo_sigtramp32 {
  382         uint32_t ksigtramp_start;
  383         uint32_t ksigtramp_end;
  384         uint32_t ksigtramp_spare[4];
  385 };
  386 
  387 struct kld32_file_stat_1 {
  388         int     version;        /* set to sizeof(struct kld_file_stat_1) */
  389         char    name[MAXPATHLEN];
  390         int     refs;
  391         int     id;
  392         uint32_t address;       /* load address */
  393         uint32_t size;          /* size in bytes */
  394 };
  395 
  396 struct kld32_file_stat {
  397         int     version;        /* set to sizeof(struct kld_file_stat) */
  398         char    name[MAXPATHLEN];
  399         int     refs;
  400         int     id;
  401         uint32_t address;       /* load address */
  402         uint32_t size;          /* size in bytes */
  403         char    pathname[MAXPATHLEN];
  404 };
  405 
  406 struct procctl_reaper_pids32 {
  407         u_int   rp_count;
  408         u_int   rp_pad0[15];
  409         uint32_t rp_pids;
  410 };
  411 
  412 struct timex32 {
  413         unsigned int modes;
  414         int32_t offset;
  415         int32_t freq;
  416         int32_t maxerror;
  417         int32_t esterror;
  418         int     status;
  419         int32_t constant;
  420         int32_t precision;
  421         int32_t tolerance;
  422         int32_t ppsfreq;
  423         int32_t jitter;
  424         int     shift;
  425         int32_t stabil;
  426         int32_t jitcnt;
  427         int32_t calcnt;
  428         int32_t errcnt;
  429         int32_t stbcnt;
  430 };
  431 
  432 struct ptrace_sc_ret32 {
  433         uint32_t        sr_retval[2];
  434         int             sr_error;
  435 };
  436 
  437 struct ptrace_coredump32 {
  438         int             pc_fd;
  439         uint32_t        pc_flags;
  440         uint32_t        pc_limit1, pc_limit2;
  441 };
  442 
  443 struct ptrace_sc_remote32 {
  444         struct ptrace_sc_ret32 pscr_ret;
  445         u_int           pscr_syscall;
  446         u_int           pscr_nargs;
  447         uint32_t        pscr_args;
  448 };
  449 
  450 #endif /* !_COMPAT_FREEBSD32_FREEBSD32_H_ */

Cache object: c6663b9fbddab76db1cfd76864e0feb9


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.