usr/src/lib/libproc/common/Pcontrol.h
changeset 14238 dcd9e8748b08
parent 14087 c1f1ea4feeb1
--- 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 */