b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# CDDL HEADER START
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# The contents of this file are subject to the terms of the
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# Common Development and Distribution License (the "License").
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# You may not use this file except in compliance with the License.
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# See the License for the specific language governing permissions
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# and limitations under the License.
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# When distributing Covered Code, include this CDDL HEADER in each
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# If applicable, add the following below this CDDL HEADER, with the
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# fields enclosed by brackets "[]" replaced with your own identifying
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# information: Portions Copyright [yyyy] [name of copyright owner]
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# CDDL HEADER END
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# Copyright (c) 2012, Joyent, Inc. All rights reserved.
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill#define DUMPFIELD(fd, fmt, field) \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill errmsg = "could not dump field"; \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill printf("%d: field =fmt\n", fd, fds[fd].field);
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill * Note that we are explicitly not looking at fi_mount -- it (by design) does
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill * not work if not running with kernel permissions.
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill#define DUMP(fd) \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %s, fi_name); \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %s, fi_dirname); \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %s, fi_pathname); \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %d, fi_offset); \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %s, fi_fs); \
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill DUMPFIELD(fd, %o, fi_oflags);
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill printf("error: %s\n", errmsg);
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# First, with all privs
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill/usr/sbin/dtrace -q -Cs /dev/stdin < $tmpin > $tmpout2
b0f673c4626e4cb1db7785287eaeed2731dfefe8Bryan Cantrill# And now with only dtrace_proc and dtrace_user -- the output should be