~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/asm-generic/user.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/asm-generic/user.h (Version linux-6.12-rc7) and /include/asm-m68k/user.h (Version linux-2.4.37.11)


  1 #ifndef __ASM_GENERIC_USER_H                   !!   1 #ifndef _M68K_USER_H
  2 #define __ASM_GENERIC_USER_H                   !!   2 #define _M68K_USER_H
  3 /*                                             << 
  4  * This file may define a 'struct user' struct << 
  5  * used for a.out files, which are not support << 
  6  */                                            << 
  7                                                     3 
  8 #endif  /* __ASM_GENERIC_USER_H */             !!   4 #include <asm/page.h>
                                                   >>   5 
                                                   >>   6 /* Core file format: The core file is written in such a way that gdb
                                                   >>   7    can understand it and provide useful information to the user (under
                                                   >>   8    linux we use the 'trad-core' bfd).  There are quite a number of
                                                   >>   9    obstacles to being able to view the contents of the floating point
                                                   >>  10    registers, and until these are solved you will not be able to view the
                                                   >>  11    contents of them.  Actually, you can read in the core file and look at
                                                   >>  12    the contents of the user struct to find out what the floating point
                                                   >>  13    registers contain.
                                                   >>  14    The actual file contents are as follows:
                                                   >>  15    UPAGE: 1 page consisting of a user struct that tells gdb what is present
                                                   >>  16    in the file.  Directly after this is a copy of the task_struct, which
                                                   >>  17    is currently not used by gdb, but it may come in useful at some point.
                                                   >>  18    All of the registers are stored as part of the upage.  The upage should
                                                   >>  19    always be only one page.
                                                   >>  20    DATA: The data area is stored.  We use current->end_text to
                                                   >>  21    current->brk to pick up all of the user variables, plus any memory
                                                   >>  22    that may have been malloced.  No attempt is made to determine if a page
                                                   >>  23    is demand-zero or if a page is totally unused, we just cover the entire
                                                   >>  24    range.  All of the addresses are rounded in such a way that an integral
                                                   >>  25    number of pages is written.
                                                   >>  26    STACK: We need the stack information in order to get a meaningful
                                                   >>  27    backtrace.  We need to write the data from (esp) to
                                                   >>  28    current->start_stack, so we round each of these off in order to be able
                                                   >>  29    to write an integer number of pages.
                                                   >>  30    The minimum core file size is 3 pages, or 12288 bytes.
                                                   >>  31 */
                                                   >>  32 
                                                   >>  33 struct user_m68kfp_struct {
                                                   >>  34         unsigned long  fpregs[8*3];     /* fp0-fp7 registers */
                                                   >>  35         unsigned long  fpcntl[3];       /* fp control regs */
                                                   >>  36 };
                                                   >>  37 
                                                   >>  38 /* This is the old layout of "struct pt_regs" as of Linux 1.x, and
                                                   >>  39    is still the layout used by user (the new pt_regs doesn't have
                                                   >>  40    all registers). */
                                                   >>  41 struct user_regs_struct {
                                                   >>  42         long d1,d2,d3,d4,d5,d6,d7;
                                                   >>  43         long a0,a1,a2,a3,a4,a5,a6;
                                                   >>  44         long d0;
                                                   >>  45         long usp;
                                                   >>  46         long orig_d0;
                                                   >>  47         short stkadj;
                                                   >>  48         short sr;
                                                   >>  49         long pc;
                                                   >>  50         short fmtvec;
                                                   >>  51         short __fill;
                                                   >>  52 };
                                                   >>  53 
                                                   >>  54         
                                                   >>  55 /* When the kernel dumps core, it starts by dumping the user struct -
                                                   >>  56    this will be used by gdb to figure out where the data and stack segments
                                                   >>  57    are within the file, and what virtual addresses to use. */
                                                   >>  58 struct user{
                                                   >>  59 /* We start with the registers, to mimic the way that "memory" is returned
                                                   >>  60    from the ptrace(3,...) function.  */
                                                   >>  61   struct user_regs_struct regs; /* Where the registers are actually stored */
                                                   >>  62 /* ptrace does not yet supply these.  Someday.... */
                                                   >>  63   int u_fpvalid;                /* True if math co-processor being used. */
                                                   >>  64                                 /* for this mess. Not yet used. */
                                                   >>  65   struct user_m68kfp_struct m68kfp; /* Math Co-processor registers. */
                                                   >>  66 /* The rest of this junk is to help gdb figure out what goes where */
                                                   >>  67   unsigned long int u_tsize;    /* Text segment size (pages). */
                                                   >>  68   unsigned long int u_dsize;    /* Data segment size (pages). */
                                                   >>  69   unsigned long int u_ssize;    /* Stack segment size (pages). */
                                                   >>  70   unsigned long start_code;     /* Starting virtual address of text. */
                                                   >>  71   unsigned long start_stack;    /* Starting virtual address of stack area.
                                                   >>  72                                    This is actually the bottom of the stack,
                                                   >>  73                                    the top of the stack is always found in the
                                                   >>  74                                    esp register.  */
                                                   >>  75   long int signal;              /* Signal that caused the core dump. */
                                                   >>  76   int reserved;                 /* No longer used */
                                                   >>  77   struct user_regs_struct *u_ar0;
                                                   >>  78                                 /* Used by gdb to help find the values for */
                                                   >>  79                                 /* the registers. */
                                                   >>  80   struct user_m68kfp_struct* u_fpstate; /* Math Co-processor pointer. */
                                                   >>  81   unsigned long magic;          /* To uniquely identify a core file */
                                                   >>  82   char u_comm[32];              /* User command that was responsible */
                                                   >>  83 };
                                                   >>  84 #define NBPG PAGE_SIZE
                                                   >>  85 #define UPAGES 1
                                                   >>  86 #define HOST_TEXT_START_ADDR (u.start_code)
                                                   >>  87 #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
                                                   >>  88 
                                                   >>  89 #endif
  9                                                    90 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php