Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 2020 11:59:50 -0600
From:      Kyle Evans <kevans@freebsd.org>
To:        Brooks Davis <brooks@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>,  svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r367744 - in head/sys: compat/freebsd32 kern sys
Message-ID:  <CACNAnaGSFKWdH8J1NaXHDMq%2BxmHjBVzW08ftS6500%2BQ==mNSrw@mail.gmail.com>
In-Reply-To: <20201117171114.GA1158@spindle.one-eyed-alien.net>
References:  <202011170336.0AH3awYt006482@repo.freebsd.org> <20201117171114.GA1158@spindle.one-eyed-alien.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 17, 2020 at 11:11 AM Brooks Davis <brooks@freebsd.org> wrote:
>
> On Tue, Nov 17, 2020 at 03:36:58AM +0000, Kyle Evans wrote:
> > Modified: head/sys/compat/freebsd32/freebsd32.h
> > ==============================================================================
> > --- head/sys/compat/freebsd32/freebsd32.h     Tue Nov 17 03:34:01 2020        (r367743)
> > +++ head/sys/compat/freebsd32/freebsd32.h     Tue Nov 17 03:36:58 2020        (r367744)
> > @@ -94,6 +94,27 @@ struct itimerval32 {
> >       struct timeval32 it_value;
> >  };
> >
> > +struct umtx_time32 {
> > +     struct  timespec32      _timeout;
> > +     uint32_t                _flags;
> > +     uint32_t                _clockid;
> > +};
> > +
> > +struct umtx_robust_lists_params_compat32 {
> > +     uint32_t        robust_list_offset;
> > +     uint32_t        robust_priv_list_offset;
> > +     uint32_t        robust_inact_offset;
> > +};
> > +
> > +struct umutex32 {
> > +     volatile __lwpid_t      m_owner;        /* Owner of the mutex */
> > +     __uint32_t              m_flags;        /* Flags of the mutex */
> > +     __uint32_t              m_ceilings[2];  /* Priority protect ceiling */
> > +     __uint32_t              m_rb_lnk;       /* Robust linkage */
> > +     __uint32_t              m_pad;
> > +     __uint32_t              m_spare[2];
> > +};
> > +
> >  #define FREEBSD4_MFSNAMELEN  16
> >  #define FREEBSD4_MNAMELEN    (88 - 2 * sizeof(int32_t))
> >
> >
> > Modified: head/sys/compat/freebsd32/freebsd32_misc.c
> > ==============================================================================
> > --- head/sys/compat/freebsd32/freebsd32_misc.c        Tue Nov 17 03:34:01 2020        (r367743)
> > +++ head/sys/compat/freebsd32/freebsd32_misc.c        Tue Nov 17 03:36:58 2020        (r367744)
> > @@ -84,6 +84,7 @@ __FBSDID("$FreeBSD$");
> >  #include <sys/thr.h>
> >  #include <sys/unistd.h>
> >  #include <sys/ucontext.h>
> > +#include <sys/umtx.h>
> >  #include <sys/vnode.h>
> >  #include <sys/wait.h>
> >  #include <sys/ipc.h>
> > @@ -3764,4 +3765,12 @@ freebsd32_sched_rr_get_interval(struct thread *td,
> >               error = copyout(&ts32, uap->interval, sizeof(ts32));
> >       }
> >       return (error);
> > +}
> > +
> > +int
> > +freebsd32__umtx_op(struct thread *td, struct freebsd32__umtx_op_args *uap)
> > +{
> > +
> > +     return (kern__umtx_op(td, uap->obj, uap->op, uap->val, uap->uaddr,
> > +         uap->uaddr2, &umtx_native_ops32));
> >  }
> >
>
> Putting any of this under compat/freebsd32 seems like a somewhat
> odd choice since all the work is done in kern_umtx.h.  In CheriBSD,
> everything just lives there so nothing has to be exposed in headers.
>

I have no strong opinion here -- my initial impression of the
suggestion to move the struct definitions into freebsd32 was that:

1.) One can then quickly reference the definition of, e.g., timespec32
when I'm looking at a umtx_time32, and
2.) It'd be 'cleaner', requiring less #ifdef soup in kern_umtx.c

The follow-up patch muddies the waters a lot, as we end up using the
compat32 definitions on all 64-bit platforms anyways even without
compat32. I don't object to moving any/all of this back, if you think
that's better.

Thanks,

Kyle Evans



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaGSFKWdH8J1NaXHDMq%2BxmHjBVzW08ftS6500%2BQ==mNSrw>