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>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/ptools/pwdx/pwdx.c
          +++ new/usr/src/cmd/ptools/pwdx/pwdx.c
↓ open down ↓ 14 lines elided ↑ open up ↑
  15   15   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  16   16   * If applicable, add the following below this CDDL HEADER, with the
  17   17   * fields enclosed by brackets "[]" replaced with your own identifying
  18   18   * information: Portions Copyright [yyyy] [name of copyright owner]
  19   19   *
  20   20   * CDDL HEADER END
  21   21   */
  22   22  /*
  23   23   * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
  24   24   * Use is subject to license terms.
       25 + * Copyright (c) 2014, Joyent, Inc.  All rights reserved.
  25   26   */
  26   27  
  27      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  28      -
  29   28  #include <stdio.h>
  30   29  #include <unistd.h>
  31   30  #include <string.h>
  32   31  #include <errno.h>
  33   32  #include <libproc.h>
  34   33  #include <sys/param.h>
  35   34  
       35 +#include "ptools_common.h"
       36 +
  36   37  static char *command;
  37   38  
  38   39  static int
  39   40  show_cwd(const char *arg)
  40   41  {
  41   42          char cwd[MAXPATHLEN], proc[128];
  42   43          psinfo_t p;
  43   44          int gcode;
  44   45          int ret;
  45   46  
  46   47          if (proc_arg_psinfo(arg, PR_ARG_PIDS, &p, &gcode) == -1) {
  47   48                  (void) fprintf(stderr, "%s: cannot examine %s: %s\n",
  48   49                      command, arg, Pgrab_error(gcode));
  49   50                  return (1);
  50   51          }
  51   52  
  52      -        (void) snprintf(proc, sizeof (proc), "/proc/%d/path/cwd",
       53 +        (void) proc_snprintf(proc, sizeof (proc), "/proc/%d/path/cwd",
  53   54              (int)p.pr_pid);
  54   55  
  55   56          if ((ret = readlink(proc, cwd, sizeof (cwd) - 1)) <= 0) {
  56   57                  (void) fprintf(stderr, "%s: cannot resolve cwd for %s: %s\n",
  57   58                      command, arg, strerror(errno));
  58   59                  return (1);
  59   60          }
  60   61  
  61   62          cwd[ret] = '\0';
  62   63  
↓ open down ↓ 24 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX