home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / os2 / OS2 / ExtAttr / ExtAttr.xs < prev    next >
Text File  |  1999-07-20  |  3KB  |  198 lines

  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.     void *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((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.     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. 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. char *
  149. _ead_get_name(ead, index)
  150.     _ead    ead
  151.     int    index
  152.  
  153. 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
  198.