527a74cba90fc3a38109c73dad53f5fc025e0bac
[debian/amanda] / perl / Amanda / NDMP.c
1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 1.3.39
4  * 
5  * This file is not intended to be easily readable and contains a number of 
6  * coding conventions designed to improve portability and efficiency. Do not make
7  * changes to this file unless you know what you are doing--modify the SWIG 
8  * interface file instead. 
9  * ----------------------------------------------------------------------------- */
10
11 #include "../config/config.h"
12
13
14 #define SWIGPERL
15 #define SWIG_CASTRANK_MODE
16
17 /* -----------------------------------------------------------------------------
18  *  This section contains generic SWIG labels for method/variable
19  *  declarations/attributes, and other compiler dependent labels.
20  * ----------------------------------------------------------------------------- */
21
22 /* template workaround for compilers that cannot correctly implement the C++ standard */
23 #ifndef SWIGTEMPLATEDISAMBIGUATOR
24 # if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
25 #  define SWIGTEMPLATEDISAMBIGUATOR template
26 # elif defined(__HP_aCC)
27 /* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
28 /* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
29 #  define SWIGTEMPLATEDISAMBIGUATOR template
30 # else
31 #  define SWIGTEMPLATEDISAMBIGUATOR
32 # endif
33 #endif
34
35 /* inline attribute */
36 #ifndef SWIGINLINE
37 # if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
38 #   define SWIGINLINE inline
39 # else
40 #   define SWIGINLINE
41 # endif
42 #endif
43
44 /* attribute recognised by some compilers to avoid 'unused' warnings */
45 #ifndef SWIGUNUSED
46 # if defined(__GNUC__)
47 #   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
48 #     define SWIGUNUSED __attribute__ ((__unused__)) 
49 #   else
50 #     define SWIGUNUSED
51 #   endif
52 # elif defined(__ICC)
53 #   define SWIGUNUSED __attribute__ ((__unused__)) 
54 # else
55 #   define SWIGUNUSED 
56 # endif
57 #endif
58
59 #ifndef SWIG_MSC_UNSUPPRESS_4505
60 # if defined(_MSC_VER)
61 #   pragma warning(disable : 4505) /* unreferenced local function has been removed */
62 # endif 
63 #endif
64
65 #ifndef SWIGUNUSEDPARM
66 # ifdef __cplusplus
67 #   define SWIGUNUSEDPARM(p)
68 # else
69 #   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
70 # endif
71 #endif
72
73 /* internal SWIG method */
74 #ifndef SWIGINTERN
75 # define SWIGINTERN static SWIGUNUSED
76 #endif
77
78 /* internal inline SWIG method */
79 #ifndef SWIGINTERNINLINE
80 # define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
81 #endif
82
83 /* exporting methods */
84 #if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
85 #  ifndef GCC_HASCLASSVISIBILITY
86 #    define GCC_HASCLASSVISIBILITY
87 #  endif
88 #endif
89
90 #ifndef SWIGEXPORT
91 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
92 #   if defined(STATIC_LINKED)
93 #     define SWIGEXPORT
94 #   else
95 #     define SWIGEXPORT __declspec(dllexport)
96 #   endif
97 # else
98 #   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
99 #     define SWIGEXPORT __attribute__ ((visibility("default")))
100 #   else
101 #     define SWIGEXPORT
102 #   endif
103 # endif
104 #endif
105
106 /* calling conventions for Windows */
107 #ifndef SWIGSTDCALL
108 # if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
109 #   define SWIGSTDCALL __stdcall
110 # else
111 #   define SWIGSTDCALL
112 # endif 
113 #endif
114
115 /* Deal with Microsoft's attempt at deprecating C standard runtime functions */
116 #if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
117 # define _CRT_SECURE_NO_DEPRECATE
118 #endif
119
120 /* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
121 #if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
122 # define _SCL_SECURE_NO_DEPRECATE
123 #endif
124
125
126 /* -----------------------------------------------------------------------------
127  * swigrun.swg
128  *
129  * This file contains generic C API SWIG runtime support for pointer
130  * type checking.
131  * ----------------------------------------------------------------------------- */
132
133 /* This should only be incremented when either the layout of swig_type_info changes,
134    or for whatever reason, the runtime changes incompatibly */
135 #define SWIG_RUNTIME_VERSION "4"
136
137 /* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
138 #ifdef SWIG_TYPE_TABLE
139 # define SWIG_QUOTE_STRING(x) #x
140 # define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
141 # define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
142 #else
143 # define SWIG_TYPE_TABLE_NAME
144 #endif
145
146 /*
147   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
148   creating a static or dynamic library from the SWIG runtime code.
149   In 99.9% of the cases, SWIG just needs to declare them as 'static'.
150   
151   But only do this if strictly necessary, ie, if you have problems
152   with your compiler or suchlike.
153 */
154
155 #ifndef SWIGRUNTIME
156 # define SWIGRUNTIME SWIGINTERN
157 #endif
158
159 #ifndef SWIGRUNTIMEINLINE
160 # define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
161 #endif
162
163 /*  Generic buffer size */
164 #ifndef SWIG_BUFFER_SIZE
165 # define SWIG_BUFFER_SIZE 1024
166 #endif
167
168 /* Flags for pointer conversions */
169 #define SWIG_POINTER_DISOWN        0x1
170 #define SWIG_CAST_NEW_MEMORY       0x2
171
172 /* Flags for new pointer objects */
173 #define SWIG_POINTER_OWN           0x1
174
175
176 /* 
177    Flags/methods for returning states.
178    
179    The SWIG conversion methods, as ConvertPtr, return and integer 
180    that tells if the conversion was successful or not. And if not,
181    an error code can be returned (see swigerrors.swg for the codes).
182    
183    Use the following macros/flags to set or process the returning
184    states.
185    
186    In old versions of SWIG, code such as the following was usually written:
187
188      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
189        // success code
190      } else {
191        //fail code
192      }
193
194    Now you can be more explicit:
195
196     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
197     if (SWIG_IsOK(res)) {
198       // success code
199     } else {
200       // fail code
201     }
202
203    which is the same really, but now you can also do
204
205     Type *ptr;
206     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
207     if (SWIG_IsOK(res)) {
208       // success code
209       if (SWIG_IsNewObj(res) {
210         ...
211         delete *ptr;
212       } else {
213         ...
214       }
215     } else {
216       // fail code
217     }
218     
219    I.e., now SWIG_ConvertPtr can return new objects and you can
220    identify the case and take care of the deallocation. Of course that
221    also requires SWIG_ConvertPtr to return new result values, such as
222
223       int SWIG_ConvertPtr(obj, ptr,...) {         
224         if (<obj is ok>) {                             
225           if (<need new object>) {                     
226             *ptr = <ptr to new allocated object>; 
227             return SWIG_NEWOBJ;                
228           } else {                                     
229             *ptr = <ptr to old object>;        
230             return SWIG_OLDOBJ;                
231           }                                    
232         } else {                                       
233           return SWIG_BADOBJ;                  
234         }                                              
235       }
236
237    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
238    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
239    SWIG errors code.
240
241    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
242    allows to return the 'cast rank', for example, if you have this
243
244        int food(double)
245        int fooi(int);
246
247    and you call
248  
249       food(1)   // cast rank '1'  (1 -> 1.0)
250       fooi(1)   // cast rank '0'
251
252    just use the SWIG_AddCast()/SWIG_CheckState()
253 */
254
255 #define SWIG_OK                    (0) 
256 #define SWIG_ERROR                 (-1)
257 #define SWIG_IsOK(r)               (r >= 0)
258 #define SWIG_ArgError(r)           ((r != SWIG_ERROR) ? r : SWIG_TypeError)  
259
260 /* The CastRankLimit says how many bits are used for the cast rank */
261 #define SWIG_CASTRANKLIMIT         (1 << 8)
262 /* The NewMask denotes the object was created (using new/malloc) */
263 #define SWIG_NEWOBJMASK            (SWIG_CASTRANKLIMIT  << 1)
264 /* The TmpMask is for in/out typemaps that use temporal objects */
265 #define SWIG_TMPOBJMASK            (SWIG_NEWOBJMASK << 1)
266 /* Simple returning values */
267 #define SWIG_BADOBJ                (SWIG_ERROR)
268 #define SWIG_OLDOBJ                (SWIG_OK)
269 #define SWIG_NEWOBJ                (SWIG_OK | SWIG_NEWOBJMASK)
270 #define SWIG_TMPOBJ                (SWIG_OK | SWIG_TMPOBJMASK)
271 /* Check, add and del mask methods */
272 #define SWIG_AddNewMask(r)         (SWIG_IsOK(r) ? (r | SWIG_NEWOBJMASK) : r)
273 #define SWIG_DelNewMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_NEWOBJMASK) : r)
274 #define SWIG_IsNewObj(r)           (SWIG_IsOK(r) && (r & SWIG_NEWOBJMASK))
275 #define SWIG_AddTmpMask(r)         (SWIG_IsOK(r) ? (r | SWIG_TMPOBJMASK) : r)
276 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
277 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
278
279 /* Cast-Rank Mode */
280 #if defined(SWIG_CASTRANK_MODE)
281 #  ifndef SWIG_TypeRank
282 #    define SWIG_TypeRank             unsigned long
283 #  endif
284 #  ifndef SWIG_MAXCASTRANK            /* Default cast allowed */
285 #    define SWIG_MAXCASTRANK          (2)
286 #  endif
287 #  define SWIG_CASTRANKMASK          ((SWIG_CASTRANKLIMIT) -1)
288 #  define SWIG_CastRank(r)           (r & SWIG_CASTRANKMASK)
289 SWIGINTERNINLINE int SWIG_AddCast(int r) { 
290   return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
291 }
292 SWIGINTERNINLINE int SWIG_CheckState(int r) { 
293   return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0; 
294 }
295 #else /* no cast-rank mode */
296 #  define SWIG_AddCast
297 #  define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
298 #endif
299
300
301 #include <string.h>
302
303 #ifdef __cplusplus
304 extern "C" {
305 #endif
306
307 typedef void *(*swig_converter_func)(void *, int *);
308 typedef struct swig_type_info *(*swig_dycast_func)(void **);
309
310 /* Structure to store information on one type */
311 typedef struct swig_type_info {
312   const char             *name;                 /* mangled name of this type */
313   const char             *str;                  /* human readable name of this type */
314   swig_dycast_func        dcast;                /* dynamic cast function down a hierarchy */
315   struct swig_cast_info  *cast;                 /* linked list of types that can cast into this type */
316   void                   *clientdata;           /* language specific type data */
317   int                    owndata;               /* flag if the structure owns the clientdata */
318 } swig_type_info;
319
320 /* Structure to store a type and conversion function used for casting */
321 typedef struct swig_cast_info {
322   swig_type_info         *type;                 /* pointer to type that is equivalent to this type */
323   swig_converter_func     converter;            /* function to cast the void pointers */
324   struct swig_cast_info  *next;                 /* pointer to next cast in linked list */
325   struct swig_cast_info  *prev;                 /* pointer to the previous cast */
326 } swig_cast_info;
327
328 /* Structure used to store module information
329  * Each module generates one structure like this, and the runtime collects
330  * all of these structures and stores them in a circularly linked list.*/
331 typedef struct swig_module_info {
332   swig_type_info         **types;               /* Array of pointers to swig_type_info structures that are in this module */
333   size_t                 size;                  /* Number of types in this module */
334   struct swig_module_info *next;                /* Pointer to next element in circularly linked list */
335   swig_type_info         **type_initial;        /* Array of initially generated type structures */
336   swig_cast_info         **cast_initial;        /* Array of initially generated casting structures */
337   void                    *clientdata;          /* Language specific module data */
338 } swig_module_info;
339
340 /* 
341   Compare two type names skipping the space characters, therefore
342   "char*" == "char *" and "Class<int>" == "Class<int >", etc.
343
344   Return 0 when the two name types are equivalent, as in
345   strncmp, but skipping ' '.
346 */
347 SWIGRUNTIME int
348 SWIG_TypeNameComp(const char *f1, const char *l1,
349                   const char *f2, const char *l2) {
350   for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
351     while ((*f1 == ' ') && (f1 != l1)) ++f1;
352     while ((*f2 == ' ') && (f2 != l2)) ++f2;
353     if (*f1 != *f2) return (*f1 > *f2) ? 1 : -1;
354   }
355   return (int)((l1 - f1) - (l2 - f2));
356 }
357
358 /*
359   Check type equivalence in a name list like <name1>|<name2>|...
360   Return 0 if not equal, 1 if equal
361 */
362 SWIGRUNTIME int
363 SWIG_TypeEquiv(const char *nb, const char *tb) {
364   int equiv = 0;
365   const char* te = tb + strlen(tb);
366   const char* ne = nb;
367   while (!equiv && *ne) {
368     for (nb = ne; *ne; ++ne) {
369       if (*ne == '|') break;
370     }
371     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
372     if (*ne) ++ne;
373   }
374   return equiv;
375 }
376
377 /*
378   Check type equivalence in a name list like <name1>|<name2>|...
379   Return 0 if equal, -1 if nb < tb, 1 if nb > tb
380 */
381 SWIGRUNTIME int
382 SWIG_TypeCompare(const char *nb, const char *tb) {
383   int equiv = 0;
384   const char* te = tb + strlen(tb);
385   const char* ne = nb;
386   while (!equiv && *ne) {
387     for (nb = ne; *ne; ++ne) {
388       if (*ne == '|') break;
389     }
390     equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
391     if (*ne) ++ne;
392   }
393   return equiv;
394 }
395
396
397 /*
398   Check the typename
399 */
400 SWIGRUNTIME swig_cast_info *
401 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
402   if (ty) {
403     swig_cast_info *iter = ty->cast;
404     while (iter) {
405       if (strcmp(iter->type->name, c) == 0) {
406         if (iter == ty->cast)
407           return iter;
408         /* Move iter to the top of the linked list */
409         iter->prev->next = iter->next;
410         if (iter->next)
411           iter->next->prev = iter->prev;
412         iter->next = ty->cast;
413         iter->prev = 0;
414         if (ty->cast) ty->cast->prev = iter;
415         ty->cast = iter;
416         return iter;
417       }
418       iter = iter->next;
419     }
420   }
421   return 0;
422 }
423
424 /* 
425   Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
426 */
427 SWIGRUNTIME swig_cast_info *
428 SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
429   if (ty) {
430     swig_cast_info *iter = ty->cast;
431     while (iter) {
432       if (iter->type == from) {
433         if (iter == ty->cast)
434           return iter;
435         /* Move iter to the top of the linked list */
436         iter->prev->next = iter->next;
437         if (iter->next)
438           iter->next->prev = iter->prev;
439         iter->next = ty->cast;
440         iter->prev = 0;
441         if (ty->cast) ty->cast->prev = iter;
442         ty->cast = iter;
443         return iter;
444       }
445       iter = iter->next;
446     }
447   }
448   return 0;
449 }
450
451 /*
452   Cast a pointer up an inheritance hierarchy
453 */
454 SWIGRUNTIMEINLINE void *
455 SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
456   return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
457 }
458
459 /* 
460    Dynamic pointer casting. Down an inheritance hierarchy
461 */
462 SWIGRUNTIME swig_type_info *
463 SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
464   swig_type_info *lastty = ty;
465   if (!ty || !ty->dcast) return ty;
466   while (ty && (ty->dcast)) {
467     ty = (*ty->dcast)(ptr);
468     if (ty) lastty = ty;
469   }
470   return lastty;
471 }
472
473 /*
474   Return the name associated with this type
475 */
476 SWIGRUNTIMEINLINE const char *
477 SWIG_TypeName(const swig_type_info *ty) {
478   return ty->name;
479 }
480
481 /*
482   Return the pretty name associated with this type,
483   that is an unmangled type name in a form presentable to the user.
484 */
485 SWIGRUNTIME const char *
486 SWIG_TypePrettyName(const swig_type_info *type) {
487   /* The "str" field contains the equivalent pretty names of the
488      type, separated by vertical-bar characters.  We choose
489      to print the last name, as it is often (?) the most
490      specific. */
491   if (!type) return NULL;
492   if (type->str != NULL) {
493     const char *last_name = type->str;
494     const char *s;
495     for (s = type->str; *s; s++)
496       if (*s == '|') last_name = s+1;
497     return last_name;
498   }
499   else
500     return type->name;
501 }
502
503 /* 
504    Set the clientdata field for a type
505 */
506 SWIGRUNTIME void
507 SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
508   swig_cast_info *cast = ti->cast;
509   /* if (ti->clientdata == clientdata) return; */
510   ti->clientdata = clientdata;
511   
512   while (cast) {
513     if (!cast->converter) {
514       swig_type_info *tc = cast->type;
515       if (!tc->clientdata) {
516         SWIG_TypeClientData(tc, clientdata);
517       }
518     }    
519     cast = cast->next;
520   }
521 }
522 SWIGRUNTIME void
523 SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
524   SWIG_TypeClientData(ti, clientdata);
525   ti->owndata = 1;
526 }
527   
528 /*
529   Search for a swig_type_info structure only by mangled name
530   Search is a O(log #types)
531   
532   We start searching at module start, and finish searching when start == end.  
533   Note: if start == end at the beginning of the function, we go all the way around
534   the circular list.
535 */
536 SWIGRUNTIME swig_type_info *
537 SWIG_MangledTypeQueryModule(swig_module_info *start, 
538                             swig_module_info *end, 
539                             const char *name) {
540   swig_module_info *iter = start;
541   do {
542     if (iter->size) {
543       register size_t l = 0;
544       register size_t r = iter->size - 1;
545       do {
546         /* since l+r >= 0, we can (>> 1) instead (/ 2) */
547         register size_t i = (l + r) >> 1; 
548         const char *iname = iter->types[i]->name;
549         if (iname) {
550           register int compare = strcmp(name, iname);
551           if (compare == 0) {       
552             return iter->types[i];
553           } else if (compare < 0) {
554             if (i) {
555               r = i - 1;
556             } else {
557               break;
558             }
559           } else if (compare > 0) {
560             l = i + 1;
561           }
562         } else {
563           break; /* should never happen */
564         }
565       } while (l <= r);
566     }
567     iter = iter->next;
568   } while (iter != end);
569   return 0;
570 }
571
572 /*
573   Search for a swig_type_info structure for either a mangled name or a human readable name.
574   It first searches the mangled names of the types, which is a O(log #types)
575   If a type is not found it then searches the human readable names, which is O(#types).
576   
577   We start searching at module start, and finish searching when start == end.  
578   Note: if start == end at the beginning of the function, we go all the way around
579   the circular list.
580 */
581 SWIGRUNTIME swig_type_info *
582 SWIG_TypeQueryModule(swig_module_info *start, 
583                      swig_module_info *end, 
584                      const char *name) {
585   /* STEP 1: Search the name field using binary search */
586   swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
587   if (ret) {
588     return ret;
589   } else {
590     /* STEP 2: If the type hasn't been found, do a complete search
591        of the str field (the human readable name) */
592     swig_module_info *iter = start;
593     do {
594       register size_t i = 0;
595       for (; i < iter->size; ++i) {
596         if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
597           return iter->types[i];
598       }
599       iter = iter->next;
600     } while (iter != end);
601   }
602   
603   /* neither found a match */
604   return 0;
605 }
606
607 /* 
608    Pack binary data into a string
609 */
610 SWIGRUNTIME char *
611 SWIG_PackData(char *c, void *ptr, size_t sz) {
612   static const char hex[17] = "0123456789abcdef";
613   register const unsigned char *u = (unsigned char *) ptr;
614   register const unsigned char *eu =  u + sz;
615   for (; u != eu; ++u) {
616     register unsigned char uu = *u;
617     *(c++) = hex[(uu & 0xf0) >> 4];
618     *(c++) = hex[uu & 0xf];
619   }
620   return c;
621 }
622
623 /* 
624    Unpack binary data from a string
625 */
626 SWIGRUNTIME const char *
627 SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
628   register unsigned char *u = (unsigned char *) ptr;
629   register const unsigned char *eu = u + sz;
630   for (; u != eu; ++u) {
631     register char d = *(c++);
632     register unsigned char uu;
633     if ((d >= '0') && (d <= '9'))
634       uu = ((d - '0') << 4);
635     else if ((d >= 'a') && (d <= 'f'))
636       uu = ((d - ('a'-10)) << 4);
637     else 
638       return (char *) 0;
639     d = *(c++);
640     if ((d >= '0') && (d <= '9'))
641       uu |= (d - '0');
642     else if ((d >= 'a') && (d <= 'f'))
643       uu |= (d - ('a'-10));
644     else 
645       return (char *) 0;
646     *u = uu;
647   }
648   return c;
649 }
650
651 /* 
652    Pack 'void *' into a string buffer.
653 */
654 SWIGRUNTIME char *
655 SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
656   char *r = buff;
657   if ((2*sizeof(void *) + 2) > bsz) return 0;
658   *(r++) = '_';
659   r = SWIG_PackData(r,&ptr,sizeof(void *));
660   if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
661   strcpy(r,name);
662   return buff;
663 }
664
665 SWIGRUNTIME const char *
666 SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
667   if (*c != '_') {
668     if (strcmp(c,"NULL") == 0) {
669       *ptr = (void *) 0;
670       return name;
671     } else {
672       return 0;
673     }
674   }
675   return SWIG_UnpackData(++c,ptr,sizeof(void *));
676 }
677
678 SWIGRUNTIME char *
679 SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
680   char *r = buff;
681   size_t lname = (name ? strlen(name) : 0);
682   if ((2*sz + 2 + lname) > bsz) return 0;
683   *(r++) = '_';
684   r = SWIG_PackData(r,ptr,sz);
685   if (lname) {
686     strncpy(r,name,lname+1);
687   } else {
688     *r = 0;
689   }
690   return buff;
691 }
692
693 SWIGRUNTIME const char *
694 SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
695   if (*c != '_') {
696     if (strcmp(c,"NULL") == 0) {
697       memset(ptr,0,sz);
698       return name;
699     } else {
700       return 0;
701     }
702   }
703   return SWIG_UnpackData(++c,ptr,sz);
704 }
705
706 #ifdef __cplusplus
707 }
708 #endif
709
710 /*  Errors in SWIG */
711 #define  SWIG_UnknownError         -1 
712 #define  SWIG_IOError              -2 
713 #define  SWIG_RuntimeError         -3 
714 #define  SWIG_IndexError           -4 
715 #define  SWIG_TypeError            -5 
716 #define  SWIG_DivisionByZero       -6 
717 #define  SWIG_OverflowError        -7 
718 #define  SWIG_SyntaxError          -8 
719 #define  SWIG_ValueError           -9 
720 #define  SWIG_SystemError          -10
721 #define  SWIG_AttributeError       -11
722 #define  SWIG_MemoryError          -12 
723 #define  SWIG_NullReferenceError   -13
724
725
726
727 #ifdef __cplusplus
728 /* Needed on some windows machines---since MS plays funny games with the header files under C++ */
729 #include <math.h>
730 #include <stdlib.h>
731 extern "C" {
732 #endif
733 #include "EXTERN.h"
734 #include "perl.h"
735 #include "XSUB.h"
736
737 /* Add in functionality missing in older versions of Perl. Much of this is based on Devel-PPPort on cpan. */
738
739 /* Add PERL_REVISION, PERL_VERSION, PERL_SUBVERSION if missing */
740 #ifndef PERL_REVISION
741 #  if !defined(__PATCHLEVEL_H_INCLUDED__) && !(defined(PATCHLEVEL) && defined(SUBVERSION))
742 #    define PERL_PATCHLEVEL_H_IMPLICIT
743 #    include <patchlevel.h>
744 #  endif
745 #  if !(defined(PERL_VERSION) || (defined(SUBVERSION) && defined(PATCHLEVEL)))
746 #    include <could_not_find_Perl_patchlevel.h>
747 #  endif
748 #  ifndef PERL_REVISION
749 #    define PERL_REVISION       (5)
750 #    define PERL_VERSION        PATCHLEVEL
751 #    define PERL_SUBVERSION     SUBVERSION
752 #  endif
753 #endif
754
755 #if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
756 #define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
757 #endif
758
759 #ifndef SvIOK_UV
760 # define SvIOK_UV(sv)       (SvIOK(sv) && (SvUVX(sv) == SvIVX(sv)))
761 #endif
762
763 #ifndef SvUOK
764 # define SvUOK(sv)           SvIOK_UV(sv)
765 #endif
766
767 #if ((PERL_VERSION < 4) || ((PERL_VERSION == 4) && (PERL_SUBVERSION <= 5)))
768 #  define PL_sv_undef               sv_undef
769 #  define PL_na                     na
770 #  define PL_errgv                  errgv
771 #  define PL_sv_no                  sv_no
772 #  define PL_sv_yes                 sv_yes
773 #  define PL_markstack_ptr          markstack_ptr
774 #endif
775
776 #ifndef IVSIZE
777 #  ifdef LONGSIZE
778 #    define IVSIZE LONGSIZE
779 #  else
780 #    define IVSIZE 4 /* A bold guess, but the best we can make. */
781 #  endif
782 #endif
783
784 #ifndef INT2PTR
785 #  if (IVSIZE == PTRSIZE) && (UVSIZE == PTRSIZE)
786 #    define PTRV                  UV
787 #    define INT2PTR(any,d)        (any)(d)
788 #  else
789 #    if PTRSIZE == LONGSIZE
790 #      define PTRV                unsigned long
791 #    else
792 #      define PTRV                unsigned
793 #    endif
794 #    define INT2PTR(any,d)        (any)(PTRV)(d)
795 #  endif
796
797 #  define NUM2PTR(any,d)  (any)(PTRV)(d)
798 #  define PTR2IV(p)       INT2PTR(IV,p)
799 #  define PTR2UV(p)       INT2PTR(UV,p)
800 #  define PTR2NV(p)       NUM2PTR(NV,p)
801
802 #  if PTRSIZE == LONGSIZE
803 #    define PTR2ul(p)     (unsigned long)(p)
804 #  else
805 #    define PTR2ul(p)     INT2PTR(unsigned long,p)
806 #  endif
807 #endif /* !INT2PTR */
808
809 #ifndef SvPV_nolen
810 # define SvPV_nolen(x) SvPV(x,PL_na)
811 #endif
812
813 #ifndef get_sv
814 #  define get_sv perl_get_sv
815 #endif
816
817 #ifndef ERRSV
818 #  define ERRSV get_sv("@",FALSE)
819 #endif
820
821 #ifndef pTHX_
822 #define pTHX_
823 #endif   
824
825 #include <string.h>
826 #ifdef __cplusplus
827 }
828 #endif
829
830 /* -----------------------------------------------------------------------------
831  * error manipulation
832  * ----------------------------------------------------------------------------- */
833
834 SWIGINTERN const char*
835 SWIG_Perl_ErrorType(int code) {
836   const char* type = 0;
837   switch(code) {
838   case SWIG_MemoryError:
839     type = "MemoryError";
840     break;
841   case SWIG_IOError:
842     type = "IOError";
843     break;
844   case SWIG_RuntimeError:
845     type = "RuntimeError";
846     break;
847   case SWIG_IndexError:
848     type = "IndexError";
849     break;
850   case SWIG_TypeError:
851     type = "TypeError";
852     break;
853   case SWIG_DivisionByZero:
854     type = "ZeroDivisionError";
855     break;
856   case SWIG_OverflowError:
857     type = "OverflowError";
858     break;
859   case SWIG_SyntaxError:
860     type = "SyntaxError";
861     break;
862   case SWIG_ValueError:
863     type = "ValueError";
864     break;
865   case SWIG_SystemError:
866     type = "SystemError";
867     break;
868   case SWIG_AttributeError:
869     type = "AttributeError";
870     break;
871   default:
872     type = "RuntimeError";
873   }
874   return type;
875 }
876
877
878
879
880 /* -----------------------------------------------------------------------------
881  * perlrun.swg
882  *
883  * This file contains the runtime support for Perl modules
884  * and includes code for managing global variables and pointer
885  * type checking.
886  * ----------------------------------------------------------------------------- */
887
888 #ifdef PERL_OBJECT
889 #define SWIG_PERL_OBJECT_DECL CPerlObj *SWIGUNUSEDPARM(pPerl),
890 #define SWIG_PERL_OBJECT_CALL pPerl,
891 #else
892 #define SWIG_PERL_OBJECT_DECL
893 #define SWIG_PERL_OBJECT_CALL
894 #endif
895
896 /* Common SWIG API */
897
898 /* for raw pointers */
899 #define SWIG_ConvertPtr(obj, pp, type, flags)           SWIG_Perl_ConvertPtr(SWIG_PERL_OBJECT_CALL obj, pp, type, flags)
900 #define SWIG_NewPointerObj(p, type, flags)              SWIG_Perl_NewPointerObj(SWIG_PERL_OBJECT_CALL p, type, flags)
901
902 /* for raw packed data */
903 #define SWIG_ConvertPacked(obj, p, s, type)             SWIG_Perl_ConvertPacked(SWIG_PERL_OBJECT_CALL obj, p, s, type)
904 #define SWIG_NewPackedObj(p, s, type)                   SWIG_Perl_NewPackedObj(SWIG_PERL_OBJECT_CALL p, s, type)
905
906 /* for class or struct pointers */
907 #define SWIG_ConvertInstance(obj, pptr, type, flags)    SWIG_ConvertPtr(obj, pptr, type, flags)
908 #define SWIG_NewInstanceObj(ptr, type, flags)           SWIG_NewPointerObj(ptr, type, flags)
909
910 /* for C or C++ function pointers */
911 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_ConvertPtr(obj, pptr, type, 0)
912 #define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_NewPointerObj(ptr, type, 0)
913
914 /* for C++ member pointers, ie, member methods */
915 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_ConvertPacked(obj, ptr, sz, ty)
916 #define SWIG_NewMemberObj(ptr, sz, type)                SWIG_NewPackedObj(ptr, sz, type)
917
918
919 /* Runtime API */
920
921 #define SWIG_GetModule(clientdata)                      SWIG_Perl_GetModule()
922 #define SWIG_SetModule(clientdata, pointer)             SWIG_Perl_SetModule(pointer)
923
924
925 /* Error manipulation */
926
927 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)               
928 #define SWIG_Error(code, msg)                           sv_setpvf(GvSV(PL_errgv),"%s %s\n", SWIG_ErrorType(code), msg)
929 #define SWIG_fail                                       goto fail                                                   
930
931 /* Perl-specific SWIG API */
932
933 #define SWIG_MakePtr(sv, ptr, type, flags)              SWIG_Perl_MakePtr(SWIG_PERL_OBJECT_CALL sv, ptr, type, flags)
934 #define SWIG_MakePackedObj(sv, p, s, type)              SWIG_Perl_MakePackedObj(SWIG_PERL_OBJECT_CALL sv, p, s, type)
935 #define SWIG_SetError(str)                              SWIG_Error(SWIG_RuntimeError, str)
936
937
938 #define SWIG_PERL_DECL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_DECL arg1)
939 #define SWIG_PERL_CALL_ARGS_1(arg1)                     (SWIG_PERL_OBJECT_CALL arg1)
940 #define SWIG_PERL_DECL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_DECL arg1, arg2)
941 #define SWIG_PERL_CALL_ARGS_2(arg1, arg2)               (SWIG_PERL_OBJECT_CALL arg1, arg2)
942
943 /* -----------------------------------------------------------------------------
944  * pointers/data manipulation
945  * ----------------------------------------------------------------------------- */
946
947 /* For backward compatibility only */
948 #define SWIG_POINTER_EXCEPTION  0
949
950 #ifdef __cplusplus
951 extern "C" {
952 #endif
953
954 #define SWIG_OWNER   SWIG_POINTER_OWN
955 #define SWIG_SHADOW  SWIG_OWNER << 1
956
957 #define SWIG_MAYBE_PERL_OBJECT SWIG_PERL_OBJECT_DECL
958
959 /* SWIG Perl macros */
960
961 /* Macro to declare an XS function */
962 #ifndef XSPROTO
963 #   define XSPROTO(name) void name(pTHX_ CV* cv)
964 #endif
965
966 /* Macro to call an XS function */
967 #ifdef PERL_OBJECT 
968 #  define SWIG_CALLXS(_name) _name(cv,pPerl) 
969 #else 
970 #  ifndef MULTIPLICITY 
971 #    define SWIG_CALLXS(_name) _name(cv) 
972 #  else 
973 #    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) 
974 #  endif 
975 #endif 
976
977 #ifdef PERL_OBJECT
978 #define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
979
980 #ifdef __cplusplus
981 extern "C" {
982 #endif
983 typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);
984 #ifdef __cplusplus
985 }
986 #endif
987
988 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
989 #define SWIGCLASS_STATIC
990
991 #else /* PERL_OBJECT */
992
993 #define MAGIC_PPERL
994 #define SWIGCLASS_STATIC static SWIGUNUSED
995
996 #ifndef MULTIPLICITY
997 #define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
998
999 #ifdef __cplusplus
1000 extern "C" {
1001 #endif
1002 typedef int (*SwigMagicFunc)(SV *, MAGIC *);
1003 #ifdef __cplusplus
1004 }
1005 #endif
1006
1007 #else /* MULTIPLICITY */
1008
1009 #define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
1010
1011 #ifdef __cplusplus
1012 extern "C" {
1013 #endif
1014 typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
1015 #ifdef __cplusplus
1016 }
1017 #endif
1018
1019 #endif /* MULTIPLICITY */
1020 #endif /* PERL_OBJECT */
1021
1022 /* Workaround for bug in perl 5.6.x croak and earlier */
1023 #if (PERL_VERSION < 8)
1024 #  ifdef PERL_OBJECT
1025 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
1026 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
1027 #  else
1028 static void SWIG_croak_null()
1029 #  endif
1030 {
1031   SV *err=ERRSV;
1032 #  if (PERL_VERSION < 6)
1033   croak("%_", err);
1034 #  else
1035   if (SvOK(err) && !SvROK(err)) croak("%_", err);
1036   croak(Nullch);
1037 #  endif
1038 }
1039 #else
1040 #  define SWIG_croak_null() croak(Nullch)
1041 #endif
1042
1043
1044 /* 
1045    Define how strict is the cast between strings and integers/doubles
1046    when overloading between these types occurs.
1047    
1048    The default is making it as strict as possible by using SWIG_AddCast
1049    when needed.
1050    
1051    You can use -DSWIG_PERL_NO_STRICT_STR2NUM at compilation time to
1052    disable the SWIG_AddCast, making the casting between string and
1053    numbers less strict.
1054
1055    In the end, we try to solve the overloading between strings and
1056    numerical types in the more natural way, but if you can avoid it,
1057    well, avoid it using %rename, for example.
1058 */
1059 #ifndef SWIG_PERL_NO_STRICT_STR2NUM
1060 # ifndef SWIG_PERL_STRICT_STR2NUM
1061 #  define SWIG_PERL_STRICT_STR2NUM
1062 # endif
1063 #endif
1064 #ifdef SWIG_PERL_STRICT_STR2NUM
1065 /* string takes precedence */
1066 #define SWIG_Str2NumCast(x) SWIG_AddCast(x)  
1067 #else
1068 /* number takes precedence */
1069 #define SWIG_Str2NumCast(x) x
1070 #endif
1071
1072
1073
1074 #include <stdlib.h>
1075
1076 SWIGRUNTIME const char *
1077 SWIG_Perl_TypeProxyName(const swig_type_info *type) {
1078   if (!type) return NULL;
1079   if (type->clientdata != NULL) {
1080     return (const char*) type->clientdata;
1081   } 
1082   else {
1083     return type->name;
1084   }
1085 }
1086
1087 /* Identical to SWIG_TypeCheck, except for strcmp comparison */
1088 SWIGRUNTIME swig_cast_info *
1089 SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
1090   if (ty) {
1091     swig_cast_info *iter = ty->cast;
1092     while (iter) {
1093       if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
1094             (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
1095         if (iter == ty->cast)
1096           return iter;
1097         /* Move iter to the top of the linked list */
1098         iter->prev->next = iter->next;
1099         if (iter->next)
1100           iter->next->prev = iter->prev;
1101         iter->next = ty->cast;
1102         iter->prev = 0;
1103         if (ty->cast) ty->cast->prev = iter;
1104         ty->cast = iter;
1105         return iter;
1106       }
1107       iter = iter->next;
1108     }
1109   }
1110   return 0;
1111 }
1112
1113 /* Function for getting a pointer value */
1114
1115 SWIGRUNTIME int
1116 SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
1117   swig_cast_info *tc;
1118   void *voidptr = (void *)0;
1119   SV *tsv = 0;
1120   /* If magical, apply more magic */
1121   if (SvGMAGICAL(sv))
1122     mg_get(sv);
1123
1124   /* Check to see if this is an object */
1125   if (sv_isobject(sv)) {
1126     IV tmp = 0;
1127     tsv = (SV*) SvRV(sv);
1128     if ((SvTYPE(tsv) == SVt_PVHV)) {
1129       MAGIC *mg;
1130       if (SvMAGICAL(tsv)) {
1131         mg = mg_find(tsv,'P');
1132         if (mg) {
1133           sv = mg->mg_obj;
1134           if (sv_isobject(sv)) {
1135             tsv = (SV*)SvRV(sv);
1136             tmp = SvIV(tsv);
1137           }
1138         }
1139       } else {
1140         return SWIG_ERROR;
1141       }
1142     } else {
1143       tmp = SvIV(tsv);
1144     }
1145     voidptr = INT2PTR(void *,tmp);
1146   } else if (! SvOK(sv)) {            /* Check for undef */
1147     *(ptr) = (void *) 0;
1148     return SWIG_OK;
1149   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
1150     if (!SvROK(sv)) {
1151       *(ptr) = (void *) 0;
1152       return SWIG_OK;
1153     } else {
1154       return SWIG_ERROR;
1155     }
1156   } else {                            /* Don't know what it is */
1157     return SWIG_ERROR;
1158   }
1159   if (_t) {
1160     /* Now see if the types match */
1161     char *_c = HvNAME(SvSTASH(SvRV(sv)));
1162     tc = SWIG_TypeProxyCheck(_c,_t);
1163     if (!tc) {
1164       return SWIG_ERROR;
1165     }
1166     {
1167       int newmemory = 0;
1168       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
1169       assert(!newmemory); /* newmemory handling not yet implemented */
1170     }
1171   } else {
1172     *ptr = voidptr;
1173   }
1174
1175   /* 
1176    *  DISOWN implementation: we need a perl guru to check this one.
1177    */
1178   if (tsv && (flags & SWIG_POINTER_DISOWN)) {
1179     /* 
1180      *  almost copy paste code from below SWIG_POINTER_OWN setting
1181      */
1182     SV *obj = sv;
1183     HV *stash = SvSTASH(SvRV(obj));
1184     GV *gv = *(GV**) hv_fetch(stash, "OWNER", 5, TRUE);
1185     if (isGV(gv)) {
1186       HV *hv = GvHVn(gv);
1187       /*
1188        * To set ownership (see below), a newSViv(1) entry is added. 
1189        * Hence, to remove ownership, we delete the entry.
1190        */
1191       if (hv_exists_ent(hv, obj, 0)) {
1192         hv_delete_ent(hv, obj, 0, 0);
1193       }
1194     }
1195   }
1196   return SWIG_OK;
1197 }
1198
1199 SWIGRUNTIME void
1200 SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
1201   if (ptr && (flags & SWIG_SHADOW)) {
1202     SV *self;
1203     SV *obj=newSV(0);
1204     HV *hash=newHV();
1205     HV *stash;
1206     sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1207     stash=SvSTASH(SvRV(obj));
1208     if (flags & SWIG_POINTER_OWN) {
1209       HV *hv;
1210       GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
1211       if (!isGV(gv))
1212         gv_init(gv, stash, "OWNER", 5, FALSE);
1213       hv=GvHVn(gv);
1214       hv_store_ent(hv, obj, newSViv(1), 0);
1215     }
1216     sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
1217     SvREFCNT_dec(obj);
1218     self=newRV_noinc((SV *)hash);
1219     sv_setsv(sv, self);
1220     SvREFCNT_dec((SV *)self);
1221     sv_bless(sv, stash);
1222   }
1223   else {
1224     sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
1225   }
1226 }
1227
1228 SWIGRUNTIMEINLINE SV *
1229 SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
1230   SV *result = sv_newmortal();
1231   SWIG_MakePtr(result, ptr, t, flags);
1232   return result;
1233 }
1234
1235 SWIGRUNTIME void
1236 SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
1237   char result[1024];
1238   char *r = result;
1239   if ((2*sz + 1 + strlen(SWIG_Perl_TypeProxyName(type))) > 1000) return;
1240   *(r++) = '_';
1241   r = SWIG_PackData(r,ptr,sz);
1242   strcpy(r,SWIG_Perl_TypeProxyName(type));
1243   sv_setpv(sv, result);
1244 }
1245
1246 SWIGRUNTIME SV *
1247 SWIG_Perl_NewPackedObj(SWIG_MAYBE_PERL_OBJECT void *ptr, int sz, swig_type_info *type) {
1248   SV *result = sv_newmortal();
1249   SWIG_Perl_MakePackedObj(result, ptr, sz, type);
1250   return result;
1251 }
1252
1253 /* Convert a packed value value */
1254 SWIGRUNTIME int
1255 SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty) {
1256   swig_cast_info *tc;
1257   const char  *c = 0;
1258
1259   if ((!obj) || (!SvOK(obj))) return SWIG_ERROR;
1260   c = SvPV_nolen(obj);
1261   /* Pointer values must start with leading underscore */
1262   if (*c != '_') return SWIG_ERROR;
1263   c++;
1264   c = SWIG_UnpackData(c,ptr,sz);
1265   if (ty) {
1266     tc = SWIG_TypeCheck(c,ty);
1267     if (!tc) return SWIG_ERROR;
1268   }
1269   return SWIG_OK;
1270 }
1271
1272
1273 /* Macros for low-level exception handling */
1274 #define SWIG_croak(x)    { SWIG_Error(SWIG_RuntimeError, x); SWIG_fail; }
1275
1276
1277 typedef XSPROTO(SwigPerlWrapper);
1278 typedef SwigPerlWrapper *SwigPerlWrapperPtr;
1279
1280 /* Structure for command table */
1281 typedef struct {
1282   const char         *name;
1283   SwigPerlWrapperPtr  wrapper;
1284 } swig_command_info;
1285
1286 /* Information for constant table */
1287
1288 #define SWIG_INT     1
1289 #define SWIG_FLOAT   2
1290 #define SWIG_STRING  3
1291 #define SWIG_POINTER 4
1292 #define SWIG_BINARY  5
1293
1294 /* Constant information structure */
1295 typedef struct swig_constant_info {
1296     int              type;
1297     const char      *name;
1298     long             lvalue;
1299     double           dvalue;
1300     void            *pvalue;
1301     swig_type_info **ptype;
1302 } swig_constant_info;
1303
1304
1305 /* Structure for variable table */
1306 typedef struct {
1307   const char   *name;
1308   SwigMagicFunc   set;
1309   SwigMagicFunc   get;
1310   swig_type_info  **type;
1311 } swig_variable_info;
1312
1313 /* Magic variable code */
1314 #ifndef PERL_OBJECT
1315 #define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
1316   #ifndef MULTIPLICITY
1317      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
1318   #else
1319      SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
1320   #endif
1321 #else
1322 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
1323 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) 
1324 #endif
1325 {
1326   MAGIC *mg;
1327   sv_magic(sv,sv,'U',(char *) name,strlen(name));
1328   mg = mg_find(sv,'U');
1329   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
1330   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
1331   mg->mg_virtual->svt_set = (SwigMagicFunc) set;
1332   mg->mg_virtual->svt_len = 0;
1333   mg->mg_virtual->svt_clear = 0;
1334   mg->mg_virtual->svt_free = 0;
1335 }
1336
1337
1338 SWIGRUNTIME swig_module_info *
1339 SWIG_Perl_GetModule(void) {
1340   static void *type_pointer = (void *)0;
1341   SV *pointer;
1342
1343   /* first check if pointer already created */
1344   if (!type_pointer) {
1345     pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE | GV_ADDMULTI);
1346     if (pointer && SvOK(pointer)) {
1347       type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
1348     }
1349   }
1350
1351   return (swig_module_info *) type_pointer;
1352 }
1353
1354 SWIGRUNTIME void
1355 SWIG_Perl_SetModule(swig_module_info *module) {
1356   SV *pointer;
1357
1358   /* create a new pointer */
1359   pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE | GV_ADDMULTI);
1360   sv_setiv(pointer, PTR2IV(module));
1361 }
1362
1363 #ifdef __cplusplus
1364 }
1365 #endif
1366
1367 /* Workaround perl5 global namespace pollution. Note that undefining library
1368  * functions like fopen will not solve the problem on all platforms as fopen
1369  * might be a macro on Windows but not necessarily on other operating systems. */
1370 #ifdef do_open
1371   #undef do_open
1372 #endif
1373 #ifdef do_close
1374   #undef do_close
1375 #endif
1376 #ifdef scalar
1377   #undef scalar
1378 #endif
1379 #ifdef list
1380   #undef list
1381 #endif
1382 #ifdef apply
1383   #undef apply
1384 #endif
1385 #ifdef convert
1386   #undef convert
1387 #endif
1388 #ifdef Error
1389   #undef Error
1390 #endif
1391 #ifdef form
1392   #undef form
1393 #endif
1394 #ifdef vform
1395   #undef vform
1396 #endif
1397 #ifdef LABEL
1398   #undef LABEL
1399 #endif
1400 #ifdef METHOD
1401   #undef METHOD
1402 #endif
1403 #ifdef Move
1404   #undef Move
1405 #endif
1406 #ifdef yylex
1407   #undef yylex
1408 #endif
1409 #ifdef yyparse
1410   #undef yyparse
1411 #endif
1412 #ifdef yyerror
1413   #undef yyerror
1414 #endif
1415 #ifdef invert
1416   #undef invert
1417 #endif
1418 #ifdef ref
1419   #undef ref
1420 #endif
1421 #ifdef read
1422   #undef read
1423 #endif
1424 #ifdef write
1425   #undef write
1426 #endif
1427 #ifdef eof
1428   #undef eof
1429 #endif
1430 #ifdef bool
1431   #undef bool
1432 #endif
1433 #ifdef close
1434   #undef close
1435 #endif
1436 #ifdef rewind
1437   #undef rewind
1438 #endif
1439 #ifdef free
1440   #undef free
1441 #endif
1442 #ifdef malloc
1443   #undef malloc
1444 #endif
1445 #ifdef calloc
1446   #undef calloc
1447 #endif
1448 #ifdef Stat
1449   #undef Stat
1450 #endif
1451 #ifdef check
1452   #undef check
1453 #endif
1454 #ifdef seekdir
1455   #undef seekdir
1456 #endif
1457 #ifdef open
1458   #undef open
1459 #endif
1460 #ifdef readdir
1461   #undef readdir
1462 #endif
1463 #ifdef bind
1464   #undef bind
1465 #endif
1466
1467
1468
1469 #define SWIG_exception_fail(code, msg) do { SWIG_Error(code, msg); SWIG_fail; } while(0) 
1470
1471 #define SWIG_contract_assert(expr, msg) if (!(expr)) { SWIG_Error(SWIG_RuntimeError, msg); SWIG_fail; } else 
1472
1473
1474
1475   #define SWIG_exception(code, msg) do { SWIG_Error(code, msg); SWIG_fail;; } while(0) 
1476
1477
1478 /* -------- TYPES TABLE (BEGIN) -------- */
1479
1480 #define SWIGTYPE_p_NDMPConnection swig_types[0]
1481 #define SWIGTYPE_p_char swig_types[1]
1482 #define SWIGTYPE_p_double swig_types[2]
1483 #define SWIGTYPE_p_float swig_types[3]
1484 #define SWIGTYPE_p_gint swig_types[4]
1485 #define SWIGTYPE_p_gsize swig_types[5]
1486 #define SWIGTYPE_p_guint swig_types[6]
1487 #define SWIGTYPE_p_guint32 swig_types[7]
1488 #define SWIGTYPE_p_guint64 swig_types[8]
1489 #define SWIGTYPE_p_guint8 swig_types[9]
1490 #define SWIGTYPE_p_int swig_types[10]
1491 #define SWIGTYPE_p_ndmp_enum swig_types[11]
1492 #define SWIGTYPE_p_unsigned_char swig_types[12]
1493 static swig_type_info *swig_types[14];
1494 static swig_module_info swig_module = {swig_types, 13, 0, 0, 0, 0};
1495 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
1496 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
1497
1498 /* -------- TYPES TABLE (END) -------- */
1499
1500 #define SWIG_init    boot_Amanda__NDMP
1501
1502 #define SWIG_name   "Amanda::NDMPc::boot_Amanda__NDMP"
1503 #define SWIG_prefix "Amanda::NDMPc::"
1504
1505 #define SWIGVERSION 0x010339 
1506 #define SWIG_VERSION SWIGVERSION
1507
1508
1509 #define SWIG_as_voidptr(a) (void *)((const void *)(a)) 
1510 #define SWIG_as_voidptrptr(a) ((void)SWIG_as_voidptr(*a),(void**)(a)) 
1511
1512
1513 #ifdef __cplusplus
1514 extern "C"
1515 #endif
1516 #ifndef PERL_OBJECT
1517 #ifndef MULTIPLICITY
1518 SWIGEXPORT void SWIG_init (CV* cv);
1519 #else
1520 SWIGEXPORT void SWIG_init (pTHXo_ CV* cv);
1521 #endif
1522 #else
1523 SWIGEXPORT void SWIG_init (CV *cv, CPerlObj *);
1524 #endif
1525
1526
1527 #include "amglue.h"
1528
1529
1530 #include "amglue.h"
1531
1532
1533 #include "amglue.h"
1534
1535
1536 #include "ndmpconnobj.h"
1537 #include "glib-util.h"
1538
1539
1540 typedef guint ndmp_enum;
1541
1542
1543 SWIGINTERN swig_type_info*
1544 SWIG_pchar_descriptor(void)
1545 {
1546   static int init = 0;
1547   static swig_type_info* info = 0;
1548   if (!init) {
1549     info = SWIG_TypeQuery("_p_char");
1550     init = 1;
1551   }
1552   return info;
1553 }
1554
1555
1556 SWIGINTERN int
1557 SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
1558 {
1559   if (SvMAGICAL(obj)) {
1560      SV *tmp = sv_newmortal();
1561      SvSetSV(tmp, obj);
1562      obj = tmp;
1563   }
1564   if (SvPOK(obj)) {
1565     STRLEN len = 0;
1566     char *cstr = SvPV(obj, len); 
1567     size_t size = len + 1;
1568     if (cptr)  {
1569       if (alloc) {
1570         if (*alloc == SWIG_NEWOBJ) {
1571           *cptr = (char *)memcpy((char *)malloc((size)*sizeof(char)), cstr, sizeof(char)*(size));
1572         } else {
1573           *cptr = cstr;
1574           *alloc = SWIG_OLDOBJ;
1575         }
1576       }
1577     }
1578     if (psize) *psize = size;
1579     return SWIG_OK;
1580   } else {
1581     swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
1582     if (pchar_descriptor) {
1583       char* vptr = 0; 
1584       if (SWIG_ConvertPtr(obj, (void**)&vptr, pchar_descriptor, 0) == SWIG_OK) {
1585         if (cptr) *cptr = vptr;
1586         if (psize) *psize = vptr ? (strlen(vptr) + 1) : 0;
1587         if (alloc) *alloc = SWIG_OLDOBJ;
1588         return SWIG_OK;
1589       }
1590     }
1591   }
1592   return SWIG_TypeError;
1593 }
1594
1595
1596
1597
1598 SWIGINTERN NDMPConnection *new_NDMPConnection(gchar *hostname,gint port,gchar *username,gchar *password,gchar *auth){
1599             return ndmp_connection_new(
1600                     hostname, port, username, password, auth);
1601         }
1602 SWIGINTERN void delete_NDMPConnection(NDMPConnection *self){
1603             g_object_unref(self);
1604         }
1605 SWIGINTERN int NDMPConnection_err_code(NDMPConnection *self){
1606             return ndmp_connection_err_code(self);
1607         }
1608 SWIGINTERN gchar *NDMPConnection_err_msg(NDMPConnection *self){
1609             return ndmp_connection_err_msg(self);
1610         }
1611
1612 SWIGINTERNINLINE SV *
1613 SWIG_FromCharPtrAndSize(const char* carray, size_t size)
1614 {
1615   SV *obj = sv_newmortal();
1616   if (carray) {
1617     sv_setpvn(obj, carray, size);
1618   } else {
1619     sv_setsv(obj, &PL_sv_undef);
1620   }
1621   return obj;
1622 }
1623
1624
1625 SWIGINTERNINLINE SV * 
1626 SWIG_FromCharPtr(const char *cptr)
1627
1628   return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
1629 }
1630
1631
1632 #include <limits.h>
1633 #if !defined(SWIG_NO_LLONG_MAX)
1634 # if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__)
1635 #   define LLONG_MAX __LONG_LONG_MAX__
1636 #   define LLONG_MIN (-LLONG_MAX - 1LL)
1637 #   define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
1638 # endif
1639 #endif
1640
1641
1642 SWIGINTERN int
1643 SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
1644 {
1645   if (SvNIOK(obj)) {
1646     if (val) *val = SvNV(obj);
1647     return SWIG_OK;
1648   } else if (SvIOK(obj)) {
1649     if (val) *val = (double) SvIV(obj);
1650     return SWIG_AddCast(SWIG_OK);
1651   } else {
1652     const char *nptr = SvPV_nolen(obj);
1653     if (nptr) {
1654       char *endptr;
1655       double v = strtod(nptr, &endptr);
1656       if (errno == ERANGE) {
1657         errno = 0;
1658         return SWIG_OverflowError;
1659       } else {
1660         if (*endptr == '\0') {
1661           if (val) *val = v;
1662           return SWIG_Str2NumCast(SWIG_OK);
1663         }
1664       }
1665     }
1666   }
1667   return SWIG_TypeError;
1668 }
1669
1670
1671 #include <float.h>
1672
1673
1674 #include <math.h>
1675
1676
1677 SWIGINTERNINLINE int
1678 SWIG_CanCastAsInteger(double *d, double min, double max) {
1679   double x = *d;
1680   if ((min <= x && x <= max)) {
1681    double fx = floor(x);
1682    double cx = ceil(x);
1683    double rd =  ((x - fx) < 0.5) ? fx : cx; /* simple rint */
1684    if ((errno == EDOM) || (errno == ERANGE)) {
1685      errno = 0;
1686    } else {
1687      double summ, reps, diff;
1688      if (rd < x) {
1689        diff = x - rd;
1690      } else if (rd > x) {
1691        diff = rd - x;
1692      } else {
1693        return 1;
1694      }
1695      summ = rd + x;
1696      reps = diff/summ;
1697      if (reps < 8*DBL_EPSILON) {
1698        *d = rd;
1699        return 1;
1700      }
1701    }
1702   }
1703   return 0;
1704 }
1705
1706
1707 SWIGINTERN int
1708 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
1709 {
1710   if (SvIOK(obj)) {
1711     if (val) *val = SvIV(obj);
1712     return SWIG_OK;
1713   } else {
1714     int dispatch = 0;
1715     const char *nptr = SvPV_nolen(obj);
1716     if (nptr) {
1717       char *endptr;
1718       long v;
1719       errno = 0;
1720       v = strtol(nptr, &endptr,0);
1721       if (errno == ERANGE) {
1722         errno = 0;
1723         return SWIG_OverflowError;
1724       } else {
1725         if (*endptr == '\0') {
1726           if (val) *val = v;
1727           return SWIG_Str2NumCast(SWIG_OK);
1728         }
1729       }
1730     }
1731     if (!dispatch) {
1732       double d;
1733       int res = SWIG_AddCast(SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(obj,&d));
1734       if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, LONG_MIN, LONG_MAX)) {
1735         if (val) *val = (long)(d);
1736         return res;
1737       }
1738     }
1739   }
1740   return SWIG_TypeError;
1741 }
1742
1743
1744 SWIGINTERN int
1745 SWIG_AsVal_int SWIG_PERL_DECL_ARGS_2(SV * obj, int *val)
1746 {
1747   long v;
1748   int res = SWIG_AsVal_long SWIG_PERL_CALL_ARGS_2(obj, &v);
1749   if (SWIG_IsOK(res)) {
1750     if ((v < INT_MIN || v > INT_MAX)) {
1751       return SWIG_OverflowError;
1752     } else {
1753       if (val) *val = (int)(v);
1754     }
1755   }  
1756   return res;
1757 }
1758
1759 SWIGINTERN void NDMPConnection_set_verbose(NDMPConnection *self,gboolean verbose){
1760             ndmp_connection_set_verbose(self, verbose);
1761         }
1762 SWIGINTERN gboolean NDMPConnection_scsi_open(NDMPConnection *self,gchar *device){
1763             return ndmp_connection_scsi_open(
1764                     self,
1765                     device);
1766         }
1767 SWIGINTERN gboolean NDMPConnection_scsi_close(NDMPConnection *self){
1768             return ndmp_connection_scsi_close(self);
1769         }
1770 SWIGINTERN gboolean NDMPConnection_scsi_execute_cdb_C(NDMPConnection *self,ndmp_enum flags,guint32 timeout,gpointer cdb,gsize cdb_len,gpointer dataout,gsize dataout_len,gsize *actual_dataout_len,gpointer datain,gsize datain_max_len,gsize *actual_datain_len,guint8 *status,gpointer ext_sense,gsize ext_sense_max_len,gsize *actual_ext_sense_len){
1771             return ndmp_connection_scsi_execute_cdb(
1772                     self,
1773                     flags,
1774                     timeout,
1775                     cdb,
1776                     cdb_len,
1777                     dataout,
1778                     dataout_len,
1779                     actual_dataout_len,
1780                     datain,
1781                     datain_max_len,
1782                     actual_datain_len,
1783                     status,
1784                     ext_sense,
1785                     ext_sense_max_len,
1786                     actual_ext_sense_len
1787                     );
1788         }
1789 SWIGINTERN gboolean NDMPConnection_tape_open(NDMPConnection *self,gchar *device,ndmp_enum mode){
1790             return ndmp_connection_tape_open(
1791                     self,
1792                     device,
1793                     mode);
1794         }
1795 SWIGINTERN gboolean NDMPConnection_tape_close(NDMPConnection *self){
1796             return ndmp_connection_tape_close(self);
1797         }
1798 SWIGINTERN gboolean NDMPConnection_tape_mtio(NDMPConnection *self,ndmp_enum tape_op,gint count,guint *resid){
1799             return ndmp_connection_tape_mtio(
1800                     self,
1801                     tape_op,
1802                     count,
1803                     resid);
1804         }
1805 SWIGINTERN gboolean NDMPConnection_tape_write(NDMPConnection *self,gpointer buf,guint64 len,guint64 *count){
1806             return ndmp_connection_tape_write(
1807                     self,
1808                     buf,
1809                     len,
1810                     count);
1811         }
1812 SWIGINTERN gboolean NDMPConnection_tape_read(NDMPConnection *self,gpointer buf,guint64 count,guint64 *out_count){
1813             return ndmp_connection_tape_read(
1814                     self,
1815                     buf,
1816                     count,
1817                     out_count);
1818         }
1819 SWIGINTERN gboolean NDMPConnection_tape_get_state(NDMPConnection *self,guint64 *blocksize,guint64 *file_num,guint64 *blockno){
1820             return ndmp_connection_tape_get_state(
1821                     self,
1822                     blocksize,
1823                     file_num,
1824                     blockno);
1825         }
1826
1827 SWIGINTERNINLINE SV *
1828 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
1829 {    
1830   SV *obj = sv_newmortal();
1831   sv_setiv(obj, (IV) value);
1832   return obj;
1833 }
1834
1835
1836 SWIGINTERNINLINE SV *
1837 SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
1838 {    
1839   return SWIG_From_long  SWIG_PERL_CALL_ARGS_1(value);
1840 }
1841
1842 #ifdef __cplusplus
1843 extern "C" {
1844 #endif
1845
1846 #ifdef PERL_OBJECT
1847 #define MAGIC_CLASS _wrap_Amanda__NDMP_var::
1848 class _wrap_Amanda__NDMP_var : public CPerlObj {
1849 public:
1850 #else
1851 #define MAGIC_CLASS
1852 #endif
1853 SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *SWIGUNUSEDPARM(sv), MAGIC *SWIGUNUSEDPARM(mg)) {
1854     MAGIC_PPERL
1855     croak("Value is read-only.");
1856     return 0;
1857 }
1858
1859
1860 #ifdef PERL_OBJECT
1861 };
1862 #endif
1863
1864 #ifdef __cplusplus
1865 }
1866 #endif
1867
1868 #ifdef __cplusplus
1869 extern "C" {
1870 #endif
1871 XS(_wrap_new_NDMPConnection) {
1872   {
1873     gchar *arg1 = (gchar *) 0 ;
1874     gint arg2 ;
1875     gchar *arg3 = (gchar *) 0 ;
1876     gchar *arg4 = (gchar *) 0 ;
1877     gchar *arg5 = (gchar *) 0 ;
1878     int res1 ;
1879     char *buf1 = 0 ;
1880     int alloc1 = 0 ;
1881     int res3 ;
1882     char *buf3 = 0 ;
1883     int alloc3 = 0 ;
1884     int res4 ;
1885     char *buf4 = 0 ;
1886     int alloc4 = 0 ;
1887     int res5 ;
1888     char *buf5 = 0 ;
1889     int alloc5 = 0 ;
1890     int argvi = 0;
1891     NDMPConnection *result = 0 ;
1892     dXSARGS;
1893     
1894     if ((items < 5) || (items > 5)) {
1895       SWIG_croak("Usage: new_NDMPConnection(hostname,port,username,password,auth);");
1896     }
1897     res1 = SWIG_AsCharPtrAndSize(ST(0), &buf1, NULL, &alloc1);
1898     if (!SWIG_IsOK(res1)) {
1899       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_NDMPConnection" "', argument " "1"" of type '" "gchar *""'");
1900     }
1901     arg1 = (gchar *)(buf1);
1902     {
1903       if (sizeof(gint) == 1) {
1904         arg2 = amglue_SvI8(ST(1));
1905       } else if (sizeof(gint) == 2) {
1906         arg2 = amglue_SvI16(ST(1));
1907       } else if (sizeof(gint) == 4) {
1908         arg2 = amglue_SvI32(ST(1));
1909       } else if (sizeof(gint) == 8) {
1910         arg2 = amglue_SvI64(ST(1));
1911       } else {
1912         g_critical("Unexpected gint >64 bits?"); /* should be optimized out unless sizeof(gint) > 8 */
1913       }
1914     }
1915     res3 = SWIG_AsCharPtrAndSize(ST(2), &buf3, NULL, &alloc3);
1916     if (!SWIG_IsOK(res3)) {
1917       SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_NDMPConnection" "', argument " "3"" of type '" "gchar *""'");
1918     }
1919     arg3 = (gchar *)(buf3);
1920     res4 = SWIG_AsCharPtrAndSize(ST(3), &buf4, NULL, &alloc4);
1921     if (!SWIG_IsOK(res4)) {
1922       SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "new_NDMPConnection" "', argument " "4"" of type '" "gchar *""'");
1923     }
1924     arg4 = (gchar *)(buf4);
1925     res5 = SWIG_AsCharPtrAndSize(ST(4), &buf5, NULL, &alloc5);
1926     if (!SWIG_IsOK(res5)) {
1927       SWIG_exception_fail(SWIG_ArgError(res5), "in method '" "new_NDMPConnection" "', argument " "5"" of type '" "gchar *""'");
1928     }
1929     arg5 = (gchar *)(buf5);
1930     result = (NDMPConnection *)new_NDMPConnection(arg1,arg2,arg3,arg4,arg5);
1931     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_NDMPConnection, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
1932     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1933     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
1934     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
1935     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
1936     XSRETURN(argvi);
1937   fail:
1938     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
1939     if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
1940     if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
1941     if (alloc5 == SWIG_NEWOBJ) free((char*)buf5);
1942     SWIG_croak_null();
1943   }
1944 }
1945
1946
1947 XS(_wrap_delete_NDMPConnection) {
1948   {
1949     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
1950     void *argp1 = 0 ;
1951     int res1 = 0 ;
1952     int argvi = 0;
1953     dXSARGS;
1954     
1955     if ((items < 1) || (items > 1)) {
1956       SWIG_croak("Usage: delete_NDMPConnection(self);");
1957     }
1958     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, SWIG_POINTER_DISOWN |  0 );
1959     if (!SWIG_IsOK(res1)) {
1960       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_NDMPConnection" "', argument " "1"" of type '" "NDMPConnection *""'"); 
1961     }
1962     arg1 = (NDMPConnection *)(argp1);
1963     delete_NDMPConnection(arg1);
1964     ST(argvi) = sv_newmortal();
1965     
1966     XSRETURN(argvi);
1967   fail:
1968     
1969     SWIG_croak_null();
1970   }
1971 }
1972
1973
1974 XS(_wrap_NDMPConnection_err_code) {
1975   {
1976     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
1977     void *argp1 = 0 ;
1978     int res1 = 0 ;
1979     int argvi = 0;
1980     int result;
1981     dXSARGS;
1982     
1983     if ((items < 1) || (items > 1)) {
1984       SWIG_croak("Usage: NDMPConnection_err_code(self);");
1985     }
1986     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
1987     if (!SWIG_IsOK(res1)) {
1988       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_err_code" "', argument " "1"" of type '" "NDMPConnection *""'"); 
1989     }
1990     arg1 = (NDMPConnection *)(argp1);
1991     result = (int)NDMPConnection_err_code(arg1);
1992     {
1993       SV *for_stack;
1994       SP += argvi; PUTBACK;
1995       for_stack = sv_2mortal(amglue_newSVi64(result));
1996       SPAGAIN; SP -= argvi;
1997       ST(argvi) = for_stack;
1998       argvi++;
1999     }
2000     
2001     XSRETURN(argvi);
2002   fail:
2003     
2004     SWIG_croak_null();
2005   }
2006 }
2007
2008
2009 XS(_wrap_NDMPConnection_err_msg) {
2010   {
2011     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2012     void *argp1 = 0 ;
2013     int res1 = 0 ;
2014     int argvi = 0;
2015     gchar *result = 0 ;
2016     dXSARGS;
2017     
2018     if ((items < 1) || (items > 1)) {
2019       SWIG_croak("Usage: NDMPConnection_err_msg(self);");
2020     }
2021     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2022     if (!SWIG_IsOK(res1)) {
2023       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_err_msg" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2024     }
2025     arg1 = (NDMPConnection *)(argp1);
2026     result = (gchar *)NDMPConnection_err_msg(arg1);
2027     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
2028     
2029     free((char*)result);
2030     XSRETURN(argvi);
2031   fail:
2032     
2033     SWIG_croak_null();
2034   }
2035 }
2036
2037
2038 XS(_wrap_NDMPConnection_set_verbose) {
2039   {
2040     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2041     gboolean arg2 ;
2042     void *argp1 = 0 ;
2043     int res1 = 0 ;
2044     int argvi = 0;
2045     dXSARGS;
2046     
2047     if ((items < 2) || (items > 2)) {
2048       SWIG_croak("Usage: NDMPConnection_set_verbose(self,verbose);");
2049     }
2050     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2051     if (!SWIG_IsOK(res1)) {
2052       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_set_verbose" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2053     }
2054     arg1 = (NDMPConnection *)(argp1);
2055     {
2056       arg2 = SvTRUE(ST(1));
2057     }
2058     NDMPConnection_set_verbose(arg1,arg2);
2059     ST(argvi) = sv_newmortal();
2060     
2061     
2062     XSRETURN(argvi);
2063   fail:
2064     
2065     
2066     SWIG_croak_null();
2067   }
2068 }
2069
2070
2071 XS(_wrap_NDMPConnection_scsi_open) {
2072   {
2073     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2074     gchar *arg2 = (gchar *) 0 ;
2075     void *argp1 = 0 ;
2076     int res1 = 0 ;
2077     int res2 ;
2078     char *buf2 = 0 ;
2079     int alloc2 = 0 ;
2080     int argvi = 0;
2081     gboolean result;
2082     dXSARGS;
2083     
2084     if ((items < 2) || (items > 2)) {
2085       SWIG_croak("Usage: NDMPConnection_scsi_open(self,device);");
2086     }
2087     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2088     if (!SWIG_IsOK(res1)) {
2089       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_scsi_open" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2090     }
2091     arg1 = (NDMPConnection *)(argp1);
2092     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2093     if (!SWIG_IsOK(res2)) {
2094       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NDMPConnection_scsi_open" "', argument " "2"" of type '" "gchar *""'");
2095     }
2096     arg2 = (gchar *)(buf2);
2097     result = (gboolean)NDMPConnection_scsi_open(arg1,arg2);
2098     {
2099       if (result)
2100       ST(argvi) = &PL_sv_yes;
2101       else
2102       ST(argvi) = &PL_sv_no;
2103       argvi++;
2104     }
2105     
2106     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2107     XSRETURN(argvi);
2108   fail:
2109     
2110     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2111     SWIG_croak_null();
2112   }
2113 }
2114
2115
2116 XS(_wrap_NDMPConnection_scsi_close) {
2117   {
2118     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2119     void *argp1 = 0 ;
2120     int res1 = 0 ;
2121     int argvi = 0;
2122     gboolean result;
2123     dXSARGS;
2124     
2125     if ((items < 1) || (items > 1)) {
2126       SWIG_croak("Usage: NDMPConnection_scsi_close(self);");
2127     }
2128     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2129     if (!SWIG_IsOK(res1)) {
2130       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_scsi_close" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2131     }
2132     arg1 = (NDMPConnection *)(argp1);
2133     result = (gboolean)NDMPConnection_scsi_close(arg1);
2134     {
2135       if (result)
2136       ST(argvi) = &PL_sv_yes;
2137       else
2138       ST(argvi) = &PL_sv_no;
2139       argvi++;
2140     }
2141     
2142     XSRETURN(argvi);
2143   fail:
2144     
2145     SWIG_croak_null();
2146   }
2147 }
2148
2149
2150 XS(_wrap_NDMPConnection_scsi_execute_cdb_C) {
2151   {
2152     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2153     ndmp_enum arg2 ;
2154     guint32 arg3 ;
2155     gpointer arg4 = (gpointer) 0 ;
2156     gsize arg5 ;
2157     gpointer arg6 = (gpointer) 0 ;
2158     gsize arg7 ;
2159     gsize *arg8 = (gsize *) 0 ;
2160     gpointer arg9 = (gpointer) 0 ;
2161     gsize arg10 ;
2162     gsize *arg11 = (gsize *) 0 ;
2163     guint8 *arg12 = (guint8 *) 0 ;
2164     gpointer arg13 = (gpointer) 0 ;
2165     gsize arg14 ;
2166     gsize *arg15 = (gsize *) 0 ;
2167     void *argp1 = 0 ;
2168     int res1 = 0 ;
2169     gsize dataout_len6 ;
2170     gpointer datain_buf9 ;
2171     gsize actual_datain_len9 ;
2172     guint8 temp12 ;
2173     guint8 ext_sense_buf13[128] ;
2174     gsize actual_ext_sense_len13 ;
2175     int argvi = 0;
2176     SV * _saved[2] ;
2177     gboolean result;
2178     dXSARGS;
2179     
2180     arg12 = &temp12;
2181     {
2182       arg13 = ext_sense_buf13;
2183       arg14 = sizeof(ext_sense_buf13); /* always allocate 128 bytes for sense */
2184       actual_ext_sense_len13 = 0;
2185       arg15 = &actual_ext_sense_len13;
2186     }
2187     if ((items < 6) || (items > 6)) {
2188       SWIG_croak("Usage: NDMPConnection_scsi_execute_cdb_C(self,flags,timeout,cdb,cdb_len,dataout,dataout_len,actual_dataout_len,datain,datain_max_len,actual_datain_len,ext_sense_max_len,actual_ext_sense_len);");
2189     }
2190     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2191     if (!SWIG_IsOK(res1)) {
2192       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_scsi_execute_cdb_C" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2193     }
2194     arg1 = (NDMPConnection *)(argp1);
2195     arg2 = SvIV(ST(1));
2196     {
2197       arg3 = amglue_SvU32(ST(2));
2198     }
2199     {
2200       /* cdb */
2201       int alloc = SWIG_OLDOBJ;
2202       SWIG_AsCharPtrAndSize(ST(3), (char **)&arg4, &arg5, &alloc);
2203       if (arg5) arg5--; /* strip trailing NUL byte */
2204     }
2205     {
2206       /* dataout */
2207       
2208       /* handle the actual input here */
2209       int alloc = SWIG_OLDOBJ;
2210       SWIG_AsCharPtrAndSize(ST(4), (char **)&arg6, &arg7, &alloc);
2211       if (arg7) arg7--; /* strip trailing NUL byte */
2212       /* set up for argout typemap, below */
2213       dataout_len6 = 0;
2214       arg8 = &dataout_len6;
2215     }
2216     {
2217       /* datain */
2218       gsize max_size = amglue_SvU64(ST(5));
2219       arg10 = max_size;
2220       if (max_size) {
2221         arg9 = g_malloc(max_size);
2222       } else {
2223         arg9 = NULL;
2224       }
2225       actual_datain_len9 = 0;
2226       arg11 = &actual_datain_len9;
2227     }
2228     _saved[0] = ST(4);
2229     _saved[1] = ST(5);
2230     result = (gboolean)NDMPConnection_scsi_execute_cdb_C(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14,arg15);
2231     {
2232       if (result)
2233       ST(argvi) = &PL_sv_yes;
2234       else
2235       ST(argvi) = &PL_sv_no;
2236       argvi++;
2237     }
2238     {
2239       if (argvi >= items) {
2240         EXTEND(sp,1);
2241       }
2242       
2243       SP += argvi; PUTBACK;
2244       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg8));
2245       SP -= argvi; argvi++;
2246     }
2247     {
2248       if (argvi >= items) {
2249         EXTEND(sp,1);
2250       }
2251       
2252       /* convert the value, even if it's NULL */
2253       ST(argvi) = SWIG_FromCharPtrAndSize(arg9, *arg11);
2254       argvi++;
2255       if (arg9) g_free(arg9);
2256     }
2257     {
2258       if (argvi >= items) {
2259         EXTEND(sp,1);
2260       }
2261       
2262       ST(argvi) = sv_newmortal();
2263       sv_setuv(ST(argvi), (UV)(*arg12));
2264       argvi++;
2265     }
2266     {
2267       if (argvi >= items) {
2268         EXTEND(sp,1);
2269       }
2270       
2271       ST(argvi) = SWIG_FromCharPtrAndSize(arg13, *arg15);
2272       argvi++;
2273     }
2274     
2275     
2276     XSRETURN(argvi);
2277   fail:
2278     
2279     
2280     SWIG_croak_null();
2281   }
2282 }
2283
2284
2285 XS(_wrap_NDMPConnection_tape_open) {
2286   {
2287     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2288     gchar *arg2 = (gchar *) 0 ;
2289     ndmp_enum arg3 ;
2290     void *argp1 = 0 ;
2291     int res1 = 0 ;
2292     int res2 ;
2293     char *buf2 = 0 ;
2294     int alloc2 = 0 ;
2295     int argvi = 0;
2296     gboolean result;
2297     dXSARGS;
2298     
2299     if ((items < 3) || (items > 3)) {
2300       SWIG_croak("Usage: NDMPConnection_tape_open(self,device,mode);");
2301     }
2302     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2303     if (!SWIG_IsOK(res1)) {
2304       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_open" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2305     }
2306     arg1 = (NDMPConnection *)(argp1);
2307     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
2308     if (!SWIG_IsOK(res2)) {
2309       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "NDMPConnection_tape_open" "', argument " "2"" of type '" "gchar *""'");
2310     }
2311     arg2 = (gchar *)(buf2);
2312     arg3 = SvIV(ST(2));
2313     result = (gboolean)NDMPConnection_tape_open(arg1,arg2,arg3);
2314     {
2315       if (result)
2316       ST(argvi) = &PL_sv_yes;
2317       else
2318       ST(argvi) = &PL_sv_no;
2319       argvi++;
2320     }
2321     
2322     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2323     XSRETURN(argvi);
2324   fail:
2325     
2326     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
2327     SWIG_croak_null();
2328   }
2329 }
2330
2331
2332 XS(_wrap_NDMPConnection_tape_close) {
2333   {
2334     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2335     void *argp1 = 0 ;
2336     int res1 = 0 ;
2337     int argvi = 0;
2338     gboolean result;
2339     dXSARGS;
2340     
2341     if ((items < 1) || (items > 1)) {
2342       SWIG_croak("Usage: NDMPConnection_tape_close(self);");
2343     }
2344     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2345     if (!SWIG_IsOK(res1)) {
2346       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_close" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2347     }
2348     arg1 = (NDMPConnection *)(argp1);
2349     result = (gboolean)NDMPConnection_tape_close(arg1);
2350     {
2351       if (result)
2352       ST(argvi) = &PL_sv_yes;
2353       else
2354       ST(argvi) = &PL_sv_no;
2355       argvi++;
2356     }
2357     
2358     XSRETURN(argvi);
2359   fail:
2360     
2361     SWIG_croak_null();
2362   }
2363 }
2364
2365
2366 XS(_wrap_NDMPConnection_tape_mtio) {
2367   {
2368     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2369     ndmp_enum arg2 ;
2370     gint arg3 ;
2371     guint *arg4 = (guint *) 0 ;
2372     void *argp1 = 0 ;
2373     int res1 = 0 ;
2374     guint temp4 ;
2375     int argvi = 0;
2376     gboolean result;
2377     dXSARGS;
2378     
2379     arg4 = &temp4; temp4 = 0;
2380     if ((items < 3) || (items > 3)) {
2381       SWIG_croak("Usage: NDMPConnection_tape_mtio(self,tape_op,count);");
2382     }
2383     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2384     if (!SWIG_IsOK(res1)) {
2385       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_mtio" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2386     }
2387     arg1 = (NDMPConnection *)(argp1);
2388     arg2 = SvIV(ST(1));
2389     {
2390       if (sizeof(gint) == 1) {
2391         arg3 = amglue_SvI8(ST(2));
2392       } else if (sizeof(gint) == 2) {
2393         arg3 = amglue_SvI16(ST(2));
2394       } else if (sizeof(gint) == 4) {
2395         arg3 = amglue_SvI32(ST(2));
2396       } else if (sizeof(gint) == 8) {
2397         arg3 = amglue_SvI64(ST(2));
2398       } else {
2399         g_critical("Unexpected gint >64 bits?"); /* should be optimized out unless sizeof(gint) > 8 */
2400       }
2401     }
2402     result = (gboolean)NDMPConnection_tape_mtio(arg1,arg2,arg3,arg4);
2403     {
2404       if (result)
2405       ST(argvi) = &PL_sv_yes;
2406       else
2407       ST(argvi) = &PL_sv_no;
2408       argvi++;
2409     }
2410     {
2411       if (argvi >= items) {
2412         EXTEND(sp,1);
2413       }
2414       
2415       SP += argvi; PUTBACK;
2416       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg4));
2417       SP -= argvi; argvi++;
2418     }
2419     
2420     
2421     XSRETURN(argvi);
2422   fail:
2423     
2424     
2425     SWIG_croak_null();
2426   }
2427 }
2428
2429
2430 XS(_wrap_NDMPConnection_tape_write) {
2431   {
2432     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2433     gpointer arg2 = (gpointer) 0 ;
2434     guint64 arg3 ;
2435     guint64 *arg4 = (guint64 *) 0 ;
2436     void *argp1 = 0 ;
2437     int res1 = 0 ;
2438     guint64 temp4 ;
2439     int argvi = 0;
2440     gboolean result;
2441     dXSARGS;
2442     
2443     arg4 = &temp4; temp4 = 0;
2444     if ((items < 2) || (items > 2)) {
2445       SWIG_croak("Usage: NDMPConnection_tape_write(self,buf,len);");
2446     }
2447     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2448     if (!SWIG_IsOK(res1)) {
2449       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_write" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2450     }
2451     arg1 = (NDMPConnection *)(argp1);
2452     {
2453       int alloc = SWIG_OLDOBJ;
2454       size_t len_tmp; /* use a temporary with the right type */
2455       SWIG_AsCharPtrAndSize(ST(1), (char **)&arg2, &len_tmp, &alloc);
2456       if (len_tmp) len_tmp--; /* strip trailing NUL byte */
2457       arg3 = len_tmp;
2458     }
2459     result = (gboolean)NDMPConnection_tape_write(arg1,arg2,arg3,arg4);
2460     {
2461       if (result)
2462       ST(argvi) = &PL_sv_yes;
2463       else
2464       ST(argvi) = &PL_sv_no;
2465       argvi++;
2466     }
2467     {
2468       if (argvi >= items) {
2469         EXTEND(sp,1);
2470       }
2471       
2472       SP += argvi; PUTBACK;
2473       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg4));
2474       SP -= argvi; argvi++;
2475     }
2476     
2477     
2478     XSRETURN(argvi);
2479   fail:
2480     
2481     
2482     SWIG_croak_null();
2483   }
2484 }
2485
2486
2487 XS(_wrap_NDMPConnection_tape_read) {
2488   {
2489     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2490     gpointer arg2 = (gpointer) 0 ;
2491     guint64 arg3 ;
2492     guint64 *arg4 = (guint64 *) 0 ;
2493     void *argp1 = 0 ;
2494     int res1 = 0 ;
2495     guint64 out_count2 ;
2496     int argvi = 0;
2497     SV * _saved[1] ;
2498     gboolean result;
2499     dXSARGS;
2500     
2501     if ((items < 2) || (items > 2)) {
2502       SWIG_croak("Usage: NDMPConnection_tape_read(self,buf,count,out_count);");
2503     }
2504     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2505     if (!SWIG_IsOK(res1)) {
2506       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_read" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2507     }
2508     arg1 = (NDMPConnection *)(argp1);
2509     {
2510       arg3 = amglue_SvU64(ST(1));
2511       arg2 = arg3?g_malloc(arg3):NULL;
2512       out_count2 = 0;
2513       arg4 = &out_count2;
2514     }
2515     _saved[0] = ST(1);
2516     result = (gboolean)NDMPConnection_tape_read(arg1,arg2,arg3,arg4);
2517     {
2518       if (result)
2519       ST(argvi) = &PL_sv_yes;
2520       else
2521       ST(argvi) = &PL_sv_no;
2522       argvi++;
2523     }
2524     {
2525       if (argvi >= items) {
2526         EXTEND(sp,1);
2527       }
2528       
2529       /* convert the value, even if it's NULL */
2530       ST(argvi) = SWIG_FromCharPtrAndSize(arg2, *arg4);
2531       argvi++;
2532       if (arg2) g_free(arg2);
2533     }
2534     
2535     XSRETURN(argvi);
2536   fail:
2537     
2538     SWIG_croak_null();
2539   }
2540 }
2541
2542
2543 XS(_wrap_NDMPConnection_tape_get_state) {
2544   {
2545     NDMPConnection *arg1 = (NDMPConnection *) 0 ;
2546     guint64 *arg2 = (guint64 *) 0 ;
2547     guint64 *arg3 = (guint64 *) 0 ;
2548     guint64 *arg4 = (guint64 *) 0 ;
2549     void *argp1 = 0 ;
2550     int res1 = 0 ;
2551     guint64 temp2 ;
2552     guint64 temp3 ;
2553     guint64 temp4 ;
2554     int argvi = 0;
2555     gboolean result;
2556     dXSARGS;
2557     
2558     arg2 = &temp2; temp2 = 0;
2559     arg3 = &temp3; temp3 = 0;
2560     arg4 = &temp4; temp4 = 0;
2561     if ((items < 1) || (items > 1)) {
2562       SWIG_croak("Usage: NDMPConnection_tape_get_state(self);");
2563     }
2564     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_NDMPConnection, 0 |  0 );
2565     if (!SWIG_IsOK(res1)) {
2566       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "NDMPConnection_tape_get_state" "', argument " "1"" of type '" "NDMPConnection *""'"); 
2567     }
2568     arg1 = (NDMPConnection *)(argp1);
2569     result = (gboolean)NDMPConnection_tape_get_state(arg1,arg2,arg3,arg4);
2570     {
2571       if (result)
2572       ST(argvi) = &PL_sv_yes;
2573       else
2574       ST(argvi) = &PL_sv_no;
2575       argvi++;
2576     }
2577     {
2578       if (argvi >= items) {
2579         EXTEND(sp,1);
2580       }
2581       
2582       SP += argvi; PUTBACK;
2583       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg2));
2584       SP -= argvi; argvi++;
2585     }
2586     {
2587       if (argvi >= items) {
2588         EXTEND(sp,1);
2589       }
2590       
2591       SP += argvi; PUTBACK;
2592       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg3));
2593       SP -= argvi; argvi++;
2594     }
2595     {
2596       if (argvi >= items) {
2597         EXTEND(sp,1);
2598       }
2599       
2600       SP += argvi; PUTBACK;
2601       ST(argvi) = sv_2mortal(amglue_newSVu64(*arg4));
2602       SP -= argvi; argvi++;
2603     }
2604     
2605     
2606     
2607     
2608     XSRETURN(argvi);
2609   fail:
2610     
2611     
2612     
2613     
2614     SWIG_croak_null();
2615   }
2616 }
2617
2618
2619
2620 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
2621
2622 static swig_type_info _swigt__p_NDMPConnection = {"_p_NDMPConnection", "struct NDMPConnection *|NDMPConnection *", 0, 0, (void*)"Amanda::NDMP::NDMPConnection", 0};
2623 static swig_type_info _swigt__p_char = {"_p_char", "gchar *|char *", 0, 0, (void*)0, 0};
2624 static swig_type_info _swigt__p_double = {"_p_double", "double *|gdouble *", 0, 0, (void*)0, 0};
2625 static swig_type_info _swigt__p_float = {"_p_float", "float *|gfloat *", 0, 0, (void*)0, 0};
2626 static swig_type_info _swigt__p_gint = {"_p_gint", "gint *", 0, 0, (void*)0, 0};
2627 static swig_type_info _swigt__p_gsize = {"_p_gsize", "gsize *", 0, 0, (void*)0, 0};
2628 static swig_type_info _swigt__p_guint = {"_p_guint", "guint *", 0, 0, (void*)0, 0};
2629 static swig_type_info _swigt__p_guint32 = {"_p_guint32", "guint32 *", 0, 0, (void*)0, 0};
2630 static swig_type_info _swigt__p_guint64 = {"_p_guint64", "guint64 *", 0, 0, (void*)0, 0};
2631 static swig_type_info _swigt__p_guint8 = {"_p_guint8", "guint8 *", 0, 0, (void*)0, 0};
2632 static swig_type_info _swigt__p_int = {"_p_int", "addr_type *|int *|tape_open_mode *|mover_mode *|data_halt_reason *|mover_halt_reason *|mover_pause_reason *|tape_mtio_op *|gboolean *|scsi_data_dir *|mover_state *", 0, 0, (void*)0, 0};
2633 static swig_type_info _swigt__p_ndmp_enum = {"_p_ndmp_enum", "ndmp_enum *", 0, 0, (void*)0, 0};
2634 static swig_type_info _swigt__p_unsigned_char = {"_p_unsigned_char", "guchar *|unsigned char *", 0, 0, (void*)0, 0};
2635
2636 static swig_type_info *swig_type_initial[] = {
2637   &_swigt__p_NDMPConnection,
2638   &_swigt__p_char,
2639   &_swigt__p_double,
2640   &_swigt__p_float,
2641   &_swigt__p_gint,
2642   &_swigt__p_gsize,
2643   &_swigt__p_guint,
2644   &_swigt__p_guint32,
2645   &_swigt__p_guint64,
2646   &_swigt__p_guint8,
2647   &_swigt__p_int,
2648   &_swigt__p_ndmp_enum,
2649   &_swigt__p_unsigned_char,
2650 };
2651
2652 static swig_cast_info _swigc__p_NDMPConnection[] = {  {&_swigt__p_NDMPConnection, 0, 0, 0},{0, 0, 0, 0}};
2653 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
2654 static swig_cast_info _swigc__p_double[] = {  {&_swigt__p_double, 0, 0, 0},{0, 0, 0, 0}};
2655 static swig_cast_info _swigc__p_float[] = {  {&_swigt__p_float, 0, 0, 0},{0, 0, 0, 0}};
2656 static swig_cast_info _swigc__p_gint[] = {  {&_swigt__p_gint, 0, 0, 0},{0, 0, 0, 0}};
2657 static swig_cast_info _swigc__p_gsize[] = {  {&_swigt__p_gsize, 0, 0, 0},{0, 0, 0, 0}};
2658 static swig_cast_info _swigc__p_guint[] = {  {&_swigt__p_guint, 0, 0, 0},{0, 0, 0, 0}};
2659 static swig_cast_info _swigc__p_guint32[] = {  {&_swigt__p_guint32, 0, 0, 0},{0, 0, 0, 0}};
2660 static swig_cast_info _swigc__p_guint64[] = {  {&_swigt__p_guint64, 0, 0, 0},{0, 0, 0, 0}};
2661 static swig_cast_info _swigc__p_guint8[] = {  {&_swigt__p_guint8, 0, 0, 0},{0, 0, 0, 0}};
2662 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
2663 static swig_cast_info _swigc__p_ndmp_enum[] = {  {&_swigt__p_ndmp_enum, 0, 0, 0},{0, 0, 0, 0}};
2664 static swig_cast_info _swigc__p_unsigned_char[] = {  {&_swigt__p_unsigned_char, 0, 0, 0},{0, 0, 0, 0}};
2665
2666 static swig_cast_info *swig_cast_initial[] = {
2667   _swigc__p_NDMPConnection,
2668   _swigc__p_char,
2669   _swigc__p_double,
2670   _swigc__p_float,
2671   _swigc__p_gint,
2672   _swigc__p_gsize,
2673   _swigc__p_guint,
2674   _swigc__p_guint32,
2675   _swigc__p_guint64,
2676   _swigc__p_guint8,
2677   _swigc__p_int,
2678   _swigc__p_ndmp_enum,
2679   _swigc__p_unsigned_char,
2680 };
2681
2682
2683 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */
2684
2685 static swig_constant_info swig_constants[] = {
2686 {0,0,0,0,0,0}
2687 };
2688 #ifdef __cplusplus
2689 }
2690 #endif
2691 static swig_variable_info swig_variables[] = {
2692 {0,0,0,0}
2693 };
2694 static swig_command_info swig_commands[] = {
2695 {"Amanda::NDMPc::new_NDMPConnection", _wrap_new_NDMPConnection},
2696 {"Amanda::NDMPc::delete_NDMPConnection", _wrap_delete_NDMPConnection},
2697 {"Amanda::NDMPc::NDMPConnection_err_code", _wrap_NDMPConnection_err_code},
2698 {"Amanda::NDMPc::NDMPConnection_err_msg", _wrap_NDMPConnection_err_msg},
2699 {"Amanda::NDMPc::NDMPConnection_set_verbose", _wrap_NDMPConnection_set_verbose},
2700 {"Amanda::NDMPc::NDMPConnection_scsi_open", _wrap_NDMPConnection_scsi_open},
2701 {"Amanda::NDMPc::NDMPConnection_scsi_close", _wrap_NDMPConnection_scsi_close},
2702 {"Amanda::NDMPc::NDMPConnection_scsi_execute_cdb_C", _wrap_NDMPConnection_scsi_execute_cdb_C},
2703 {"Amanda::NDMPc::NDMPConnection_tape_open", _wrap_NDMPConnection_tape_open},
2704 {"Amanda::NDMPc::NDMPConnection_tape_close", _wrap_NDMPConnection_tape_close},
2705 {"Amanda::NDMPc::NDMPConnection_tape_mtio", _wrap_NDMPConnection_tape_mtio},
2706 {"Amanda::NDMPc::NDMPConnection_tape_write", _wrap_NDMPConnection_tape_write},
2707 {"Amanda::NDMPc::NDMPConnection_tape_read", _wrap_NDMPConnection_tape_read},
2708 {"Amanda::NDMPc::NDMPConnection_tape_get_state", _wrap_NDMPConnection_tape_get_state},
2709 {0,0}
2710 };
2711 /* -----------------------------------------------------------------------------
2712  * Type initialization:
2713  * This problem is tough by the requirement that no dynamic 
2714  * memory is used. Also, since swig_type_info structures store pointers to 
2715  * swig_cast_info structures and swig_cast_info structures store pointers back
2716  * to swig_type_info structures, we need some lookup code at initialization. 
2717  * The idea is that swig generates all the structures that are needed. 
2718  * The runtime then collects these partially filled structures. 
2719  * The SWIG_InitializeModule function takes these initial arrays out of 
2720  * swig_module, and does all the lookup, filling in the swig_module.types
2721  * array with the correct data and linking the correct swig_cast_info
2722  * structures together.
2723  *
2724  * The generated swig_type_info structures are assigned staticly to an initial 
2725  * array. We just loop through that array, and handle each type individually.
2726  * First we lookup if this type has been already loaded, and if so, use the
2727  * loaded structure instead of the generated one. Then we have to fill in the
2728  * cast linked list. The cast data is initially stored in something like a
2729  * two-dimensional array. Each row corresponds to a type (there are the same
2730  * number of rows as there are in the swig_type_initial array). Each entry in
2731  * a column is one of the swig_cast_info structures for that type.
2732  * The cast_initial array is actually an array of arrays, because each row has
2733  * a variable number of columns. So to actually build the cast linked list,
2734  * we find the array of casts associated with the type, and loop through it 
2735  * adding the casts to the list. The one last trick we need to do is making
2736  * sure the type pointer in the swig_cast_info struct is correct.
2737  *
2738  * First off, we lookup the cast->type name to see if it is already loaded. 
2739  * There are three cases to handle:
2740  *  1) If the cast->type has already been loaded AND the type we are adding
2741  *     casting info to has not been loaded (it is in this module), THEN we
2742  *     replace the cast->type pointer with the type pointer that has already
2743  *     been loaded.
2744  *  2) If BOTH types (the one we are adding casting info to, and the 
2745  *     cast->type) are loaded, THEN the cast info has already been loaded by
2746  *     the previous module so we just ignore it.
2747  *  3) Finally, if cast->type has not already been loaded, then we add that
2748  *     swig_cast_info to the linked list (because the cast->type) pointer will
2749  *     be correct.
2750  * ----------------------------------------------------------------------------- */
2751
2752 #ifdef __cplusplus
2753 extern "C" {
2754 #if 0
2755 } /* c-mode */
2756 #endif
2757 #endif
2758
2759 #if 0
2760 #define SWIGRUNTIME_DEBUG
2761 #endif
2762
2763
2764 SWIGRUNTIME void
2765 SWIG_InitializeModule(void *clientdata) {
2766   size_t i;
2767   swig_module_info *module_head, *iter;
2768   int found, init;
2769   
2770   clientdata = clientdata;
2771   
2772   /* check to see if the circular list has been setup, if not, set it up */
2773   if (swig_module.next==0) {
2774     /* Initialize the swig_module */
2775     swig_module.type_initial = swig_type_initial;
2776     swig_module.cast_initial = swig_cast_initial;
2777     swig_module.next = &swig_module;
2778     init = 1;
2779   } else {
2780     init = 0;
2781   }
2782   
2783   /* Try and load any already created modules */
2784   module_head = SWIG_GetModule(clientdata);
2785   if (!module_head) {
2786     /* This is the first module loaded for this interpreter */
2787     /* so set the swig module into the interpreter */
2788     SWIG_SetModule(clientdata, &swig_module);
2789     module_head = &swig_module;
2790   } else {
2791     /* the interpreter has loaded a SWIG module, but has it loaded this one? */
2792     found=0;
2793     iter=module_head;
2794     do {
2795       if (iter==&swig_module) {
2796         found=1;
2797         break;
2798       }
2799       iter=iter->next;
2800     } while (iter!= module_head);
2801     
2802     /* if the is found in the list, then all is done and we may leave */
2803     if (found) return;
2804     /* otherwise we must add out module into the list */
2805     swig_module.next = module_head->next;
2806     module_head->next = &swig_module;
2807   }
2808   
2809   /* When multiple interpeters are used, a module could have already been initialized in
2810        a different interpreter, but not yet have a pointer in this interpreter.
2811        In this case, we do not want to continue adding types... everything should be
2812        set up already */
2813   if (init == 0) return;
2814   
2815   /* Now work on filling in swig_module.types */
2816 #ifdef SWIGRUNTIME_DEBUG
2817   printf("SWIG_InitializeModule: size %d\n", swig_module.size);
2818 #endif
2819   for (i = 0; i < swig_module.size; ++i) {
2820     swig_type_info *type = 0;
2821     swig_type_info *ret;
2822     swig_cast_info *cast;
2823     
2824 #ifdef SWIGRUNTIME_DEBUG
2825     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2826 #endif
2827     
2828     /* if there is another module already loaded */
2829     if (swig_module.next != &swig_module) {
2830       type = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, swig_module.type_initial[i]->name);
2831     }
2832     if (type) {
2833       /* Overwrite clientdata field */
2834 #ifdef SWIGRUNTIME_DEBUG
2835       printf("SWIG_InitializeModule: found type %s\n", type->name);
2836 #endif
2837       if (swig_module.type_initial[i]->clientdata) {
2838         type->clientdata = swig_module.type_initial[i]->clientdata;
2839 #ifdef SWIGRUNTIME_DEBUG
2840         printf("SWIG_InitializeModule: found and overwrite type %s \n", type->name);
2841 #endif
2842       }
2843     } else {
2844       type = swig_module.type_initial[i];
2845     }
2846     
2847     /* Insert casting types */
2848     cast = swig_module.cast_initial[i];
2849     while (cast->type) {
2850       /* Don't need to add information already in the list */
2851       ret = 0;
2852 #ifdef SWIGRUNTIME_DEBUG
2853       printf("SWIG_InitializeModule: look cast %s\n", cast->type->name);
2854 #endif
2855       if (swig_module.next != &swig_module) {
2856         ret = SWIG_MangledTypeQueryModule(swig_module.next, &swig_module, cast->type->name);
2857 #ifdef SWIGRUNTIME_DEBUG
2858         if (ret) printf("SWIG_InitializeModule: found cast %s\n", ret->name);
2859 #endif
2860       }
2861       if (ret) {
2862         if (type == swig_module.type_initial[i]) {
2863 #ifdef SWIGRUNTIME_DEBUG
2864           printf("SWIG_InitializeModule: skip old type %s\n", ret->name);
2865 #endif
2866           cast->type = ret;
2867           ret = 0;
2868         } else {
2869           /* Check for casting already in the list */
2870           swig_cast_info *ocast = SWIG_TypeCheck(ret->name, type);
2871 #ifdef SWIGRUNTIME_DEBUG
2872           if (ocast) printf("SWIG_InitializeModule: skip old cast %s\n", ret->name);
2873 #endif
2874           if (!ocast) ret = 0;
2875         }
2876       }
2877       
2878       if (!ret) {
2879 #ifdef SWIGRUNTIME_DEBUG
2880         printf("SWIG_InitializeModule: adding cast %s\n", cast->type->name);
2881 #endif
2882         if (type->cast) {
2883           type->cast->prev = cast;
2884           cast->next = type->cast;
2885         }
2886         type->cast = cast;
2887       }
2888       cast++;
2889     }
2890     /* Set entry in modules->types array equal to the type */
2891     swig_module.types[i] = type;
2892   }
2893   swig_module.types[i] = 0;
2894   
2895 #ifdef SWIGRUNTIME_DEBUG
2896   printf("**** SWIG_InitializeModule: Cast List ******\n");
2897   for (i = 0; i < swig_module.size; ++i) {
2898     int j = 0;
2899     swig_cast_info *cast = swig_module.cast_initial[i];
2900     printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
2901     while (cast->type) {
2902       printf("SWIG_InitializeModule: cast type %s\n", cast->type->name);
2903       cast++;
2904       ++j;
2905     }
2906     printf("---- Total casts: %d\n",j);
2907   }
2908   printf("**** SWIG_InitializeModule: Cast List ******\n");
2909 #endif
2910 }
2911
2912 /* This function will propagate the clientdata field of type to
2913 * any new swig_type_info structures that have been added into the list
2914 * of equivalent types.  It is like calling
2915 * SWIG_TypeClientData(type, clientdata) a second time.
2916 */
2917 SWIGRUNTIME void
2918 SWIG_PropagateClientData(void) {
2919   size_t i;
2920   swig_cast_info *equiv;
2921   static int init_run = 0;
2922   
2923   if (init_run) return;
2924   init_run = 1;
2925   
2926   for (i = 0; i < swig_module.size; i++) {
2927     if (swig_module.types[i]->clientdata) {
2928       equiv = swig_module.types[i]->cast;
2929       while (equiv) {
2930         if (!equiv->converter) {
2931           if (equiv->type && !equiv->type->clientdata)
2932           SWIG_TypeClientData(equiv->type, swig_module.types[i]->clientdata);
2933         }
2934         equiv = equiv->next;
2935       }
2936     }
2937   }
2938 }
2939
2940 #ifdef __cplusplus
2941 #if 0
2942 {
2943   /* c-mode */
2944 #endif
2945 }
2946 #endif
2947
2948
2949
2950 #ifdef __cplusplus
2951 extern "C"
2952 #endif
2953
2954 XS(SWIG_init) {
2955   dXSARGS;
2956   int i;
2957   
2958   SWIG_InitializeModule(0);
2959   
2960   /* Install commands */
2961   for (i = 0; swig_commands[i].name; i++) {
2962     newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
2963   }
2964   
2965   /* Install variables */
2966   for (i = 0; swig_variables[i].name; i++) {
2967     SV *sv;
2968     sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
2969     if (swig_variables[i].type) {
2970       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
2971     } else {
2972       sv_setiv(sv,(IV) 0);
2973     }
2974     swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
2975   }
2976   
2977   /* Install constant */
2978   for (i = 0; swig_constants[i].type; i++) {
2979     SV *sv;
2980     sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
2981     switch(swig_constants[i].type) {
2982     case SWIG_INT:
2983       sv_setiv(sv, (IV) swig_constants[i].lvalue);
2984       break;
2985     case SWIG_FLOAT:
2986       sv_setnv(sv, (double) swig_constants[i].dvalue);
2987       break;
2988     case SWIG_STRING:
2989       sv_setpv(sv, (char *) swig_constants[i].pvalue);
2990       break;
2991     case SWIG_POINTER:
2992       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
2993       break;
2994     case SWIG_BINARY:
2995       SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
2996       break;
2997     default:
2998       break;
2999     }
3000     SvREADONLY_on(sv);
3001   }
3002   
3003   
3004   glib_init();
3005   
3006   SWIG_TypeClientData(SWIGTYPE_p_NDMPConnection, (void*) "Amanda::NDMP::NDMPConnection");
3007   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3008     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_SCSI_DATA_DIR_NONE", TRUE | 0x2 | GV_ADDMULTI);
3009     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_SCSI_DATA_DIR_NONE)));
3010     SvREADONLY_on(sv);
3011   } while(0) /*@SWIG@*/;
3012   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3013     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_SCSI_DATA_DIR_IN", TRUE | 0x2 | GV_ADDMULTI);
3014     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_SCSI_DATA_DIR_IN)));
3015     SvREADONLY_on(sv);
3016   } while(0) /*@SWIG@*/;
3017   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3018     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_SCSI_DATA_DIR_OUT", TRUE | 0x2 | GV_ADDMULTI);
3019     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_SCSI_DATA_DIR_OUT)));
3020     SvREADONLY_on(sv);
3021   } while(0) /*@SWIG@*/;
3022   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3023     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_TAPE_READ_MODE", TRUE | 0x2 | GV_ADDMULTI);
3024     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_TAPE_READ_MODE)));
3025     SvREADONLY_on(sv);
3026   } while(0) /*@SWIG@*/;
3027   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3028     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_TAPE_RDWR_MODE", TRUE | 0x2 | GV_ADDMULTI);
3029     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_TAPE_RDWR_MODE)));
3030     SvREADONLY_on(sv);
3031   } while(0) /*@SWIG@*/;
3032   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3033     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_TAPE_RAW_MODE", TRUE | 0x2 | GV_ADDMULTI);
3034     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_TAPE_RAW_MODE)));
3035     SvREADONLY_on(sv);
3036   } while(0) /*@SWIG@*/;
3037   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3038     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_FSF", TRUE | 0x2 | GV_ADDMULTI);
3039     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_FSF)));
3040     SvREADONLY_on(sv);
3041   } while(0) /*@SWIG@*/;
3042   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3043     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_BSF", TRUE | 0x2 | GV_ADDMULTI);
3044     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_BSF)));
3045     SvREADONLY_on(sv);
3046   } while(0) /*@SWIG@*/;
3047   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3048     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_FSR", TRUE | 0x2 | GV_ADDMULTI);
3049     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_FSR)));
3050     SvREADONLY_on(sv);
3051   } while(0) /*@SWIG@*/;
3052   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3053     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_BSR", TRUE | 0x2 | GV_ADDMULTI);
3054     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_BSR)));
3055     SvREADONLY_on(sv);
3056   } while(0) /*@SWIG@*/;
3057   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3058     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_REW", TRUE | 0x2 | GV_ADDMULTI);
3059     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_REW)));
3060     SvREADONLY_on(sv);
3061   } while(0) /*@SWIG@*/;
3062   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3063     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_EOF", TRUE | 0x2 | GV_ADDMULTI);
3064     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_EOF)));
3065     SvREADONLY_on(sv);
3066   } while(0) /*@SWIG@*/;
3067   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3068     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MTIO_OFF", TRUE | 0x2 | GV_ADDMULTI);
3069     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MTIO_OFF)));
3070     SvREADONLY_on(sv);
3071   } while(0) /*@SWIG@*/;
3072   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3073     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_MODE_READ", TRUE | 0x2 | GV_ADDMULTI);
3074     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_MODE_READ)));
3075     SvREADONLY_on(sv);
3076   } while(0) /*@SWIG@*/;
3077   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3078     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_MODE_WRITE", TRUE | 0x2 | GV_ADDMULTI);
3079     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_MODE_WRITE)));
3080     SvREADONLY_on(sv);
3081   } while(0) /*@SWIG@*/;
3082   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3083     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_ADDR_LOCAL", TRUE | 0x2 | GV_ADDMULTI);
3084     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_ADDR_LOCAL)));
3085     SvREADONLY_on(sv);
3086   } while(0) /*@SWIG@*/;
3087   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3088     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_ADDR_TCP", TRUE | 0x2 | GV_ADDMULTI);
3089     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_ADDR_TCP)));
3090     SvREADONLY_on(sv);
3091   } while(0) /*@SWIG@*/;
3092   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3093     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_ADDR_AS_CONNECTED", TRUE | 0x2 | GV_ADDMULTI);
3094     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_ADDR_AS_CONNECTED)));
3095     SvREADONLY_on(sv);
3096   } while(0) /*@SWIG@*/;
3097   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3098     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_IDLE", TRUE | 0x2 | GV_ADDMULTI);
3099     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_IDLE)));
3100     SvREADONLY_on(sv);
3101   } while(0) /*@SWIG@*/;
3102   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3103     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_LISTEN", TRUE | 0x2 | GV_ADDMULTI);
3104     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_LISTEN)));
3105     SvREADONLY_on(sv);
3106   } while(0) /*@SWIG@*/;
3107   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3108     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_ACTIVE", TRUE | 0x2 | GV_ADDMULTI);
3109     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_ACTIVE)));
3110     SvREADONLY_on(sv);
3111   } while(0) /*@SWIG@*/;
3112   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3113     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_PAUSED", TRUE | 0x2 | GV_ADDMULTI);
3114     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_PAUSED)));
3115     SvREADONLY_on(sv);
3116   } while(0) /*@SWIG@*/;
3117   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3118     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_HALTED", TRUE | 0x2 | GV_ADDMULTI);
3119     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_HALTED)));
3120     SvREADONLY_on(sv);
3121   } while(0) /*@SWIG@*/;
3122   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3123     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_STATE_STANDBY", TRUE | 0x2 | GV_ADDMULTI);
3124     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_STATE_STANDBY)));
3125     SvREADONLY_on(sv);
3126   } while(0) /*@SWIG@*/;
3127   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3128     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_DATA_HALT_NA", TRUE | 0x2 | GV_ADDMULTI);
3129     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_DATA_HALT_NA)));
3130     SvREADONLY_on(sv);
3131   } while(0) /*@SWIG@*/;
3132   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3133     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_DATA_HALT_SUCCESSFUL", TRUE | 0x2 | GV_ADDMULTI);
3134     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_DATA_HALT_SUCCESSFUL)));
3135     SvREADONLY_on(sv);
3136   } while(0) /*@SWIG@*/;
3137   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3138     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_DATA_HALT_ABORTED", TRUE | 0x2 | GV_ADDMULTI);
3139     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_DATA_HALT_ABORTED)));
3140     SvREADONLY_on(sv);
3141   } while(0) /*@SWIG@*/;
3142   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3143     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_DATA_HALT_INTERNAL_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3144     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_DATA_HALT_INTERNAL_ERROR)));
3145     SvREADONLY_on(sv);
3146   } while(0) /*@SWIG@*/;
3147   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3148     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_DATA_HALT_CONNECT_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3149     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_DATA_HALT_CONNECT_ERROR)));
3150     SvREADONLY_on(sv);
3151   } while(0) /*@SWIG@*/;
3152   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3153     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_HALT_NA", TRUE | 0x2 | GV_ADDMULTI);
3154     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_HALT_NA)));
3155     SvREADONLY_on(sv);
3156   } while(0) /*@SWIG@*/;
3157   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3158     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_HALT_CONNECT_CLOSED", TRUE | 0x2 | GV_ADDMULTI);
3159     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_HALT_CONNECT_CLOSED)));
3160     SvREADONLY_on(sv);
3161   } while(0) /*@SWIG@*/;
3162   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3163     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_HALT_ABORTED", TRUE | 0x2 | GV_ADDMULTI);
3164     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_HALT_ABORTED)));
3165     SvREADONLY_on(sv);
3166   } while(0) /*@SWIG@*/;
3167   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3168     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_HALT_INTERNAL_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3169     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_HALT_INTERNAL_ERROR)));
3170     SvREADONLY_on(sv);
3171   } while(0) /*@SWIG@*/;
3172   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3173     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_HALT_CONNECT_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3174     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_HALT_CONNECT_ERROR)));
3175     SvREADONLY_on(sv);
3176   } while(0) /*@SWIG@*/;
3177   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3178     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_NA", TRUE | 0x2 | GV_ADDMULTI);
3179     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_NA)));
3180     SvREADONLY_on(sv);
3181   } while(0) /*@SWIG@*/;
3182   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3183     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_EOM", TRUE | 0x2 | GV_ADDMULTI);
3184     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_EOM)));
3185     SvREADONLY_on(sv);
3186   } while(0) /*@SWIG@*/;
3187   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3188     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_EOF", TRUE | 0x2 | GV_ADDMULTI);
3189     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_EOF)));
3190     SvREADONLY_on(sv);
3191   } while(0) /*@SWIG@*/;
3192   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3193     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_SEEK", TRUE | 0x2 | GV_ADDMULTI);
3194     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_SEEK)));
3195     SvREADONLY_on(sv);
3196   } while(0) /*@SWIG@*/;
3197   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3198     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_MEDIA_ERROR", TRUE | 0x2 | GV_ADDMULTI);
3199     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_MEDIA_ERROR)));
3200     SvREADONLY_on(sv);
3201   } while(0) /*@SWIG@*/;
3202   /*@SWIG:/usr/share/swig/1.3.39/perl5/perltypemaps.swg,65,%set_constant@*/ do {
3203     SV *sv = get_sv((char*) SWIG_prefix "NDMP9_MOVER_PAUSE_EOW", TRUE | 0x2 | GV_ADDMULTI);
3204     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(NDMP9_MOVER_PAUSE_EOW)));
3205     SvREADONLY_on(sv);
3206   } while(0) /*@SWIG@*/;
3207   ST(0) = &PL_sv_yes;
3208   XSRETURN(1);
3209 }
3210