Great, but how about using code similar to the following rather than
hand-coded asm operations?
extern struct pthread __pt_current_struct asm("%gs:0");
#define __pt_current (&__pt_current_struct)
#define THREAD_GETMEM(descr, member) (__pt_current->member)
#define THREAD_SETMEM(descr, member, value) ((__pt_current->member) =3D
value)
#define THREAD_MASKMEM(descr, member, mask) ((__pt_current->member) &=3D
mask)
...
Of course, it doesn't work if you try to take the address of a member.
--=-1jhhxx3CSYZtRYU8yWDm
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQA9ivnrdjkty3ft5+cRAmMSAJ9v470NIJzcj+54n1xTht8FSg40mACgx7Lh
Zkzp+pWyB9+bT0S1WbCd00U=
=U7hZ
-----END PGP SIGNATURE-----
--=-1jhhxx3CSYZtRYU8yWDm--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/