perl 5.003_02: [no incremental changelog available]
[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(_ead ead, int index)
15 {
16     SV *sv;
17     int size = _ead_value_size(ead, index);
18     void *p;
19
20     if (size == -1) {
21         die("Error getting size of EA: %s", strerror(errno));
22     }
23     p = _ead_get_value(ead, index);
24     return  newSVpv((char*)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
41 int
42 my_eadreplace(ead, index, sv, flag = 0)
43         _ead    ead
44         int     index
45         SV *    sv
46         int     flag
47
48 int
49 my_eadadd(ead, name, sv, flag = 0)
50         _ead    ead
51         char *  name
52         SV *    sv
53         int     flag
54
55 MODULE = OS2::ExtAttr           PACKAGE = OS2::ExtAttr  PREFIX = _ea
56
57
58 void
59 _ea_free(ptr)
60         struct _ea *    ptr
61
62 int
63 _ea_get(dst, path, handle, name)
64         struct _ea *    dst
65         char *  path
66         int     handle
67         char *  name
68
69 int
70 _ea_put(src, path, handle, name)
71         struct _ea *    src
72         char *  path
73         int     handle
74         char *  name
75
76 int
77 _ea_remove(path, handle, name)
78         char *  path
79         int     handle
80         char *  name
81
82 MODULE = OS2::ExtAttr           PACKAGE = OS2::ExtAttr  PREFIX = _ead
83
84 int
85 _ead_add(ead, name, flags, value, size)
86         _ead    ead
87         char *  name
88         int     flags
89         void *  value
90         int     size
91
92 void
93 _ead_clear(ead)
94         _ead    ead
95
96 int
97 _ead_copy(dst_ead, src_ead, src_index)
98         _ead    dst_ead
99         _ead    src_ead
100         int     src_index
101
102 int
103 _ead_count(ead)
104         _ead    ead
105
106 _ead
107 _ead_create()
108
109 int
110 _ead_delete(ead, index)
111         _ead    ead
112         int     index
113
114 void
115 _ead_destroy(ead)
116         _ead    ead
117
118 int
119 _ead_fea2list_size(ead)
120         _ead    ead
121
122 void *
123 _ead_fea2list_to_fealist(src)
124         void *  src
125
126 void *
127 _ead_fealist_to_fea2list(src)
128         void *  src
129
130 int
131 _ead_find(ead, name)
132         _ead    ead
133         char *  name
134
135 void *
136 _ead_get_fea2list(ead)
137         _ead    ead
138
139 int
140 _ead_get_flags(ead, index)
141         _ead    ead
142         int     index
143
144 char *
145 _ead_get_name(ead, index)
146         _ead    ead
147         int     index
148
149 void *
150 _ead_get_value(ead, index)
151         _ead    ead
152         int     index
153
154 int
155 _ead_name_len(ead, index)
156         _ead    ead
157         int     index
158
159 int
160 _ead_read(ead, path, handle, flags)
161         _ead    ead
162         char *  path
163         int     handle
164         int     flags
165
166 int
167 _ead_replace(ead, index, flags, value, size)
168         _ead    ead
169         int     index
170         int     flags
171         void *  value
172         int     size
173
174 void
175 _ead_sort(ead)
176         _ead    ead
177
178 int
179 _ead_use_fea2list(ead, src)
180         _ead    ead
181         void *  src
182
183 int
184 _ead_value_size(ead, index)
185         _ead    ead
186         int     index
187
188 int
189 _ead_write(ead, path, handle, flags)
190         _ead    ead
191         char *  path
192         int     handle
193         int     flags