Print this page

        

@@ -347,14 +347,20 @@
  */
 #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);
 }
 

@@ -1796,10 +1802,13 @@
                     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;
         }
 

@@ -1975,10 +1984,11 @@
         case PR_REQUESTED:
         case PR_SIGNALLED:
         case PR_FAULTED:
         case PR_JOBCONTROL:
         case PR_SUSPENDED:
+        case PR_BRAND:
                 break;
         default:
                 errno = EPROTO;
                 return (-1);
         }

@@ -3563,10 +3573,11 @@
         case PR_REQUESTED:
         case PR_SIGNALLED:
         case PR_FAULTED:
         case PR_JOBCONTROL:
         case PR_SUSPENDED:
+        case PR_BRAND:
                 break;
         default:
                 errno = EPROTO;
                 return (-1);
         }