Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(647)

Side by Side Diff: src/trusted/service_runtime/linux/nacl_signal_mips.c

Issue 10919162: [MIPS] Implementation of sel_ldr for MIPS architecture. (Closed) Base URL: http://src.chromium.org/native_client/trunk/src/native_client/
Patch Set: Second update per Mark's comments. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2012 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file.
5 */
6
7 #include <signal.h>
8 #include <sys/ucontext.h>
9
10 #include "native_client/src/trusted/service_runtime/nacl_signal.h"
11
12 /*
13 * Fill a signal context structure from the raw platform dependant
Mark Seaborn 2012/09/18 03:24:34 "dependent"
petarj 2012/09/19 17:27:51 Done.
14 * signal information.
15 */
16 void NaClSignalContextFromHandler(struct NaClSignalContext *sigCtx,
17 const void *rawCtx) {
18 // TODO(petarj): Check whether float registers should be added here.
Mark Seaborn 2012/09/18 03:24:34 Nit: Please use C-style /* ... */ comments
petarj 2012/09/19 17:27:51 Done.
19 ucontext_t *uctx = (ucontext_t *) rawCtx;
20 mcontext_t *mctx = &uctx->uc_mcontext;
21
22 sigCtx->prog_ctr = mctx->pc;
23
24 sigCtx->zero = mctx->gregs[0];
25 sigCtx->at = mctx->gregs[1];
26 sigCtx->v0 = mctx->gregs[2];
27 sigCtx->v1 = mctx->gregs[3];
28 sigCtx->a0 = mctx->gregs[4];
29 sigCtx->a1 = mctx->gregs[5];
30 sigCtx->a2 = mctx->gregs[6];
31 sigCtx->a3 = mctx->gregs[7];
32 sigCtx->t0 = mctx->gregs[8];
33 sigCtx->t1 = mctx->gregs[9];
34 sigCtx->t2 = mctx->gregs[10];
35 sigCtx->t3 = mctx->gregs[11];
36 sigCtx->t4 = mctx->gregs[12];
37 sigCtx->t5 = mctx->gregs[13];
38 sigCtx->t6 = mctx->gregs[14];
39 sigCtx->t7 = mctx->gregs[15];
40 sigCtx->s0 = mctx->gregs[16];
41 sigCtx->s1 = mctx->gregs[17];
42 sigCtx->s2 = mctx->gregs[18];
43 sigCtx->s3 = mctx->gregs[19];
44 sigCtx->s4 = mctx->gregs[20];
45 sigCtx->s5 = mctx->gregs[21];
46 sigCtx->s6 = mctx->gregs[22];
47 sigCtx->s7 = mctx->gregs[23];
48 sigCtx->t8 = mctx->gregs[24];
49 sigCtx->t9 = mctx->gregs[25];
50 sigCtx->k0 = mctx->gregs[26];
51 sigCtx->k1 = mctx->gregs[27];
52 sigCtx->global_ptr = mctx->gregs[28];
53 sigCtx->stack_ptr = mctx->gregs[29];
54 sigCtx->frame_ptr = mctx->gregs[30];
55 sigCtx->return_addr = mctx->gregs[31];
56 }
57
58
59 /*
60 * Update the raw platform dependant signal information from the
Mark Seaborn 2012/09/18 03:24:34 "dependent"
petarj 2012/09/19 17:27:51 Done.
61 * signal context structure.
62 */
63 void NaClSignalContextToHandler(void *rawCtx,
64 const struct NaClSignalContext *sigCtx) {
65 ucontext_t *uctx = (ucontext_t *) rawCtx;
66 mcontext_t *mctx = &uctx->uc_mcontext;
67
68 mctx->pc = sigCtx->prog_ctr;
69
70 mctx->gregs[0] = sigCtx->zero;
71 mctx->gregs[1] = sigCtx->at;
72 mctx->gregs[2] = sigCtx->v0;
73 mctx->gregs[3] = sigCtx->v1;
74 mctx->gregs[4] = sigCtx->a0;
75 mctx->gregs[5] = sigCtx->a1;
76 mctx->gregs[6] = sigCtx->a2;
77 mctx->gregs[7] = sigCtx->a3;
78 mctx->gregs[8] = sigCtx->t0;
79 mctx->gregs[9] = sigCtx->t1;
80 mctx->gregs[10] = sigCtx->t2;
81 mctx->gregs[11] = sigCtx->t3;
82 mctx->gregs[12] = sigCtx->t4;
83 mctx->gregs[13] = sigCtx->t5;
84 mctx->gregs[14] = sigCtx->t6;
85 mctx->gregs[15] = sigCtx->t7;
86 mctx->gregs[16] = sigCtx->s0;
87 mctx->gregs[17] = sigCtx->s1;
88 mctx->gregs[18] = sigCtx->s2;
89 mctx->gregs[19] = sigCtx->s3;
90 mctx->gregs[20] = sigCtx->s4;
91 mctx->gregs[21] = sigCtx->s5;
92 mctx->gregs[22] = sigCtx->s6;
93 mctx->gregs[23] = sigCtx->s7;
94 mctx->gregs[24] = sigCtx->t8;
95 mctx->gregs[25] = sigCtx->t9;
96 mctx->gregs[26] = sigCtx->k0;
97 mctx->gregs[27] = sigCtx->k1;
98 mctx->gregs[28] = sigCtx->global_ptr;
99 mctx->gregs[29] = sigCtx->stack_ptr;
100 mctx->gregs[30] = sigCtx->frame_ptr;
101 mctx->gregs[31] = sigCtx->return_addr;
102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698