1 // SPDX-License-Identifier: GPL-2.0-or-later
3 #include <linux/regset.h>
5 #include <asm/switch_to.h>
7 #include "ptrace-decl.h"
9 int ptrace_get_fpr(struct task_struct
*child
, int index
, unsigned long *data
)
11 unsigned int fpidx
= index
- PT_FPR0
;
16 flush_fp_to_thread(child
);
17 if (fpidx
< (PT_FPSCR
- PT_FPR0
))
18 memcpy(data
, &child
->thread
.TS_FPR(fpidx
), sizeof(long));
20 *data
= child
->thread
.fp_state
.fpscr
;
25 int ptrace_put_fpr(struct task_struct
*child
, int index
, unsigned long data
)
27 unsigned int fpidx
= index
- PT_FPR0
;
32 flush_fp_to_thread(child
);
33 if (fpidx
< (PT_FPSCR
- PT_FPR0
))
34 memcpy(&child
->thread
.TS_FPR(fpidx
), &data
, sizeof(long));
36 child
->thread
.fp_state
.fpscr
= data
;