[lkml]   [2008]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH v3] elf loader support for auxvec base platform string
    Nathan Lynch wrote:

    > +#define AT_EXECFN 31 /* filename of program */
    > How did you arrive at 31 for the value of AT_EXECFN? I haven't been
    > able to find out how AT_* values are "allocated", or what the reason
    > is for the gap between AT_SECURE and AT_SYSINFO.

    The numbers are chosen by experience, taste, and fiat.
    Hopefully new choices do not conflict with existing ones,
    but there is no formal "issuing authority."
    In history the auxiliary vector has been not well standardized
    and many times has been hidden from view of applications, although some
    SysV-based systems have made it visible as a fourth argument to main().
    Linux has /proc/pid/auxv, although the implementation suffers
    from being exposed to overwriting by the user. From long experience
    at virtualization in user mode, I favor better access, more use,
    and better understanding of what the auxiliary vector provides.

    AT_SYSINFO at 32 was chosen to avoid conflicts with [0,31]
    partly on the theory that the first 32 might be considered
    to be reserved for use across all UNIX-like systems,
    while AT_SYSINFO definitely was Linux-specific.
    I chose AT_EXECFN at 31 because I considered the concept
    to be applicable to any system having execve(), even if AT_EXECFN
    is not universally implemented. I had not seen any new tags
    below 32 in a long time. The concept of AT_EXECFN allows
    a nice interface for a virtualizer. The somewhat-related
    AT_EXECFD already exists below 32.

    Elsewhere, I've staked out use of a new AT_WINE_PRELOAD_INFO
    at 30. Avoid that one, please. :-)

    John Reiser,

     \ /
      Last update: 2008-07-18 22:35    [W:0.020 / U:107.116 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site