Print this page
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>

*** 20,29 **** --- 20,30 ---- */ /* * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright (c) 2014, Joyent, Inc. All rights reserved. */ #include <stdio.h> #include <stdio_ext.h> #include <stdlib.h>
*** 40,49 **** --- 41,51 ---- #include <sys/stat.h> #include <sys/mkdev.h> #include <sys/mman.h> #include <sys/lgrp_user.h> #include <libproc.h> + #include "ptools_common.h" #include "pmap_common.h" #define KILOBYTE 1024 #define MEGABYTE (KILOBYTE * KILOBYTE)
*** 197,207 **** const char *bar8 = "-------"; const char *bar16 = "----------"; const char *bar; struct rlimit rlim; struct stat64 statbuf; ! char buf[128]; int mapfd; int prg_gflags = PGRAB_RDONLY; int prr_flags = 0; boolean_t use_agent_lwp = B_FALSE; --- 199,209 ---- const char *bar8 = "-------"; const char *bar16 = "----------"; const char *bar; struct rlimit rlim; struct stat64 statbuf; ! char buf[PATH_MAX]; int mapfd; int prg_gflags = PGRAB_RDONLY; int prr_flags = 0; boolean_t use_agent_lwp = B_FALSE;
*** 356,366 **** bar = addr_width == 8 ? bar8 : bar16; (void) memcpy(&psinfo, Ppsinfo(Pr), sizeof (psinfo_t)); proc_unctrl_psinfo(&psinfo); if (Pstate(Pr) != PS_DEAD) { ! (void) snprintf(buf, sizeof (buf), "/proc/%d/map", (int)psinfo.pr_pid); if ((mapfd = open(buf, O_RDONLY)) < 0) { (void) fprintf(stderr, "%s: cannot " "examine %s: lost control of " "process\n", command, arg); --- 358,368 ---- bar = addr_width == 8 ? bar8 : bar16; (void) memcpy(&psinfo, Ppsinfo(Pr), sizeof (psinfo_t)); proc_unctrl_psinfo(&psinfo); if (Pstate(Pr) != PS_DEAD) { ! (void) proc_snprintf(buf, sizeof (buf), "/proc/%d/map", (int)psinfo.pr_pid); if ((mapfd = open(buf, O_RDONLY)) < 0) { (void) fprintf(stderr, "%s: cannot " "examine %s: lost control of " "process\n", command, arg);
*** 588,598 **** int mapfd, nmap, i, rc; struct stat st; prmap_t *prmapp, *pmp; ssize_t n; ! (void) snprintf(mapname, sizeof (mapname), "/proc/%d/rmap", (int)Pstatus(Pr)->pr_pid); if ((mapfd = open(mapname, O_RDONLY)) < 0 || fstat(mapfd, &st) != 0) { if (mapfd >= 0) (void) close(mapfd); --- 590,600 ---- int mapfd, nmap, i, rc; struct stat st; prmap_t *prmapp, *pmp; ssize_t n; ! (void) proc_snprintf(mapname, sizeof (mapname), "/proc/%d/rmap", (int)Pstatus(Pr)->pr_pid); if ((mapfd = open(mapname, O_RDONLY)) < 0 || fstat(mapfd, &st) != 0) { if (mapfd >= 0) (void) close(mapfd);
*** 629,639 **** int mapfd, nmap, i, rc; struct stat st; prxmap_t *prmapp, *pmp; ssize_t n; ! (void) snprintf(mapname, sizeof (mapname), "/proc/%d/xmap", (int)Pstatus(Pr)->pr_pid); if ((mapfd = open(mapname, O_RDONLY)) < 0 || fstat(mapfd, &st) != 0) { if (mapfd >= 0) (void) close(mapfd); --- 631,641 ---- int mapfd, nmap, i, rc; struct stat st; prxmap_t *prmapp, *pmp; ssize_t n; ! (void) proc_snprintf(mapname, sizeof (mapname), "/proc/%d/xmap", (int)Pstatus(Pr)->pr_pid); if ((mapfd = open(mapname, O_RDONLY)) < 0 || fstat(mapfd, &st) != 0) { if (mapfd >= 0) (void) close(mapfd);