Print this page
OS-3820 lxbrand ptrace(2): the next generation
OS-3685 lxbrand PTRACE_O_TRACEFORK race condition
OS-3834 lxbrand 64-bit strace(1) reports 64-bit process as using x32 ABI
OS-3794 lxbrand panic on init signal death
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Bryan Cantrill <bryan@joyent.com>
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>
        
*** 336,349 ****
--- 336,355 ----
   */
  #pragma init(_libproc_init)
  void
  _libproc_init(void)
  {
+         const char *root;
+ 
          _libproc_debug = getenv("LIBPROC_DEBUG") != NULL;
          _libproc_no_qsort = getenv("LIBPROC_NO_QSORT") != NULL;
          _libproc_incore_elf = getenv("LIBPROC_INCORE_ELF") != NULL;
  
+         if ((root = zone_get_nroot()) != NULL)
+                 (void) snprintf(procfs_path, sizeof (procfs_path), "%s/proc",
+                     root);
+ 
          (void) sigfillset(&blockable_sigs);
          (void) sigdelset(&blockable_sigs, SIGKILL);
          (void) sigdelset(&blockable_sigs, SIGSTOP);
  }
  
*** 1758,1767 ****
--- 1764,1776 ----
                      proc_signame(lsp->pr_what, name, sizeof (name)));
                  break;
          case PR_SUSPENDED:
                  dprintf("%s: SUSPENDED\n", caller);
                  break;
+         case PR_BRAND:
+                 dprintf("%s: BRANDPRIVATE (%d)\n", caller, lsp->pr_what);
+                 break;
          default:
                  dprintf("%s: Unknown\n", caller);
                  break;
          }
  
*** 1937,1946 ****
--- 1946,1956 ----
          case PR_REQUESTED:
          case PR_SIGNALLED:
          case PR_FAULTED:
          case PR_JOBCONTROL:
          case PR_SUSPENDED:
+         case PR_BRAND:
                  break;
          default:
                  errno = EPROTO;
                  return (-1);
          }
*** 3511,3520 ****
--- 3521,3531 ----
          case PR_REQUESTED:
          case PR_SIGNALLED:
          case PR_FAULTED:
          case PR_JOBCONTROL:
          case PR_SUSPENDED:
+         case PR_BRAND:
                  break;
          default:
                  errno = EPROTO;
                  return (-1);
          }