Access udata "break" member from asm
authorTormod Volden <debian.tormod@gmail.com>
Thu, 4 Jun 2015 07:40:44 +0000 (09:40 +0200)
committerAlan Cox <alan@linux.intel.com>
Thu, 4 Jun 2015 09:15:19 +0000 (10:15 +0100)
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Kernel/include/kernel.h
Kernel/kernel.def
Kernel/kernel02.def
Kernel/kernel09.def

index 288bf3b..4220b58 100644 (file)
@@ -381,6 +381,7 @@ typedef struct u_data {
     arg_t       u_argn3;        /* Fourth C argument */
     void *      u_isp;          /* Value of initial sp (argv) */
     usize_t    u_top;          /* Top of memory for this task */
+    uaddr_t    u_break;        /* Top of data space */
     int     (*u_sigvec[NSIGS])(int);   /* Array of signal vectors */
     /**** If you change this top section, also update offsets in "kernel.def" ****/
 
@@ -397,7 +398,6 @@ typedef struct u_data {
     uint16_t    u_gid;
     uint16_t    u_euid;
     uint16_t    u_egid;
-    uaddr_t     u_break;        /* Top of data space */
     char        u_name[8];      /* Name invoked with */
     clock_t     u_utime;        /* Elapsed ticks in user mode */
     clock_t     u_stime;        /* Ticks in system mode */
index b2987db..1bf50bb 100644 (file)
@@ -16,7 +16,8 @@ U_DATA__U_ARGN2             .equ (U_DATA+22)  ; uint16_t
 U_DATA__U_ARGN3             .equ (U_DATA+24)  ; uint16_t
 U_DATA__U_ISP               .equ (U_DATA+26)  ; void * (initial stack pointer when _exec()ing)
 U_DATA__U_TOP               .equ (U_DATA+28)  ; uint16_t
-U_DATA__U_SIGVEC            .equ (U_DATA+30)  ; table of function pointers (void *)
+U_DATA__U_BREAK             .equ (U_DATA+30)  ; uint16_t
+U_DATA__U_SIGVEC            .equ (U_DATA+32)  ; table of function pointers (void *)
 
 ; Keep these in sync with struct p_tab!!
 P_TAB__P_STATUS_OFFSET      .equ 0
index 35d31f4..32c6413 100644 (file)
@@ -16,7 +16,8 @@ U_DATA__U_ARGN2             .set (U_DATA+22)  ; uint16_t
 U_DATA__U_ARGN3             .set (U_DATA+24)  ; uint16_t
 U_DATA__U_ISP               .set (U_DATA+26)  ; void * (initial stack pointer when _exec()ing)
 U_DATA__U_TOP               .set (U_DATA+28)  ; uint16_t
-U_DATA__U_SIGVEC            .set (U_DATA+30)  ; table of function pointers (void *)
+U_DATA__U_BREAK             .set (U_DATA+30)  ; uint16_t
+U_DATA__U_SIGVEC            .set (U_DATA+32)  ; table of function pointers (void *)
 
 ; Keep these in sync with struct p_tab!!
 P_TAB__P_STATUS_OFFSET      .set 0
index d6eeabb..a627a84 100644 (file)
@@ -16,7 +16,8 @@ U_DATA__U_ARGN2             equ (U_DATA+22)  ; uint16_t
 U_DATA__U_ARGN3             equ (U_DATA+24)  ; uint16_t
 U_DATA__U_ISP               equ (U_DATA+26)  ; void * (initial stack pointer when _exec()ing)
 U_DATA__U_TOP               equ (U_DATA+28)  ; uint16_t
-U_DATA__U_SIGVEC            equ (U_DATA+30)  ; table of function pointers (void *)
+U_DATA__U_BREAK             equ (U_DATA+30)  ; uint16_t
+U_DATA__U_SIGVEC            equ (U_DATA+32)  ; table of function pointers (void *)
 
 ; Keep these in sync with struct p_tab!!
 P_TAB__P_STATUS_OFFSET      equ 0