#defineGET_USERREG()(user_registers)/* Need task_struct *///#include<linux/sched.h>/* includes */#include"fpsr.h"/* FP control and status register definitions */#include"softfloat.h"#definetypeNone0x00#definetypeSingle0x01#definetypeDouble0x02#definetypeExtended0x03/**Thismustbenomoreandnolessthan12bytes.*/typedefuniontagFPREG{floatx80fExtended;float64fDouble;float32fSingle;}FPREG;/**FPA11devicemodel.**Thisstructureisexportedtouserspace.Donotre-order.*Onlyaddnewstufftotheend,anddonotchangethesizeof*anyelement.Elementsofthisstructureareusedbyuser*space,andmustmatchstructuser_fpininclude/asm-arm/user.h.*Weincludethebyteoffsetsbelowfordocumentationpurposes.**ThesizeofthisstructureandFPREGarecheckedbyfpmodule.c*oninitialisation.Iftheruleshavebeenbroken,NWFPEwill*notinitialise.*/typedefstructtagFPA11{/* 0 */FPREGfpreg[8];/* 8 floating point registers *//* 96 */FPSRfpsr;/* floating point status register *//* 100 */FPCRfpcr;/* floating point control register *//* 104 */unsignedcharfType[8];/*typeoffloatingpointvalueheldinfloatingpointregisters.Oneofnonesingle,doubleorextended.*//* 112 */intinitflag;/*thisisspecial.Thekernelguaranteestosetitto0whenathreadislaunched,sowecanuseittodetectwhetherthisinstanceoftheemulatorneedstobeinitialised.*/