Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(2)

Delta Between Two Patch Sets: src/pkg/debug/plan9obj/plan9obj.go

Issue 49970044: code review 49970044: debug/plan9obj: implement parsing of Plan 9 a.out execu... (Closed)
Left Patch Set: diff -r 7ecbc2b8ec97 https://code.google.com/p/go Created 11 years, 2 months ago
Right Patch Set: diff -r f9e8a970798c https://code.google.com/p/go Created 11 years, 1 month ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « src/pkg/debug/plan9obj/file_test.go ('k') | src/pkg/debug/plan9obj/testdata/386-plan9-exec » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 // Copyright 2014 The Go Authors. All rights reserved. 1 // Copyright 2014 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 /* 5 /*
6 * Plan 9 a.out constants and data structures 6 * Plan 9 a.out constants and data structures
7 */ 7 */
8 8
9 package plan9obj 9 package plan9obj
10 10
(...skipping 15 matching lines...) Expand all
26 } 26 }
27 27
28 // Plan 9 symbol table entries. 28 // Plan 9 symbol table entries.
29 type sym struct { 29 type sym struct {
30 value uint64 30 value uint64
31 typ byte 31 typ byte
32 name []byte 32 name []byte
33 } 33 }
34 34
35 const ( 35 const (
36 » hsize = 4 * 8 36 » hsize = 4 * 8
37 » HDR_MAGIC = 0x00008000 /* header expansion */ 37 » _HDR_MAGIC = 0x00008000 /* header expansion */
rsc 2014/01/22 21:32:07 Please unexported all these constants until we kno
38 ) 38 )
39 39
40 func magic(f, b int) string { 40 func magic(f, b int) string {
41 buf := new(bytes.Buffer) 41 buf := new(bytes.Buffer)
42 var i uint32 = uint32((f) | ((((4 * (b)) + 0) * (b)) + 7)) 42 var i uint32 = uint32((f) | ((((4 * (b)) + 0) * (b)) + 7))
43 binary.Write(buf, binary.BigEndian, i) 43 binary.Write(buf, binary.BigEndian, i)
44 return string(buf.Bytes()) 44 return string(buf.Bytes())
45 } 45 }
46 46
47 var ( 47 var (
48 » A_MAGIC = magic(0, 8) /* 68020 (retired) */ 48 » _A_MAGIC = magic(0, 8) /* 68020 (retired) */
49 » I_MAGIC = magic(0, 11) /* intel 386 */ 49 » _I_MAGIC = magic(0, 11) /* intel 386 */
50 » J_MAGIC = magic(0, 12) /* intel 960 (retired) */ 50 » _J_MAGIC = magic(0, 12) /* intel 960 (retired) */
51 » K_MAGIC = magic(0, 13) /* sparc */ 51 » _K_MAGIC = magic(0, 13) /* sparc */
52 » V_MAGIC = magic(0, 16) /* mips 3000 BE */ 52 » _V_MAGIC = magic(0, 16) /* mips 3000 BE */
53 » X_MAGIC = magic(0, 17) /* att dsp 3210 (retired) */ 53 » _X_MAGIC = magic(0, 17) /* att dsp 3210 (retired) */
54 » M_MAGIC = magic(0, 18) /* mips 4000 BE */ 54 » _M_MAGIC = magic(0, 18) /* mips 4000 BE */
55 » D_MAGIC = magic(0, 19) /* amd 29000 (retired) */ 55 » _D_MAGIC = magic(0, 19) /* amd 29000 (retired) */
56 » E_MAGIC = magic(0, 20) /* arm */ 56 » _E_MAGIC = magic(0, 20) /* arm */
57 » Q_MAGIC = magic(0, 21) /* powerpc */ 57 » _Q_MAGIC = magic(0, 21) /* powerpc */
58 » N_MAGIC = magic(0, 22) /* mips 4000 LE */ 58 » _N_MAGIC = magic(0, 22) /* mips 4000 LE */
59 » L_MAGIC = magic(0, 23) /* dec alpha (retired) */ 59 » _L_MAGIC = magic(0, 23) /* dec alpha (retired) */
60 » P_MAGIC = magic(0, 24) /* mips 3000 LE */ 60 » _P_MAGIC = magic(0, 24) /* mips 3000 LE */
61 » U_MAGIC = magic(0, 25) /* sparc64 (retired) */ 61 » _U_MAGIC = magic(0, 25) /* sparc64 (retired) */
62 » S_MAGIC = magic(HDR_MAGIC, 26) /* amd64 */ 62 » _S_MAGIC = magic(_HDR_MAGIC, 26) /* amd64 */
63 » T_MAGIC = magic(HDR_MAGIC, 27) /* powerpc64 */ 63 » _T_MAGIC = magic(_HDR_MAGIC, 27) /* powerpc64 */
64 » R_MAGIC = magic(HDR_MAGIC, 28) /* arm64 */ 64 » _R_MAGIC = magic(_HDR_MAGIC, 28) /* arm64 */
65 ) 65 )
66 66
67 type ExecTable struct { 67 type ExecTable struct {
68 Magic string 68 Magic string
69 Ptrsz int 69 Ptrsz int
70 Hsize uint32 70 Hsize uint32
71 } 71 }
72 72
73 var exectab = []ExecTable{ 73 var exectab = []ExecTable{
74 » {A_MAGIC, 4, hsize}, 74 » {_A_MAGIC, 4, hsize},
75 » {I_MAGIC, 4, hsize}, 75 » {_I_MAGIC, 4, hsize},
76 » {J_MAGIC, 4, hsize}, 76 » {_J_MAGIC, 4, hsize},
77 » {K_MAGIC, 4, hsize}, 77 » {_K_MAGIC, 4, hsize},
78 » {V_MAGIC, 4, hsize}, 78 » {_V_MAGIC, 4, hsize},
79 » {X_MAGIC, 4, hsize}, 79 » {_X_MAGIC, 4, hsize},
80 » {M_MAGIC, 4, hsize}, 80 » {_M_MAGIC, 4, hsize},
81 » {D_MAGIC, 4, hsize}, 81 » {_D_MAGIC, 4, hsize},
82 » {E_MAGIC, 4, hsize}, 82 » {_E_MAGIC, 4, hsize},
83 » {Q_MAGIC, 4, hsize}, 83 » {_Q_MAGIC, 4, hsize},
84 » {N_MAGIC, 4, hsize}, 84 » {_N_MAGIC, 4, hsize},
85 » {L_MAGIC, 4, hsize}, 85 » {_L_MAGIC, 4, hsize},
86 » {P_MAGIC, 4, hsize}, 86 » {_P_MAGIC, 4, hsize},
87 » {U_MAGIC, 4, hsize}, 87 » {_U_MAGIC, 4, hsize},
88 » {S_MAGIC, 8, hsize + 8}, 88 » {_S_MAGIC, 8, hsize + 8},
89 » {T_MAGIC, 8, hsize + 8}, 89 » {_T_MAGIC, 8, hsize + 8},
90 » {R_MAGIC, 8, hsize + 8}, 90 » {_R_MAGIC, 8, hsize + 8},
91 } 91 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b