| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: pcb.h,v 1.20.62.2 2009/09/07 21:28:33 matt Exp $ */ | | 1 | /* $NetBSD: pcb.h,v 1.20.62.3 2010/02/15 03:09:59 matt Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 1992, 1993 | | 4 | * Copyright (c) 1992, 1993 |
5 | * The Regents of the University of California. All rights reserved. | | 5 | * The Regents of the University of California. All rights reserved. |
6 | * | | 6 | * |
7 | * This code is derived from software contributed to Berkeley by | | 7 | * This code is derived from software contributed to Berkeley by |
8 | * the Systems Programming Group of the University of Utah Computer | | 8 | * the Systems Programming Group of the University of Utah Computer |
9 | * Science Department and Ralph Campbell. | | 9 | * Science Department and Ralph Campbell. |
10 | * | | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | | 11 | * Redistribution and use in source and binary forms, with or without |
12 | * modification, are permitted provided that the following conditions | | 12 | * modification, are permitted provided that the following conditions |
13 | * are met: | | 13 | * are met: |
14 | * 1. Redistributions of source code must retain the above copyright | | 14 | * 1. Redistributions of source code must retain the above copyright |
| @@ -75,32 +75,31 @@ | | | @@ -75,32 +75,31 @@ |
75 | * | | 75 | * |
76 | * @(#)pcb.h 8.1 (Berkeley) 6/10/93 | | 76 | * @(#)pcb.h 8.1 (Berkeley) 6/10/93 |
77 | */ | | 77 | */ |
78 | | | 78 | |
79 | #ifndef _MIPS_PCB_H_ | | 79 | #ifndef _MIPS_PCB_H_ |
80 | #define _MIPS_PCB_H_ | | 80 | #define _MIPS_PCB_H_ |
81 | | | 81 | |
82 | #include <mips/types.h> | | 82 | #include <mips/types.h> |
83 | #include <mips/reg.h> | | 83 | #include <mips/reg.h> |
84 | | | 84 | |
85 | /* | | 85 | /* |
86 | * MIPS process control block | | 86 | * MIPS process control block |
87 | */ | | 87 | */ |
88 | struct pcb | | 88 | struct pcb { |
89 | { | | | |
90 | struct fpreg pcb_fpregs; /* saved floating point registers */ | | | |
91 | label_t pcb_context; /* kernel context for resume */ | | 89 | label_t pcb_context; /* kernel context for resume */ |
92 | void * pcb_onfault; /* for copyin/copyout faults */ | | 90 | void * pcb_onfault; /* for copyin/copyout faults */ |
93 | uint32_t pcb_ppl; /* previous priority level */ | | 91 | uint32_t pcb_ppl; /* previous priority level */ |
| | | 92 | struct fpreg pcb_fpregs; /* saved floating point registers */ |
94 | }; | | 93 | }; |
95 | | | 94 | |
96 | /* | | 95 | /* |
97 | * The pcb is augmented with machine-dependent additional data for | | 96 | * The pcb is augmented with machine-dependent additional data for |
98 | * core dumps. | | 97 | * core dumps. |
99 | */ | | 98 | */ |
100 | struct md_coredump { | | 99 | struct md_coredump { |
101 | mips_reg_t md_regs[38]; | | 100 | mips_reg_t md_regs[38]; |
102 | struct fpreg md_fpregs; | | 101 | struct fpreg md_fpregs; |
103 | }; | | 102 | }; |
104 | | | 103 | |
105 | #ifdef _KERNEL | | 104 | #ifdef _KERNEL |
106 | #define PCB_FSR(pcb) ((pcb)->pcb_fpregs.r_regs[_R_FSR - _FPBASE]) | | 105 | #define PCB_FSR(pcb) ((pcb)->pcb_fpregs.r_regs[_R_FSR - _FPBASE]) |