proc_service.h revision 256281
155682Smarkm/* 2233294Sstas * Copyright (c) 2004 David Xu <davidxu@freebsd.org> 355682Smarkm * Copyright (c) 2004 Marcel Moolenaar 455682Smarkm * All rights reserved. 5233294Sstas * 655682Smarkm * Redistribution and use in source and binary forms, with or without 755682Smarkm * modification, are permitted provided that the following conditions 855682Smarkm * are met: 9233294Sstas * 1. Redistributions of source code must retain the above copyright 1055682Smarkm * notice, this list of conditions and the following disclaimer. 1155682Smarkm * 2. Redistributions in binary form must reproduce the above copyright 12233294Sstas * notice, this list of conditions and the following disclaimer in the 1355682Smarkm * documentation and/or other materials provided with the distribution. 1455682Smarkm * 1555682Smarkm * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND 16233294Sstas * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1755682Smarkm * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1855682Smarkm * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE 1955682Smarkm * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20233294Sstas * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2155682Smarkm * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2255682Smarkm * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2355682Smarkm * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2455682Smarkm * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2555682Smarkm * SUCH DAMAGE. 2655682Smarkm * 2755682Smarkm * $FreeBSD: stable/10/include/proc_service.h 155412 2006-02-07 02:29:55Z davidxu $ 2855682Smarkm */ 2955682Smarkm 3055682Smarkm#ifndef _PROC_SERVICE_H_ 3155682Smarkm#define _PROC_SERVICE_H_ 3255682Smarkm 3355682Smarkm#include <sys/types.h> 3455682Smarkm#include <sys/procfs.h> 3555682Smarkm 3655682Smarkmtypedef enum { 3755682Smarkm PS_OK = 0, /* No errors. */ 38233294Sstas PS_ERR, /* Generic error. */ 3955682Smarkm PS_BADADDR, /* Bad address. */ 4055682Smarkm PS_BADLID, /* Bad LWP Id. */ 4155682Smarkm PS_BADPID, /* Bad process Id. */ 4255682Smarkm PS_NOFREGS, /* FPU register set not available. */ 43 PS_NOSYM /* Symbol not found. */ 44} ps_err_e; 45 46struct ps_prochandle; /* Opaque type. Defined by the implementor. */ 47 48__BEGIN_DECLS 49ps_err_e ps_lcontinue(struct ps_prochandle *, lwpid_t); 50ps_err_e ps_lgetfpregs(struct ps_prochandle *, lwpid_t, prfpregset_t *); 51ps_err_e ps_lgetregs(struct ps_prochandle *, lwpid_t, prgregset_t); 52ps_err_e ps_lsetfpregs(struct ps_prochandle *, lwpid_t, const prfpregset_t *); 53ps_err_e ps_lsetregs(struct ps_prochandle *, lwpid_t, const prgregset_t); 54#ifdef __i386__ 55ps_err_e ps_lgetxmmregs (struct ps_prochandle *, lwpid_t, char *); 56ps_err_e ps_lsetxmmregs (struct ps_prochandle *, lwpid_t, const char *); 57#endif 58ps_err_e ps_lstop(struct ps_prochandle *, lwpid_t); 59ps_err_e ps_linfo(struct ps_prochandle *, lwpid_t, void *); 60ps_err_e ps_pcontinue(struct ps_prochandle *); 61ps_err_e ps_pdmodel(struct ps_prochandle *, int *); 62ps_err_e ps_pglobal_lookup(struct ps_prochandle *, const char *, const char *, 63 psaddr_t *); 64void ps_plog(const char *, ...); 65ps_err_e ps_pread(struct ps_prochandle *, psaddr_t, void *, size_t); 66ps_err_e ps_pstop(struct ps_prochandle *); 67ps_err_e ps_pwrite(struct ps_prochandle *, psaddr_t, const void *, size_t); 68__END_DECLS 69 70#endif /* _PROC_SERVICE_H_ */ 71