[prev in list] [next in list] [prev in thread] [next in thread] 

List:       hurd-commit
Subject:    Re: [hurd,commited] hurd: Add THREAD_GET/SETMEM/_NC
From:       Samuel Thibault <samuel.thibault () gnu ! org>
Date:       2020-02-15 13:54:36
Message-ID: 20200215135436.c5cvxslz3rsyzzzv () function
[Download RAW message or body]

Andreas Schwab, le sam. 15 févr. 2020 14:51:24 +0100, a ecrit:
> On Feb 15 2020, Samuel Thibault wrote:
> > diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h
> > index c0341ce2c9..7ec8c81a76 100644
> > --- a/sysdeps/mach/hurd/i386/tls.h
> > +++ b/sysdeps/mach/hurd/i386/tls.h
> > @@ -163,6 +163,114 @@ out:
> >  	      : "i" (offsetof (tcbhead_t, tcb)));			      \
> >       __tcb;})
> >  
> > +/* Read member of the thread descriptor directly.  */
> > +# define THREAD_GETMEM(descr, member) \
> > +  ({ __typeof (descr->member) __value;					      \
> > +     if (sizeof (__value) == 1)						      \
> > +       asm volatile ("movb %%gs:%P2,%b0"				      \
> > +		     : "=q" (__value)					      \
> > +		     : "0" (0), "i" (offsetof (tcbhead_t, member)));	      \
> > +     else if (sizeof (__value) == 4)					      \
> > +       asm volatile ("movl %%gs:%P1,%0"					      \
> > +		     : "=r" (__value)					      \
> > +		     : "i" (offsetof (tcbhead_t, member)));		      \
> > +     else								      \
> > +       {								      \
> > +	 if (sizeof (__value) != 8)					      \
> > +	   /* There should not be any value with a size other than 1,	      \
> > +	      4 or 8.  */						      \
> > +	   abort ();							      \
> 
> _Static_assert?

I just copied from i386's tls.h. We should fix them at the same time :)

Samuel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic