• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/arch/x86/ia32/

Lines Matching refs:dump

47  * fill in the user structure for a core dump..
49 static void dump_thread32(struct pt_regs *regs, struct user32 *dump)
54 dump->magic = CMAGIC;
55 dump->start_code = 0;
56 dump->start_stack = regs->sp & ~(PAGE_SIZE - 1);
57 dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT;
58 dump->u_dsize = ((unsigned long)
60 dump->u_dsize -= dump->u_tsize;
61 dump->u_ssize = 0;
62 dump->u_debugreg[0] = current->thread.debugreg0;
63 dump->u_debugreg[1] = current->thread.debugreg1;
64 dump->u_debugreg[2] = current->thread.debugreg2;
65 dump->u_debugreg[3] = current->thread.debugreg3;
66 dump->u_debugreg[4] = 0;
67 dump->u_debugreg[5] = 0;
68 dump->u_debugreg[6] = current->thread.debugreg6;
69 dump->u_debugreg[7] = current->thread.debugreg7;
71 if (dump->start_stack < 0xc0000000) {
74 tmp = (unsigned long) (0xc0000000 - dump->start_stack);
75 dump->u_ssize = tmp >> PAGE_SHIFT;
78 dump->regs.bx = regs->bx;
79 dump->regs.cx = regs->cx;
80 dump->regs.dx = regs->dx;
81 dump->regs.si = regs->si;
82 dump->regs.di = regs->di;
83 dump->regs.bp = regs->bp;
84 dump->regs.ax = regs->ax;
85 dump->regs.ds = current->thread.ds;
86 dump->regs.es = current->thread.es;
88 dump->regs.fs = fs;
90 dump->regs.gs = gs;
91 dump->regs.orig_ax = regs->orig_ax;
92 dump->regs.ip = regs->ip;
93 dump->regs.cs = regs->cs;
94 dump->regs.flags = regs->flags;
95 dump->regs.sp = regs->sp;
96 dump->regs.ss = regs->ss;
98 dump->u_fpvalid = 0;
144 * Routine writes a core dump image in the current directory.
147 * Note that setuid/setgid files won't make a core-dump if the uid/gid
159 struct user32 dump;
165 strncpy(dump.u_comm, current->comm, sizeof(current->comm));
166 dump.u_ar0 = offsetof(struct user32, regs);
167 dump.signal = signr;
168 dump_thread32(regs, &dump);
171 * If the size of the dump file exceeds the rlimit, then see
175 if ((dump.u_dsize + dump.u_ssize + 1) * PAGE_SIZE > limit)
176 dump.u_dsize = 0;
179 if ((dump.u_ssize + 1) * PAGE_SIZE > limit)
180 dump.u_ssize = 0;
182 /* make sure we actually have a data and stack area to dump */
184 if (!access_ok(VERIFY_READ, (void *) (unsigned long)START_DATA(dump),
185 dump.u_dsize << PAGE_SHIFT))
186 dump.u_dsize = 0;
187 if (!access_ok(VERIFY_READ, (void *) (unsigned long)START_STACK(dump),
188 dump.u_ssize << PAGE_SHIFT))
189 dump.u_ssize = 0;
193 DUMP_WRITE(&dump, sizeof(dump));
194 /* Now dump all of the user data. Include malloced stuff as well */
199 if (dump.u_dsize != 0) {
200 dump_start = START_DATA(dump);
201 dump_size = dump.u_dsize << PAGE_SHIFT;
204 /* Now prepare to dump the stack area */
205 if (dump.u_ssize != 0) {
206 dump_start = START_STACK(dump);
207 dump_size = dump.u_ssize << PAGE_SHIFT;