2N/A * The contents of this file are subject to the terms of the 2N/A * Common Development and Distribution License (the "License"). 2N/A * You may not use this file except in compliance with the License. 2N/A * See the License for the specific language governing permissions 2N/A * and limitations under the License. 2N/A * When distributing Covered Code, include this CDDL HEADER in each 2N/A * If applicable, add the following below this CDDL HEADER, with the 2N/A * fields enclosed by brackets "[]" replaced with your own identifying 2N/A * information: Portions Copyright [yyyy] [name of copyright owner] 2N/A * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 2N/A * Implemention-specific include file for libproc process management. 2N/A * This is not to be seen by the clients of libproc. 2N/A * Definitions of the process control structures, internal to libproc. 2N/A * These may change without affecting clients of libproc. 2N/A * sym_tbl_t contains a primary and an (optional) auxiliary symbol table, which 2N/A * we wish to treat as a single logical symbol table. In this logical table, 2N/A * the data from the auxiliary table precedes that from the primary. Symbol 2N/A * indices start at [0], which is the first item in the auxiliary table 2N/A * if there is one. The sole purpose for this is so that we can treat the 2N/A * combination of .SUNW_ldynsym and .dynsym sections as a logically single 2N/A * entity without having to violate the public interface to libelf. 2N/A * Both tables must share the same string table section. 2N/A * The symtab_getsym() function serves as a gelf_getsym() replacement 2N/A * that is aware of the two tables and makes them look like a single table 2N/Atypedef struct file_info {
/* symbol information for a mapped file */ 2N/A int file_ref;
/* references from map_info_t structures */ 2N/A int file_fd;
/* file descriptor for the mapped file */ 2N/Atypedef struct map_info {
/* description of an address space mapping */ 2N/Atypedef struct lwp_info {
/* per-lwp information from core file */ 2N/Atypedef struct core_info {
/* information specific to core files */ 2N/Atypedef struct elf_file {
/* convenience for managing ELF files */ 2N/Atypedef struct ps_rwops {
/* ops vector for Pread() and Pwrite() */ 2N/A int asfd;
/* /proc/<pid>/as filedescriptor */ 2N/A int ctlfd;
/* /proc/<pid>/ctl filedescriptor */ 2N/A int statfd;
/* /proc/<pid>/status filedescriptor */ 2N/A int nauxv;
/* number of aux vector entries */ 2N/A#
define CREATED 0x01 /* process was created by Pcreate() */ 2N/A#
define SETSIG 0x02 /* set signal trace mask before continuing */ 2N/A#
define SETFAULT 0x04 /* set fault trace mask before continuing */ 2N/A#
define SETENTRY 0x08 /* set sysentry trace mask before continuing */ 2N/A#
define SETEXIT 0x10 /* set sysexit trace mask before continuing */ 2N/A#
define SETHOLD 0x20 /* set signal hold mask before continuing */ 2N/A#
define SETREGS 0x40 /* set registers before continuing */ 2N/A * Implementation functions in the process control library. 2N/A * These are not exported to clients of the library. 2N/A int (*)(
const char *,
void *),
void *);
2N/A * Architecture-dependent definition of the breakpoint instruction. 2N/A * Simple convenience. 2N/A#
endif /* _PCONTROL_H */