Index: kernel/arch/ppc32/include/arch/context_struct.ag
===================================================================
--- kernel/arch/ppc32/include/arch/context_struct.ag	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ 	(revision )
@@ -1,139 +1,0 @@
-# Copyright (c) 2014 Jakub Jermar
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-{
-        name : context,
-
-        includes : [
-                {
-                        include : <typedefs.h>
-                }
-        ],
-
-        members : [
-                {
-                        name : sp,
-                        type : uint32_t
-                },
-                {
-                        name : pc,
-                        type : uint32_t
-                },
-
-                {
-                        name : r2,
-                        type : uint32_t
-                },
-                {
-                        name : r13,
-                        type : uint32_t
-                },
-                {
-                        name : r14,
-                        type : uint32_t
-                },
-                {
-                        name : r15,
-                        type : uint32_t
-                },
-                {
-                        name : r16,
-                        type : uint32_t
-                },
-                {
-                        name : r17,
-                        type : uint32_t
-                },
-                {
-                        name : r18,
-                        type : uint32_t
-                },
-                {
-                        name : r19,
-                        type : uint32_t
-                },
-                {
-                        name : r20,
-                        type : uint32_t
-                },
-                {
-                        name : r21,
-                        type : uint32_t
-                },
-                {
-                        name : r22,
-                        type : uint32_t
-                },
-                {
-                        name : r23,
-                        type : uint32_t
-                },
-                {
-                        name : r24,
-                        type : uint32_t
-                },
-                {
-                        name : r25,
-                        type : uint32_t
-                },
-                {
-                        name : r26,
-                        type : uint32_t
-                },
-                {
-                        name : r27,
-                        type : uint32_t
-                },
-                {
-                        name : r28,
-                        type : uint32_t
-                },
-                {
-                        name : r29,
-                        type : uint32_t
-                },
-                {
-                        name : r30,
-                        type : uint32_t
-                },
-                {
-                        name : r31,
-                        type : uint32_t
-                },
-
-                {
-                        name : cr,
-                        type : uint32_t
-                },
-
-                {
-                        name : ipl,
-                        type : ipl_t
-                }
-        ]
-}
-
Index: kernel/arch/ppc32/include/arch/context_struct.h
===================================================================
--- kernel/arch/ppc32/include/arch/context_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
+++ kernel/arch/ppc32/include/arch/context_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2014 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef KERN_ARCH_CONTEXT_STRUCT_H_
+#define KERN_ARCH_CONTEXT_STRUCT_H_
+
+#define CONTEXT_OFFSET_SP   0x00
+#define CONTEXT_OFFSET_PC   0x04
+#define CONTEXT_OFFSET_R2   0x08
+#define CONTEXT_OFFSET_R13  0x0c
+#define CONTEXT_OFFSET_R14  0x10
+#define CONTEXT_OFFSET_R15  0x14
+#define CONTEXT_OFFSET_R16  0x18
+#define CONTEXT_OFFSET_R17  0x1c
+#define CONTEXT_OFFSET_R18  0x20
+#define CONTEXT_OFFSET_R19  0x24
+#define CONTEXT_OFFSET_R20  0x28
+#define CONTEXT_OFFSET_R21  0x2c
+#define CONTEXT_OFFSET_R22  0x30
+#define CONTEXT_OFFSET_R23  0x34
+#define CONTEXT_OFFSET_R24  0x38
+#define CONTEXT_OFFSET_R25  0x3c
+#define CONTEXT_OFFSET_R26  0x40
+#define CONTEXT_OFFSET_R27  0x44
+#define CONTEXT_OFFSET_R28  0x48
+#define CONTEXT_OFFSET_R29  0x4c
+#define CONTEXT_OFFSET_R30  0x50
+#define CONTEXT_OFFSET_R31  0x54
+#define CONTEXT_OFFSET_CR   0x58
+#define CONTEXT_OFFSET_IPL  0x5c
+#define CONTEXT_SIZE        0x60
+
+#ifndef __ASSEMBLER__
+
+#include <typedefs.h>
+
+typedef struct context {
+	uint32_t sp;
+	uint32_t pc;
+	uint32_t r2;
+	uint32_t r13;
+	uint32_t r14;
+	uint32_t r15;
+	uint32_t r16;
+	uint32_t r17;
+	uint32_t r18;
+	uint32_t r19;
+	uint32_t r20;
+	uint32_t r21;
+	uint32_t r22;
+	uint32_t r23;
+	uint32_t r24;
+	uint32_t r25;
+	uint32_t r26;
+	uint32_t r27;
+	uint32_t r28;
+	uint32_t r29;
+	uint32_t r30;
+	uint32_t r31;
+	uint32_t cr;
+	ipl_t ipl;
+} context_t;
+
+#endif
+#endif
+
Index: kernel/arch/ppc32/include/arch/fpu_context_struct.ag
===================================================================
--- kernel/arch/ppc32/include/arch/fpu_context_struct.ag	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ 	(revision )
@@ -1,173 +1,0 @@
-# Copyright (c) 2014 Jakub Jermar
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-{
-        name : fpu_context,
-
-        includes : [
-                {
-                        include : <typedefs.h>
-                }
-        ],
-
-        members : [
-                {
-                        name : fr0,
-                        type : uint64_t
-                },
-                {
-                        name : fr1,
-                        type : uint64_t
-                },
-                {
-                        name : fr2,
-                        type : uint64_t
-                },
-                {
-                        name : fr3,
-                        type : uint64_t
-                },
-                {
-                        name : fr4,
-                        type : uint64_t
-                },
-                {
-                        name : fr5,
-                        type : uint64_t
-                },
-                {
-                        name : fr6,
-                        type : uint64_t
-                },
-                {
-                        name : fr7,
-                        type : uint64_t
-                },
-                {
-                        name : fr8,
-                        type : uint64_t
-                },
-                {
-                        name : fr9,
-                        type : uint64_t
-                },
-                {
-                        name : fr10,
-                        type : uint64_t
-                },
-                {
-                        name : fr11,
-                        type : uint64_t
-                },
-                {
-                        name : fr12,
-                        type : uint64_t
-                },
-                {
-                        name : fr13,
-                        type : uint64_t
-                },
-                {
-                        name : fr14,
-                        type : uint64_t
-                },
-                {
-                        name : fr15,
-                        type : uint64_t
-                },
-                {
-                        name : fr16,
-                        type : uint64_t
-                },
-                {
-                        name : fr17,
-                        type : uint64_t
-                },
-                {
-                        name : fr18,
-                        type : uint64_t
-                },
-                {
-                        name : fr19,
-                        type : uint64_t
-                },
-                {
-                        name : fr20,
-                        type : uint64_t
-                },
-                {
-                        name : fr21,
-                        type : uint64_t
-                },
-                {
-                        name : fr22,
-                        type : uint64_t
-                },
-                {
-                        name : fr23,
-                        type : uint64_t
-                },
-                {
-                        name : fr24,
-                        type : uint64_t
-                },
-                {
-                        name : fr25,
-                        type : uint64_t
-                },
-                {
-                        name : fr26,
-                        type : uint64_t
-                },
-                {
-                        name : fr27,
-                        type : uint64_t
-                },
-                {
-                        name : fr28,
-                        type : uint64_t
-                },
-                {
-                        name : fr29,
-                        type : uint64_t
-                },
-                {
-                        name : fr30,
-                        type : uint64_t
-                },
-                {
-                        name : fr31,
-                        type : uint64_t
-                },
-                {
-                        name : fpscr,
-                        type : uint64_t
-                }
-
-        ]
-}
-
Index: kernel/arch/ppc32/include/arch/fpu_context_struct.h
===================================================================
--- kernel/arch/ppc32/include/arch/fpu_context_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
+++ kernel/arch/ppc32/include/arch/fpu_context_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2014 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef KERN_ARCH_FPU_CONTEXT_STRUCT_H_
+#define KERN_ARCH_FPU_CONTEXT_STRUCT_H_
+
+#define FPU_CONTEXT_OFFSET_FR0    0x00
+#define FPU_CONTEXT_OFFSET_FR1    0x08
+#define FPU_CONTEXT_OFFSET_FR2    0x10
+#define FPU_CONTEXT_OFFSET_FR3    0x18
+#define FPU_CONTEXT_OFFSET_FR4    0x20
+#define FPU_CONTEXT_OFFSET_FR5    0x28
+#define FPU_CONTEXT_OFFSET_FR6    0x30
+#define FPU_CONTEXT_OFFSET_FR7    0x38
+#define FPU_CONTEXT_OFFSET_FR8    0x40
+#define FPU_CONTEXT_OFFSET_FR9    0x48
+#define FPU_CONTEXT_OFFSET_FR10   0x50
+#define FPU_CONTEXT_OFFSET_FR11   0x58
+#define FPU_CONTEXT_OFFSET_FR12   0x60
+#define FPU_CONTEXT_OFFSET_FR13   0x68
+#define FPU_CONTEXT_OFFSET_FR14   0x70
+#define FPU_CONTEXT_OFFSET_FR15   0x78
+#define FPU_CONTEXT_OFFSET_FR16   0x80
+#define FPU_CONTEXT_OFFSET_FR17   0x88
+#define FPU_CONTEXT_OFFSET_FR18   0x90
+#define FPU_CONTEXT_OFFSET_FR19   0x98
+#define FPU_CONTEXT_OFFSET_FR20   0xa0
+#define FPU_CONTEXT_OFFSET_FR21   0xa8
+#define FPU_CONTEXT_OFFSET_FR22   0xb0
+#define FPU_CONTEXT_OFFSET_FR23   0xb8
+#define FPU_CONTEXT_OFFSET_FR24   0xc0
+#define FPU_CONTEXT_OFFSET_FR25   0xc8
+#define FPU_CONTEXT_OFFSET_FR26   0xd0
+#define FPU_CONTEXT_OFFSET_FR27   0xd8
+#define FPU_CONTEXT_OFFSET_FR28   0xe0
+#define FPU_CONTEXT_OFFSET_FR29   0xe8
+#define FPU_CONTEXT_OFFSET_FR30   0xf0
+#define FPU_CONTEXT_OFFSET_FR31   0xf8
+#define FPU_CONTEXT_OFFSET_FPSCR  0x100
+#define FPU_CONTEXT_SIZE          0x108
+
+#ifndef __ASSEMBLER__
+
+#include <typedefs.h>
+
+typedef struct fpu_context {
+	uint64_t fr0;
+	uint64_t fr1;
+	uint64_t fr2;
+	uint64_t fr3;
+	uint64_t fr4;
+	uint64_t fr5;
+	uint64_t fr6;
+	uint64_t fr7;
+	uint64_t fr8;
+	uint64_t fr9;
+	uint64_t fr10;
+	uint64_t fr11;
+	uint64_t fr12;
+	uint64_t fr13;
+	uint64_t fr14;
+	uint64_t fr15;
+	uint64_t fr16;
+	uint64_t fr17;
+	uint64_t fr18;
+	uint64_t fr19;
+	uint64_t fr20;
+	uint64_t fr21;
+	uint64_t fr22;
+	uint64_t fr23;
+	uint64_t fr24;
+	uint64_t fr25;
+	uint64_t fr26;
+	uint64_t fr27;
+	uint64_t fr28;
+	uint64_t fr29;
+	uint64_t fr30;
+	uint64_t fr31;
+	uint64_t fpscr;
+} fpu_context_t;
+
+#endif
+#endif
+
Index: kernel/arch/ppc32/include/arch/istate_struct.ag
===================================================================
--- kernel/arch/ppc32/include/arch/istate_struct.ag	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ 	(revision )
@@ -1,216 +1,0 @@
-# Copyright (c) 2014 Jakub Jermar
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# - Redistributions of source code must retain the above copyright
-#   notice, this list of conditions and the following disclaimer.
-# - Redistributions in binary form must reproduce the above copyright
-#   notice, this list of conditions and the following disclaimer in the
-#   documentation and/or other materials provided with the distribution.
-# - The name of the author may not be used to endorse or promote products
-#   derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-{
-        name : istate,
-
-        includes : [
-                {
-                        guard : KERNEL,
-                        include : <typedefs.h>
-                },
-                {
-                        negative-guard : KERNEL,
-                        include : <stddef.h>
-                },
-                {
-                        negative-guard : KERNEL,
-                        include : <stdint.h>
-                }
-        ],
-
-        members : [
-                {
-                        # imitation of frame pointer linkage
-                        name : sp_frame,
-                        type : uint32_t
-                },
-                {
-                        # imitation of return adress linkage
-                        name : lr_frame,
-                        type : uint32_t
-                },
-                {
-                        name : r0,
-                        type : uint32_t
-                },
-                {
-                        name : r2,
-                        type : uint32_t
-                },
-                {
-                        name : r3,
-                        type : uint32_t
-                },
-                {
-                        name : r4,
-                        type : uint32_t
-                },
-                {
-                        name : r5,
-                        type : uint32_t
-                },
-                {
-                        name : r6,
-                        type : uint32_t
-                },
-                {
-                        name : r7,
-                        type : uint32_t
-                },
-                {
-                        name : r8,
-                        type : uint32_t
-                },
-                {
-                        name : r9,
-                        type : uint32_t
-                },
-                {
-                        name : r10,
-                        type : uint32_t
-                },
-                {
-                        name : r11,
-                        type : uint32_t
-                },
-                {
-                        name : r13,
-                        type : uint32_t
-                },
-                {
-                        name : r14,
-                        type : uint32_t
-                },
-                {
-                        name : r15,
-                        type : uint32_t
-                },
-                {
-                        name : r16,
-                        type : uint32_t
-                },
-                {
-                        name : r17,
-                        type : uint32_t
-                },
-                {
-                        name : r18,
-                        type : uint32_t
-                },
-                {
-                        name : r19,
-                        type : uint32_t
-                },
-                {
-                        name : r20,
-                        type : uint32_t
-                },
-                {
-                        name : r21,
-                        type : uint32_t
-                },
-                {
-                        name : r22,
-                        type : uint32_t
-                },
-                {
-                        name : r23,
-                        type : uint32_t
-                },
-                {
-                        name : r24,
-                        type : uint32_t
-                },
-                {
-                        name : r25,
-                        type : uint32_t
-                },
-                {
-                        name : r26,
-                        type : uint32_t
-                },
-                {
-                        name : r27,
-                        type : uint32_t
-                },
-                {
-                        name : r28,
-                        type : uint32_t
-                },
-                {
-                        name : r29,
-                        type : uint32_t
-                },
-                {
-                        name : r30,
-                        type : uint32_t
-                },
-                {
-                        name : r31,
-                        type : uint32_t
-                },
-                {
-                        name : cr,
-                        type : uint32_t
-                },
-                {
-                        name : pc,
-                        type : uint32_t
-                },
-                {
-                        name : srr1,
-                        type : uint32_t
-                },
-                {
-                        name : lr,
-                        type : uint32_t
-                },
-                {
-                        name : ctr,
-                        type : uint32_t
-                },
-                {
-                        name : xer,
-                        type : uint32_t
-                },
-                {
-                        name : dar,
-                        type : uint32_t
-                },
-                {
-                        name : r12,
-                        type : uint32_t
-                },
-                {
-                        name : sp,
-                        type : uint32_t
-                }
-
-        ]
-}
-
Index: kernel/arch/ppc32/include/arch/istate_struct.h
===================================================================
--- kernel/arch/ppc32/include/arch/istate_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
+++ kernel/arch/ppc32/include/arch/istate_struct.h	(revision 4c4b53c4c79a79546306e9d3966c284e8853b2fb)
@@ -0,0 +1,133 @@
+/*
+ * Copyright (c) 2014 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef KERN_ARCH_ISTATE_STRUCT_H_
+#define KERN_ARCH_ISTATE_STRUCT_H_
+
+#define ISTATE_OFFSET_SP_FRAME  0x00
+#define ISTATE_OFFSET_LR_FRAME  0x04
+#define ISTATE_OFFSET_R0        0x08
+#define ISTATE_OFFSET_R2        0x0c
+#define ISTATE_OFFSET_R3        0x10
+#define ISTATE_OFFSET_R4        0x14
+#define ISTATE_OFFSET_R5        0x18
+#define ISTATE_OFFSET_R6        0x1c
+#define ISTATE_OFFSET_R7        0x20
+#define ISTATE_OFFSET_R8        0x24
+#define ISTATE_OFFSET_R9        0x28
+#define ISTATE_OFFSET_R10       0x2c
+#define ISTATE_OFFSET_R11       0x30
+#define ISTATE_OFFSET_R13       0x34
+#define ISTATE_OFFSET_R14       0x38
+#define ISTATE_OFFSET_R15       0x3c
+#define ISTATE_OFFSET_R16       0x40
+#define ISTATE_OFFSET_R17       0x44
+#define ISTATE_OFFSET_R18       0x48
+#define ISTATE_OFFSET_R19       0x4c
+#define ISTATE_OFFSET_R20       0x50
+#define ISTATE_OFFSET_R21       0x54
+#define ISTATE_OFFSET_R22       0x58
+#define ISTATE_OFFSET_R23       0x5c
+#define ISTATE_OFFSET_R24       0x60
+#define ISTATE_OFFSET_R25       0x64
+#define ISTATE_OFFSET_R26       0x68
+#define ISTATE_OFFSET_R27       0x6c
+#define ISTATE_OFFSET_R28       0x70
+#define ISTATE_OFFSET_R29       0x74
+#define ISTATE_OFFSET_R30       0x78
+#define ISTATE_OFFSET_R31       0x7c
+#define ISTATE_OFFSET_CR        0x80
+#define ISTATE_OFFSET_PC        0x84
+#define ISTATE_OFFSET_SRR1      0x88
+#define ISTATE_OFFSET_LR        0x8c
+#define ISTATE_OFFSET_CTR       0x90
+#define ISTATE_OFFSET_XER       0x94
+#define ISTATE_OFFSET_DAR       0x98
+#define ISTATE_OFFSET_R12       0x9c
+#define ISTATE_OFFSET_SP        0xa0
+#define ISTATE_SIZE             0xa4
+
+#ifndef __ASSEMBLER__
+
+#include <stdint.h>
+
+#ifdef KERNEL
+#include <typedefs.h>
+#else
+#include <stddef.h>
+#endif
+
+typedef struct istate {
+	/* imitation of frame pointer linkage */
+	uint32_t sp_frame;
+	/* imitation of return adress linkage */
+	uint32_t lr_frame;
+	uint32_t r0;
+	uint32_t r2;
+	uint32_t r3;
+	uint32_t r4;
+	uint32_t r5;
+	uint32_t r6;
+	uint32_t r7;
+	uint32_t r8;
+	uint32_t r9;
+	uint32_t r10;
+	uint32_t r11;
+	uint32_t r13;
+	uint32_t r14;
+	uint32_t r15;
+	uint32_t r16;
+	uint32_t r17;
+	uint32_t r18;
+	uint32_t r19;
+	uint32_t r20;
+	uint32_t r21;
+	uint32_t r22;
+	uint32_t r23;
+	uint32_t r24;
+	uint32_t r25;
+	uint32_t r26;
+	uint32_t r27;
+	uint32_t r28;
+	uint32_t r29;
+	uint32_t r30;
+	uint32_t r31;
+	uint32_t cr;
+	uint32_t pc;
+	uint32_t srr1;
+	uint32_t lr;
+	uint32_t ctr;
+	uint32_t xer;
+	uint32_t dar;
+	uint32_t r12;
+	uint32_t sp;
+} istate_t;
+
+#endif
+#endif
+
