]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/pyzfs/libzfs_core/bindings/libnvpair.py
Vendor import of openzfs master @ 184df27eef0abdc7ab2105b21257f753834b936b
[FreeBSD/FreeBSD.git] / contrib / pyzfs / libzfs_core / bindings / libnvpair.py
1 #
2 # Copyright 2015 ClusterHQ
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #    http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16
17 """
18 Python bindings for ``libnvpair``.
19 """
20 from __future__ import absolute_import, division, print_function
21
22 CDEF = """
23     typedef ... nvlist_t;
24     typedef ... nvpair_t;
25
26
27     typedef enum {
28         DATA_TYPE_UNKNOWN = 0,
29         DATA_TYPE_BOOLEAN,
30         DATA_TYPE_BYTE,
31         DATA_TYPE_INT16,
32         DATA_TYPE_UINT16,
33         DATA_TYPE_INT32,
34         DATA_TYPE_UINT32,
35         DATA_TYPE_INT64,
36         DATA_TYPE_UINT64,
37         DATA_TYPE_STRING,
38         DATA_TYPE_BYTE_ARRAY,
39         DATA_TYPE_INT16_ARRAY,
40         DATA_TYPE_UINT16_ARRAY,
41         DATA_TYPE_INT32_ARRAY,
42         DATA_TYPE_UINT32_ARRAY,
43         DATA_TYPE_INT64_ARRAY,
44         DATA_TYPE_UINT64_ARRAY,
45         DATA_TYPE_STRING_ARRAY,
46         DATA_TYPE_HRTIME,
47         DATA_TYPE_NVLIST,
48         DATA_TYPE_NVLIST_ARRAY,
49         DATA_TYPE_BOOLEAN_VALUE,
50         DATA_TYPE_INT8,
51         DATA_TYPE_UINT8,
52         DATA_TYPE_BOOLEAN_ARRAY,
53         DATA_TYPE_INT8_ARRAY,
54         DATA_TYPE_UINT8_ARRAY
55     } data_type_t;
56     typedef enum { B_FALSE, B_TRUE } boolean_t;
57
58     typedef unsigned char uchar_t;
59     typedef unsigned int uint_t;
60
61     int nvlist_alloc(nvlist_t **, uint_t, int);
62     void nvlist_free(nvlist_t *);
63
64     int nvlist_unpack(char *, size_t, nvlist_t **, int);
65
66     void dump_nvlist(nvlist_t *, int);
67     int nvlist_dup(nvlist_t *, nvlist_t **, int);
68
69     int nvlist_add_boolean(nvlist_t *, const char *);
70     int nvlist_add_boolean_value(nvlist_t *, const char *, boolean_t);
71     int nvlist_add_byte(nvlist_t *, const char *, uchar_t);
72     int nvlist_add_int8(nvlist_t *, const char *, int8_t);
73     int nvlist_add_uint8(nvlist_t *, const char *, uint8_t);
74     int nvlist_add_int16(nvlist_t *, const char *, int16_t);
75     int nvlist_add_uint16(nvlist_t *, const char *, uint16_t);
76     int nvlist_add_int32(nvlist_t *, const char *, int32_t);
77     int nvlist_add_uint32(nvlist_t *, const char *, uint32_t);
78     int nvlist_add_int64(nvlist_t *, const char *, int64_t);
79     int nvlist_add_uint64(nvlist_t *, const char *, uint64_t);
80     int nvlist_add_string(nvlist_t *, const char *, const char *);
81     int nvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *);
82     int nvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *,
83         uint_t);
84     int nvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t);
85     int nvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t);
86     int nvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t);
87     int nvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t);
88     int nvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t);
89     int nvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t);
90     int nvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t);
91     int nvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t);
92     int nvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t);
93     int nvlist_add_string_array(nvlist_t *, const char *, char *const *,
94         uint_t);
95     int nvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t);
96
97     nvpair_t *nvlist_next_nvpair(nvlist_t *, nvpair_t *);
98     nvpair_t *nvlist_prev_nvpair(nvlist_t *, nvpair_t *);
99     char *nvpair_name(nvpair_t *);
100     data_type_t nvpair_type(nvpair_t *);
101     int nvpair_type_is_array(nvpair_t *);
102     int nvpair_value_boolean_value(nvpair_t *, boolean_t *);
103     int nvpair_value_byte(nvpair_t *, uchar_t *);
104     int nvpair_value_int8(nvpair_t *, int8_t *);
105     int nvpair_value_uint8(nvpair_t *, uint8_t *);
106     int nvpair_value_int16(nvpair_t *, int16_t *);
107     int nvpair_value_uint16(nvpair_t *, uint16_t *);
108     int nvpair_value_int32(nvpair_t *, int32_t *);
109     int nvpair_value_uint32(nvpair_t *, uint32_t *);
110     int nvpair_value_int64(nvpair_t *, int64_t *);
111     int nvpair_value_uint64(nvpair_t *, uint64_t *);
112     int nvpair_value_string(nvpair_t *, char **);
113     int nvpair_value_nvlist(nvpair_t *, nvlist_t **);
114     int nvpair_value_boolean_array(nvpair_t *, boolean_t **, uint_t *);
115     int nvpair_value_byte_array(nvpair_t *, uchar_t **, uint_t *);
116     int nvpair_value_int8_array(nvpair_t *, int8_t **, uint_t *);
117     int nvpair_value_uint8_array(nvpair_t *, uint8_t **, uint_t *);
118     int nvpair_value_int16_array(nvpair_t *, int16_t **, uint_t *);
119     int nvpair_value_uint16_array(nvpair_t *, uint16_t **, uint_t *);
120     int nvpair_value_int32_array(nvpair_t *, int32_t **, uint_t *);
121     int nvpair_value_uint32_array(nvpair_t *, uint32_t **, uint_t *);
122     int nvpair_value_int64_array(nvpair_t *, int64_t **, uint_t *);
123     int nvpair_value_uint64_array(nvpair_t *, uint64_t **, uint_t *);
124     int nvpair_value_string_array(nvpair_t *, char ***, uint_t *);
125     int nvpair_value_nvlist_array(nvpair_t *, nvlist_t ***, uint_t *);
126 """
127
128 SOURCE = """
129 #include <libzfs/sys/nvpair.h>
130 """
131
132 LIBRARY = "nvpair"
133
134 # vim: softtabstop=4 tabstop=4 expandtab shiftwidth=4