/* * This structure corresponds to the state of user registers * as saved upon kernel trap/interrupt entry. * As always, it is only a default implementation; * a well-optimized kernel will probably want to override it * with something that allows better optimization. */structtrap_state{/* Saved segment registers */unsignedintgs;unsignedintfs;unsignedintes;unsignedintds;/* PUSHA register state frame */unsignedintedi;unsignedintesi;unsignedintebp;unsignedintcr2;/* we save cr2 over esp for page faults */unsignedintebx;unsignedintedx;unsignedintecx;unsignedinteax;/* Processor trap number, 0-31. */unsignedinttrapno;/* Error code pushed by the processor, 0 if none. */unsignedinterr;/* Processor state frame */unsignedinteip;unsignedintcs;unsignedinteflags;unsignedintesp;unsignedintss;/* Virtual 8086 segment registers */unsignedintv86_es;unsignedintv86_ds;unsignedintv86_fs;unsignedintv86_gs;};