160484Sobrien#include "EXTERN.h"
260484Sobrien#include "perl.h"
3218822Sdim#include "XSUB.h"
460484Sobrien
5218822Sdim/* Old perls (pre 5.8.9 or so) did not have PERL_UNUSED_ARG in XSUB.h.
660484Sobrien * This is normally covered by ppport.h. */
760484Sobrien#ifndef PERL_UNUSED_ARG
860484Sobrien#  if defined(lint) && defined(S_SPLINT_S) /* www.splint.org */
960484Sobrien#    include <note.h>
1060484Sobrien#    define PERL_UNUSED_ARG(x) NOTE(ARGUNUSED(x))
1160484Sobrien#  else
1260484Sobrien#    define PERL_UNUSED_ARG(x) ((void)x)
1360484Sobrien#  endif
1460484Sobrien#endif
1560484Sobrien#ifndef PERL_UNUSED_VAR
1660484Sobrien#  define PERL_UNUSED_VAR(x) ((void)x)
1760484Sobrien#endif
1860484Sobrien
19218822Sdimint xsusage_one()       { return 1; }
2060484Sobrienint xsusage_two()       { return 2; }
2160484Sobrienint xsusage_three()     { return 3; }
2260484Sobrienint xsusage_four()      { return 4; }
2360484Sobrienint xsusage_five(int i) { PERL_UNUSED_ARG(i); return 5; }
2460484Sobrienint xsusage_six(int i)  { PERL_UNUSED_ARG(i); return 6; }
2560484Sobrien
2660484SobrienMODULE = XSUsage         PACKAGE = XSUsage	PREFIX = xsusage_
2760484Sobrien
2860484SobrienPROTOTYPES: DISABLE
29130561Sobrien
30130561Sobrienint
3160484Sobrienxsusage_one()
3260484Sobrien
3360484Sobrienint
3460484Sobrienxsusage_two()
3560484Sobrien    ALIAS:
3660484Sobrien        two_x = 1
3760484Sobrien        FOO::two = 2
3860484Sobrien    INIT:
3960484Sobrien        PERL_UNUSED_VAR(ix);
4060484Sobrien
4160484Sobrienint
4260484Sobrieninterface_v_i()
4360484Sobrien    INTERFACE:
4460484Sobrien        xsusage_three
4560484Sobrien
4660484Sobrienint
4760484Sobrienxsusage_four(...)
4860484Sobrien
4960484Sobrienint
5060484Sobrienxsusage_five(int i, ...)
5160484Sobrien
5260484Sobrienint
5360484Sobrienxsusage_six(int i = 0)
5460484Sobrien