1<abi-corpus architecture='elf-amd-x86_64' soname='libzfsbootenv.so.1'>
2  <elf-needed>
3    <dependency name='libzfs.so.4'/>
4    <dependency name='libnvpair.so.3'/>
5    <dependency name='libc.so.6'/>
6  </elf-needed>
7  <elf-function-symbols>
8    <elf-symbol name='_fini' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
9    <elf-symbol name='_init' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
10    <elf-symbol name='lzbe_add_pair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
11    <elf-symbol name='lzbe_bootenv_print' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
12    <elf-symbol name='lzbe_get_boot_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
13    <elf-symbol name='lzbe_nvlist_free' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
14    <elf-symbol name='lzbe_nvlist_get' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
15    <elf-symbol name='lzbe_nvlist_set' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
16    <elf-symbol name='lzbe_remove_pair' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
17    <elf-symbol name='lzbe_set_boot_device' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
18  </elf-function-symbols>
19  <abi-instr version='1.0' address-size='64' path='lzbe_device.c' comp-dir-path='/home/runner/work/zfs/zfs/lib/libzfsbootenv' language='LANG_C99'>
20    <type-decl name='int' size-in-bits='32' id='type-id-1'/>
21    <type-decl name='char' size-in-bits='8' id='type-id-2'/>
22    <qualified-type-def type-id='type-id-2' const='yes' id='type-id-3'/>
23    <pointer-type-def type-id='type-id-3' size-in-bits='64' id='type-id-4'/>
24    <pointer-type-def type-id='type-id-2' size-in-bits='64' id='type-id-5'/>
25    <pointer-type-def type-id='type-id-5' size-in-bits='64' id='type-id-6'/>
26    <function-decl name='lzbe_get_boot_device' mangled-name='lzbe_get_boot_device' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_get_boot_device'>
27      <parameter type-id='type-id-4' name='pool'/>
28      <parameter type-id='type-id-6' name='device'/>
29      <return type-id='type-id-1'/>
30    </function-decl>
31    <type-decl name='unnamed-enum-underlying-type' is-anonymous='yes' size-in-bits='32' alignment-in-bits='32' id='type-id-7'/>
32    <enum-decl name='lzbe_flags' id='type-id-8'>
33      <underlying-type type-id='type-id-7'/>
34      <enumerator name='lzbe_add' value='0'/>
35      <enumerator name='lzbe_replace' value='1'/>
36    </enum-decl>
37    <typedef-decl name='lzbe_flags_t' type-id='type-id-8' id='type-id-9'/>
38    <function-decl name='lzbe_set_boot_device' mangled-name='lzbe_set_boot_device' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_set_boot_device'>
39      <parameter type-id='type-id-4' name='pool'/>
40      <parameter type-id='type-id-9' name='flag'/>
41      <parameter type-id='type-id-4' name='device'/>
42      <return type-id='type-id-1'/>
43    </function-decl>
44    <type-decl name='void' id='type-id-10'/>
45    <function-decl name='libzfs_init' mangled-name='libzfs_init' visibility='default' binding='global' size-in-bits='64'>
46      <return type-id='type-id-10'/>
47    </function-decl>
48    <function-decl name='zpool_open' mangled-name='zpool_open' visibility='default' binding='global' size-in-bits='64'>
49      <return type-id='type-id-10'/>
50    </function-decl>
51    <function-decl name='zpool_get_bootenv' mangled-name='zpool_get_bootenv' visibility='default' binding='global' size-in-bits='64'>
52      <return type-id='type-id-10'/>
53    </function-decl>
54    <function-decl name='zpool_close' mangled-name='zpool_close' visibility='default' binding='global' size-in-bits='64'>
55      <return type-id='type-id-10'/>
56    </function-decl>
57    <function-decl name='libzfs_fini' mangled-name='libzfs_fini' visibility='default' binding='global' size-in-bits='64'>
58      <return type-id='type-id-10'/>
59    </function-decl>
60    <function-decl name='nvlist_lookup_string' mangled-name='nvlist_lookup_string' visibility='default' binding='global' size-in-bits='64'>
61      <return type-id='type-id-10'/>
62    </function-decl>
63    <function-decl name='nvlist_free' mangled-name='nvlist_free' visibility='default' binding='global' size-in-bits='64'>
64      <return type-id='type-id-10'/>
65    </function-decl>
66    <function-decl name='strdup' mangled-name='strdup' visibility='default' binding='global' size-in-bits='64'>
67      <return type-id='type-id-10'/>
68    </function-decl>
69    <function-decl name='__stack_chk_fail' mangled-name='__stack_chk_fail' visibility='default' binding='global' size-in-bits='64'>
70      <return type-id='type-id-10'/>
71    </function-decl>
72    <function-decl name='__asprintf_chk' mangled-name='__asprintf_chk' visibility='default' binding='global' size-in-bits='64'>
73      <return type-id='type-id-10'/>
74    </function-decl>
75    <function-decl name='__fprintf_chk' mangled-name='__fprintf_chk' visibility='default' binding='global' size-in-bits='64'>
76      <return type-id='type-id-10'/>
77    </function-decl>
78    <function-decl name='fnvlist_alloc' mangled-name='fnvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
79      <return type-id='type-id-10'/>
80    </function-decl>
81    <function-decl name='fnvlist_add_uint64' mangled-name='fnvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'>
82      <return type-id='type-id-10'/>
83    </function-decl>
84    <function-decl name='nvlist_exists' mangled-name='nvlist_exists' visibility='default' binding='global' size-in-bits='64'>
85      <return type-id='type-id-10'/>
86    </function-decl>
87    <function-decl name='zpool_set_bootenv' mangled-name='zpool_set_bootenv' visibility='default' binding='global' size-in-bits='64'>
88      <return type-id='type-id-10'/>
89    </function-decl>
90    <function-decl name='fnvlist_free' mangled-name='fnvlist_free' visibility='default' binding='global' size-in-bits='64'>
91      <return type-id='type-id-10'/>
92    </function-decl>
93    <function-decl name='fnvlist_add_string' mangled-name='fnvlist_add_string' visibility='default' binding='global' size-in-bits='64'>
94      <return type-id='type-id-10'/>
95    </function-decl>
96    <function-decl name='free' mangled-name='free' visibility='default' binding='global' size-in-bits='64'>
97      <return type-id='type-id-10'/>
98    </function-decl>
99    <function-decl name='nvlist_lookup_uint64' mangled-name='nvlist_lookup_uint64' visibility='default' binding='global' size-in-bits='64'>
100      <return type-id='type-id-10'/>
101    </function-decl>
102    <function-decl name='libzfs_error_description' mangled-name='libzfs_error_description' visibility='default' binding='global' size-in-bits='64'>
103      <return type-id='type-id-10'/>
104    </function-decl>
105    <function-decl name='fnvlist_remove' mangled-name='fnvlist_remove' visibility='default' binding='global' size-in-bits='64'>
106      <return type-id='type-id-10'/>
107    </function-decl>
108  </abi-instr>
109  <abi-instr version='1.0' address-size='64' path='lzbe_pair.c' comp-dir-path='/home/runner/work/zfs/zfs/lib/libzfsbootenv' language='LANG_C99'>
110    <pointer-type-def type-id='type-id-10' size-in-bits='64' id='type-id-11'/>
111    <function-decl name='lzbe_remove_pair' mangled-name='lzbe_remove_pair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_remove_pair'>
112      <parameter type-id='type-id-11' name='ptr'/>
113      <parameter type-id='type-id-4' name='key'/>
114      <return type-id='type-id-1'/>
115    </function-decl>
116    <type-decl name='unsigned long int' size-in-bits='64' id='type-id-12'/>
117    <typedef-decl name='size_t' type-id='type-id-12' id='type-id-13'/>
118    <function-decl name='lzbe_add_pair' mangled-name='lzbe_add_pair' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_add_pair'>
119      <parameter type-id='type-id-11' name='ptr'/>
120      <parameter type-id='type-id-4' name='key'/>
121      <parameter type-id='type-id-4' name='type'/>
122      <parameter type-id='type-id-11' name='value'/>
123      <parameter type-id='type-id-13' name='size'/>
124      <return type-id='type-id-1'/>
125    </function-decl>
126    <function-decl name='lzbe_nvlist_free' mangled-name='lzbe_nvlist_free' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_free'>
127      <parameter type-id='type-id-11' name='ptr'/>
128      <return type-id='type-id-10'/>
129    </function-decl>
130    <function-decl name='lzbe_nvlist_set' mangled-name='lzbe_nvlist_set' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_set'>
131      <parameter type-id='type-id-4' name='pool'/>
132      <parameter type-id='type-id-4' name='key'/>
133      <parameter type-id='type-id-11' name='ptr'/>
134      <return type-id='type-id-1'/>
135    </function-decl>
136    <pointer-type-def type-id='type-id-11' size-in-bits='64' id='type-id-14'/>
137    <function-decl name='lzbe_nvlist_get' mangled-name='lzbe_nvlist_get' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_nvlist_get'>
138      <parameter type-id='type-id-4' name='pool'/>
139      <parameter type-id='type-id-4' name='key'/>
140      <parameter type-id='type-id-14' name='ptr'/>
141      <return type-id='type-id-1'/>
142    </function-decl>
143    <function-decl name='nvlist_remove_all' mangled-name='nvlist_remove_all' visibility='default' binding='global' size-in-bits='64'>
144      <return type-id='type-id-10'/>
145    </function-decl>
146    <function-decl name='strcmp' mangled-name='strcmp' visibility='default' binding='global' size-in-bits='64'>
147      <return type-id='type-id-10'/>
148    </function-decl>
149    <function-decl name='nvlist_add_uint8_array' mangled-name='nvlist_add_uint8_array' visibility='default' binding='global' size-in-bits='64'>
150      <return type-id='type-id-10'/>
151    </function-decl>
152    <function-decl name='nvlist_add_byte' mangled-name='nvlist_add_byte' visibility='default' binding='global' size-in-bits='64'>
153      <return type-id='type-id-10'/>
154    </function-decl>
155    <function-decl name='nvlist_add_int16' mangled-name='nvlist_add_int16' visibility='default' binding='global' size-in-bits='64'>
156      <return type-id='type-id-10'/>
157    </function-decl>
158    <function-decl name='nvlist_add_uint16' mangled-name='nvlist_add_uint16' visibility='default' binding='global' size-in-bits='64'>
159      <return type-id='type-id-10'/>
160    </function-decl>
161    <function-decl name='nvlist_add_int32' mangled-name='nvlist_add_int32' visibility='default' binding='global' size-in-bits='64'>
162      <return type-id='type-id-10'/>
163    </function-decl>
164    <function-decl name='nvlist_add_uint32' mangled-name='nvlist_add_uint32' visibility='default' binding='global' size-in-bits='64'>
165      <return type-id='type-id-10'/>
166    </function-decl>
167    <function-decl name='nvlist_add_int64' mangled-name='nvlist_add_int64' visibility='default' binding='global' size-in-bits='64'>
168      <return type-id='type-id-10'/>
169    </function-decl>
170    <function-decl name='nvlist_add_uint64' mangled-name='nvlist_add_uint64' visibility='default' binding='global' size-in-bits='64'>
171      <return type-id='type-id-10'/>
172    </function-decl>
173    <function-decl name='nvlist_add_string' mangled-name='nvlist_add_string' visibility='default' binding='global' size-in-bits='64'>
174      <return type-id='type-id-10'/>
175    </function-decl>
176    <function-decl name='nvlist_add_byte_array' mangled-name='nvlist_add_byte_array' visibility='default' binding='global' size-in-bits='64'>
177      <return type-id='type-id-10'/>
178    </function-decl>
179    <function-decl name='nvlist_add_int16_array' mangled-name='nvlist_add_int16_array' visibility='default' binding='global' size-in-bits='64'>
180      <return type-id='type-id-10'/>
181    </function-decl>
182    <function-decl name='nvlist_add_uint16_array' mangled-name='nvlist_add_uint16_array' visibility='default' binding='global' size-in-bits='64'>
183      <return type-id='type-id-10'/>
184    </function-decl>
185    <function-decl name='nvlist_add_int32_array' mangled-name='nvlist_add_int32_array' visibility='default' binding='global' size-in-bits='64'>
186      <return type-id='type-id-10'/>
187    </function-decl>
188    <function-decl name='nvlist_add_uint32_array' mangled-name='nvlist_add_uint32_array' visibility='default' binding='global' size-in-bits='64'>
189      <return type-id='type-id-10'/>
190    </function-decl>
191    <function-decl name='nvlist_add_int64_array' mangled-name='nvlist_add_int64_array' visibility='default' binding='global' size-in-bits='64'>
192      <return type-id='type-id-10'/>
193    </function-decl>
194    <function-decl name='nvlist_add_uint64_array' mangled-name='nvlist_add_uint64_array' visibility='default' binding='global' size-in-bits='64'>
195      <return type-id='type-id-10'/>
196    </function-decl>
197    <function-decl name='nvlist_add_string_array' mangled-name='nvlist_add_string_array' visibility='default' binding='global' size-in-bits='64'>
198      <return type-id='type-id-10'/>
199    </function-decl>
200    <function-decl name='nvlist_add_nvlist' mangled-name='nvlist_add_nvlist' visibility='default' binding='global' size-in-bits='64'>
201      <return type-id='type-id-10'/>
202    </function-decl>
203    <function-decl name='nvlist_add_nvlist_array' mangled-name='nvlist_add_nvlist_array' visibility='default' binding='global' size-in-bits='64'>
204      <return type-id='type-id-10'/>
205    </function-decl>
206    <function-decl name='nvlist_add_boolean_value' mangled-name='nvlist_add_boolean_value' visibility='default' binding='global' size-in-bits='64'>
207      <return type-id='type-id-10'/>
208    </function-decl>
209    <function-decl name='nvlist_add_int8' mangled-name='nvlist_add_int8' visibility='default' binding='global' size-in-bits='64'>
210      <return type-id='type-id-10'/>
211    </function-decl>
212    <function-decl name='nvlist_add_uint8' mangled-name='nvlist_add_uint8' visibility='default' binding='global' size-in-bits='64'>
213      <return type-id='type-id-10'/>
214    </function-decl>
215    <function-decl name='nvlist_add_boolean_array' mangled-name='nvlist_add_boolean_array' visibility='default' binding='global' size-in-bits='64'>
216      <return type-id='type-id-10'/>
217    </function-decl>
218    <function-decl name='nvlist_add_int8_array' mangled-name='nvlist_add_int8_array' visibility='default' binding='global' size-in-bits='64'>
219      <return type-id='type-id-10'/>
220    </function-decl>
221    <function-decl name='nvlist_lookup_nvlist' mangled-name='nvlist_lookup_nvlist' visibility='default' binding='global' size-in-bits='64'>
222      <return type-id='type-id-10'/>
223    </function-decl>
224    <function-decl name='nvlist_dup' mangled-name='nvlist_dup' visibility='default' binding='global' size-in-bits='64'>
225      <return type-id='type-id-10'/>
226    </function-decl>
227    <function-decl name='nvlist_alloc' mangled-name='nvlist_alloc' visibility='default' binding='global' size-in-bits='64'>
228      <return type-id='type-id-10'/>
229    </function-decl>
230  </abi-instr>
231  <abi-instr version='1.0' address-size='64' path='lzbe_util.c' comp-dir-path='/home/runner/work/zfs/zfs/lib/libzfsbootenv' language='LANG_C99'>
232    <class-decl name='_IO_FILE' size-in-bits='1728' is-struct='yes' visibility='default' id='type-id-15'>
233      <data-member access='public' layout-offset-in-bits='0'>
234        <var-decl name='_flags' type-id='type-id-1' visibility='default'/>
235      </data-member>
236      <data-member access='public' layout-offset-in-bits='64'>
237        <var-decl name='_IO_read_ptr' type-id='type-id-5' visibility='default'/>
238      </data-member>
239      <data-member access='public' layout-offset-in-bits='128'>
240        <var-decl name='_IO_read_end' type-id='type-id-5' visibility='default'/>
241      </data-member>
242      <data-member access='public' layout-offset-in-bits='192'>
243        <var-decl name='_IO_read_base' type-id='type-id-5' visibility='default'/>
244      </data-member>
245      <data-member access='public' layout-offset-in-bits='256'>
246        <var-decl name='_IO_write_base' type-id='type-id-5' visibility='default'/>
247      </data-member>
248      <data-member access='public' layout-offset-in-bits='320'>
249        <var-decl name='_IO_write_ptr' type-id='type-id-5' visibility='default'/>
250      </data-member>
251      <data-member access='public' layout-offset-in-bits='384'>
252        <var-decl name='_IO_write_end' type-id='type-id-5' visibility='default'/>
253      </data-member>
254      <data-member access='public' layout-offset-in-bits='448'>
255        <var-decl name='_IO_buf_base' type-id='type-id-5' visibility='default'/>
256      </data-member>
257      <data-member access='public' layout-offset-in-bits='512'>
258        <var-decl name='_IO_buf_end' type-id='type-id-5' visibility='default'/>
259      </data-member>
260      <data-member access='public' layout-offset-in-bits='576'>
261        <var-decl name='_IO_save_base' type-id='type-id-5' visibility='default'/>
262      </data-member>
263      <data-member access='public' layout-offset-in-bits='640'>
264        <var-decl name='_IO_backup_base' type-id='type-id-5' visibility='default'/>
265      </data-member>
266      <data-member access='public' layout-offset-in-bits='704'>
267        <var-decl name='_IO_save_end' type-id='type-id-5' visibility='default'/>
268      </data-member>
269      <data-member access='public' layout-offset-in-bits='768'>
270        <var-decl name='_markers' type-id='type-id-16' visibility='default'/>
271      </data-member>
272      <data-member access='public' layout-offset-in-bits='832'>
273        <var-decl name='_chain' type-id='type-id-17' visibility='default'/>
274      </data-member>
275      <data-member access='public' layout-offset-in-bits='896'>
276        <var-decl name='_fileno' type-id='type-id-1' visibility='default'/>
277      </data-member>
278      <data-member access='public' layout-offset-in-bits='928'>
279        <var-decl name='_flags2' type-id='type-id-1' visibility='default'/>
280      </data-member>
281      <data-member access='public' layout-offset-in-bits='960'>
282        <var-decl name='_old_offset' type-id='type-id-18' visibility='default'/>
283      </data-member>
284      <data-member access='public' layout-offset-in-bits='1024'>
285        <var-decl name='_cur_column' type-id='type-id-19' visibility='default'/>
286      </data-member>
287      <data-member access='public' layout-offset-in-bits='1040'>
288        <var-decl name='_vtable_offset' type-id='type-id-20' visibility='default'/>
289      </data-member>
290      <data-member access='public' layout-offset-in-bits='1048'>
291        <var-decl name='_shortbuf' type-id='type-id-21' visibility='default'/>
292      </data-member>
293      <data-member access='public' layout-offset-in-bits='1152'>
294        <var-decl name='_offset' type-id='type-id-22' visibility='default'/>
295      </data-member>
296      <data-member access='public' layout-offset-in-bits='1216'>
297        <var-decl name='__pad1' type-id='type-id-11' visibility='default'/>
298      </data-member>
299      <data-member access='public' layout-offset-in-bits='1280'>
300        <var-decl name='__pad2' type-id='type-id-11' visibility='default'/>
301      </data-member>
302      <data-member access='public' layout-offset-in-bits='1344'>
303        <var-decl name='__pad3' type-id='type-id-11' visibility='default'/>
304      </data-member>
305      <data-member access='public' layout-offset-in-bits='1408'>
306        <var-decl name='__pad4' type-id='type-id-11' visibility='default'/>
307      </data-member>
308      <data-member access='public' layout-offset-in-bits='1472'>
309        <var-decl name='__pad5' type-id='type-id-13' visibility='default'/>
310      </data-member>
311      <data-member access='public' layout-offset-in-bits='1536'>
312        <var-decl name='_mode' type-id='type-id-1' visibility='default'/>
313      </data-member>
314      <data-member access='public' layout-offset-in-bits='1568'>
315        <var-decl name='_unused2' type-id='type-id-23' visibility='default'/>
316      </data-member>
317    </class-decl>
318    <class-decl name='_IO_marker' size-in-bits='192' is-struct='yes' visibility='default' id='type-id-24'>
319      <data-member access='public' layout-offset-in-bits='0'>
320        <var-decl name='_next' type-id='type-id-16' visibility='default'/>
321      </data-member>
322      <data-member access='public' layout-offset-in-bits='64'>
323        <var-decl name='_sbuf' type-id='type-id-17' visibility='default'/>
324      </data-member>
325      <data-member access='public' layout-offset-in-bits='128'>
326        <var-decl name='_pos' type-id='type-id-1' visibility='default'/>
327      </data-member>
328    </class-decl>
329    <pointer-type-def type-id='type-id-24' size-in-bits='64' id='type-id-16'/>
330    <pointer-type-def type-id='type-id-15' size-in-bits='64' id='type-id-17'/>
331    <type-decl name='long int' size-in-bits='64' id='type-id-25'/>
332    <typedef-decl name='__off_t' type-id='type-id-25' id='type-id-18'/>
333    <type-decl name='unsigned short int' size-in-bits='16' id='type-id-19'/>
334    <type-decl name='signed char' size-in-bits='8' id='type-id-20'/>
335
336    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='8' id='type-id-21'>
337      <subrange length='1' type-id='type-id-12' id='type-id-26'/>
338
339    </array-type-def>
340    <typedef-decl name='__off64_t' type-id='type-id-25' id='type-id-22'/>
341
342    <array-type-def dimensions='1' type-id='type-id-2' size-in-bits='160' id='type-id-23'>
343      <subrange length='20' type-id='type-id-12' id='type-id-27'/>
344
345    </array-type-def>
346    <typedef-decl name='FILE' type-id='type-id-15' id='type-id-28'/>
347    <pointer-type-def type-id='type-id-28' size-in-bits='64' id='type-id-29'/>
348    <function-decl name='lzbe_bootenv_print' mangled-name='lzbe_bootenv_print' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='lzbe_bootenv_print'>
349      <parameter type-id='type-id-4' name='pool'/>
350      <parameter type-id='type-id-4' name='nvlist'/>
351      <parameter type-id='type-id-29' name='of'/>
352      <return type-id='type-id-1'/>
353    </function-decl>
354    <function-decl name='lzbe_nvlist_get' mangled-name='lzbe_nvlist_get' visibility='default' binding='global' size-in-bits='64'>
355      <return type-id='type-id-10'/>
356    </function-decl>
357    <function-decl name='nvlist_print' mangled-name='nvlist_print' visibility='default' binding='global' size-in-bits='64'>
358      <return type-id='type-id-10'/>
359    </function-decl>
360  </abi-instr>
361</abi-corpus>
362