usr/src/cmd/truss/print.c
author Cathy Zhou <Cathy.Zhou@Sun.COM>
Tue, 17 Nov 2009 09:17:48 -0800
changeset 11076 445f05f9f7b4
parent 10934 e209937a4f19
child 11200 ef7f332584bb
permissions -rw-r--r--
PSARC/2008/693 VRRP PSARC/2009/388 VRRP Update 6288572 RFE: VRRP implementation desired for Solaris
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     1
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     2
 * CDDL HEADER START
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     3
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     4
 * The contents of this file are subject to the terms of the
1676
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
     5
 * Common Development and Distribution License (the "License").
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
     6
 * You may not use this file except in compliance with the License.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     7
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     8
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
     9
 * or http://www.opensolaris.org/os/licensing.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    10
 * See the License for the specific language governing permissions
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    11
 * and limitations under the License.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    12
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    13
 * When distributing Covered Code, include this CDDL HEADER in each
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    14
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    15
 * If applicable, add the following below this CDDL HEADER, with the
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    16
 * fields enclosed by brackets "[]" replaced with your own identifying
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    17
 * information: Portions Copyright [yyyy] [name of copyright owner]
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    18
 *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    19
 * CDDL HEADER END
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    20
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    21
/*
8485
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
    22
 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    23
 * Use is subject to license terms.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    24
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    25
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    26
/*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    27
/*	  All Rights Reserved  	*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    28
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    29
#define	_SYSCALL32	/* make 32-bit compat headers visible */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    30
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    31
#include <stdio.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    32
#include <stdlib.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    33
#include <unistd.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    34
#include <string.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    35
#include <signal.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    36
#include <termio.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    37
#include <stddef.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    38
#include <limits.h>
10440
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
    39
#include <fcntl.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    40
#include <ctype.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    41
#include <sys/types.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    42
#include <sys/mman.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    43
#include <sys/resource.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    44
#include <sys/ulimit.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    45
#include <sys/utsname.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    46
#include <sys/kstat.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    47
#include <sys/modctl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    48
#include <sys/acl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    49
#include <stropts.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    50
#include <sys/isa_defs.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    51
#include <sys/systeminfo.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    52
#include <sys/cladm.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    53
#include <sys/lwp.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    54
#include <bsm/audit.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    55
#include <libproc.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    56
#include <priv.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    57
#include <sys/aio.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    58
#include <sys/aiocb.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    59
#include <sys/corectl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    60
#include <sys/cpc_impl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    61
#include <sys/priocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    62
#include <sys/tspriocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    63
#include <sys/iapriocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    64
#include <sys/rtpriocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    65
#include <sys/fsspriocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    66
#include <sys/fxpriocntl.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    67
#include <netdb.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    68
#include <nss_dbdefs.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    69
#include <sys/socketvar.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    70
#include <netinet/in.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    71
#include <netinet/tcp.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    72
#include <netinet/udp.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    73
#include <netinet/sctp.h>
8485
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
    74
#include <net/route.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    75
#include <sys/utrap.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    76
#include <sys/lgrp_user.h>
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    77
#include <sys/door.h>
1676
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
    78
#include <sys/tsol/tndb.h>
2447
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
    79
#include <sys/rctl.h>
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
    80
#include <sys/rctl_impl.h>
3235
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
    81
#include <sys/fork.h>
3684
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
    82
#include <sys/task.h>
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    83
#include "ramdata.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    84
#include "print.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    85
#include "proto.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    86
#include "systable.h"
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    87
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    88
void grow(private_t *, int nbyte);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    89
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    90
#define	GROW(nb) if (pri->sys_leng + (nb) >= pri->sys_ssize) grow(pri, (nb))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    91
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    92
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    93
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    94
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    95
prt_nov(private_t *pri, int raw, long val)	/* print nothing */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    96
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    97
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    98
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
    99
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   100
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   101
prt_dec(private_t *pri, int raw, long val)	/* print as decimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   102
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   103
	GROW(24);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   104
	if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   105
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   106
		    "%d", (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   107
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   108
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   109
		    "%ld", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   110
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   111
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   112
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   113
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   114
prt_uns(private_t *pri, int raw, long val)	/* print as unsigned decimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   115
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   116
	GROW(24);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   117
	if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   118
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   119
		    "%u", (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   120
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   121
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   122
		    "%lu", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   123
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   124
4321
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   125
/* print as unsigned decimal, except for -1 */
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   126
void
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   127
prt_un1(private_t *pri, int raw, long val)
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   128
{
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   129
	if ((int)val == -1)
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   130
		prt_dec(pri, raw, val);
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   131
	else
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   132
		prt_uns(pri, raw, val);
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   133
}
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
   134
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   135
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   136
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   137
prt_oct(private_t *pri, int raw, long val)	/* print as octal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   138
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   139
	GROW(24);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   140
	if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   141
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   142
		    "%#o", (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   143
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   144
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   145
		    "%#lo", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   146
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   147
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   148
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   149
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   150
prt_hex(private_t *pri, int raw, long val)	/* print as hexadecimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   151
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   152
	GROW(20);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   153
	if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   154
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   155
		    "0x%.8X", (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   156
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   157
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   158
		    "0x%.8lX", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   159
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   160
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   161
/* print as hexadecimal (half size) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   162
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   163
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   164
prt_hhx(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   165
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   166
	GROW(20);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   167
	if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   168
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   169
		    "0x%.4X", (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   170
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   171
		pri->sys_leng += sprintf(pri->sys_string + pri->sys_leng,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   172
		    "0x%.4lX", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   173
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   174
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   175
/* print as decimal if small, else hexadecimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   176
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   177
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   178
prt_dex(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   179
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   180
	if (val & 0xff000000)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   181
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   182
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   183
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   184
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   185
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   186
/* print long long offset */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   187
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   188
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   189
prt_llo(private_t *pri, int raw, long val1, long val2)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   190
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   191
	int hival;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   192
	int loval;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   193
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   194
#ifdef	_LONG_LONG_LTOH
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   195
	hival = (int)val2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   196
	loval = (int)val1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   197
#else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   198
	hival = (int)val1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   199
	loval = (int)val2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   200
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   201
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   202
	if (hival == 0) {
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   203
		prt_dex(pri, 0, loval);
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   204
	} else {
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   205
		GROW(18);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   206
		pri->sys_leng +=
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   207
		    sprintf(pri->sys_string + pri->sys_leng, "0x%.8X%.8X",
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   208
		    hival, loval);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   209
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   210
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   211
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   212
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   213
escape_string(private_t *pri, const char *s)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   214
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   215
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   216
	 * We want to avoid outputting unprintable characters that may
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   217
	 * destroy the user's terminal.  So we do one pass to find any
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   218
	 * unprintable characters, size the array appropriately, and
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   219
	 * then walk each character by hand.  Those that are unprintable
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   220
	 * are replaced by a hex escape (\xNN).  We also escape quotes for
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   221
	 * completeness.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   222
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   223
	int i, unprintable, quotes;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   224
	size_t len = strlen(s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   225
	for (i = 0, unprintable = 0, quotes = 0; i < len; i++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   226
		if (!isprint(s[i]))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   227
			unprintable++;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   228
		if (s[i] == '"')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   229
			quotes++;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   230
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   231
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   232
	GROW(len + 3 * unprintable + quotes + 2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   233
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   234
	pri->sys_string[pri->sys_leng++] = '"';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   235
	for (i = 0; i < len; i++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   236
		if (s[i] == '"')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   237
			pri->sys_string[pri->sys_leng++] = '\\';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   238
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   239
		if (isprint(s[i])) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   240
			pri->sys_string[pri->sys_leng++] = s[i];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   241
		} else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   242
			pri->sys_leng += sprintf(pri->sys_string +
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   243
			    pri->sys_leng, "\\x%02x", (uint8_t)s[i]);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   244
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   245
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   246
	pri->sys_string[pri->sys_leng++] = '"';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   247
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   248
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   249
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   250
prt_stg(private_t *pri, int raw, long val)	/* print as string */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   251
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   252
	char *s = raw? NULL : fetchstring(pri, (long)val, PATH_MAX);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   253
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   254
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   255
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   256
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   257
		escape_string(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   258
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   259
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   260
/* print as string returned from syscall */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   261
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   262
prt_rst(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   263
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   264
	char *s = (raw || pri->Errno)? NULL :
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   265
	    fetchstring(pri, (long)val, PATH_MAX);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   266
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   267
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   268
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   269
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   270
		GROW((int)strlen(s) + 2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   271
		pri->sys_leng += snprintf(pri->sys_string + pri->sys_leng,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   272
		    pri->sys_ssize - pri->sys_leng, "\"%s\"", s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   273
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   274
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   275
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   276
/* print contents of readlink() buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   277
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   278
prt_rlk(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   279
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   280
	char *s = (raw || pri->Errno || pri->Rval1 <= 0)? NULL :
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   281
	    fetchstring(pri, (long)val,
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   282
	    (pri->Rval1 > PATH_MAX)? PATH_MAX : (int)pri->Rval1);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   283
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   284
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   285
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   286
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   287
		GROW((int)strlen(s) + 2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   288
		pri->sys_leng += snprintf(pri->sys_string + pri->sys_leng,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   289
		    pri->sys_ssize - pri->sys_leng, "\"%s\"", s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   290
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   291
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   292
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   293
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   294
prt_ioc(private_t *pri, int raw, long val)	/* print ioctl code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   295
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   296
	const char *s = raw? NULL : ioctlname(pri, (int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   297
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   298
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   299
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   300
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   301
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   302
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   303
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   304
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   305
prt_ioa(private_t *pri, int raw, long val)	/* print ioctl argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   306
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   307
	const char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   308
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   309
	/* cheating -- look at the ioctl() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   310
	switch (pri->sys_args[1]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   311
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   312
	/* kstat ioctl()s */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   313
	case KSTAT_IOC_READ:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   314
	case KSTAT_IOC_WRITE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   315
#ifdef _LP64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   316
		if (data_model == PR_MODEL_ILP32)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   317
			prt_stg(pri, raw,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   318
			    val + offsetof(kstat32_t, ks_name[0]));
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   319
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   320
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   321
			prt_stg(pri, raw,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   322
			    val + offsetof(kstat_t, ks_name[0]));
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   323
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   324
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   325
	/* streams ioctl()s */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   326
	case I_LOOK:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   327
		prt_rst(pri, raw, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   328
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   329
	case I_PUSH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   330
	case I_FIND:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   331
		prt_stg(pri, raw, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   332
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   333
	case I_LINK:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   334
	case I_UNLINK:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   335
	case I_SENDFD:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   336
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   337
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   338
	case I_SRDOPT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   339
		if (raw || (s = strrdopt(val)) == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   340
			prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   341
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   342
			outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   343
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   344
	case I_SETSIG:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   345
		if (raw || (s = strevents(pri, val)) == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   346
			prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   347
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   348
			outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   349
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   350
	case I_FLUSH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   351
		if (raw || (s = strflush(val)) == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   352
			prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   353
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   354
			outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   355
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   356
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   357
	/* tty ioctl()s */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   358
	case TCSBRK:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   359
	case TCXONC:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   360
	case TCFLSH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   361
	case TCDSET:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   362
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   363
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   364
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   365
	default:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   366
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   367
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   368
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   369
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   370
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   371
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   372
prt_fcn(private_t *pri, int raw, long val)	/* print fcntl code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   373
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   374
	const char *s = raw? NULL : fcntlname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   375
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   376
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   377
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   378
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   379
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   380
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   381
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   382
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   383
prt_s86(private_t *pri, int raw, long val)	/* print sysi86 code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   384
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   385
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   386
	const char *s = raw? NULL : si86name(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   387
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   388
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   389
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   390
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   391
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   392
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   393
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   394
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   395
prt_uts(private_t *pri, int raw, long val)	/* print utssys code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   396
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   397
	const char *s = raw? NULL : utscode(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   398
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   399
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   400
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   401
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   402
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   403
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   404
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   405
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   406
prt_msc(private_t *pri, int raw, long val)	/* print msgsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   407
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   408
	const char *s = raw? NULL : msgcmd(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   409
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   410
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   411
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   412
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   413
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   414
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   415
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   416
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   417
prt_msf(private_t *pri, int raw, long val)	/* print msgsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   418
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   419
	const char *s = raw? NULL : msgflags(pri, (int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   420
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   421
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   422
		prt_oct(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   423
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   424
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   425
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   426
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   427
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   428
prt_smc(private_t *pri, int raw, long val)	/* print semsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   429
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   430
	const char *s = raw? NULL : semcmd(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   431
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   432
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   433
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   434
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   435
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   436
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   437
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   438
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   439
prt_sef(private_t *pri, int raw, long val)	/* print semsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   440
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   441
	const char *s = raw? NULL : semflags(pri, (int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   442
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   443
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   444
		prt_oct(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   445
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   446
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   447
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   448
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   449
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   450
prt_shc(private_t *pri, int raw, long val)	/* print shmsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   451
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   452
	const char *s = raw? NULL : shmcmd(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   453
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   454
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   455
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   456
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   457
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   458
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   459
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   460
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   461
prt_shf(private_t *pri, int raw, long val)	/* print shmsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   462
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   463
	const char *s = raw? NULL : shmflags(pri, (int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   464
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   465
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   466
		prt_oct(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   467
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   468
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   469
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   471
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   472
prt_sfs(private_t *pri, int raw, long val)	/* print sysfs code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   473
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   474
	const char *s = raw? NULL : sfsname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   475
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   476
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   477
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   478
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   479
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   480
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   481
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   482
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   483
prt_opn(private_t *pri, int raw, long val)	/* print open code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   484
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   485
	const char *s = raw? NULL : openarg(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   486
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   487
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   488
		prt_oct(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   489
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   490
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   491
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   492
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   493
void
10927
ac35db8a7412 PSARC 2009/595 delete ssig system call trap
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10923
diff changeset
   494
prt_sig(private_t *pri, int raw, long val)	/* print signal name */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   495
{
10927
ac35db8a7412 PSARC 2009/595 delete ssig system call trap
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10923
diff changeset
   496
	const char *s = raw? NULL : signame(pri, (int)val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   497
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   498
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   499
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   500
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   501
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   502
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   503
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   504
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   505
prt_smf(private_t *pri, int raw, long val) /* print streams message flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   506
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   507
	switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   508
	case 0:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   509
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   510
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   511
	case RS_HIPRI:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   512
		if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   513
			prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   514
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   515
			outstring(pri, "RS_HIPRI");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   516
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   517
	default:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   518
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   519
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   520
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   521
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   522
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   523
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   524
prt_plk(private_t *pri, int raw, long val)	/* print plock code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   525
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   526
	const char *s = raw? NULL : plockname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   527
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   528
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   529
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   530
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   531
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   532
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   533
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   534
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   535
prt_mtf(private_t *pri, int raw, long val)	/* print mount flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   536
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   537
	const char *s = raw? NULL : mountflags(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   538
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   539
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   540
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   541
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   542
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   543
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   544
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   545
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   546
prt_mft(private_t *pri, int raw, long val) /* print mount file system type */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   547
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   548
	if (val >= 0 && val < 256)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   549
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   550
	else if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   551
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   552
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   553
		prt_stg(pri, raw, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   554
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   555
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   556
#define	ISREAD(code) \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   557
	((code) == SYS_read || (code) == SYS_pread || (code) == SYS_pread64 || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   558
	(code) == SYS_recv || (code) == SYS_recvfrom)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   559
#define	ISWRITE(code) \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   560
	((code) == SYS_write || (code) == SYS_pwrite || \
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   561
	(code) == SYS_pwrite64 || (code) == SYS_send || (code) == SYS_sendto)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   562
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   563
/* print contents of read() or write() I/O buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   564
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   565
prt_iob(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   566
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   567
	const lwpstatus_t *Lsp = pri->lwpstat;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   568
	int syscall = Lsp->pr_what;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   569
	int fdp1 = pri->sys_args[0] + 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   570
	ssize_t nbyte = ISWRITE(syscall)? pri->sys_args[2] :
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   571
	    (pri->Errno? 0 : pri->Rval1);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   572
	int elsewhere = FALSE;		/* TRUE iff dumped elsewhere */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   573
	char buffer[IOBSIZE];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   574
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   575
	pri->iob_buf[0] = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   576
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   577
	if (Lsp->pr_why == PR_SYSEXIT && nbyte > IOBSIZE) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   578
		if (ISREAD(syscall))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   579
			elsewhere = prismember(&readfd, fdp1);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   580
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   581
			elsewhere = prismember(&writefd, fdp1);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   582
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   583
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   584
	if (nbyte <= 0 || elsewhere)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   585
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   586
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   587
		int nb = nbyte > IOBSIZE? IOBSIZE : (int)nbyte;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   588
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   589
		if (Pread(Proc, buffer, (size_t)nb, (long)val) != nb)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   590
			prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   591
		else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   592
			pri->iob_buf[0] = '"';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   593
			showbytes(buffer, nb, pri->iob_buf + 1);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   594
			(void) strlcat(pri->iob_buf,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   595
			    (nb == nbyte)?
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   596
			    (const char *)"\"" : (const char *)"\"..",
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   597
			    sizeof (pri->iob_buf));
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   598
			if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   599
				prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   600
			else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   601
				outstring(pri, pri->iob_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   602
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   603
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   604
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   605
#undef	ISREAD
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   606
#undef	ISWRITE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   607
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   608
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   609
prt_idt(private_t *pri, int raw, long val) /* print idtype_t, waitid() arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   610
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   611
	const char *s = raw? NULL : idtype_enum(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   612
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   613
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   614
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   615
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   616
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   617
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   618
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   619
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   620
prt_wop(private_t *pri, int raw, long val)	/* print waitid() options */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   621
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   622
	const char *s = raw? NULL : woptions(pri, (int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   623
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   624
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   625
		prt_oct(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   626
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   627
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   628
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   629
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   630
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   631
prt_whn(private_t *pri, int raw, long val) /* print lseek() whence argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   632
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   633
	const char *s = raw? NULL : whencearg(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   634
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   635
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   636
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   637
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   638
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   639
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   640
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   641
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   642
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   643
prt_spm(private_t *pri, int raw, long val)	/* print sigprocmask argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   644
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   645
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   646
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   647
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   648
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   649
		case SIG_BLOCK:		s = "SIG_BLOCK";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   650
		case SIG_UNBLOCK:	s = "SIG_UNBLOCK";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   651
		case SIG_SETMASK:	s = "SIG_SETMASK";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   652
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   653
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   654
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   655
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   656
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   657
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   658
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   659
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   660
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   661
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   662
mmap_protect(private_t *pri, long arg)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   663
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   664
	char *str = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   665
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   666
	if (arg & ~(PROT_READ|PROT_WRITE|PROT_EXEC))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   667
		return ((char *)NULL);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   668
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   669
	if (arg == PROT_NONE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   670
		return ("PROT_NONE");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   671
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   672
	*str = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   673
	if (arg & PROT_READ)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   674
		(void) strlcat(str, "|PROT_READ", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   675
	if (arg & PROT_WRITE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   676
		(void) strlcat(str, "|PROT_WRITE", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   677
	if (arg & PROT_EXEC)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   678
		(void) strlcat(str, "|PROT_EXEC", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   679
	return ((const char *)(str + 1));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   680
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   681
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   682
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   683
mmap_type(private_t *pri, long arg)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   684
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   685
	char *str = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   686
	size_t used;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   687
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   688
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   689
	switch (arg & MAP_TYPE) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   690
	case MAP_SHARED:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   691
		used = strlcpy(str, "MAP_SHARED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   692
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   693
	case MAP_PRIVATE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   694
		used = strlcpy(str, "MAP_PRIVATE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   695
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   696
	default:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   697
		used = snprintf(str, CBSIZE, "%ld", arg&MAP_TYPE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   698
		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   699
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   700
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   701
	arg &= ~(_MAP_NEW|MAP_TYPE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   702
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   703
	if (arg & ~(MAP_FIXED|MAP_RENAME|MAP_NORESERVE|MAP_ANON|MAP_ALIGN|
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   704
	    MAP_TEXT|MAP_INITDATA))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   705
		(void) snprintf(str + used, sizeof (pri->code_buf) - used,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   706
		    "|0x%lX", arg);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   707
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   708
		if (arg & MAP_FIXED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   709
			(void) strlcat(str, "|MAP_FIXED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   710
		if (arg & MAP_RENAME)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   711
			(void) strlcat(str, "|MAP_RENAME", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   712
		if (arg & MAP_NORESERVE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   713
			(void) strlcat(str, "|MAP_NORESERVE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   714
		if (arg & MAP_ANON)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   715
			(void) strlcat(str, "|MAP_ANON", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   716
		if (arg & MAP_ALIGN)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   717
			(void) strlcat(str, "|MAP_ALIGN", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   718
		if (arg & MAP_TEXT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   719
			(void) strlcat(str, "|MAP_TEXT", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   720
		if (arg & MAP_INITDATA)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   721
			(void) strlcat(str, "|MAP_INITDATA", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   722
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   723
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   724
	return ((const char *)str);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   725
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   726
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   727
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   728
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   729
prt_mpr(private_t *pri, int raw, long val) /* print mmap()/mprotect() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   730
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   731
	const char *s = raw? NULL : mmap_protect(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   732
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   733
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   734
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   735
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   736
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   737
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   738
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   739
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   740
prt_mty(private_t *pri, int raw, long val) /* print mmap() mapping type flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   741
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   742
	const char *s = raw? NULL : mmap_type(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   743
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   744
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   745
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   746
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   747
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   748
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   749
10198
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   750
void
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   751
prt_mob(private_t *pri, int raw, long val) /* print mmapobj() flags */
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   752
{
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   753
	if (val == 0)
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   754
		prt_dec(pri, 0, val);
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   755
	else if (raw || (val & ~(MMOBJ_PADDING|MMOBJ_INTERPRET)) != 0)
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   756
		prt_hhx(pri, 0, val);
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   757
	else {
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   758
#define	CBSIZE	sizeof (pri->code_buf)
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   759
		char *s = pri->code_buf;
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   760
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   761
		*s = '\0';
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   762
		if (val & MMOBJ_PADDING)
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   763
			(void) strlcat(s, "|MMOBJ_PADDING", CBSIZE);
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   764
		if (val & MMOBJ_INTERPRET)
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   765
			(void) strlcat(s, "|MMOBJ_INTERPRET", CBSIZE);
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   766
		outstring(pri, s + 1);
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   767
#undef CBSIZE
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   768
	}
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   769
}
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
   770
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   771
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   772
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   773
prt_mcf(private_t *pri, int raw, long val)	/* print memcntl() function */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   774
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   775
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   776
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   777
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   778
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   779
		case MC_SYNC:		s = "MC_SYNC";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   780
		case MC_LOCK:		s = "MC_LOCK";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   781
		case MC_UNLOCK:		s = "MC_UNLOCK";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   782
		case MC_ADVISE:		s = "MC_ADVISE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   783
		case MC_LOCKAS:		s = "MC_LOCKAS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   784
		case MC_UNLOCKAS:	s = "MC_UNLOCKAS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   785
		case MC_HAT_ADVISE:	s = "MC_HAT_ADVISE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   786
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   787
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   788
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   789
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   790
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   791
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   792
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   793
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   794
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   795
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   796
prt_mad(private_t *pri, int raw, long val)	/* print madvise() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   797
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   798
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   799
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   800
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   801
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   802
		case MADV_NORMAL:	s = "MADV_NORMAL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   803
		case MADV_RANDOM:	s = "MADV_RANDOM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   804
		case MADV_SEQUENTIAL:	s = "MADV_SEQUENTIAL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   805
		case MADV_WILLNEED:	s = "MADV_WILLNEED";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   806
		case MADV_DONTNEED:	s = "MADV_DONTNEED";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   807
		case MADV_FREE:		s = "MADV_FREE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   808
		case MADV_ACCESS_DEFAULT: s = "MADV_ACCESS_DEFAULT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   809
		case MADV_ACCESS_LWP:	s = "MADV_ACCESS_LWP";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   810
		case MADV_ACCESS_MANY:	s = "MADV_ACCESS_MANY";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   811
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   812
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   813
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   814
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   815
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   816
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   817
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   818
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   819
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   820
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   821
prt_mc4(private_t *pri, int raw, long val) /* print memcntl() (4th) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   822
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   823
	if (val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   824
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   825
	else if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   826
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   827
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   828
		char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   829
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   830
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   831
		/* cheating -- look at memcntl func */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   832
		switch (pri->sys_args[2]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   833
		case MC_ADVISE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   834
			prt_mad(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   835
			return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   836
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   837
		case MC_SYNC:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   838
			if ((val & ~(MS_SYNC|MS_ASYNC|MS_INVALIDATE)) == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   839
				*(s = pri->code_buf) = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   840
				if (val & MS_SYNC)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   841
					(void) strlcat(s, "|MS_SYNC", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   842
				if (val & MS_ASYNC)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   843
					(void) strlcat(s, "|MS_ASYNC", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   844
				if (val & MS_INVALIDATE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   845
					(void) strlcat(s, "|MS_INVALIDATE",
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   846
					    CBSIZE);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   847
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   848
			break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   849
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   850
		case MC_LOCKAS:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   851
		case MC_UNLOCKAS:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   852
			if ((val & ~(MCL_CURRENT|MCL_FUTURE)) == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   853
				*(s = pri->code_buf) = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   854
				if (val & MCL_CURRENT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   855
					(void) strlcat(s, "|MCL_CURRENT",
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   856
					    CBSIZE);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   857
				if (val & MCL_FUTURE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   858
					(void) strlcat(s, "|MCL_FUTURE",
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
   859
					    CBSIZE);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   860
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   861
			break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   862
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   863
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   864
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   865
		if (s == NULL || *s == '\0')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   866
			prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   867
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   868
			outstring(pri, ++s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   869
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   870
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   871
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   872
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   873
prt_mc5(private_t *pri, int raw, long val) /* print memcntl() (5th) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   874
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   875
	char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   876
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   877
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   878
	if (val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   879
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   880
	else if (raw || (val & ~VALID_ATTR))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   881
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   882
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   883
		s = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   884
		*s = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   885
		if (val & SHARED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   886
			(void) strlcat(s, "|SHARED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   887
		if (val & PRIVATE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   888
			(void) strlcat(s, "|PRIVATE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   889
		if (val & PROT_READ)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   890
			(void) strlcat(s, "|PROT_READ", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   891
		if (val & PROT_WRITE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   892
			(void) strlcat(s, "|PROT_WRITE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   893
		if (val & PROT_EXEC)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   894
			(void) strlcat(s, "|PROT_EXEC", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   895
		if (*s == '\0')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   896
			prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   897
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   898
			outstring(pri, ++s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   899
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   900
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   901
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   902
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   903
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   904
prt_ulm(private_t *pri, int raw, long val)	/* print ulimit() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   905
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   906
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   907
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   908
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   909
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   910
		case UL_GFILLIM:	s = "UL_GFILLIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   911
		case UL_SFILLIM:	s = "UL_SFILLIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   912
		case UL_GMEMLIM:	s = "UL_GMEMLIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   913
		case UL_GDESLIM:	s = "UL_GDESLIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   914
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   915
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   916
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   917
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   918
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   919
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   920
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   921
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   922
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   923
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   924
prt_rlm(private_t *pri, int raw, long val) /* print get/setrlimit() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   925
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   926
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   927
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   928
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   929
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   930
		case RLIMIT_CPU:	s = "RLIMIT_CPU";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   931
		case RLIMIT_FSIZE:	s = "RLIMIT_FSIZE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   932
		case RLIMIT_DATA:	s = "RLIMIT_DATA";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   933
		case RLIMIT_STACK:	s = "RLIMIT_STACK";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   934
		case RLIMIT_CORE:	s = "RLIMIT_CORE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   935
		case RLIMIT_NOFILE:	s = "RLIMIT_NOFILE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   936
		case RLIMIT_VMEM:	s = "RLIMIT_VMEM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   937
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   938
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   939
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   940
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   941
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   942
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   943
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   944
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   945
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   946
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   947
prt_cnf(private_t *pri, int raw, long val)	/* print sysconfig code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   948
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   949
	const char *s = raw? NULL : sconfname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   950
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   951
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   952
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   953
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   954
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   955
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   956
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   957
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   958
prt_inf(private_t *pri, int raw, long val)	/* print sysinfo code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   959
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   960
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   961
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   962
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   963
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   964
		case SI_SYSNAME:	s = "SI_SYSNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   965
		case SI_HOSTNAME:	s = "SI_HOSTNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   966
		case SI_RELEASE:	s = "SI_RELEASE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   967
		case SI_VERSION:	s = "SI_VERSION";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   968
		case SI_MACHINE:	s = "SI_MACHINE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   969
		case SI_ARCHITECTURE:	s = "SI_ARCHITECTURE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   970
		case SI_ARCHITECTURE_32:s = "SI_ARCHITECTURE_32"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   971
		case SI_ARCHITECTURE_64:s = "SI_ARCHITECTURE_64"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   972
		case SI_ARCHITECTURE_K:	s = "SI_ARCHITECTURE_K"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   973
		case SI_HW_SERIAL:	s = "SI_HW_SERIAL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   974
		case SI_HW_PROVIDER:	s = "SI_HW_PROVIDER";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   975
		case SI_SRPC_DOMAIN:	s = "SI_SRPC_DOMAIN";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   976
		case SI_SET_HOSTNAME:	s = "SI_SET_HOSTNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   977
		case SI_SET_SRPC_DOMAIN: s = "SI_SET_SRPC_DOMAIN"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   978
		case SI_PLATFORM:	s = "SI_PLATFORM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   979
		case SI_ISALIST:	s = "SI_ISALIST";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   980
		case SI_DHCP_CACHE:	s = "SI_DHCP_CACHE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   981
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   982
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   983
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   984
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   985
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   986
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   987
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   988
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   989
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   990
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   991
prt_ptc(private_t *pri, int raw, long val)	/* print pathconf code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   992
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   993
	const char *s = raw? NULL : pathconfname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   994
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   995
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   996
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   997
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   998
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
   999
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1000
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1001
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1002
prt_fui(private_t *pri, int raw, long val) /* print fusers() input argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1003
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1004
	const char *s = raw? NULL : fuiname(val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1005
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1006
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1007
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1008
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1009
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1010
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1011
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1012
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1013
prt_lwf(private_t *pri, int raw, long val)	/* print lwp_create() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1014
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1015
	char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1016
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1017
	if (val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1018
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1019
	else if (raw ||
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1020
	    (val & ~(LWP_DAEMON|LWP_DETACHED|LWP_SUSPENDED)))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1021
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1022
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1023
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1024
		s = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1025
		*s = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1026
		if (val & LWP_DAEMON)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1027
			(void) strlcat(s, "|LWP_DAEMON", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1028
		if (val & LWP_DETACHED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1029
			(void) strlcat(s, "|LWP_DETACHED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1030
		if (val & LWP_SUSPENDED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1031
			(void) strlcat(s, "|LWP_SUSPENDED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1032
		outstring(pri, ++s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1033
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1034
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1035
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1036
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1037
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1038
prt_itm(private_t *pri, int raw, long val) /* print [get|set]itimer() arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1039
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1040
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1041
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1042
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1043
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1044
		case ITIMER_REAL:	s = "ITIMER_REAL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1045
		case ITIMER_VIRTUAL:	s = "ITIMER_VIRTUAL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1046
		case ITIMER_PROF:	s = "ITIMER_PROF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1047
#ifdef ITIMER_REALPROF
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1048
		case ITIMER_REALPROF:	s = "ITIMER_REALPROF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1049
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1050
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1051
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1052
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1053
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1054
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1055
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1056
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1057
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1058
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1059
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1060
prt_mod(private_t *pri, int raw, long val)	/* print modctl() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1061
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1062
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1063
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1064
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1065
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1066
		case MODLOAD:		s = "MODLOAD";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1067
		case MODUNLOAD:		s = "MODUNLOAD";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1068
		case MODINFO:		s = "MODINFO";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1069
		case MODRESERVED:	s = "MODRESERVED";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1070
		case MODSETMINIROOT:	s = "MODSETMINIROOT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1071
		case MODADDMAJBIND:	s = "MODADDMAJBIND";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1072
		case MODGETPATH:	s = "MODGETPATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1073
		case MODGETPATHLEN:	s = "MODGETPATHLEN";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1074
		case MODREADSYSBIND:	s = "MODREADSYSBIND";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1075
		case MODGETMAJBIND:	s = "MODGETMAJBIND";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1076
		case MODGETNAME:	s = "MODGETNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1077
		case MODSIZEOF_DEVID:	s = "MODSIZEOF_DEVID";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1078
		case MODGETDEVID:	s = "MODGETDEVID";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1079
		case MODSIZEOF_MINORNAME: s = "MODSIZEOF_MINORNAME"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1080
		case MODGETMINORNAME:	s = "MODGETMINORNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1081
		case MODGETFBNAME:	s = "MODGETFBNAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1082
		case MODEVENTS:		s = "MODEVENTS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1083
		case MODREREADDACF:	s = "MODREREADDACF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1084
		case MODLOADDRVCONF:	s = "MODLOADDRVCONF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1085
		case MODUNLOADDRVCONF:	s = "MODUNLOADDRVCONF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1086
		case MODREMMAJBIND:	s = "MODREMMAJBIND";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1087
		case MODDEVT2INSTANCE:	s = "MODDEVT2INSTANCE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1088
		case MODGETDEVFSPATH_LEN: s = "MODGETDEVFSPATH_LEN"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1089
		case MODGETDEVFSPATH:	s = "MODGETDEVFSPATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1090
		case MODDEVID2PATHS:	s = "MODDEVID2PATHS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1091
		case MODSETDEVPOLICY:	s = "MODSETDEVPOLICY";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1092
		case MODGETDEVPOLICY:	s = "MODGETDEVPOLICY";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1093
		case MODALLOCPRIV:	s = "MODALLOCPRIV";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1094
		case MODGETDEVPOLICYBYNAME:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1095
					s = "MODGETDEVPOLICYBYNAME"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1096
		case MODLOADMINORPERM:	s = "MODLOADMINORPERM"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1097
		case MODADDMINORPERM:	s = "MODADDMINORPERM"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1098
		case MODREMMINORPERM:	s = "MODREMMINORPERM"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1099
		case MODREMDRVCLEANUP:	s = "MODREMDRVCLEANUP"; break;
2621
4ea88858d952 PSARC/2003/246 Filesystem Driven Device Naming
llai1
parents: 2447
diff changeset
  1100
		case MODDEVEXISTS:	s = "MODDEVEXISTS"; break;
4ea88858d952 PSARC/2003/246 Filesystem Driven Device Naming
llai1
parents: 2447
diff changeset
  1101
		case MODDEVREADDIR:	s = "MODDEVREADDIR"; break;
6065
b05c5c670963 6453345 devfs_getattr violates devfs locking rules
cth
parents: 5992
diff changeset
  1102
		case MODDEVEMPTYDIR:	s = "MODDEVEMPTYDIR"; break;
2621
4ea88858d952 PSARC/2003/246 Filesystem Driven Device Naming
llai1
parents: 2447
diff changeset
  1103
		case MODDEVNAME:	s = "MODDEVNAME"; break;
2723
200331b43252 PSARC/2006/519 Metadevice Names in iostat/vmstat Output
cth
parents: 2621
diff changeset
  1104
		case MODGETDEVFSPATH_MI_LEN:
200331b43252 PSARC/2006/519 Metadevice Names in iostat/vmstat Output
cth
parents: 2621
diff changeset
  1105
					s = "MODGETDEVFSPATH_MI_LEN"; break;
200331b43252 PSARC/2006/519 Metadevice Names in iostat/vmstat Output
cth
parents: 2621
diff changeset
  1106
		case MODGETDEVFSPATH_MI:
200331b43252 PSARC/2006/519 Metadevice Names in iostat/vmstat Output
cth
parents: 2621
diff changeset
  1107
					s = "MODGETDEVFSPATH_MI"; break;
8831
4b58222260b7 4854243 update_drv -d requires reboot
Jerry Gilliam <Jerry.Gilliam@Sun.COM>
parents: 8485
diff changeset
  1108
		case MODREMDRVALIAS:	s = "MODREMDRVALIAS"; break;
10923
df470fd79c3c PSARC/2008/181 Solaris Hotplug Framework
Evan Yan <Evan.Yan@Sun.COM>
parents: 10493
diff changeset
  1109
		case MODHPOPS:	s = "MODHPOPS"; break;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1110
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1111
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1112
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1113
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1114
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1115
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1116
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1117
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1118
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1119
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1120
prt_acl(private_t *pri, int raw, long val)	/* print acl() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1121
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1122
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1123
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1124
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1125
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1126
		case GETACL:		s = "GETACL";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1127
		case SETACL:		s = "SETACL";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1128
		case GETACLCNT:		s = "GETACLCNT";	break;
789
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents: 649
diff changeset
  1129
		case ACE_GETACL:	s = "ACE_GETACL";	break;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents: 649
diff changeset
  1130
		case ACE_SETACL:	s = "ACE_SETACL";	break;
b348f31ed315 PSARC 2002/240 ZFS
ahrens
parents: 649
diff changeset
  1131
		case ACE_GETACLCNT:	s = "ACE_GETACLCNT";	break;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1132
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1133
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1134
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1135
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1136
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1137
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1138
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1139
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1140
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1141
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1142
prt_aio(private_t *pri, int raw, long val)	/* print kaio() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1143
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1144
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1145
	char buf[32];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1146
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1147
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1148
		switch (val & ~AIO_POLL_BIT) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1149
		case AIOREAD:		s = "AIOREAD";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1150
		case AIOWRITE:		s = "AIOWRITE";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1151
		case AIOWAIT:		s = "AIOWAIT";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1152
		case AIOCANCEL:		s = "AIOCANCEL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1153
		case AIONOTIFY:		s = "AIONOTIFY";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1154
		case AIOINIT:		s = "AIOINIT";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1155
		case AIOSTART:		s = "AIOSTART";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1156
		case AIOLIO:		s = "AIOLIO";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1157
		case AIOSUSPEND:	s = "AIOSUSPEND";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1158
		case AIOERROR:		s = "AIOERROR";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1159
		case AIOLIOWAIT:	s = "AIOLIOWAIT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1160
		case AIOAREAD:		s = "AIOAREAD";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1161
		case AIOAWRITE:		s = "AIOAWRITE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1162
		/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1163
		 * We have to hardcode the values for the 64-bit versions of
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1164
		 * these calls, because <sys/aio.h> defines them to be identical
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1165
		 * when compiled 64-bit.  If our target is 32-bit, we still need
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1166
		 * to decode them correctly.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1167
		 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1168
		case 13:		s = "AIOLIO64";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1169
		case 14:		s = "AIOSUSPEND64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1170
		case 15:		s = "AUIOERROR64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1171
		case 16:		s = "AIOLIOWAIT64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1172
		case 17:		s = "AIOAREAD64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1173
		case 18:		s = "AIOAWRITE64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1174
		case 19:		s = "AIOCANCEL64";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1175
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1176
		/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1177
		 * AIOFSYNC doesn't correspond to a syscall.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1178
		 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1179
		case AIOWAITN:		s = "AIOWAITN";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1180
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1181
		if (s != NULL && (val & AIO_POLL_BIT)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1182
			(void) strlcpy(buf, s, sizeof (buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1183
			(void) strlcat(buf, "|AIO_POLL_BIT", sizeof (buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1184
			s = (const char *)buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1185
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1186
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1187
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1188
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1189
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1190
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1191
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1192
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1193
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1194
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1195
prt_aud(private_t *pri, int raw, long val)	/* print auditsys() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1196
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1197
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1198
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1199
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1200
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1201
		case BSM_GETAUID:	s = "BSM_GETAUID";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1202
		case BSM_SETAUID:	s = "BSM_SETAUID";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1203
		case BSM_GETAUDIT:	s = "BSM_GETAUDIT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1204
		case BSM_SETAUDIT:	s = "BSM_SETAUDIT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1205
		case BSM_AUDIT:		s = "BSM_AUDIT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1206
		case BSM_AUDITON:	s = "BSM_AUDITON";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1207
		case BSM_AUDITCTL:	s = "BSM_AUDITCTL";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1208
		case BSM_GETAUDIT_ADDR:	s = "BSM_GETAUDIT_ADDR"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1209
		case BSM_SETAUDIT_ADDR:	s = "BSM_SETAUDIT_ADDR"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1210
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1211
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1212
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1213
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1214
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1215
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1216
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1217
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1218
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1219
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1220
prt_cor(private_t *pri, int raw, long val)	/* print corectl() subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1221
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1222
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1223
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1224
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1225
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1226
		case CC_SET_OPTIONS:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1227
			s = "CC_SET_OPTIONS";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1228
		case CC_GET_OPTIONS:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1229
			s = "CC_GET_OPTIONS";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1230
		case CC_SET_GLOBAL_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1231
			s = "CC_SET_GLOBAL_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1232
		case CC_GET_GLOBAL_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1233
			s = "CC_GET_GLOBAL_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1234
		case CC_SET_PROCESS_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1235
			s = "CC_SET_PROCESS_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1236
		case CC_GET_PROCESS_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1237
			s = "CC_GET_PROCESS_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1238
		case CC_SET_GLOBAL_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1239
			s = "CC_SET_GLOBAL_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1240
		case CC_GET_GLOBAL_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1241
			s = "CC_GET_GLOBAL_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1242
		case CC_SET_PROCESS_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1243
			s = "CC_SET_PROCESS_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1244
		case CC_GET_PROCESS_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1245
			s = "CC_GET_PROCESS_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1246
		case CC_SET_DEFAULT_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1247
			s = "CC_SET_DEFAULT_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1248
		case CC_GET_DEFAULT_PATH:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1249
			s = "CC_GET_DEFAULT_PATH";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1250
		case CC_SET_DEFAULT_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1251
			s = "CC_SET_DEFAULT_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1252
		case CC_GET_DEFAULT_CONTENT:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1253
			s = "CC_GET_DEFAULT_CONTENT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1254
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1255
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1256
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1257
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1258
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1259
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1260
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1261
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1262
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1263
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1264
prt_cco(private_t *pri, int raw, long val)	/* print corectl() options */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1265
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1266
	char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1267
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1268
	if (val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1269
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1270
	else if (raw || (val & ~CC_OPTIONS))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1271
		prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1272
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1273
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1274
		s = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1275
		*s = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1276
		if (val & CC_GLOBAL_PATH)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1277
			(void) strlcat(s, "|CC_GLOBAL_PATH", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1278
		if (val & CC_PROCESS_PATH)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1279
			(void) strlcat(s, "|CC_PROCESS_PATH", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1280
		if (val & CC_GLOBAL_SETID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1281
			(void) strlcat(s, "|CC_GLOBAL_SETID", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1282
		if (val & CC_PROCESS_SETID)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1283
			(void) strlcat(s, "|CC_PROCESS_SETID", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1284
		if (val & CC_GLOBAL_LOG)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1285
			(void) strlcat(s, "|CC_GLOBAL_LOG", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1286
		if (*s == '\0')
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1287
			prt_hhx(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1288
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1289
			outstring(pri, ++s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1290
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1291
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1292
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1293
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1294
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1295
prt_ccc(private_t *pri, int raw, long val)	/* print corectl() content */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1296
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1297
	core_content_t ccc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1298
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1299
	if (Pread(Proc, &ccc, sizeof (ccc), val) != sizeof (ccc))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1300
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1301
	else if (!raw && proc_content2str(ccc, pri->code_buf,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1302
	    sizeof (pri->code_buf)) >= 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1303
		outstring(pri, pri->code_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1304
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1305
		prt_hhx(pri, 0, (long)ccc);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1306
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1307
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1308
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1309
prt_rcc(private_t *pri, int raw, long val)	/* print corectl() ret. cont. */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1310
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1311
	core_content_t ccc;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1312
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1313
	if (pri->Errno || Pread(Proc, &ccc, sizeof (ccc), val) != sizeof (ccc))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1314
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1315
	else if (!raw && proc_content2str(ccc, pri->code_buf,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1316
	    sizeof (pri->code_buf)) >= 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1317
		outstring(pri, pri->code_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1318
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1319
		prt_hhx(pri, 0, (long)ccc);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1320
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1321
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1322
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1323
prt_cpc(private_t *pri, int raw, long val)	/* print cpc() subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1324
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1325
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1326
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1327
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1328
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1329
		case CPC_BIND:		s = "CPC_BIND";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1330
		case CPC_SAMPLE:	s = "CPC_SAMPLE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1331
		case CPC_INVALIDATE:	s = "CPC_INVALIDATE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1332
		case CPC_RELE:		s = "CPC_RELE";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1333
		case CPC_EVLIST_SIZE:	s = "CPC_EVLIST_SIZE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1334
		case CPC_LIST_EVENTS:	s = "CPC_LIST_EVENTS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1335
		case CPC_ATTRLIST_SIZE:	s = "CPC_ATTRLIST_SIZE"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1336
		case CPC_LIST_ATTRS:	s = "CPC_LIST_ATTRS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1337
		case CPC_IMPL_NAME:	s = "CPC_IMPL_NAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1338
		case CPC_CPUREF:	s = "CPC_CPUREF";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1339
		case CPC_USR_EVENTS:	s = "CPC_USR_EVENTS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1340
		case CPC_SYS_EVENTS:	s = "CPC_SYS_EVENTS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1341
		case CPC_NPIC:		s = "CPC_NPIC";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1342
		case CPC_CAPS:		s = "CPC_CAPS";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1343
		case CPC_ENABLE:	s = "CPC_ENABLE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1344
		case CPC_DISABLE:	s = "CPC_DISABLE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1345
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1346
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1347
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1348
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1349
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1350
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1351
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1352
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1353
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1354
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1355
outstring(private_t *pri, const char *s)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1356
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1357
	int len = strlen(s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1358
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1359
	GROW(len);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1360
	(void) strcpy(pri->sys_string + pri->sys_leng, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1361
	pri->sys_leng += len;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1362
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1363
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1364
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1365
grow(private_t *pri, int nbyte)	/* reallocate format buffer if necessary */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1366
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1367
	while (pri->sys_leng + nbyte >= pri->sys_ssize)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1368
		pri->sys_string = my_realloc(pri->sys_string,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
  1369
		    pri->sys_ssize *= 2, "format buffer");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1370
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1371
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1372
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1373
prt_clc(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1374
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1375
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1376
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1377
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1378
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1379
		case CL_INITIALIZE:	s = "CL_INITIALIZE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1380
		case CL_CONFIG:		s = "CL_CONFIG";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1381
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1382
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1383
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1384
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1385
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1386
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1387
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1388
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1389
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1390
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1391
prt_clf(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1392
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1393
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1394
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1395
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1396
		switch (pri->sys_args[0]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1397
		case CL_CONFIG:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1398
			switch (pri->sys_args[1]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1399
			case CL_NODEID:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1400
				s = "CL_NODEID";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1401
			case CL_HIGHEST_NODEID:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1402
				s = "CL_HIGHEST_NODEID";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1403
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1404
			break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1405
		case CL_INITIALIZE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1406
			switch (pri->sys_args[1]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1407
			case CL_GET_BOOTFLAG:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1408
				s = "CL_GET_BOOTFLAG";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1409
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1410
			break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1411
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1412
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1413
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1414
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1415
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1416
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1417
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1418
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1419
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1420
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1421
prt_sqc(private_t *pri, int raw, long val)	/* print sigqueue() si_code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1422
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1423
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1424
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1425
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1426
		switch ((int)val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1427
		case SI_QUEUE:		s = "SI_QUEUE";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1428
		case SI_TIMER:		s = "SI_TIMER";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1429
		case SI_ASYNCIO:	s = "SI_ASYNCIO";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1430
		case SI_MESGQ:		s = "SI_MESGQ";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1431
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1432
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1433
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1434
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1435
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1436
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1437
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1438
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1439
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1440
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1441
 * print priocntlsys() (key, value) pair key.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1442
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1443
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1444
print_pck(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1445
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1446
	const char	*s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1447
	char		clname[PC_CLNMSZ];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1448
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1449
	if ((pri->sys_args[2] != PC_GETXPARMS &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1450
	    pri->sys_args[2] != PC_SETXPARMS) || val == 0 || raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1451
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1452
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1453
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1454
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1455
	if (pri->sys_args[3] == NULL) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1456
		if (val == PC_KY_CLNAME) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1457
			s = "PC_KY_CLNAME";
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1458
			outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1459
		} else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1460
			prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1461
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1462
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1463
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1464
	if (Pread(Proc, &clname, PC_CLNMSZ, pri->sys_args[3]) != PC_CLNMSZ) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1465
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1466
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1467
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1468
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1469
	if (strcmp(clname, "TS") == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1470
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1471
		case TS_KY_UPRILIM: 	s = "TS_KY_UPRILIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1472
		case TS_KY_UPRI:	s = "TS_KY_UPRI";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1473
		default:					break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1474
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1475
	} else if (strcmp(clname, "IA") == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1476
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1477
		case IA_KY_UPRILIM: 	s = "IA_KY_UPRILIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1478
		case IA_KY_UPRI:	s = "IA_KY_UPRI";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1479
		case IA_KY_MODE:	s = "IA_KY_MODE";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1480
		default:					break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1481
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1482
	} else if (strcmp(clname, "RT") == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1483
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1484
		case RT_KY_PRI: 	s = "RT_KY_PRI";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1485
		case RT_KY_TQSECS:	s = "RT_KY_TQSECS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1486
		case RT_KY_TQNSECS:	s = "RT_KY_TQNSECS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1487
		case RT_KY_TQSIG:	s = "RT_KY_TQSIG";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1488
		default:					break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1489
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1490
	} else if (strcmp(clname, "FSS") == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1491
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1492
		case FSS_KY_UPRILIM: 	s = "FSS_KY_UPRILIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1493
		case FSS_KY_UPRI:	s = "FSS_KY_UPRI";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1494
		default:					break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1495
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1496
	} else if (strcmp(clname, "FX") == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1497
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1498
		case FX_KY_UPRILIM: 	s = "FX_KY_UPRILIM";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1499
		case FX_KY_UPRI:	s = "FX_KY_UPRI";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1500
		case FX_KY_TQSECS:	s = "FX_KY_TQSECS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1501
		case FX_KY_TQNSECS:	s = "FX_KY_TQNSECS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1502
		default:					break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1503
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1504
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1505
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1506
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1507
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1508
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1509
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1510
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1511
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1512
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1513
 * print priocntlsys() fourth argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1514
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1515
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1516
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1517
prt_pc4(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1518
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1519
	/* look at pricntlsys function */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1520
	if ((pri->sys_args[2] != PC_GETXPARMS &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1521
	    pri->sys_args[2] != PC_SETXPARMS))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1522
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1523
	else if (val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1524
		prt_stg(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1525
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1526
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1527
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1528
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1529
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1530
 * print priocntlsys() (key, value) pairs (5th argument).
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1531
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1532
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1533
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1534
prt_pc5(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1535
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1536
	pc_vaparms_t	prms;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1537
	pc_vaparm_t	*vpp = &prms.pc_parms[0];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1538
	uint_t		cnt;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1539
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1540
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1541
	/* look at pricntlsys function */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1542
	if ((pri->sys_args[2] != PC_GETXPARMS &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1543
	    pri->sys_args[2] != PC_SETXPARMS) || val == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1544
		prt_dec(pri, 0, 0);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1545
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1546
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1547
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1548
	if (Pread(Proc, &prms, sizeof (prms), val) != sizeof (prms)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1549
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1550
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1551
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1552
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1553
	if ((cnt = prms.pc_vaparmscnt) > PC_VAPARMCNT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1554
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1555
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1556
	for (; cnt--; vpp++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1557
		print_pck(pri, 0, vpp->pc_key);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1558
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1559
		prt_hex(pri, 0, (long)vpp->pc_parm);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1560
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1561
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1562
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1563
	prt_dec(pri, 0, PC_KY_NULL);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1564
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1565
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1566
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1567
 * Print processor set id, including logical expansion of "special" ids.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1568
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1569
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1570
prt_pst(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1571
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1572
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1573
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1574
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1575
		switch ((psetid_t)val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1576
		case PS_NONE:		s = "PS_NONE";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1577
		case PS_QUERY:		s = "PS_QUERY";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1578
		case PS_MYID:		s = "PS_MYID";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1579
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1580
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1581
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1582
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1583
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1584
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1585
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1586
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1587
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1588
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1589
 * Print meminfo() argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1590
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1591
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1592
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1593
prt_mif(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1594
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1595
	struct meminfo	minfo;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1596
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1597
#ifdef _LP64
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1598
	if (data_model == PR_MODEL_ILP32) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1599
		struct meminfo32 minfo32;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1600
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1601
		if (Pread(Proc, &minfo32, sizeof (struct meminfo32), val) !=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1602
			sizeof (struct meminfo32)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1603
			prt_dec(pri, 0, pri->sys_args[1]);	/* addr_count */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1604
			outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1605
			prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1606
			return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1607
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1608
		/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1609
		 * arrange the arguments in the order that user calls with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1610
		 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1611
		prt_hex(pri, 0, minfo32.mi_inaddr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1612
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1613
		prt_dec(pri, 0, pri->sys_args[1]);	/* addr_count */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1614
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1615
		prt_hex(pri, 0, minfo32.mi_info_req);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1616
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1617
		prt_dec(pri, 0, minfo32.mi_info_count);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1618
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1619
		prt_hex(pri, 0, minfo32.mi_outdata);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1620
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1621
		prt_hex(pri, 0, minfo32.mi_validity);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1622
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1623
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1624
#endif
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1625
	if (Pread(Proc, &minfo, sizeof (struct meminfo), val) !=
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1626
		sizeof (struct meminfo)) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1627
		prt_dec(pri, 0, pri->sys_args[1]);	/* addr_count */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1628
		outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1629
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1630
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1631
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1632
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1633
	 * arrange the arguments in the order that user calls with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1634
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1635
	prt_hex(pri, 0, (long)minfo.mi_inaddr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1636
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1637
	prt_dec(pri, 0, pri->sys_args[1]);	/* addr_count */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1638
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1639
	prt_hex(pri, 0, (long)minfo.mi_info_req);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1640
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1641
	prt_dec(pri, 0, minfo.mi_info_count);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1642
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1643
	prt_hex(pri, 0, (long)minfo.mi_outdata);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1644
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1645
	prt_hex(pri, 0, (long)minfo.mi_validity);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1646
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1647
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1648
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1649
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1650
 * Print so_socket() 1st argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1651
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1652
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1653
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1654
prt_pfm(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1655
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1656
	/* Protocol Families have same names as Address Families */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1657
	if ((ulong_t)val < MAX_AFCODES) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1658
		outstring(pri, "PF_");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1659
		outstring(pri, afcodes[val]);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1660
	} else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1661
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1662
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1663
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1664
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1665
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1666
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1667
 * Print so_socket() 2nd argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1668
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1669
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1670
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1671
prt_skt(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1672
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1673
	const char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1674
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1675
	if ((ulong_t)val <= MAX_SOCKTYPES && (s = socktype_codes[val]) != NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1676
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1677
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1678
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1679
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1680
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1681
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1682
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1683
 * Print so_socket() 3rd argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1684
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1685
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1686
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1687
prt_skp(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1688
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1689
	const char *s;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1690
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1691
	/* cheating -- look at the protocol-family */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1692
	switch (pri->sys_args[0]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1693
	case PF_INET6:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1694
	case PF_INET:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1695
	case PF_NCA:	if ((s = ipprotos((int)val)) != NULL) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1696
				outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1697
				break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1698
			}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1699
			/* FALLTHROUGH */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1700
	default:	prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1701
			break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1702
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1703
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1704
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1705
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1706
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1707
 * Print so_socket() 5th argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1708
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1709
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1710
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1711
prt_skv(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1712
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1713
	switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1714
	case SOV_STREAM:	outstring(pri, "SOV_STREAM");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1715
	case SOV_DEFAULT:	outstring(pri, "SOV_DEFAULT");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1716
	case SOV_SOCKSTREAM:	outstring(pri, "SOV_SOCKSTREAM");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1717
	case SOV_SOCKBSD:	outstring(pri, "SOV_SOCKBSD");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1718
	case SOV_XPG4_2:	outstring(pri, "SOV_XPG4_2");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1719
	default:		prt_dec(pri, 0, val);		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1720
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1721
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1722
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1723
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1724
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1725
 * Print setsockopt()/getsockopt() 2nd argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1726
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1727
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1728
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1729
prt_sol(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1730
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1731
	if (val == SOL_SOCKET) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1732
		outstring(pri, "SOL_SOCKET");
8485
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1733
	} else if (val == SOL_ROUTE) {
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1734
		outstring(pri, "SOL_ROUTE");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1735
	} else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1736
		const struct protoent *p;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1737
		struct protoent res;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1738
		char buf[NSS_BUFLEN_PROTOCOLS];
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1739
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1740
		if ((p = getprotobynumber_r(val, &res,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1741
		    (char *)buf, sizeof (buf))) != NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1742
			outstring(pri, p->p_name);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1743
		else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1744
			prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1745
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1746
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1747
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1748
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1749
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1750
sol_optname(private_t *pri, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1751
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1752
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1753
	if (val >= SO_SNDBUF) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1754
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1755
		case SO_SNDBUF:		return ("SO_SNDBUF");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1756
		case SO_RCVBUF:		return ("SO_RCVBUF");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1757
		case SO_SNDLOWAT:	return ("SO_SNDLOWAT");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1758
		case SO_RCVLOWAT:	return ("SO_RCVLOWAT");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1759
		case SO_SNDTIMEO:	return ("SO_SNDTIMEO");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1760
		case SO_RCVTIMEO:	return ("SO_RCVTIMEO");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1761
		case SO_ERROR:		return ("SO_ERROR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1762
		case SO_TYPE:		return ("SO_TYPE");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1763
		case SO_PROTOTYPE:	return ("SO_PROTOTYPE");
10493
62ddd17c47cb 6476414 truss should decode SO_ANON_MLP/SO_MAC_EXEMPT for getsockopt/setsockopt
Jarrett Lu <Jarrett.Lu@Sun.COM>
parents: 10440
diff changeset
  1764
		case SO_ANON_MLP:	return ("SO_ANON_MLP");
62ddd17c47cb 6476414 truss should decode SO_ANON_MLP/SO_MAC_EXEMPT for getsockopt/setsockopt
Jarrett Lu <Jarrett.Lu@Sun.COM>
parents: 10440
diff changeset
  1765
		case SO_MAC_EXEMPT:	return ("SO_MAC_EXEMPT");
2263
fd48046384d0 PSARC 2006/073 PF_ROUTE: Include interface name with RTM_NEWADDR/RTM_DELADDR
sommerfe
parents: 1676
diff changeset
  1766
		case SO_ALLZONES:	return ("SO_ALLZONES");
10934
e209937a4f19 PSARC/2008/252 Labeled IPsec phase 1
Bill Sommerfeld <sommerfeld@sun.com>
parents: 10927
diff changeset
  1767
		case SO_MAC_IMPLICIT:	return ("SO_MAC_IMPLICIT");
11076
445f05f9f7b4 PSARC/2008/693 VRRP
Cathy Zhou <Cathy.Zhou@Sun.COM>
parents: 10934
diff changeset
  1768
		case SO_VRRP:		return ("SO_VRRP");
2429
d2b380bdc797 PSARC 2006/407 SO_EXCLBIND, socket exclusive binding
kcpoon
parents: 2267
diff changeset
  1769
		case SO_EXCLBIND:	return ("SO_EXCLBIND");
3388
1a125b15092b PSARC 2006/712 Extend SO_PROTOTYPE
kcpoon
parents: 3247
diff changeset
  1770
		case SO_DOMAIN:		return ("SO_DOMAIN");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1771
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1772
		default:		(void) snprintf(pri->code_buf, CBSIZE,
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
  1773
					    "0x%lx", val);
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1774
					return (pri->code_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1775
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1776
	} else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1777
		char *s = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1778
		size_t used = 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1779
		long val2;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1780
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1781
		*s = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1782
		val2 = val & ~(SO_DEBUG|SO_ACCEPTCONN|SO_REUSEADDR|SO_KEEPALIVE|
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1783
		    SO_DONTROUTE|SO_BROADCAST|SO_USELOOPBACK|SO_LINGER|
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1784
		    SO_OOBINLINE|SO_DGRAM_ERRIND|SO_RECVUCRED);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1785
		if (val2)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1786
			used = snprintf(s, CBSIZE, "|0x%lx", val2);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1787
		if (val & SO_DEBUG)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1788
			used = strlcat(s, "|SO_DEBUG", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1789
		if (val & SO_ACCEPTCONN)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1790
			used = strlcat(s, "|SO_ACCEPTCONN", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1791
		if (val & SO_REUSEADDR)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1792
			used = strlcat(s, "|SO_REUSEADDR", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1793
		if (val & SO_KEEPALIVE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1794
			used = strlcat(s, "|SO_KEEPALIVE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1795
		if (val & SO_DONTROUTE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1796
			used = strlcat(s, "|SO_DONTROUTE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1797
		if (val & SO_BROADCAST)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1798
			used = strlcat(s, "|SO_BROADCAST", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1799
		if (val & SO_USELOOPBACK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1800
			used = strlcat(s, "|SO_USELOOPBACK", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1801
		if (val & SO_LINGER)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1802
			used = strlcat(s, "|SO_LINGER", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1803
		if (val & SO_OOBINLINE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1804
			used = strlcat(s, "|SO_OOBINLINE", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1805
		if (val & SO_DGRAM_ERRIND)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1806
			used = strlcat(s, "|SO_DGRAM_ERRIND", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1807
		if (val & SO_RECVUCRED)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1808
			used = strlcat(s, "|SO_RECVUCRED", CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1809
		if (used >= CBSIZE || val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1810
			(void) snprintf(s + 1, CBSIZE-1, "0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1811
		return ((const char *)(s + 1));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1812
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1813
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1814
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1815
8485
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1816
const char *
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1817
route_optname(private_t *pri, long val)
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1818
{
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1819
	switch (val) {
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1820
	case RT_AWARE:
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1821
		return ("RT_AWARE");
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1822
	default:
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1823
		(void) snprintf(pri->code_buf, sizeof (pri->code_buf),
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1824
		    "0x%lx", val);
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1825
		return (pri->code_buf);
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1826
	}
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1827
}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1828
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1829
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1830
tcp_optname(private_t *pri, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1831
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1832
	switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1833
	case TCP_NODELAY:		return ("TCP_NODELAY");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1834
	case TCP_MAXSEG:		return ("TCP_MAXSEG");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1835
	case TCP_KEEPALIVE:		return ("TCP_KEEPALIVE");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1836
	case TCP_NOTIFY_THRESHOLD:	return ("TCP_NOTIFY_THRESHOLD");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1837
	case TCP_ABORT_THRESHOLD:	return ("TCP_ABORT_THRESHOLD");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1838
	case TCP_CONN_NOTIFY_THRESHOLD:	return ("TCP_CONN_NOTIFY_THRESHOLD");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1839
	case TCP_CONN_ABORT_THRESHOLD:	return ("TCP_CONN_ABORT_THRESHOLD");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1840
	case TCP_RECVDSTADDR:		return ("TCP_RECVDSTADDR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1841
	case TCP_ANONPRIVBIND:		return ("TCP_ANONPRIVBIND");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1842
	case TCP_EXCLBIND:		return ("TCP_EXCLBIND");
649
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1843
	case TCP_INIT_CWND:		return ("TCP_INIT_CWND");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1844
	case TCP_KEEPALIVE_THRESHOLD:	return ("TCP_KEEPALIVE_THRESHOLD");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1845
	case TCP_KEEPALIVE_ABORT_THRESHOLD:
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1846
		return ("TCP_KEEPALIVE_ABORT_THRESHOLD");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1847
	case TCP_CORK:			return ("TCP_CORK");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1848
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1849
	default:			(void) snprintf(pri->code_buf,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1850
					    sizeof (pri->code_buf),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1851
					    "0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1852
					return (pri->code_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1853
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1854
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1855
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1856
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1857
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1858
sctp_optname(private_t *pri, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1859
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1860
	switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1861
	case SCTP_RTOINFO:		return ("SCTP_RTOINFO");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1862
	case SCTP_ASSOCINFO:		return ("SCTP_ASSOCINFO");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1863
	case SCTP_INITMSG:		return ("SCTP_INITMSG");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1864
	case SCTP_NODELAY:		return ("SCTP_NODELAY");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1865
	case SCTP_AUTOCLOSE:		return ("SCTP_AUTOCLOSE");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1866
	case SCTP_SET_PEER_PRIMARY_ADDR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1867
		return ("SCTP_SET_PEER_PRIMARY_ADDR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1868
	case SCTP_PRIMARY_ADDR:		return ("SCTP_PRIMARY_ADDR");
5586
0bb5f5cb2d00 6500185 getaddrinfo() does not work with SCTP
kcpoon
parents: 4987
diff changeset
  1869
	case SCTP_ADAPTATION_LAYER:	return ("SCTP_ADAPTATION_LAYER");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1870
	case SCTP_DISABLE_FRAGMENTS:	return ("SCTP_DISABLE_FRAGMENTS");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1871
	case SCTP_PEER_ADDR_PARAMS:	return ("SCTP_PEER_ADDR_PARAMS");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1872
	case SCTP_DEFAULT_SEND_PARAM:	return ("SCTP_DEFAULT_SEND_PARAM");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1873
	case SCTP_EVENTS:		return ("SCTP_EVENTS");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1874
	case SCTP_I_WANT_MAPPED_V4_ADDR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1875
		return ("SCTP_I_WANT_MAPPED_V4_ADDR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1876
	case SCTP_MAXSEG:		return ("SCTP_MAXSEG");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1877
	case SCTP_STATUS:		return ("SCTP_STATUS");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1878
	case SCTP_GET_PEER_ADDR_INFO:	return ("SCTP_GET_PEER_ADDR_INFO");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1879
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1880
	case SCTP_ADD_ADDR:		return ("SCTP_ADD_ADDR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1881
	case SCTP_REM_ADDR:		return ("SCTP_REM_ADDR");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1882
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1883
	default:			(void) snprintf(pri->code_buf,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1884
					    sizeof (pri->code_buf),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1885
					    "0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1886
					return (pri->code_buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1887
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1888
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1889
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1890
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1891
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1892
udp_optname(private_t *pri, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1893
{
649
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1894
	switch (val) {
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1895
	case UDP_CHECKSUM:		return ("UDP_CHECKSUM");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1896
	case UDP_ANONPRIVBIND:		return ("UDP_ANONPRIVBIND");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1897
	case UDP_EXCLBIND:		return ("UDP_EXCLBIND");
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1898
	case UDP_RCVHDR:		return ("UDP_RCVHDR");
4987
9a60eca0a35c PSARC 2007/449 Detangle IPsec NAT Traversal
danmcd
parents: 4321
diff changeset
  1899
	case UDP_NAT_T_ENDPOINT:	return ("UDP_NAT_T_ENDPOINT");
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1900
649
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1901
	default:			(void) snprintf(pri->code_buf,
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1902
					    sizeof (pri->code_buf), "0x%lx",
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1903
					    val);
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1904
					return (pri->code_buf);
aca46a6be7b5 6330886 truss should be updated to print those new TCP/UDP options
kcpoon
parents: 0
diff changeset
  1905
	}
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1906
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1907
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1908
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1909
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1910
 * Print setsockopt()/getsockopt() 3rd argument.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1911
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1912
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1913
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1914
prt_son(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1915
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1916
	/* cheating -- look at the level */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1917
	switch (pri->sys_args[1]) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1918
	case SOL_SOCKET:	outstring(pri, sol_optname(pri, val));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1919
				break;
8485
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1920
	case SOL_ROUTE:		outstring(pri, route_optname(pri, val));
633e5b5eb268 PSARC/2007/272 Project Clearview: IPMP Rearchitecture
meem <Peter.Memishian@Sun.COM>
parents: 6134
diff changeset
  1921
				break;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1922
	case IPPROTO_TCP:	outstring(pri, tcp_optname(pri, val));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1923
				break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1924
	case IPPROTO_UDP:	outstring(pri, udp_optname(pri, val));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1925
				break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1926
	case IPPROTO_SCTP:	outstring(pri, sctp_optname(pri, val));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1927
				break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1928
	default:		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1929
				break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1930
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1931
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1932
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1933
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1934
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1935
 * Print utrap type
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1936
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1937
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1938
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1939
prt_utt(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1940
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1941
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1942
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1943
#ifdef __sparc
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1944
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1945
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1946
		case UT_INSTRUCTION_DISABLED:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1947
			s = "UT_INSTRUCTION_DISABLED"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1948
		case UT_INSTRUCTION_ERROR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1949
			s = "UT_INSTRUCTION_ERROR"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1950
		case UT_INSTRUCTION_PROTECTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1951
			s = "UT_INSTRUCTION_PROTECTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1952
		case UT_ILLTRAP_INSTRUCTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1953
			s = "UT_ILLTRAP_INSTRUCTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1954
		case UT_ILLEGAL_INSTRUCTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1955
			s = "UT_ILLEGAL_INSTRUCTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1956
		case UT_PRIVILEGED_OPCODE:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1957
			s = "UT_PRIVILEGED_OPCODE"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1958
		case UT_FP_DISABLED:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1959
			s = "UT_FP_DISABLED"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1960
		case UT_FP_EXCEPTION_IEEE_754:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1961
			s = "UT_FP_EXCEPTION_IEEE_754"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1962
		case UT_FP_EXCEPTION_OTHER:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1963
			s = "UT_FP_EXCEPTION_OTHER"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1964
		case UT_TAG_OVERFLOW:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1965
			s = "UT_TAG_OVERFLOW"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1966
		case UT_DIVISION_BY_ZERO:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1967
			s = "UT_DIVISION_BY_ZERO"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1968
		case UT_DATA_EXCEPTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1969
			s = "UT_DATA_EXCEPTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1970
		case UT_DATA_ERROR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1971
			s = "UT_DATA_ERROR"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1972
		case UT_DATA_PROTECTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1973
			s = "UT_DATA_PROTECTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1974
		case UT_MEM_ADDRESS_NOT_ALIGNED:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1975
			s = "UT_MEM_ADDRESS_NOT_ALIGNED"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1976
		case UT_PRIVILEGED_ACTION:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1977
			s = "UT_PRIVILEGED_ACTION"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1978
		case UT_ASYNC_DATA_ERROR:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1979
			s = "UT_ASYNC_DATA_ERROR"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1980
		case UT_TRAP_INSTRUCTION_16:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1981
			s = "UT_TRAP_INSTRUCTION_16"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1982
		case UT_TRAP_INSTRUCTION_17:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1983
			s = "UT_TRAP_INSTRUCTION_17"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1984
		case UT_TRAP_INSTRUCTION_18:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1985
			s = "UT_TRAP_INSTRUCTION_18"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1986
		case UT_TRAP_INSTRUCTION_19:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1987
			s = "UT_TRAP_INSTRUCTION_19"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1988
		case UT_TRAP_INSTRUCTION_20:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1989
			s = "UT_TRAP_INSTRUCTION_20"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1990
		case UT_TRAP_INSTRUCTION_21:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1991
			s = "UT_TRAP_INSTRUCTION_21"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1992
		case UT_TRAP_INSTRUCTION_22:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1993
			s = "UT_TRAP_INSTRUCTION_22"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1994
		case UT_TRAP_INSTRUCTION_23:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1995
			s = "UT_TRAP_INSTRUCTION_23"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1996
		case UT_TRAP_INSTRUCTION_24:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1997
			s = "UT_TRAP_INSTRUCTION_24"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1998
		case UT_TRAP_INSTRUCTION_25:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  1999
			s = "UT_TRAP_INSTRUCTION_25"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2000
		case UT_TRAP_INSTRUCTION_26:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2001
			s = "UT_TRAP_INSTRUCTION_26"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2002
		case UT_TRAP_INSTRUCTION_27:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2003
			s = "UT_TRAP_INSTRUCTION_27"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2004
		case UT_TRAP_INSTRUCTION_28:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2005
			s = "UT_TRAP_INSTRUCTION_28"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2006
		case UT_TRAP_INSTRUCTION_29:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2007
			s = "UT_TRAP_INSTRUCTION_29"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2008
		case UT_TRAP_INSTRUCTION_30:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2009
			s = "UT_TRAP_INSTRUCTION_30"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2010
		case UT_TRAP_INSTRUCTION_31:
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2011
			s = "UT_TRAP_INSTRUCTION_31"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2012
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2013
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2014
#endif /* __sparc */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2015
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2016
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2017
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2018
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2019
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2020
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2021
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2022
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2023
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2024
 * Print utrap handler
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2025
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2026
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2027
prt_uth(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2028
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2029
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2030
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2031
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2032
		switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2033
		case (long)UTH_NOCHANGE:	s = "UTH_NOCHANGE"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2034
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2035
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2036
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2037
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2038
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2039
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2040
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2041
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2042
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2043
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2044
access_flags(private_t *pri, long arg)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2045
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2046
#define	E_OK 010
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2047
	char *str = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2048
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2049
	if (arg & ~(R_OK|W_OK|X_OK|E_OK))
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2050
		return (NULL);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2051
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2052
	/* NB: F_OK == 0 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2053
	if (arg == F_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2054
		return ("F_OK");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2055
	if (arg == E_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2056
		return ("F_OK|E_OK");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2057
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2058
	*str = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2059
	if (arg & R_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2060
		(void) strlcat(str, "|R_OK", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2061
	if (arg & W_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2062
		(void) strlcat(str, "|W_OK", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2063
	if (arg & X_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2064
		(void) strlcat(str, "|X_OK", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2065
	if (arg & E_OK)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2066
		(void) strlcat(str, "|E_OK", sizeof (pri->code_buf));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2067
	return ((const char *)(str + 1));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2068
#undef E_OK
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2069
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2070
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2071
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2072
 * Print access() flags.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2073
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2074
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2075
prt_acc(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2076
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2077
	const char *s = raw? NULL : access_flags(pri, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2078
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2079
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2080
		prt_dex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2081
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2082
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2083
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2084
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2085
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2086
 * Print shutdown() "how" (2nd) argument
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2087
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2088
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2089
prt_sht(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2090
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2091
	if (raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2092
		prt_dex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2093
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2094
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2095
	switch (val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2096
	case SHUT_RD:	outstring(pri, "SHUT_RD");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2097
	case SHUT_WR:	outstring(pri, "SHUT_WR");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2098
	case SHUT_RDWR:	outstring(pri, "SHUT_RDWR");	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2099
	default:	prt_dec(pri, 0, val);		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2100
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2101
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2102
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2103
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2104
 * Print fcntl() F_SETFL flags (3rd) argument or fdsync flag (2nd arg)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2105
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2106
static struct fcntl_flags {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2107
	long		val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2108
	const char	*name;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2109
} fcntl_flags[] = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2110
#define	FC_FL(flag)	{ (long)flag, "|" # flag }
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2111
	FC_FL(FREVOKED),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2112
	FC_FL(FREAD),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2113
	FC_FL(FWRITE),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2114
	FC_FL(FNDELAY),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2115
	FC_FL(FAPPEND),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2116
	FC_FL(FSYNC),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2117
	FC_FL(FDSYNC),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2118
	FC_FL(FRSYNC),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2119
	FC_FL(FOFFMAX),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2120
	FC_FL(FNONBLOCK),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2121
	FC_FL(FCREAT),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2122
	FC_FL(FTRUNC),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2123
	FC_FL(FEXCL),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2124
	FC_FL(FNOCTTY),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2125
	FC_FL(FXATTR),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2126
	FC_FL(FASYNC),
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2127
	FC_FL(FNODSYNC)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2128
#undef FC_FL
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2129
};
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2130
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2131
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2132
prt_ffg(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2133
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2134
#define	CBSIZE	sizeof (pri->code_buf)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2135
	char *s = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2136
	size_t used = 1;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2137
	struct fcntl_flags *fp;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2138
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2139
	if (raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2140
		(void) snprintf(s, CBSIZE, "0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2141
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2142
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2143
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2144
	if (val == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2145
		outstring(pri, "(no flags)");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2146
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2147
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2148
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2149
	*s = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2150
	for (fp = fcntl_flags;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2151
	    fp < &fcntl_flags[sizeof (fcntl_flags) / sizeof (*fp)]; fp++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2152
		if (val & fp->val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2153
			used = strlcat(s, fp->name, CBSIZE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2154
			val &= ~fp->val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2155
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2156
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2157
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2158
	if (val != 0 && used <= CBSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2159
		used += snprintf(s + used, CBSIZE - used, "|0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2160
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2161
	if (used >= CBSIZE)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2162
		(void) snprintf(s + 1, CBSIZE-1, "0x%lx", val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2163
	outstring(pri, s + 1);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2164
#undef CBSIZE
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2165
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2166
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2167
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2168
prt_prs(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2169
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2170
	static size_t setsize;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2171
	priv_set_t *set = priv_allocset();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2172
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2173
	if (setsize == 0) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2174
		const priv_impl_info_t *info = getprivimplinfo();
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2175
		if (info != NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2176
			setsize = info->priv_setsize * sizeof (priv_chunk_t);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2177
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2178
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2179
	if (setsize != 0 && !raw && set != NULL &&
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2180
	    Pread(Proc, set, setsize, val) == setsize) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2181
		int i;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2182
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2183
		outstring(pri, "{");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2184
		for (i = 0; i < setsize / sizeof (priv_chunk_t); i++) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2185
			char buf[9];	/* 8 hex digits + '\0' */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2186
			(void) snprintf(buf, sizeof (buf), "%08x",
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2187
			    ((priv_chunk_t *)set)[i]);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2188
			outstring(pri, buf);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2189
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2190
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2191
		outstring(pri, "}");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2192
	} else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2193
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2194
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2195
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2196
	if (set != NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2197
		priv_freeset(set);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2198
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2199
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2200
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2201
 * Print privilege set operation.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2202
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2203
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2204
prt_pro(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2205
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2206
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2207
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2208
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2209
		switch ((priv_op_t)val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2210
		case PRIV_ON:		s = "PRIV_ON";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2211
		case PRIV_OFF:		s = "PRIV_OFF";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2212
		case PRIV_SET:		s = "PRIV_SET";		break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2213
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2214
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2215
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2216
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2217
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2218
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2219
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2220
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2221
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2222
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2223
 * Print privilege set name
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2224
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2225
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2226
prt_prn(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2227
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2228
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2229
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2230
	if (!raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2231
		s = priv_getsetbynum((int)val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2232
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2233
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2234
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2235
	else {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2236
		char *dup = strdup(s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2237
		char *q;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2238
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2239
		/* Do the best we can in this case */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2240
		if (dup == NULL) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2241
			outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2242
			return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2243
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2244
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2245
		outstring(pri, "PRIV_");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2246
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2247
		q = dup;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2248
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2249
		while (*q != '\0') {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2250
			*q = toupper(*q);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2251
			q++;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2252
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2253
		outstring(pri, dup);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2254
		free(dup);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2255
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2256
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2257
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2258
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2259
 * Print process flag names.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2260
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2261
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2262
prt_pfl(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2263
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2264
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2265
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2266
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2267
		switch ((int)val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2268
		case PRIV_DEBUG:	s = "PRIV_DEBUG";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2269
		case PRIV_AWARE:	s = "PRIV_AWARE";	break;
6134
27ee74117a16 PSARC 2008/109 Fine Grained Access Permissions (FGAP)
casper
parents: 6065
diff changeset
  2270
		case PRIV_XPOLICY:	s = "PRIV_XPOLICY";	break;
9799
641e52717cb5 PSARC 2007/072 PRIV_AWARE_RESET
Casper H.S. Dik <Casper.Dik@Sun.COM>
parents: 9083
diff changeset
  2271
		case PRIV_AWARE_RESET:  s = "PRIV_AWARE_RESET"; break;
6134
27ee74117a16 PSARC 2008/109 Fine Grained Access Permissions (FGAP)
casper
parents: 6065
diff changeset
  2272
		case NET_MAC_AWARE:	s =  "NET_MAC_AWARE";	break;
27ee74117a16 PSARC 2008/109 Fine Grained Access Permissions (FGAP)
casper
parents: 6065
diff changeset
  2273
		case NET_MAC_AWARE_INHERIT:
27ee74117a16 PSARC 2008/109 Fine Grained Access Permissions (FGAP)
casper
parents: 6065
diff changeset
  2274
			s = "NET_MAC_AWARE_INHERIT";
27ee74117a16 PSARC 2008/109 Fine Grained Access Permissions (FGAP)
casper
parents: 6065
diff changeset
  2275
			break;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2276
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2277
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2278
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2279
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2280
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2281
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2282
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2283
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2284
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2285
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2286
 * Print lgrp_affinity_{get,set}() arguments.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2287
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2288
/*ARGSUSED*/
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2289
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2290
prt_laf(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2291
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2292
	lgrp_affinity_args_t	laff;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2293
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2294
	if (Pread(Proc, &laff, sizeof (lgrp_affinity_args_t), val) !=
4217
3411a82f178f 6552521 truss dumps core with multibyte characters in syscall args
eschrock
parents: 3684
diff changeset
  2295
	    sizeof (lgrp_affinity_args_t)) {
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2296
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2297
		return;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2298
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2299
	/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2300
	 * arrange the arguments in the order that user calls with
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2301
	 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2302
	prt_dec(pri, 0, laff.idtype);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2303
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2304
	prt_dec(pri, 0, laff.id);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2305
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2306
	prt_dec(pri, 0, laff.lgrp);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2307
	outstring(pri, ", ");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2308
	if (pri->sys_args[0] == LGRP_SYS_AFFINITY_SET)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2309
		prt_dec(pri, 0, laff.aff);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2310
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2311
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2312
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2313
 * Print a key_t as IPC_PRIVATE if it is 0.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2314
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2315
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2316
prt_key(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2317
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2318
	if (!raw && val == 0)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2319
		outstring(pri, "IPC_PRIVATE");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2320
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2321
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2322
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2323
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2324
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2325
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2326
 * Print zone_getattr() attribute types.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2327
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2328
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2329
prt_zga(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2330
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2331
	const char *s = NULL;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2332
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2333
	if (!raw) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2334
		switch ((int)val) {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2335
		case ZONE_ATTR_NAME:	s = "ZONE_ATTR_NAME";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2336
		case ZONE_ATTR_ROOT:	s = "ZONE_ATTR_ROOT";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2337
		case ZONE_ATTR_STATUS:	s = "ZONE_ATTR_STATUS";	break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2338
		case ZONE_ATTR_PRIVSET:	s = "ZONE_ATTR_PRIVSET"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2339
		case ZONE_ATTR_UNIQID:	s = "ZONE_ATTR_UNIQID"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2340
		case ZONE_ATTR_POOLID:	s = "ZONE_ATTR_POOLID"; break;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2341
		case ZONE_ATTR_INITPID:	s = "ZONE_ATTR_INITPID"; break;
1676
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2342
		case ZONE_ATTR_SLBL:	s = "ZONE_ATTR_SLBL"; break;
2267
c5d9a656170f PSARC/2006/269 Zone Boot Arguments II
dp
parents: 2263
diff changeset
  2343
		case ZONE_ATTR_INITNAME:	s = "ZONE_ATTR_INITNAME"; break;
c5d9a656170f PSARC/2006/269 Zone Boot Arguments II
dp
parents: 2263
diff changeset
  2344
		case ZONE_ATTR_BOOTARGS:	s = "ZONE_ATTR_BOOTARGS"; break;
3009
0db902fc6567 6486308 zoneadm: erroneous output when invoked in labeled zones
nn35248
parents: 2827
diff changeset
  2345
		case ZONE_ATTR_BRAND:	s = "ZONE_ATTR_BRAND"; break;
3448
aaf16568054b PSARC 2006/366 IP Instances
dh155122
parents: 3388
diff changeset
  2346
		case ZONE_ATTR_FLAGS:	s = "ZONE_ATTR_FLAGS"; break;
3247
e05001c14ea2 PSARC 2006/496 Improved Zones/RM Integration
gjelinek
parents: 3235
diff changeset
  2347
		case ZONE_ATTR_PHYS_MCAP: s = "ZONE_ATTR_PHYS_MCAP"; break;
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2348
		}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2349
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2350
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2351
	if (s == NULL)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2352
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2353
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2354
		outstring(pri, s);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2355
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2356
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2357
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2358
 * Print a file descriptor as AT_FDCWD if necessary
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2359
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2360
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2361
prt_atc(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2362
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2363
	if (!raw && val == AT_FDCWD)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2364
		outstring(pri, "AT_FDCWD");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2365
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2366
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2367
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2368
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2369
/*
1676
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2370
 * Print Trusted Networking database operation codes (labelsys; tn*)
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2371
 */
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2372
static void
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2373
prt_tnd(private_t *pri, int raw, long val)
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2374
{
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2375
	const char *s = NULL;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2376
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2377
	if (!raw) {
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2378
		switch ((tsol_dbops_t)val) {
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2379
		case TNDB_NOOP:		s = "TNDB_NOOP";	break;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2380
		case TNDB_LOAD:		s = "TNDB_LOAD";	break;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2381
		case TNDB_DELETE:	s = "TNDB_DELETE";	break;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2382
		case TNDB_FLUSH:	s = "TNDB_FLUSH";	break;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2383
		case TNDB_GET:		s = "TNDB_GET";		break;
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2384
		}
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2385
	}
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2386
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2387
	if (s == NULL)
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2388
		prt_dec(pri, 0, val);
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2389
	else
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2390
		outstring(pri, s);
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2391
}
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2392
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2393
/*
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2394
 * Print LIO_XX flags
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2395
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2396
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2397
prt_lio(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2398
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2399
	if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2400
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2401
	else if (val == LIO_WAIT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2402
		outstring(pri, "LIO_WAIT");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2403
	else if (val == LIO_NOWAIT)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2404
		outstring(pri, "LIO_NOWAIT");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2405
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2406
		prt_dec(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2407
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2408
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2409
const char *
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2410
door_flags(private_t *pri, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2411
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2412
	door_attr_t attr = (door_attr_t)val;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2413
	char *str = pri->code_buf;
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2414
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2415
	*str = '\0';
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2416
#define	PROCESS_FLAG(flg)						\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2417
	if (attr & flg) {						\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2418
		(void) strlcat(str, "|" #flg, sizeof (pri->code_buf));	\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2419
		attr &= ~flg;						\
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2420
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2421
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2422
	PROCESS_FLAG(DOOR_UNREF);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2423
	PROCESS_FLAG(DOOR_UNREF_MULTI);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2424
	PROCESS_FLAG(DOOR_PRIVATE);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2425
	PROCESS_FLAG(DOOR_REFUSE_DESC);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2426
	PROCESS_FLAG(DOOR_NO_CANCEL);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2427
	PROCESS_FLAG(DOOR_LOCAL);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2428
	PROCESS_FLAG(DOOR_REVOKED);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2429
	PROCESS_FLAG(DOOR_IS_UNREF);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2430
#undef PROCESS_FLAG
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2431
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2432
	if (attr != 0 || *str == '\0') {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2433
		size_t len = strlen(str);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2434
		(void) snprintf(str + len, sizeof (pri->code_buf) - len,
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2435
		    "|0x%X", attr);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2436
	}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2437
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2438
	return (str + 1);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2439
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2440
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2441
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2442
 * Print door_create() flags
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2443
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2444
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2445
prt_dfl(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2446
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2447
	if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2448
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2449
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2450
		outstring(pri, door_flags(pri, val));
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2451
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2452
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2453
/*
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2454
 * Print door_*param() param argument
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2455
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2456
void
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2457
prt_dpm(private_t *pri, int raw, long val)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2458
{
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2459
	if (raw)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2460
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2461
	else if (val == DOOR_PARAM_DESC_MAX)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2462
		outstring(pri, "DOOR_PARAM_DESC_MAX");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2463
	else if (val == DOOR_PARAM_DATA_MIN)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2464
		outstring(pri, "DOOR_PARAM_DATA_MIN");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2465
	else if (val == DOOR_PARAM_DATA_MAX)
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2466
		outstring(pri, "DOOR_PARAM_DATA_MAX");
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2467
	else
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2468
		prt_hex(pri, 0, val);
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2469
}
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2470
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2471
/*
2447
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2472
 * Print rctlsys subcodes
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2473
 */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2474
void
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2475
prt_rsc(private_t *pri, int raw, long val)	/* print utssys code */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2476
{
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2477
	const char *s = raw? NULL : rctlsyscode(val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2478
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2479
	if (s == NULL)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2480
		prt_dec(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2481
	else
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2482
		outstring(pri, s);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2483
}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2484
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2485
/*
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2486
 * Print getrctl flags
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2487
 */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2488
void
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2489
prt_rgf(private_t *pri, int raw, long val)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2490
{
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2491
	long action = val & (~RCTLSYS_ACTION_MASK);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2492
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2493
	if (raw)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2494
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2495
	else if (action == RCTL_FIRST)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2496
		outstring(pri, "RCTL_FIRST");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2497
	else if (action == RCTL_NEXT)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2498
		outstring(pri, "RCTL_NEXT");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2499
	else if (action == RCTL_USAGE)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2500
		outstring(pri, "RCTL_USAGE");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2501
	else
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2502
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2503
}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2504
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2505
/*
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2506
 * Print setrctl flags
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2507
 */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2508
void
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2509
prt_rsf(private_t *pri, int raw, long val)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2510
{
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2511
	long action = val & (~RCTLSYS_ACTION_MASK);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2512
	long pval = val & RCTL_LOCAL_ACTION_MASK;
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2513
	char *s = pri->code_buf;
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2514
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2515
	if (raw) {
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2516
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2517
		return;
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2518
	} else if (action == RCTL_INSERT)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2519
		(void) strcpy(s, "RCTL_INSERT");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2520
	else if (action == RCTL_DELETE)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2521
		(void) strcpy(s, "RCTL_DELETE");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2522
	else if (action == RCTL_REPLACE)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2523
		(void) strcpy(s, "RCTL_REPLACE");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2524
	else {
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2525
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2526
		return;
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2527
	}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2528
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2529
	if (pval & RCTL_USE_RECIPIENT_PID) {
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2530
		pval ^= RCTL_USE_RECIPIENT_PID;
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2531
		(void) strlcat(s, "|RCTL_USE_RECIPIENT_PID",
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2532
		    sizeof (pri->code_buf));
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2533
	}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2534
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2535
	if ((pval & RCTLSYS_ACTION_MASK) != 0)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2536
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2537
	else if (*s != '\0')
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2538
		outstring(pri, s);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2539
	else
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2540
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2541
}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2542
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2543
/*
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2544
 * Print rctlctl flags
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2545
 */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2546
void
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2547
prt_rcf(private_t *pri, int raw, long val)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2548
{
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2549
	long action = val & (~RCTLSYS_ACTION_MASK);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2550
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2551
	if (raw)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2552
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2553
	else if (action == RCTLCTL_GET)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2554
		outstring(pri, "RCTLCTL_GET");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2555
	else if (action == RCTLCTL_SET)
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2556
		outstring(pri, "RCTLCTL_SET");
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2557
	else
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2558
		prt_hex(pri, 0, val);
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2559
}
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2560
3235
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2561
/*
3684
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2562
 * Print setprojrctl flags
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2563
 */
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2564
void
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2565
prt_spf(private_t *pri, int raw, long val)
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2566
{
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2567
	long action = val & TASK_PROJ_MASK;
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2568
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2569
	if (!raw && (action == TASK_PROJ_PURGE))
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2570
		outstring(pri, "TASK_PROJ_PURGE");
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2571
	else
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2572
		prt_hex(pri, 0, val);
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2573
}
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2574
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2575
/*
3235
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2576
 * Print forkx() flags
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2577
 */
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2578
void
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2579
prt_fxf(private_t *pri, int raw, long val)
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2580
{
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2581
	char *str;
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2582
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2583
	if (val == 0)
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2584
		outstring(pri, "0");
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2585
	else if (raw || (val & ~(FORK_NOSIGCHLD | FORK_WAITPID)))
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2586
		prt_hhx(pri, 0, val);
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2587
	else {
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2588
		str = pri->code_buf;
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2589
		*str = '\0';
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2590
		if (val & FORK_NOSIGCHLD)
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2591
			(void) strlcat(str, "|FORK_NOSIGCHLD",
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2592
			    sizeof (pri->code_buf));
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2593
		if (val & FORK_WAITPID)
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2594
			(void) strlcat(str, "|FORK_WAITPID",
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2595
			    sizeof (pri->code_buf));
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2596
		outstring(pri, str + 1);
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2597
	}
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2598
}
2447
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2599
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2600
/*
10440
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2601
 * Print utimensat() flag
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2602
 */
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2603
void
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2604
prt_utf(private_t *pri, int raw, long val)
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2605
{
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2606
	if (val == 0)
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2607
		outstring(pri, "0");
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2608
	else if (!raw && val == AT_SYMLINK_NOFOLLOW)
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2609
		outstring(pri, "AT_SYMLINK_NOFOLLOW");
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2610
	else
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2611
		prt_hex(pri, 0, val);
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2612
}
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2613
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2614
/*
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2615
 * Array of pointers to print functions, one for each format.
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2616
 */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2617
void (* const Print[])() = {
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2618
	prt_nov,	/* NOV -- no value */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2619
	prt_dec,	/* DEC -- print value in decimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2620
	prt_oct,	/* OCT -- print value in octal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2621
	prt_hex,	/* HEX -- print value in hexadecimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2622
	prt_dex,	/* DEX -- print value in hexadecimal if big enough */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2623
	prt_stg,	/* STG -- print value as string */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2624
	prt_ioc,	/* IOC -- print ioctl code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2625
	prt_fcn,	/* FCN -- print fcntl code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2626
	prt_s86,	/* S86 -- print sysi86 code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2627
	prt_uts,	/* UTS -- print utssys code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2628
	prt_opn,	/* OPN -- print open code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2629
	prt_sig,	/* SIG -- print signal name plus flags */
10927
ac35db8a7412 PSARC 2009/595 delete ssig system call trap
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10923
diff changeset
  2630
	prt_nov,	/* Was ACT, now available for reuse */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2631
	prt_msc,	/* MSC -- print msgsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2632
	prt_msf,	/* MSF -- print msgsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2633
	prt_smc,	/* SMC -- print semsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2634
	prt_sef,	/* SEF -- print semsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2635
	prt_shc,	/* SHC -- print shmsys command */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2636
	prt_shf,	/* SHF -- print shmsys flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2637
	prt_plk,	/* PLK -- print plock code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2638
	prt_sfs,	/* SFS -- print sysfs code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2639
	prt_rst,	/* RST -- print string returned by syscall */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2640
	prt_smf,	/* SMF -- print streams message flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2641
	prt_ioa,	/* IOA -- print ioctl argument */
10927
ac35db8a7412 PSARC 2009/595 delete ssig system call trap
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10923
diff changeset
  2642
	prt_nov,	/* Was SIX, now available for reuse */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2643
	prt_mtf,	/* MTF -- print mount flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2644
	prt_mft,	/* MFT -- print mount file system type */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2645
	prt_iob,	/* IOB -- print contents of I/O buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2646
	prt_hhx,	/* HHX -- print value in hexadecimal (half size) */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2647
	prt_wop,	/* WOP -- print waitsys() options */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2648
	prt_spm,	/* SPM -- print sigprocmask argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2649
	prt_rlk,	/* RLK -- print readlink buffer */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2650
	prt_mpr,	/* MPR -- print mmap()/mprotect() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2651
	prt_mty,	/* MTY -- print mmap() mapping type flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2652
	prt_mcf,	/* MCF -- print memcntl() function */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2653
	prt_mc4,	/* MC4 -- print memcntl() (fourth) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2654
	prt_mc5,	/* MC5 -- print memcntl() (fifth) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2655
	prt_mad,	/* MAD -- print madvise() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2656
	prt_ulm,	/* ULM -- print ulimit() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2657
	prt_rlm,	/* RLM -- print get/setrlimit() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2658
	prt_cnf,	/* CNF -- print sysconfig() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2659
	prt_inf,	/* INF -- print sysinfo() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2660
	prt_ptc,	/* PTC -- print pathconf/fpathconf() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2661
	prt_fui,	/* FUI -- print fusers() input argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2662
	prt_idt,	/* IDT -- print idtype_t, waitid() argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2663
	prt_lwf,	/* LWF -- print lwp_create() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2664
	prt_itm,	/* ITM -- print [get|set]itimer() arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2665
	prt_llo,	/* LLO -- print long long offset arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2666
	prt_mod,	/* MOD -- print modctl() subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2667
	prt_whn,	/* WHN -- print lseek() whence arguiment */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2668
	prt_acl,	/* ACL -- print acl() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2669
	prt_aio,	/* AIO -- print kaio() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2670
	prt_aud,	/* AUD -- print auditsys() code */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2671
	prt_uns,	/* DEC -- print value in unsigned decimal */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2672
	prt_clc,	/* CLC -- print cladm command argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2673
	prt_clf,	/* CLF -- print cladm flag argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2674
	prt_cor,	/* COR -- print corectl() subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2675
	prt_cco,	/* CCO -- print corectl() options */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2676
	prt_ccc,	/* CCC -- print corectl() content */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2677
	prt_rcc,	/* RCC -- print corectl() returned content */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2678
	prt_cpc,	/* CPC -- print cpc() subcode */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2679
	prt_sqc,	/* SQC -- print sigqueue() si_code argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2680
	prt_pc4,	/* PC4 -- print priocntlsys() (fourth) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2681
	prt_pc5,	/* PC5 -- print priocntlsys() (key, value) pairs */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2682
	prt_pst,	/* PST -- print processor set id */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2683
	prt_mif,	/* MIF -- print meminfo() arguments */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2684
	prt_pfm,	/* PFM -- print so_socket() proto-family (1st) arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2685
	prt_skt,	/* SKT -- print so_socket() socket-type (2nd) arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2686
	prt_skp,	/* SKP -- print so_socket() protocol (3rd) arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2687
	prt_skv,	/* SKV -- print socket version arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2688
	prt_sol,	/* SOL -- print [sg]etsockopt() level (2nd) arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2689
	prt_son,	/* SON -- print [sg]etsockopt() opt-name (3rd) arg */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2690
	prt_utt,	/* UTT -- print utrap type */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2691
	prt_uth,	/* UTH -- print utrap handler */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2692
	prt_acc,	/* ACC -- print access() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2693
	prt_sht,	/* SHT -- print shutdown() how (2nd) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2694
	prt_ffg,	/* FFG -- print fcntl() flags (3rd) argument */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2695
	prt_prs,	/* PRS -- print privilege set */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2696
	prt_pro,	/* PRO -- print privilege set operation */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2697
	prt_prn,	/* PRN -- print privilege set name */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2698
	prt_pfl,	/* PFL -- print privilege/process flag name */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2699
	prt_laf,	/* LAF -- print lgrp_affinity arguments */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2700
	prt_key,	/* KEY -- print key_t 0 as IPC_PRIVATE */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2701
	prt_zga,	/* ZGA -- print zone_getattr attribute types */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2702
	prt_atc,	/* ATC -- print AT_FDCWD or file descriptor */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2703
	prt_lio,	/* LIO -- print LIO_XX flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2704
	prt_dfl,	/* DFL -- print door_create() flags */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2705
	prt_dpm,	/* DPM -- print DOOR_PARAM_XX flags */
1676
37f4a3e2bd99 PSARC/2002/762 Layered Trusted Solaris
jpk
parents: 878
diff changeset
  2706
	prt_tnd,	/* TND -- print trusted network data base opcode */
2447
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2707
	prt_rsc,	/* RSC -- print rctlsys() subcodes */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2708
	prt_rgf,	/* RGF -- print getrctl() flags */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2709
	prt_rsf,	/* RSF -- print setrctl() flags */
8e8f3bf6a3f3 6201153 rctl exceeded message should include zonename
nf202958
parents: 2429
diff changeset
  2710
	prt_rcf,	/* RCF -- print rctlsys_ctl() flags */
3235
9af05252020c PSARC 2006/659 fork extensions
raf
parents: 3009
diff changeset
  2711
	prt_fxf,	/* FXF -- print forkx() flags */
3684
a0773f73b68d PSARC 2006/554 setproject(3PROJECT) defining, and enhancing behaviour
rd117015
parents: 3448
diff changeset
  2712
	prt_spf,	/* SPF -- print rctlsys_projset() flags */
4321
a8930ec16e52 PSARC 2007/064 Unified POSIX and Windows Credentials for Solaris
casper
parents: 4217
diff changeset
  2713
	prt_un1,	/* UN1 -- as prt_uns except for -1 */
10198
34520123946e 6861993 "truss" does not understand flags used by mmapobj(2)
Ali Bahrami <Ali.Bahrami@Sun.COM>
parents: 9799
diff changeset
  2714
	prt_mob,	/* MOB -- print mmapobj() flags */
10440
ba48e0ae8d55 PSARC 2009/453 futimens, utimensat
Roger A. Faulkner <Roger.Faulkner@Sun.COM>
parents: 10198
diff changeset
  2715
	prt_utf,	/* UTF -- print utimensat() flag */
0
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2716
	prt_dec,	/* HID -- hidden argument, make this the last one */
68f95e015346 OpenSolaris Launch
stevel@tonic-gate
parents:
diff changeset
  2717
};