Deleted Added
full compact
procfs_regs.c (90361) procfs_regs.c (90716)
1/*
1/*-
2 * Copyright (c) 1993 Jan-Simon Pendry
3 * Copyright (c) 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Jan-Simon Pendry.
8 *
9 * Redistribution and use in source and binary forms, with or without

--- 22 unchanged lines hidden (view full) ---

32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * @(#)procfs_regs.c 8.4 (Berkeley) 6/15/94
38 *
39 * From:
2 * Copyright (c) 1993 Jan-Simon Pendry
3 * Copyright (c) 1993
4 * The Regents of the University of California. All rights reserved.
5 *
6 * This code is derived from software contributed to Berkeley by
7 * Jan-Simon Pendry.
8 *
9 * Redistribution and use in source and binary forms, with or without

--- 22 unchanged lines hidden (view full) ---

32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
35 * SUCH DAMAGE.
36 *
37 * @(#)procfs_regs.c 8.4 (Berkeley) 6/15/94
38 *
39 * From:
40 * $FreeBSD: head/sys/fs/procfs/procfs_regs.c 90361 2002-02-07 20:58:47Z julian $
40 * $Id: procfs_regs.c,v 3.2 1993/12/15 09:40:17 jsp Exp $
41 * $FreeBSD: head/sys/fs/procfs/procfs_regs.c 90716 2002-02-16 05:38:07Z bde $
41 */
42
43#include <sys/param.h>
44#include <sys/systm.h>
45#include <sys/lock.h>
46#include <sys/mutex.h>
47#include <sys/proc.h>
48#include <sys/ptrace.h>

--- 8 unchanged lines hidden (view full) ---

57procfs_doprocregs(PFS_FILL_ARGS)
58{
59 int error;
60 struct reg r;
61 char *kv;
62 int kl;
63
64 if (p_candebug(td->td_proc, p))
42 */
43
44#include <sys/param.h>
45#include <sys/systm.h>
46#include <sys/lock.h>
47#include <sys/mutex.h>
48#include <sys/proc.h>
49#include <sys/ptrace.h>

--- 8 unchanged lines hidden (view full) ---

58procfs_doprocregs(PFS_FILL_ARGS)
59{
60 int error;
61 struct reg r;
62 char *kv;
63 int kl;
64
65 if (p_candebug(td->td_proc, p))
65 return EPERM;
66 return (EPERM);
66 kl = sizeof(r);
67 kv = (char *) &r;
68
69 kv += uio->uio_offset;
70 kl -= uio->uio_offset;
71 if (kl > uio->uio_resid)
72 kl = uio->uio_resid;
73
74 PHOLD(p);
67 kl = sizeof(r);
68 kv = (char *) &r;
69
70 kv += uio->uio_offset;
71 kl -= uio->uio_offset;
72 if (kl > uio->uio_resid)
73 kl = uio->uio_resid;
74
75 PHOLD(p);
75
76 if (kl < 0)
77 error = EINVAL;
78 else
76 if (kl < 0)
77 error = EINVAL;
78 else
79 error = proc_read_regs(FIRST_THREAD_IN_PROC(p), &r); /* XXXKSE */
79 /* XXXKSE: */
80 error = proc_read_regs(FIRST_THREAD_IN_PROC(p), &r);
80 if (error == 0)
81 error = uiomove(kv, kl, uio);
82 if (error == 0 && uio->uio_rw == UIO_WRITE) {
83 if (p->p_stat != SSTOP)
84 error = EBUSY;
85 else
81 if (error == 0)
82 error = uiomove(kv, kl, uio);
83 if (error == 0 && uio->uio_rw == UIO_WRITE) {
84 if (p->p_stat != SSTOP)
85 error = EBUSY;
86 else
86 error = proc_write_regs(FIRST_THREAD_IN_PROC(p), &r); /* XXXKSE */
87 /* XXXKSE: */
88 error = proc_write_regs(FIRST_THREAD_IN_PROC(p), &r);
87 }
88 PRELE(p);
89
90 uio->uio_offset = 0;
91 return (error);
92}
89 }
90 PRELE(p);
91
92 uio->uio_offset = 0;
93 return (error);
94}