Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

getsetrg.c File Reference

#include "ki.h"

Go to the source code of this file.

Functions

ULONG KiGetRegisterValue (IN ULONG Register, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
VOID KiSetRegisterValue (IN ULONG Register, IN ULONG Value, OUT PKEXCEPTION_FRAME ExceptionFrame, OUT PKTRAP_FRAME TrapFrame)
DOUBLE KiGetFloatRegisterValue (IN ULONG Register, IN PKEXCEPTION_FRAME ExceptionFrame, IN PKTRAP_FRAME TrapFrame)
VOID KiSetFloatRegisterValue (IN ULONG Register, IN DOUBLE Value, OUT PKEXCEPTION_FRAME ExceptionFrame, OUT PKTRAP_FRAME TrapFrame)


Function Documentation

DOUBLE KiGetFloatRegisterValue IN ULONG  Register,
IN PKEXCEPTION_FRAME  ExceptionFrame,
IN PKTRAP_FRAME  TrapFrame
 

Definition at line 276 of file ppc/getsetrg.c.

Referenced by get_fp_register(), and KiEmulateReference().

00284 : 00285 00286 This function is called to get the value of a floating point register 00287 from the specified exception or trap frame. 00288 00289 Arguments: 00290 00291 Register - Supplies the number of the register whose value is to be 00292 returned. Only FPRs (float regs) are supported, numbered 0..31. 00293 00294 ExceptionFrame - Supplies a pointer to an exception frame. 00295 00296 TrapFrame - Supplies a pointer to a trap frame. 00297 00298 Return Value: 00299 00300 The value of the specified register is returned as the function value. 00301 00302 --*/ 00303 00304 { 00305 00306 // 00307 // Dispatch on the FP register number. 00308 // 00309 00310 switch (Register) { 00311 case 0: 00312 return TrapFrame->Fpr0; 00313 case 1: 00314 return TrapFrame->Fpr1; 00315 case 2: 00316 return TrapFrame->Fpr2; 00317 case 3: 00318 return TrapFrame->Fpr3; 00319 case 4: 00320 return TrapFrame->Fpr4; 00321 case 5: 00322 return TrapFrame->Fpr5; 00323 case 6: 00324 return TrapFrame->Fpr6; 00325 case 7: 00326 return TrapFrame->Fpr7; 00327 case 8: 00328 return TrapFrame->Fpr8; 00329 case 9: 00330 return TrapFrame->Fpr9; 00331 case 10: 00332 return TrapFrame->Fpr10; 00333 case 11: 00334 return TrapFrame->Fpr11; 00335 case 12: 00336 return TrapFrame->Fpr12; 00337 case 13: 00338 return TrapFrame->Fpr13; 00339 case 14: 00340 return ExceptionFrame->Fpr14; 00341 case 15: 00342 return ExceptionFrame->Fpr15; 00343 case 16: 00344 return ExceptionFrame->Fpr16; 00345 case 17: 00346 return ExceptionFrame->Fpr17; 00347 case 18: 00348 return ExceptionFrame->Fpr18; 00349 case 19: 00350 return ExceptionFrame->Fpr19; 00351 case 20: 00352 return ExceptionFrame->Fpr20; 00353 case 21: 00354 return ExceptionFrame->Fpr21; 00355 case 22: 00356 return ExceptionFrame->Fpr22; 00357 case 23: 00358 return ExceptionFrame->Fpr23; 00359 case 24: 00360 return ExceptionFrame->Fpr24; 00361 case 25: 00362 return ExceptionFrame->Fpr25; 00363 case 26: 00364 return ExceptionFrame->Fpr26; 00365 case 27: 00366 return ExceptionFrame->Fpr27; 00367 case 28: 00368 return ExceptionFrame->Fpr28; 00369 case 29: 00370 return ExceptionFrame->Fpr29; 00371 case 30: 00372 return ExceptionFrame->Fpr30; 00373 case 31: 00374 return ExceptionFrame->Fpr31; 00375 } 00376 }

ULONG KiGetRegisterValue IN ULONG  Register,
IN PKEXCEPTION_FRAME  ExceptionFrame,
IN PKTRAP_FRAME  TrapFrame
 

Definition at line 32 of file ppc/getsetrg.c.

Referenced by KiDataBusError(), KiEmulateBranch(), KiEmulateByteWord(), KiEmulateFloating(), KiEmulateReference(), KiUnpackDouble(), and KiUnpackSingle().

00040 : 00041 00042 This function is called to get the value of a register from the specified 00043 exception or trap frame. 00044 00045 Arguments: 00046 00047 Register - Supplies the number of the register whose value is to be 00048 returned. Only GPRs (integer regs) are supported, numbered 0..31. 00049 00050 ExceptionFrame - Supplies a pointer to an exception frame. 00051 00052 TrapFrame - Supplies a pointer to a trap frame. 00053 00054 Return Value: 00055 00056 The value of the specified register is returned as the function value. 00057 00058 --*/ 00059 00060 { 00061 00062 // 00063 // Dispatch on the GP register number. 00064 // 00065 00066 switch (Register) { 00067 case 0: 00068 return TrapFrame->Gpr0; 00069 case 1: 00070 return TrapFrame->Gpr1; 00071 case 2: 00072 return TrapFrame->Gpr2; 00073 case 3: 00074 return TrapFrame->Gpr3; 00075 case 4: 00076 return TrapFrame->Gpr4; 00077 case 5: 00078 return TrapFrame->Gpr5; 00079 case 6: 00080 return TrapFrame->Gpr6; 00081 case 7: 00082 return TrapFrame->Gpr7; 00083 case 8: 00084 return TrapFrame->Gpr8; 00085 case 9: 00086 return TrapFrame->Gpr9; 00087 case 10: 00088 return TrapFrame->Gpr10; 00089 case 11: 00090 return TrapFrame->Gpr11; 00091 case 12: 00092 return TrapFrame->Gpr12; 00093 case 13: 00094 return ExceptionFrame->Gpr13; 00095 case 14: 00096 return ExceptionFrame->Gpr14; 00097 case 15: 00098 return ExceptionFrame->Gpr15; 00099 case 16: 00100 return ExceptionFrame->Gpr16; 00101 case 17: 00102 return ExceptionFrame->Gpr17; 00103 case 18: 00104 return ExceptionFrame->Gpr18; 00105 case 19: 00106 return ExceptionFrame->Gpr19; 00107 case 20: 00108 return ExceptionFrame->Gpr20; 00109 case 21: 00110 return ExceptionFrame->Gpr21; 00111 case 22: 00112 return ExceptionFrame->Gpr22; 00113 case 23: 00114 return ExceptionFrame->Gpr23; 00115 case 24: 00116 return ExceptionFrame->Gpr24; 00117 case 25: 00118 return ExceptionFrame->Gpr25; 00119 case 26: 00120 return ExceptionFrame->Gpr26; 00121 case 27: 00122 return ExceptionFrame->Gpr27; 00123 case 28: 00124 return ExceptionFrame->Gpr28; 00125 case 29: 00126 return ExceptionFrame->Gpr29; 00127 case 30: 00128 return ExceptionFrame->Gpr30; 00129 case 31: 00130 return ExceptionFrame->Gpr31; 00131 } 00132 return(0); // to eliminate a compiler warning 00133 }

VOID KiSetFloatRegisterValue IN ULONG  Register,
IN DOUBLE  Value,
OUT PKEXCEPTION_FRAME  ExceptionFrame,
OUT PKTRAP_FRAME  TrapFrame
 

Definition at line 379 of file ppc/getsetrg.c.

Referenced by KiEmulateReference(), and set_fp_register().

00388 : 00389 00390 This function is called to set the value of a floating point register 00391 in the specified exception or trap frame. 00392 00393 Arguments: 00394 00395 Register - Supplies the number of the register whose value is to be 00396 stored. This routine handles only Fprs (float regs), numbered 0..31. 00397 00398 Value - Supplies the value to be stored in the specified register. 00399 00400 ExceptionFrame - Supplies a pointer to an exception frame. 00401 00402 TrapFrame - Supplies a pointer to a trap frame. 00403 00404 Return Value: 00405 00406 None. 00407 00408 --*/ 00409 00410 { 00411 00412 // 00413 // Dispatch on the FP register number. 00414 // 00415 00416 switch (Register) { 00417 00418 case 0: 00419 TrapFrame->Fpr0 = Value; 00420 return; 00421 case 1: 00422 TrapFrame->Fpr1 = Value; 00423 return; 00424 case 2: 00425 TrapFrame->Fpr2 = Value; 00426 return; 00427 case 3: 00428 TrapFrame->Fpr3 = Value; 00429 return; 00430 case 4: 00431 TrapFrame->Fpr4 = Value; 00432 return; 00433 case 5: 00434 TrapFrame->Fpr5 = Value; 00435 return; 00436 case 6: 00437 TrapFrame->Fpr6 = Value; 00438 return; 00439 case 7: 00440 TrapFrame->Fpr7 = Value; 00441 return; 00442 case 8: 00443 TrapFrame->Fpr8 = Value; 00444 return; 00445 case 9: 00446 TrapFrame->Fpr9 = Value; 00447 return; 00448 case 10: 00449 TrapFrame->Fpr10 = Value; 00450 return; 00451 case 11: 00452 TrapFrame->Fpr11 = Value; 00453 return; 00454 case 12: 00455 TrapFrame->Fpr12 = Value; 00456 return; 00457 case 13: 00458 TrapFrame->Fpr13 = Value; 00459 return; 00460 case 14: 00461 ExceptionFrame->Fpr14 = Value; 00462 return; 00463 case 15: 00464 ExceptionFrame->Fpr15 = Value; 00465 return; 00466 case 16: 00467 ExceptionFrame->Fpr16 = Value; 00468 return; 00469 case 17: 00470 ExceptionFrame->Fpr17 = Value; 00471 return; 00472 case 18: 00473 ExceptionFrame->Fpr18 = Value; 00474 return; 00475 case 19: 00476 ExceptionFrame->Fpr19 = Value; 00477 return; 00478 case 20: 00479 ExceptionFrame->Fpr20 = Value; 00480 return; 00481 case 21: 00482 ExceptionFrame->Fpr21 = Value; 00483 return; 00484 case 22: 00485 ExceptionFrame->Fpr22 = Value; 00486 return; 00487 case 23: 00488 ExceptionFrame->Fpr23 = Value; 00489 return; 00490 case 24: 00491 ExceptionFrame->Fpr24 = Value; 00492 return; 00493 case 25: 00494 ExceptionFrame->Fpr25 = Value; 00495 return; 00496 case 26: 00497 ExceptionFrame->Fpr26 = Value; 00498 return; 00499 case 27: 00500 ExceptionFrame->Fpr27 = Value; 00501 return; 00502 case 28: 00503 ExceptionFrame->Fpr28 = Value; 00504 return; 00505 case 29: 00506 ExceptionFrame->Fpr29 = Value; 00507 return; 00508 case 30: 00509 ExceptionFrame->Fpr30 = Value; 00510 return; 00511 case 31: 00512 ExceptionFrame->Fpr31 = Value; 00513 return; 00514 00515 } 00516 } }

VOID KiSetRegisterValue IN ULONG  Register,
IN ULONG  Value,
OUT PKEXCEPTION_FRAME  ExceptionFrame,
OUT PKTRAP_FRAME  TrapFrame
 

Definition at line 136 of file ppc/getsetrg.c.

Referenced by KiConvertQuadwordToLongword(), KiDivideByZeroDouble(), KiDivideByZeroSingle(), KiEmulateByteWord(), KiEmulateFloating(), KiEmulateReference(), KiInvalidOperationDouble(), KiInvalidOperationLongword(), KiInvalidOperationQuadword(), KiInvalidOperationSingle(), KiNormalizeDouble(), KiNormalizeLongword(), KiNormalizeQuadword(), and KiNormalizeSingle().

00145 : 00146 00147 This function is called to set the value of a register in the specified 00148 exception or trap frame. 00149 00150 Arguments: 00151 00152 Register - Supplies the number of the register whose value is to be 00153 stored. This routine handles only GPRs (integer regs), numbered 0..31. 00154 00155 Value - Supplies the value to be stored in the specified register. 00156 00157 ExceptionFrame - Supplies a pointer to an exception frame. 00158 00159 TrapFrame - Supplies a pointer to a trap frame. 00160 00161 Return Value: 00162 00163 None. 00164 00165 --*/ 00166 00167 { 00168 00169 // 00170 // Dispatch on the GP register number. 00171 // 00172 00173 switch (Register) { 00174 00175 case 0: 00176 TrapFrame->Gpr0 = Value; 00177 return; 00178 case 1: 00179 TrapFrame->Gpr1 = Value; 00180 return; 00181 case 2: 00182 TrapFrame->Gpr2 = Value; 00183 return; 00184 case 3: 00185 TrapFrame->Gpr3 = Value; 00186 return; 00187 case 4: 00188 TrapFrame->Gpr4 = Value; 00189 return; 00190 case 5: 00191 TrapFrame->Gpr5 = Value; 00192 return; 00193 case 6: 00194 TrapFrame->Gpr6 = Value; 00195 return; 00196 case 7: 00197 TrapFrame->Gpr7 = Value; 00198 return; 00199 case 8: 00200 TrapFrame->Gpr8 = Value; 00201 return; 00202 case 9: 00203 TrapFrame->Gpr9 = Value; 00204 return; 00205 case 10: 00206 TrapFrame->Gpr10 = Value; 00207 return; 00208 case 11: 00209 TrapFrame->Gpr11 = Value; 00210 return; 00211 case 12: 00212 TrapFrame->Gpr12 = Value; 00213 return; 00214 case 13: 00215 ExceptionFrame->Gpr13 = Value; 00216 return; 00217 case 14: 00218 ExceptionFrame->Gpr14 = Value; 00219 return; 00220 case 15: 00221 ExceptionFrame->Gpr15 = Value; 00222 return; 00223 case 16: 00224 ExceptionFrame->Gpr16 = Value; 00225 return; 00226 case 17: 00227 ExceptionFrame->Gpr17 = Value; 00228 return; 00229 case 18: 00230 ExceptionFrame->Gpr18 = Value; 00231 return; 00232 case 19: 00233 ExceptionFrame->Gpr19 = Value; 00234 return; 00235 case 20: 00236 ExceptionFrame->Gpr20 = Value; 00237 return; 00238 case 21: 00239 ExceptionFrame->Gpr21 = Value; 00240 return; 00241 case 22: 00242 ExceptionFrame->Gpr22 = Value; 00243 return; 00244 case 23: 00245 ExceptionFrame->Gpr23 = Value; 00246 return; 00247 case 24: 00248 ExceptionFrame->Gpr24 = Value; 00249 return; 00250 case 25: 00251 ExceptionFrame->Gpr25 = Value; 00252 return; 00253 case 26: 00254 ExceptionFrame->Gpr26 = Value; 00255 return; 00256 case 27: 00257 ExceptionFrame->Gpr27 = Value; 00258 return; 00259 case 28: 00260 ExceptionFrame->Gpr28 = Value; 00261 return; 00262 case 29: 00263 ExceptionFrame->Gpr29 = Value; 00264 return; 00265 case 30: 00266 ExceptionFrame->Gpr30 = Value; 00267 return; 00268 case 31: 00269 ExceptionFrame->Gpr31 = Value; 00270 return; 00271 00272 } 00273 }


Generated on Sat May 15 19:43:54 2004 for test by doxygen 1.3.7