--- a/usr/src/lib/libproc/common/Pcontrol.h Wed Aug 21 13:46:56 2013 -0800
+++ b/usr/src/lib/libproc/common/Pcontrol.h Wed Aug 21 15:45:46 2013 -0800
@@ -25,6 +25,7 @@
/*
* Copyright 2012 DEY Storage Systems, Inc. All rights reserved.
* Copyright (c) 2013, Joyent, Inc. All rights reserved.
+ * Copyright (c) 2013 by Delphix. All rights reserved.
*/
#ifndef _PCONTROL_H
@@ -43,6 +44,7 @@
#include <libproc.h>
#include <libctf.h>
#include <limits.h>
+#include <libproc.h>
#ifdef __cplusplus
extern "C" {
@@ -190,13 +192,6 @@
int e_fd; /* file descriptor */
} elf_file_t;
-typedef struct ps_rwops { /* ops vector for Pread() and Pwrite() */
- ssize_t (*p_pread)(struct ps_prochandle *,
- void *, size_t, uintptr_t);
- ssize_t (*p_pwrite)(struct ps_prochandle *,
- const void *, size_t, uintptr_t);
-} ps_rwops_t;
-
#define HASHSIZE 1024 /* hash table size, power of 2 */
struct ps_prochandle {
@@ -227,8 +222,7 @@
rd_agent_t *rap; /* cookie for rtld_db */
map_info_t *map_exec; /* the mapping for the executable file */
map_info_t *map_ldso; /* the mapping for ld.so.1 */
- const ps_rwops_t *ops; /* pointer to ops-vector for read and write */
- core_info_t *core; /* information specific to core (if PS_DEAD) */
+ ps_ops_t ops; /* ops-vector */
uintptr_t *ucaddrs; /* ucontext-list addresses */
uint_t ucnelems; /* number of elements in the ucaddrs list */
char *zoneroot; /* cached path to zone root */
@@ -237,6 +231,7 @@
uintptr_t map_missing; /* first missing mapping in core due to sig */
siginfo_t killinfo; /* signal that interrupted core dump */
psinfo_t spymaster; /* agent LWP's spymaster, if any */
+ void *data; /* private data */
};
/* flags */
@@ -247,6 +242,7 @@
#define SETEXIT 0x10 /* set sysexit trace mask before continuing */
#define SETHOLD 0x20 /* set signal hold mask before continuing */
#define SETREGS 0x40 /* set registers before continuing */
+#define INCORE 0x80 /* use in-core data to build symbol tables */
struct ps_lwphandle {
struct ps_prochandle *lwp_proc; /* process to which this lwp belongs */