OS/2 build
[p5sagit/p5-mst-13.2.git] / os2 / OS2 / ExtAttr / ExtAttr.xs
1 #ifdef __cplusplus
2 extern "C" {
3 #endif
4 #include "EXTERN.h"
5 #include "perl.h"
6 #include "XSUB.h"
7 #ifdef __cplusplus
8 }
9 #endif
10
11 #include "myea.h"
12
13 SV *
14 my_eadvalue(pTHX_ _ead ead, int index)
15 {
16     SV *sv;
17     int size = _ead_value_size(ead, index);
18     const char *p;
19
20     if (size == -1) {
21         Perl_die(aTHX_ "Error getting size of EA: %s", strerror(errno));
22     }
23     p = _ead_get_value(ead, index);
24     return  newSVpv(p, size);
25 }
26
27 #define my_eadreplace(ead, index, sv, flag)     \
28         _ead_replace((ead), (index), flag, SvPVX(sv), SvCUR(sv))
29
30 #define my_eadadd(ead, name, sv, flag)  \
31         _ead_add((ead), (name), flag, SvPVX(sv), SvCUR(sv))
32
33
34 MODULE = OS2::ExtAttr           PACKAGE = OS2::ExtAttr  PREFIX = my_ead
35
36 SV *
37 my_eadvalue(ead, index)
38         _ead    ead
39         int     index
40     CODE:
41         RETVAL = my_eadvalue(aTHX_ ead, index);
42     OUTPUT:
43         RETVAL
44
45 int
46 my_eadreplace(ead, index, sv, flag = 0)
47         _ead    ead
48         int     index
49         SV *    sv
50         int     flag
51
52 int
53 my_eadadd(ead, name, sv, flag = 0)
54         _ead    ead
55         char *  name
56         SV *    sv
57         int     flag
58
59 MODULE = OS2::ExtAttr           PACKAGE = OS2::ExtAttr  PREFIX = _ea
60
61
62 void
63 _ea_free(ptr)
64         struct _ea *    ptr
65
66 int
67 _ea_get(dst, path, handle, name)
68         struct _ea *    dst
69         char *  path
70         int     handle
71         char *  name
72
73 int
74 _ea_put(src, path, handle, name)
75         struct _ea *    src
76         char *  path
77         int     handle
78         char *  name
79
80 int
81 _ea_remove(path, handle, name)
82         char *  path
83         int     handle
84         char *  name
85
86 MODULE = OS2::ExtAttr           PACKAGE = OS2::ExtAttr  PREFIX = _ead
87
88 int
89 _ead_add(ead, name, flags, value, size)
90         _ead    ead
91         char *  name
92         int     flags
93         void *  value
94         int     size
95
96 void
97 _ead_clear(ead)
98         _ead    ead
99
100 int
101 _ead_copy(dst_ead, src_ead, src_index)
102         _ead    dst_ead
103         _ead    src_ead
104         int     src_index
105
106 int
107 _ead_count(ead)
108         _ead    ead
109
110 _ead
111 _ead_create()
112
113 int
114 _ead_delete(ead, index)
115         _ead    ead
116         int     index
117
118 void
119 _ead_destroy(ead)
120         _ead    ead
121
122 int
123 _ead_fea2list_size(ead)
124         _ead    ead
125
126 void *
127 _ead_fea2list_to_fealist(src)
128         void *  src
129
130 void *
131 _ead_fealist_to_fea2list(src)
132         void *  src
133
134 int
135 _ead_find(ead, name)
136         _ead    ead
137         char *  name
138
139 const void *
140 _ead_get_fea2list(ead)
141         _ead    ead
142
143 int
144 _ead_get_flags(ead, index)
145         _ead    ead
146         int     index
147
148 const char *
149 _ead_get_name(ead, index)
150         _ead    ead
151         int     index
152
153 const void *
154 _ead_get_value(ead, index)
155         _ead    ead
156         int     index
157
158 int
159 _ead_name_len(ead, index)
160         _ead    ead
161         int     index
162
163 int
164 _ead_read(ead, path, handle, flags)
165         _ead    ead
166         char *  path
167         int     handle
168         int     flags
169
170 int
171 _ead_replace(ead, index, flags, value, size)
172         _ead    ead
173         int     index
174         int     flags
175         void *  value
176         int     size
177
178 void
179 _ead_sort(ead)
180         _ead    ead
181
182 int
183 _ead_use_fea2list(ead, src)
184         _ead    ead
185         void *  src
186
187 int
188 _ead_value_size(ead, index)
189         _ead    ead
190         int     index
191
192 int
193 _ead_write(ead, path, handle, flags)
194         _ead    ead
195         char *  path
196         int     handle
197         int     flags