This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [hurd,commited] hurd: Add THREAD_GET/SETMEM/_NC
- From: Samuel Thibault <samuel dot thibault at gnu dot org>
- To: Andreas Schwab <schwab at linux-m68k dot org>
- Cc: libc-alpha at sourceware dot org, bug-hurd at gnu dot org, commit-hurd at gnu dot org
- Date: Sat, 15 Feb 2020 05:54:36 -0800
- Subject: Re: [hurd,commited] hurd: Add THREAD_GET/SETMEM/_NC
- References: <20200215132327.130884-1-samuel.thibault@ens-lyon.org> <875zg82c2r.fsf@igel.home>
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