On Mon, Feb 6, 2012 at 12:30 PM, H. Peter Anvin<hpa@xxxxxxxxx> wrote:What is needed to make a regset variable-sized? Just declaring that it
may change in size in the future, or does one need a length field at the
top (I would personally have expected that both notes and ptrace would
have out-of-band methods for getting the size?)
ELF notes do have a size field, so core files are self-explanatory. There
is no ptrace interface to directly interrogate the regset details (one
could be added). But the PTRACE_GETREGSET interface is to accept an upper
bound and yield the actual size filled in (which might be less than the
regset's size if the user-supplied buffer was smaller). So in practice, a
caller can just use a buffer that's sure to be large enough, and then look
at iov_len for the actual size delivered. (And nobody has yet complained
about this for xstate, though that might just be that nobody is really
using it.)