Lines Matching refs:dump

53 static void dump_thread32(struct pt_regs *regs, struct user32 *dump)  in dump_thread32()  argument
56 memset(dump, 0, sizeof(*dump)); in dump_thread32()
59 dump->magic = CMAGIC; in dump_thread32()
60 dump->start_code = 0; in dump_thread32()
61 dump->start_stack = regs->sp & ~(PAGE_SIZE - 1); in dump_thread32()
62 dump->u_tsize = ((unsigned long) current->mm->end_code) >> PAGE_SHIFT; in dump_thread32()
63 dump->u_dsize = ((unsigned long) in dump_thread32()
65 dump->u_dsize -= dump->u_tsize; in dump_thread32()
66 dump->u_debugreg[0] = get_dr(0); in dump_thread32()
67 dump->u_debugreg[1] = get_dr(1); in dump_thread32()
68 dump->u_debugreg[2] = get_dr(2); in dump_thread32()
69 dump->u_debugreg[3] = get_dr(3); in dump_thread32()
70 dump->u_debugreg[6] = current->thread.debugreg6; in dump_thread32()
71 dump->u_debugreg[7] = current->thread.ptrace_dr7; in dump_thread32()
73 if (dump->start_stack < 0xc0000000) { in dump_thread32()
76 tmp = (unsigned long) (0xc0000000 - dump->start_stack); in dump_thread32()
77 dump->u_ssize = tmp >> PAGE_SHIFT; in dump_thread32()
80 dump->regs.ebx = regs->bx; in dump_thread32()
81 dump->regs.ecx = regs->cx; in dump_thread32()
82 dump->regs.edx = regs->dx; in dump_thread32()
83 dump->regs.esi = regs->si; in dump_thread32()
84 dump->regs.edi = regs->di; in dump_thread32()
85 dump->regs.ebp = regs->bp; in dump_thread32()
86 dump->regs.eax = regs->ax; in dump_thread32()
87 dump->regs.ds = current->thread.ds; in dump_thread32()
88 dump->regs.es = current->thread.es; in dump_thread32()
90 dump->regs.fs = fs; in dump_thread32()
92 dump->regs.gs = gs; in dump_thread32()
93 dump->regs.orig_eax = regs->orig_ax; in dump_thread32()
94 dump->regs.eip = regs->ip; in dump_thread32()
95 dump->regs.cs = regs->cs; in dump_thread32()
96 dump->regs.eflags = regs->flags; in dump_thread32()
97 dump->regs.esp = regs->sp; in dump_thread32()
98 dump->regs.ss = regs->ss; in dump_thread32()
101 dump->u_fpvalid = 0; in dump_thread32()
103 dump->u_fpvalid = dump_fpu(regs, &dump->i387); in dump_thread32()
154 struct user32 dump; in aout_core_dump() local
159 strncpy(dump.u_comm, current->comm, sizeof(current->comm)); in aout_core_dump()
160 dump.u_ar0 = offsetof(struct user32, regs); in aout_core_dump()
161 dump.signal = cprm->siginfo->si_signo; in aout_core_dump()
162 dump_thread32(cprm->regs, &dump); in aout_core_dump()
169 if ((dump.u_dsize + dump.u_ssize + 1) * PAGE_SIZE > cprm->limit) in aout_core_dump()
170 dump.u_dsize = 0; in aout_core_dump()
173 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit) in aout_core_dump()
174 dump.u_ssize = 0; in aout_core_dump()
178 if (!access_ok(VERIFY_READ, (void *) (unsigned long)START_DATA(dump), in aout_core_dump()
179 dump.u_dsize << PAGE_SHIFT)) in aout_core_dump()
180 dump.u_dsize = 0; in aout_core_dump()
181 if (!access_ok(VERIFY_READ, (void *) (unsigned long)START_STACK(dump), in aout_core_dump()
182 dump.u_ssize << PAGE_SHIFT)) in aout_core_dump()
183 dump.u_ssize = 0; in aout_core_dump()
187 if (!dump_emit(cprm, &dump, sizeof(dump))) in aout_core_dump()
190 if (!dump_skip(cprm, PAGE_SIZE - sizeof(dump))) in aout_core_dump()
195 if (dump.u_dsize != 0) { in aout_core_dump()
196 dump_start = START_DATA(dump); in aout_core_dump()
197 dump_size = dump.u_dsize << PAGE_SHIFT; in aout_core_dump()
202 if (dump.u_ssize != 0) { in aout_core_dump()
203 dump_start = START_STACK(dump); in aout_core_dump()
204 dump_size = dump.u_ssize << PAGE_SHIFT; in aout_core_dump()