]> git.saurik.com Git - apple/objc4.git/blob - runtime/objc-auto-dump.h
objc4-532.2.tar.gz
[apple/objc4.git] / runtime / objc-auto-dump.h
1 //
2 // objc-auto-dump.h
3 // objc
4 // The raw dump file format
5 // See objc-gdb.h for the primitive.
6 //
7 // Created by Blaine Garst on 12/8/08.
8 // Copyright 2008 Apple, Inc. All rights reserved.
9 //
10 #ifndef _OBJC_AUTO_DUMP_H_
11 #define _OBJC_AUTO_DUMP_H_
12
13 /*
14 * Raw file format definitions
15 */
16
17 // must be unique in first letter...
18 // RAW FORMAT
19 #define HEADER "dumpster"
20 #define THREAD 't'
21 #define LOCAL 'l'
22 #define NODE 'n'
23 #define REGISTER 'r'
24 #define ROOT 'g'
25 #define WEAK 'w'
26 #define CLASS 'c'
27 #define END 'e'
28
29 #define SixtyFour 1
30 #define Little 2
31
32 /*
33
34 Raw format, not that anyone should really care. Most programs should use the cooked file reader.
35
36 <rawfile := <header> <arch> <middle>* <end>
37 <header> := 'd' 'u' 'm' 'p' 's' 't' 'e' 'r' ; the HEADER string
38 <arch> := SixtyFour? + Little? ; architecture
39 <middle> := <thread> | <root> | <node> | <weak> | <class>
40 <thread> := <register> <stack> <local>* ; the triple
41 <register> := 'r' longLength [bytes] ; the register bank
42 <stack> := 't' longLength [bytes] ; the stack
43 <local> := 'l' [long] ; a thread local node
44 <root> := 'g' longAddress longValue
45 <node> := 'n' longAddress longSize intLayout longRefcount longIsa?
46 <weak> := 'w' longAddress longValue
47 <class> := 'c' longAddress <name> <strongLayout> <weakLayout>
48 <name> := intLength [bytes] ; no null byte
49 <strongLayout> := intLength [bytes] ; including 0 byte at end
50 <weakLayout> := intLength [bytes] ; including 0 byte at end
51 <end> := 'e'
52
53 */
54
55 #endif