Print this page
OS-5192 need faster clock_gettime
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Reviewed by: Ryan Zezeski <ryan@zinascii.com>
OS-5202 Support AT_SECURE & AT_*ID in LX
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
OS-3405 lx brand: socket() fails for PF_INET6
OS-3382 lxbrand 64bit gettimeofday depends on vsyscall or vdso
OS-3280 need a way to specify the root of a native system in the lx brand
OS-3279 lx brand should allow delegated datasets
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-2949 add support for AT_RANDOM aux vector entry
        
@@ -27,11 +27,11 @@
  *
  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 /*
- * Copyright (c) 2012, Joyent, Inc.  All rights reserved.
+ * Copyright 2016 Joyent, Inc.
  */
 
 #ifndef _SYS_AUXV_H
 #define _SYS_AUXV_H
 
@@ -76,10 +76,13 @@
 #define AT_PAGESZ       6       /* getpagesize(2) */
 #define AT_BASE         7       /* ld.so base addr */
 #define AT_FLAGS        8       /* processor flags */
 #define AT_ENTRY        9       /* a.out entry point */
 
+/* First introduced on Linux */
+#define AT_RANDOM       25      /* address of 16 random bytes */
+
 /*
  * These relate to the original PPC ABI document; Linux reused
  * the values for other things (see below), so disambiguation of
  * these values may require additional context in PPC binaries.
  *
@@ -88,30 +91,39 @@
  * AT_UCACHEBSIZE       12      smallest unified cache block size
  *
  * These are the values from LSB 1.3, the first five are also described
  * in the draft amd64 ABI.
  *
- * At the time of writing, Solaris doesn't place any of these values into
- * the aux vector, except AT_CLKTCK which is placed on the aux vector for
- * lx branded processes; also, we do similar things via AT_SUN_ values.
+ * At the time of writing, illumos doesn't place any of these values into the
+ * aux vector, except where noted. We do similar things via AT_SUN_ values.
  *
  * AT_NOTELF            10      program is not ELF?
- * AT_UID               11      real user id
- * AT_EUID              12      effective user id
- * AT_GID               13      real group id
- * AT_EGID              14      effective group id
+ * AT_UID               11      real user id (provided in LX)
+ * AT_EUID              12      effective user id (provided in LX)
+ * AT_GID               13      real group id (provided in LX)
+ * AT_EGID              14      effective group id (provided in LX)
  *
  * AT_PLATFORM          15
  * AT_HWCAP             16
- * AT_CLKTCK            17      c.f. _SC_CLK_TCK
+ * AT_CLKTCK            17      c.f. _SC_CLK_TCK (provided in LX)
  * AT_FPUCW             18
  *
  * AT_DCACHEBSIZE       19      (moved from 10)
  * AT_ICACHEBSIZE       20      (moved from 11)
  * AT_UCACHEBSIZE       21      (moved from 12)
  *
  * AT_IGNOREPPC         22
+ *
+ * On Linux:
+ * AT_* values 18 through 22 are reserved
+ * AT_SECURE            23      secure mode boolean (provided in LX)
+ * AT_BASE_PLATFORM     24      string identifying real platform, may
+ *                              differ from AT_PLATFORM.
+ * AT_HWCAP2            26      extension of AT_HWCAP
+ * AT_EXECFN            31      filename of program
+ * AT_SYSINFO           32
+ * AT_SYSINFO_EHDR      33      The vDSO location
  */
 
 /*
  * Sun extensions begin here
  */
@@ -184,12 +196,19 @@
  * Aux vectors available for brand modules.
  */
 #define AT_SUN_BRAND_AUX1       2020
 #define AT_SUN_BRAND_AUX2       2021
 #define AT_SUN_BRAND_AUX3       2022
+#define AT_SUN_BRAND_AUX4       2025
+#define AT_SUN_BRAND_NROOT      2024
 
 /*
+ * Aux vector for comm page
+ */
+#define AT_SUN_COMMPAGE         2026
+
+/*
  * Note that 2023 is reserved for the AT_SUN_HWCAP2 word defined above.
  */
 
 /*
  * The kernel is in a better position to determine whether a process needs to