Mercurial > hg > CbC > CbC_gcc
comparison libiberty/simple-object.txh @ 68:561a7518be6b
update gcc-4.6
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 21 Aug 2011 07:07:55 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:f6334be47118 | 68:561a7518be6b |
---|---|
1 @c -*- mode: texinfo -*- | |
2 @deftypefn Extension {simple_object_read *} simple_object_open_read @ | |
3 (int @var{descriptor}, off_t @var{offset}, const char *{segment_name}, @ | |
4 const char **@var{errmsg}, int *@var{err}) | |
5 | |
6 Opens an object file for reading. Creates and returns an | |
7 @code{simple_object_read} pointer which may be passed to other | |
8 functions to extract data from the object file. | |
9 | |
10 @var{descriptor} holds a file descriptor which permits reading. | |
11 | |
12 @var{offset} is the offset into the file; this will be @code{0} in the | |
13 normal case, but may be a different value when reading an object file | |
14 in an archive file. | |
15 | |
16 @var{segment_name} is only used with the Mach-O file format used on | |
17 Darwin aka Mac OS X. It is required on that platform, and means to | |
18 only look at sections within the segment with that name. The | |
19 parameter is ignored on other systems. | |
20 | |
21 If an error occurs, this functions returns @code{NULL} and sets | |
22 @code{*@var{errmsg}} to an error string and sets @code{*@var{err}} to | |
23 an errno value or @code{0} if there is no relevant errno. | |
24 | |
25 @end deftypefn | |
26 | |
27 @deftypefn Extension {const char *} simple_object_find_sections @ | |
28 (simple_object_read *@var{simple_object}, int (*@var{pfn}) (void *@var{data}, @ | |
29 const char *@var{name}, off_t @var{offset}, off_t @var{length}), @ | |
30 void *@var{data}, int *@var{err}) | |
31 | |
32 This function calls @var{pfn} for each section in @var{simple_object}. | |
33 It calls @var{pfn} with the section name, the offset within the file | |
34 of the section contents, and the length of the section contents. The | |
35 offset within the file is relative to the offset passed to | |
36 @code{simple_object_open_read}. The @var{data} argument to this | |
37 function is passed along to @var{pfn}. | |
38 | |
39 If @var{pfn} returns @code{0}, the loop over the sections stops and | |
40 @code{simple_object_find_sections} returns. If @var{pfn} returns some | |
41 other value, the loop continues. | |
42 | |
43 On success @code{simple_object_find_sections} returns. On error it | |
44 returns an error string, and sets @code{*@var{err}} to an errno value | |
45 or @code{0} if there is no relevant errno. | |
46 | |
47 @end deftypefn | |
48 | |
49 @deftypefn Extension {int} simple_object_find_section @ | |
50 (simple_object_read *@var{simple_object} off_t *@var{offset}, @ | |
51 off_t *@var{length}, const char **@var{errmsg}, int *@var{err}) | |
52 | |
53 Look for the section @var{name} in @var{simple_object}. This returns | |
54 information for the first section with that name. | |
55 | |
56 If found, return 1 and set @code{*@var{offset}} to the offset in the | |
57 file of the section contents and set @code{*@var{length}} to the | |
58 length of the section contents. The value in @code{*@var{offset}} | |
59 will be relative to the offset passed to | |
60 @code{simple_object_open_read}. | |
61 | |
62 If the section is not found, and no error occurs, | |
63 @code{simple_object_find_section} returns @code{0} and set | |
64 @code{*@var{errmsg}} to @code{NULL}. | |
65 | |
66 If an error occurs, @code{simple_object_find_section} returns | |
67 @code{0}, sets @code{*@var{errmsg}} to an error message, and sets | |
68 @code{*@var{err}} to an errno value or @code{0} if there is no | |
69 relevant errno. | |
70 | |
71 @end deftypefn | |
72 | |
73 @deftypefn Extension {void} simple_object_release_read @ | |
74 (simple_object_read *@var{simple_object}) | |
75 | |
76 Release all resources associated with @var{simple_object}. This does | |
77 not close the file descriptor. | |
78 | |
79 @end deftypefn | |
80 | |
81 @deftypefn Extension {simple_object_attributes *} simple_object_fetch_attributes @ | |
82 (simple_object_read *@var{simple_object}, const char **@var{errmsg}, int *@var{err}) | |
83 | |
84 Fetch the attributes of @var{simple_object}. The attributes are | |
85 internal information such as the format of the object file, or the | |
86 architecture it was compiled for. This information will persist until | |
87 @code{simple_object_attributes_release} is called, even if | |
88 @var{simple_object} itself is released. | |
89 | |
90 On error this returns @code{NULL}, sets @code{*@var{errmsg}} to an | |
91 error message, and sets @code{*@var{err}} to an errno value or | |
92 @code{0} if there is no relevant errno. | |
93 | |
94 @end deftypefn | |
95 | |
96 @deftypefn Extension {const char *} simple_object_attributes_compare @ | |
97 (simple_object_attributes *@var{attrs1}, simple_object_attributes *@var{attrs2}, @ | |
98 int *@var{err}) | |
99 | |
100 Compare @var{attrs1} and @var{attrs2}. If they could be linked | |
101 together without error, return @code{NULL}. Otherwise, return an | |
102 error message and set @code{*@var{err}} to an errno value or @code{0} | |
103 if there is no relevant errno. | |
104 | |
105 @end deftypefn | |
106 | |
107 @deftypefn Extension {void} simple_object_release_attributes @ | |
108 (simple_object_attributes *@var{attrs}) | |
109 | |
110 Release all resources associated with @var{attrs}. | |
111 | |
112 @end deftypefn | |
113 | |
114 @deftypefn Extension {simple_object_write *} simple_object_start_write @ | |
115 (simple_object_attributes @var{attrs}, const char *@var{segment_name}, @ | |
116 const char **@var{errmsg}, int *@var{err}) | |
117 | |
118 Start creating a new object file using the object file format | |
119 described in @var{attrs}. You must fetch attribute information from | |
120 an existing object file before you can create a new one. There is | |
121 currently no support for creating an object file de novo. | |
122 | |
123 @var{segment_name} is only used with Mach-O as found on Darwin aka Mac | |
124 OS X. The parameter is required on that target. It means that all | |
125 sections are created within the named segment. It is ignored for | |
126 other object file formats. | |
127 | |
128 On error @code{simple_object_start_write} returns @code{NULL}, sets | |
129 @code{*@var{ERRMSG}} to an error message, and sets @code{*@var{err}} | |
130 to an errno value or @code{0} if there is no relevant errno. | |
131 | |
132 @end deftypefn | |
133 | |
134 @deftypefn Extension {simple_object_write_section *} simple_object_write_create_section @ | |
135 (simple_object_write *@var{simple_object}, const char *@var{name}, @ | |
136 unsigned int @var{align}, const char **@var{errmsg}, int *@var{err}) | |
137 | |
138 Add a section to @var{simple_object}. @var{name} is the name of the | |
139 new section. @var{align} is the required alignment expressed as the | |
140 number of required low-order 0 bits (e.g., 2 for alignment to a 32-bit | |
141 boundary). | |
142 | |
143 The section is created as containing data, readable, not writable, not | |
144 executable, not loaded at runtime. The section is not written to the | |
145 file until @code{simple_object_write_to_file} is called. | |
146 | |
147 On error this returns @code{NULL}, sets @code{*@var{errmsg}} to an | |
148 error message, and sets @code{*@var{err}} to an errno value or | |
149 @code{0} if there is no relevant errno. | |
150 | |
151 @end deftypefn | |
152 | |
153 @deftypefn Extension {const char *} simple_object_write_add_data @ | |
154 (simple_object_write *@var{simple_object}, @ | |
155 simple_object_write_section *@var{section}, const void *@var{buffer}, @ | |
156 size_t @var{size}, int @var{copy}, int *@var{err}) | |
157 | |
158 Add data @var{buffer}/@var{size} to @var{section} in | |
159 @var{simple_object}. If @var{copy} is non-zero, the data will be | |
160 copied into memory if necessary. If @var{copy} is zero, @var{buffer} | |
161 must persist until @code{simple_object_write_to_file} is called. is | |
162 released. | |
163 | |
164 On success this returns @code{NULL}. On error this returns an error | |
165 message, and sets @code{*@var{err}} to an errno value or 0 if there is | |
166 no relevant erro. | |
167 | |
168 @end deftypefn | |
169 | |
170 @deftypefn Extension {const char *} simple_object_write_to_file @ | |
171 (simple_object_write *@var{simple_object}, int @var{descriptor}, int *@var{err}) | |
172 | |
173 Write the complete object file to @var{descriptor}, an open file | |
174 descriptor. This writes out all the data accumulated by calls to | |
175 @code{simple_object_write_create_section} and | |
176 @var{simple_object_write_add_data}. | |
177 | |
178 This returns @code{NULL} on success. On error this returns an error | |
179 message and sets @code{*@var{err}} to an errno value or @code{0} if | |
180 there is no relevant errno. | |
181 | |
182 @end deftypefn | |
183 | |
184 @deftypefn Extension {void} simple_object_release_write @ | |
185 (simple_object_write *@var{simple_object}) | |
186 | |
187 Release all resources associated with @var{simple_object}. | |
188 | |
189 @end deftypefn |