root/ext/binary/binarylib.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. check_endian
  2. binarylib_default_endian
  3. binarylib_read_binary_uint8
  4. binarylib_read_binary_uint16
  5. binarylib_read_binary_uint32
  6. binarylib_read_binary_uint64
  7. binarylib_read_binary_sint8
  8. binarylib_read_binary_sint16
  9. binarylib_read_binary_sint32
  10. binarylib_read_binary_sint64
  11. binarylib_write_binary_uint8
  12. binarylib_write_binary_uint16
  13. binarylib_write_binary_uint32
  14. binarylib_write_binary_uint64
  15. binarylib_write_binary_sint8
  16. binarylib_write_binary_sint16
  17. binarylib_write_binary_sint32
  18. binarylib_write_binary_sint64
  19. binarylib_read_binary_float
  20. binarylib_read_binary_double
  21. binarylib_write_binary_float
  22. binarylib_write_binary_double
  23. Scm_Init_binarylib

   1 /* Generated by genstub.  Do not edit. */
   2 #include <gauche.h>
   3 #if defined(__CYGWIN__) || defined(__MINGW32__)
   4 #define SCM_CGEN_CONST /*empty*/
   5 #else
   6 #define SCM_CGEN_CONST const
   7 #endif
   8 #include "binary.h"
   9 
  10 #ifdef WORDS_BIGENDIAN
  11 #define DEFAULT_ENDIAN SCM_SYM_BIG_ENDIAN
  12 #else
  13 #define DEFAULT_ENDIAN SCM_SYM_LITTLE_ENDIAN
  14 #endif
  15 
  16 static Endian check_endian(ScmObj sym)
  17  {
  18   if (SCM_EQ(sym, SCM_SYM_BIG_ENDIAN)) return SCM_BE;
  19   if (SCM_EQ(sym, SCM_SYM_LITTLE_ENDIAN)) return SCM_LE;
  20   Scm_Error("endian must be big-endian or little-endian, but got %S", sym);
  21   return SCM_BE; /* dummy */
  22  }
  23 
  24 static ScmObj binarylib_default_endian(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  25 {
  26   SCM_ENTER_SUBR("default-endian");
  27   {
  28 {
  29 ScmObj SCM_RESULT;
  30  SCM_RESULT = (DEFAULT_ENDIAN);
  31 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
  32 }
  33   }
  34 }
  35 
  36 static SCM_DEFINE_STRING_CONST(binarylib_default_endian__NAME, "default-endian", 14, 14);
  37 static SCM_DEFINE_SUBR(binarylib_default_endian__STUB, 0, 0, SCM_OBJ(&binarylib_default_endian__NAME), binarylib_default_endian, NULL, NULL);
  38 
  39 static ScmObj binarylib_read_binary_uint8(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  40 {
  41   ScmObj port_scm;
  42   ScmObj port;
  43   ScmObj endian_scm;
  44   Endian endian;
  45   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
  46   SCM_ENTER_SUBR("read-binary-uint8");
  47   if (Scm_Length(SCM_OPTARGS) > 2)
  48     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
  49   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
  50   else {
  51     port_scm = SCM_CAR(SCM_OPTARGS);
  52     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
  53   }
  54   port = (port_scm);
  55   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
  56   else {
  57     endian_scm = SCM_CAR(SCM_OPTARGS);
  58     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
  59   }
  60   endian = check_endian(endian_scm);
  61   {
  62 {
  63 ScmObj SCM_RESULT;
  64 SCM_RESULT = Scm_ReadBinaryUint8(port, endian);
  65 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
  66 }
  67   }
  68 }
  69 
  70 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_uint8__NAME, "read-binary-uint8", 17, 17);
  71 static SCM_DEFINE_SUBR(binarylib_read_binary_uint8__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_uint8__NAME), binarylib_read_binary_uint8, NULL, NULL);
  72 
  73 static ScmObj binarylib_read_binary_uint16(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
  74 {
  75   ScmObj port_scm;
  76   ScmObj port;
  77   ScmObj endian_scm;
  78   Endian endian;
  79   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
  80   SCM_ENTER_SUBR("read-binary-uint16");
  81   if (Scm_Length(SCM_OPTARGS) > 2)
  82     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
  83   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
  84   else {
  85     port_scm = SCM_CAR(SCM_OPTARGS);
  86     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
  87   }
  88   port = (port_scm);
  89   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
  90   else {
  91     endian_scm = SCM_CAR(SCM_OPTARGS);
  92     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
  93   }
  94   endian = check_endian(endian_scm);
  95   {
  96 {
  97 ScmObj SCM_RESULT;
  98 SCM_RESULT = Scm_ReadBinaryUint16(port, endian);
  99 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 100 }
 101   }
 102 }
 103 
 104 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_uint16__NAME, "read-binary-uint16", 18, 18);
 105 static SCM_DEFINE_SUBR(binarylib_read_binary_uint16__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_uint16__NAME), binarylib_read_binary_uint16, NULL, NULL);
 106 
 107 static ScmObj binarylib_read_binary_uint32(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 108 {
 109   ScmObj port_scm;
 110   ScmObj port;
 111   ScmObj endian_scm;
 112   Endian endian;
 113   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 114   SCM_ENTER_SUBR("read-binary-uint32");
 115   if (Scm_Length(SCM_OPTARGS) > 2)
 116     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 117   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 118   else {
 119     port_scm = SCM_CAR(SCM_OPTARGS);
 120     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 121   }
 122   port = (port_scm);
 123   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 124   else {
 125     endian_scm = SCM_CAR(SCM_OPTARGS);
 126     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 127   }
 128   endian = check_endian(endian_scm);
 129   {
 130 {
 131 ScmObj SCM_RESULT;
 132 SCM_RESULT = Scm_ReadBinaryUint32(port, endian);
 133 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 134 }
 135   }
 136 }
 137 
 138 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_uint32__NAME, "read-binary-uint32", 18, 18);
 139 static SCM_DEFINE_SUBR(binarylib_read_binary_uint32__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_uint32__NAME), binarylib_read_binary_uint32, NULL, NULL);
 140 
 141 static ScmObj binarylib_read_binary_uint64(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 142 {
 143   ScmObj port_scm;
 144   ScmObj port;
 145   ScmObj endian_scm;
 146   Endian endian;
 147   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 148   SCM_ENTER_SUBR("read-binary-uint64");
 149   if (Scm_Length(SCM_OPTARGS) > 2)
 150     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 151   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 152   else {
 153     port_scm = SCM_CAR(SCM_OPTARGS);
 154     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 155   }
 156   port = (port_scm);
 157   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 158   else {
 159     endian_scm = SCM_CAR(SCM_OPTARGS);
 160     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 161   }
 162   endian = check_endian(endian_scm);
 163   {
 164 {
 165 ScmObj SCM_RESULT;
 166 SCM_RESULT = Scm_ReadBinaryUint64(port, endian);
 167 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 168 }
 169   }
 170 }
 171 
 172 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_uint64__NAME, "read-binary-uint64", 18, 18);
 173 static SCM_DEFINE_SUBR(binarylib_read_binary_uint64__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_uint64__NAME), binarylib_read_binary_uint64, NULL, NULL);
 174 
 175 static ScmObj binarylib_read_binary_sint8(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 176 {
 177   ScmObj port_scm;
 178   ScmObj port;
 179   ScmObj endian_scm;
 180   Endian endian;
 181   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 182   SCM_ENTER_SUBR("read-binary-sint8");
 183   if (Scm_Length(SCM_OPTARGS) > 2)
 184     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 185   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 186   else {
 187     port_scm = SCM_CAR(SCM_OPTARGS);
 188     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 189   }
 190   port = (port_scm);
 191   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 192   else {
 193     endian_scm = SCM_CAR(SCM_OPTARGS);
 194     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 195   }
 196   endian = check_endian(endian_scm);
 197   {
 198 {
 199 ScmObj SCM_RESULT;
 200 SCM_RESULT = Scm_ReadBinarySint8(port, endian);
 201 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 202 }
 203   }
 204 }
 205 
 206 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_sint8__NAME, "read-binary-sint8", 17, 17);
 207 static SCM_DEFINE_SUBR(binarylib_read_binary_sint8__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_sint8__NAME), binarylib_read_binary_sint8, NULL, NULL);
 208 
 209 static ScmObj binarylib_read_binary_sint16(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 210 {
 211   ScmObj port_scm;
 212   ScmObj port;
 213   ScmObj endian_scm;
 214   Endian endian;
 215   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 216   SCM_ENTER_SUBR("read-binary-sint16");
 217   if (Scm_Length(SCM_OPTARGS) > 2)
 218     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 219   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 220   else {
 221     port_scm = SCM_CAR(SCM_OPTARGS);
 222     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 223   }
 224   port = (port_scm);
 225   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 226   else {
 227     endian_scm = SCM_CAR(SCM_OPTARGS);
 228     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 229   }
 230   endian = check_endian(endian_scm);
 231   {
 232 {
 233 ScmObj SCM_RESULT;
 234 SCM_RESULT = Scm_ReadBinarySint16(port, endian);
 235 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 236 }
 237   }
 238 }
 239 
 240 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_sint16__NAME, "read-binary-sint16", 18, 18);
 241 static SCM_DEFINE_SUBR(binarylib_read_binary_sint16__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_sint16__NAME), binarylib_read_binary_sint16, NULL, NULL);
 242 
 243 static ScmObj binarylib_read_binary_sint32(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 244 {
 245   ScmObj port_scm;
 246   ScmObj port;
 247   ScmObj endian_scm;
 248   Endian endian;
 249   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 250   SCM_ENTER_SUBR("read-binary-sint32");
 251   if (Scm_Length(SCM_OPTARGS) > 2)
 252     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 253   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 254   else {
 255     port_scm = SCM_CAR(SCM_OPTARGS);
 256     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 257   }
 258   port = (port_scm);
 259   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 260   else {
 261     endian_scm = SCM_CAR(SCM_OPTARGS);
 262     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 263   }
 264   endian = check_endian(endian_scm);
 265   {
 266 {
 267 ScmObj SCM_RESULT;
 268 SCM_RESULT = Scm_ReadBinarySint32(port, endian);
 269 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 270 }
 271   }
 272 }
 273 
 274 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_sint32__NAME, "read-binary-sint32", 18, 18);
 275 static SCM_DEFINE_SUBR(binarylib_read_binary_sint32__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_sint32__NAME), binarylib_read_binary_sint32, NULL, NULL);
 276 
 277 static ScmObj binarylib_read_binary_sint64(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 278 {
 279   ScmObj port_scm;
 280   ScmObj port;
 281   ScmObj endian_scm;
 282   Endian endian;
 283   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 284   SCM_ENTER_SUBR("read-binary-sint64");
 285   if (Scm_Length(SCM_OPTARGS) > 2)
 286     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 287   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 288   else {
 289     port_scm = SCM_CAR(SCM_OPTARGS);
 290     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 291   }
 292   port = (port_scm);
 293   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 294   else {
 295     endian_scm = SCM_CAR(SCM_OPTARGS);
 296     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 297   }
 298   endian = check_endian(endian_scm);
 299   {
 300 {
 301 ScmObj SCM_RESULT;
 302 SCM_RESULT = Scm_ReadBinarySint64(port, endian);
 303 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 304 }
 305   }
 306 }
 307 
 308 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_sint64__NAME, "read-binary-sint64", 18, 18);
 309 static SCM_DEFINE_SUBR(binarylib_read_binary_sint64__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_sint64__NAME), binarylib_read_binary_sint64, NULL, NULL);
 310 
 311 static ScmObj binarylib_write_binary_uint8(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 312 {
 313   ScmObj intval_scm;
 314   ScmObj intval;
 315   ScmObj port_scm;
 316   ScmObj port;
 317   ScmObj endian_scm;
 318   Endian endian;
 319   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 320   SCM_ENTER_SUBR("write-binary-uint8");
 321   if (Scm_Length(SCM_OPTARGS) > 2)
 322     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 323   intval_scm = SCM_ARGREF(0);
 324   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 325   intval = (intval_scm);
 326   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 327   else {
 328     port_scm = SCM_CAR(SCM_OPTARGS);
 329     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 330   }
 331   port = (port_scm);
 332   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 333   else {
 334     endian_scm = SCM_CAR(SCM_OPTARGS);
 335     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 336   }
 337   endian = check_endian(endian_scm);
 338   {
 339 Scm_WriteBinaryUint8(intval, port, endian);
 340 SCM_RETURN(SCM_UNDEFINED);
 341   }
 342 }
 343 
 344 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_uint8__NAME, "write-binary-uint8", 18, 18);
 345 static SCM_DEFINE_SUBR(binarylib_write_binary_uint8__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_uint8__NAME), binarylib_write_binary_uint8, NULL, NULL);
 346 
 347 static ScmObj binarylib_write_binary_uint16(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 348 {
 349   ScmObj intval_scm;
 350   ScmObj intval;
 351   ScmObj port_scm;
 352   ScmObj port;
 353   ScmObj endian_scm;
 354   Endian endian;
 355   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 356   SCM_ENTER_SUBR("write-binary-uint16");
 357   if (Scm_Length(SCM_OPTARGS) > 2)
 358     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 359   intval_scm = SCM_ARGREF(0);
 360   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 361   intval = (intval_scm);
 362   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 363   else {
 364     port_scm = SCM_CAR(SCM_OPTARGS);
 365     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 366   }
 367   port = (port_scm);
 368   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 369   else {
 370     endian_scm = SCM_CAR(SCM_OPTARGS);
 371     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 372   }
 373   endian = check_endian(endian_scm);
 374   {
 375 Scm_WriteBinaryUint16(intval, port, endian);
 376 SCM_RETURN(SCM_UNDEFINED);
 377   }
 378 }
 379 
 380 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_uint16__NAME, "write-binary-uint16", 19, 19);
 381 static SCM_DEFINE_SUBR(binarylib_write_binary_uint16__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_uint16__NAME), binarylib_write_binary_uint16, NULL, NULL);
 382 
 383 static ScmObj binarylib_write_binary_uint32(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 384 {
 385   ScmObj intval_scm;
 386   ScmObj intval;
 387   ScmObj port_scm;
 388   ScmObj port;
 389   ScmObj endian_scm;
 390   Endian endian;
 391   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 392   SCM_ENTER_SUBR("write-binary-uint32");
 393   if (Scm_Length(SCM_OPTARGS) > 2)
 394     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 395   intval_scm = SCM_ARGREF(0);
 396   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 397   intval = (intval_scm);
 398   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 399   else {
 400     port_scm = SCM_CAR(SCM_OPTARGS);
 401     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 402   }
 403   port = (port_scm);
 404   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 405   else {
 406     endian_scm = SCM_CAR(SCM_OPTARGS);
 407     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 408   }
 409   endian = check_endian(endian_scm);
 410   {
 411 Scm_WriteBinaryUint32(intval, port, endian);
 412 SCM_RETURN(SCM_UNDEFINED);
 413   }
 414 }
 415 
 416 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_uint32__NAME, "write-binary-uint32", 19, 19);
 417 static SCM_DEFINE_SUBR(binarylib_write_binary_uint32__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_uint32__NAME), binarylib_write_binary_uint32, NULL, NULL);
 418 
 419 static ScmObj binarylib_write_binary_uint64(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 420 {
 421   ScmObj intval_scm;
 422   ScmObj intval;
 423   ScmObj port_scm;
 424   ScmObj port;
 425   ScmObj endian_scm;
 426   Endian endian;
 427   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 428   SCM_ENTER_SUBR("write-binary-uint64");
 429   if (Scm_Length(SCM_OPTARGS) > 2)
 430     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 431   intval_scm = SCM_ARGREF(0);
 432   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 433   intval = (intval_scm);
 434   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 435   else {
 436     port_scm = SCM_CAR(SCM_OPTARGS);
 437     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 438   }
 439   port = (port_scm);
 440   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 441   else {
 442     endian_scm = SCM_CAR(SCM_OPTARGS);
 443     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 444   }
 445   endian = check_endian(endian_scm);
 446   {
 447 Scm_WriteBinaryUint64(intval, port, endian);
 448 SCM_RETURN(SCM_UNDEFINED);
 449   }
 450 }
 451 
 452 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_uint64__NAME, "write-binary-uint64", 19, 19);
 453 static SCM_DEFINE_SUBR(binarylib_write_binary_uint64__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_uint64__NAME), binarylib_write_binary_uint64, NULL, NULL);
 454 
 455 static ScmObj binarylib_write_binary_sint8(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 456 {
 457   ScmObj intval_scm;
 458   ScmObj intval;
 459   ScmObj port_scm;
 460   ScmObj port;
 461   ScmObj endian_scm;
 462   Endian endian;
 463   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 464   SCM_ENTER_SUBR("write-binary-sint8");
 465   if (Scm_Length(SCM_OPTARGS) > 2)
 466     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 467   intval_scm = SCM_ARGREF(0);
 468   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 469   intval = (intval_scm);
 470   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 471   else {
 472     port_scm = SCM_CAR(SCM_OPTARGS);
 473     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 474   }
 475   port = (port_scm);
 476   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 477   else {
 478     endian_scm = SCM_CAR(SCM_OPTARGS);
 479     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 480   }
 481   endian = check_endian(endian_scm);
 482   {
 483 Scm_WriteBinarySint8(intval, port, endian);
 484 SCM_RETURN(SCM_UNDEFINED);
 485   }
 486 }
 487 
 488 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_sint8__NAME, "write-binary-sint8", 18, 18);
 489 static SCM_DEFINE_SUBR(binarylib_write_binary_sint8__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_sint8__NAME), binarylib_write_binary_sint8, NULL, NULL);
 490 
 491 static ScmObj binarylib_write_binary_sint16(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 492 {
 493   ScmObj intval_scm;
 494   ScmObj intval;
 495   ScmObj port_scm;
 496   ScmObj port;
 497   ScmObj endian_scm;
 498   Endian endian;
 499   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 500   SCM_ENTER_SUBR("write-binary-sint16");
 501   if (Scm_Length(SCM_OPTARGS) > 2)
 502     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 503   intval_scm = SCM_ARGREF(0);
 504   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 505   intval = (intval_scm);
 506   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 507   else {
 508     port_scm = SCM_CAR(SCM_OPTARGS);
 509     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 510   }
 511   port = (port_scm);
 512   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 513   else {
 514     endian_scm = SCM_CAR(SCM_OPTARGS);
 515     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 516   }
 517   endian = check_endian(endian_scm);
 518   {
 519 Scm_WriteBinarySint16(intval, port, endian);
 520 SCM_RETURN(SCM_UNDEFINED);
 521   }
 522 }
 523 
 524 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_sint16__NAME, "write-binary-sint16", 19, 19);
 525 static SCM_DEFINE_SUBR(binarylib_write_binary_sint16__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_sint16__NAME), binarylib_write_binary_sint16, NULL, NULL);
 526 
 527 static ScmObj binarylib_write_binary_sint32(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 528 {
 529   ScmObj intval_scm;
 530   ScmObj intval;
 531   ScmObj port_scm;
 532   ScmObj port;
 533   ScmObj endian_scm;
 534   Endian endian;
 535   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 536   SCM_ENTER_SUBR("write-binary-sint32");
 537   if (Scm_Length(SCM_OPTARGS) > 2)
 538     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 539   intval_scm = SCM_ARGREF(0);
 540   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 541   intval = (intval_scm);
 542   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 543   else {
 544     port_scm = SCM_CAR(SCM_OPTARGS);
 545     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 546   }
 547   port = (port_scm);
 548   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 549   else {
 550     endian_scm = SCM_CAR(SCM_OPTARGS);
 551     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 552   }
 553   endian = check_endian(endian_scm);
 554   {
 555 Scm_WriteBinarySint32(intval, port, endian);
 556 SCM_RETURN(SCM_UNDEFINED);
 557   }
 558 }
 559 
 560 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_sint32__NAME, "write-binary-sint32", 19, 19);
 561 static SCM_DEFINE_SUBR(binarylib_write_binary_sint32__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_sint32__NAME), binarylib_write_binary_sint32, NULL, NULL);
 562 
 563 static ScmObj binarylib_write_binary_sint64(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 564 {
 565   ScmObj intval_scm;
 566   ScmObj intval;
 567   ScmObj port_scm;
 568   ScmObj port;
 569   ScmObj endian_scm;
 570   Endian endian;
 571   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 572   SCM_ENTER_SUBR("write-binary-sint64");
 573   if (Scm_Length(SCM_OPTARGS) > 2)
 574     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 575   intval_scm = SCM_ARGREF(0);
 576   if (!SCM_EXACTP(intval_scm)) Scm_Error("exact integer required, but got %S", intval_scm);
 577   intval = (intval_scm);
 578   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 579   else {
 580     port_scm = SCM_CAR(SCM_OPTARGS);
 581     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 582   }
 583   port = (port_scm);
 584   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 585   else {
 586     endian_scm = SCM_CAR(SCM_OPTARGS);
 587     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 588   }
 589   endian = check_endian(endian_scm);
 590   {
 591 Scm_WriteBinarySint64(intval, port, endian);
 592 SCM_RETURN(SCM_UNDEFINED);
 593   }
 594 }
 595 
 596 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_sint64__NAME, "write-binary-sint64", 19, 19);
 597 static SCM_DEFINE_SUBR(binarylib_write_binary_sint64__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_sint64__NAME), binarylib_write_binary_sint64, NULL, NULL);
 598 
 599 static ScmObj binarylib_read_binary_float(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 600 {
 601   ScmObj port_scm;
 602   ScmObj port;
 603   ScmObj endian_scm;
 604   Endian endian;
 605   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 606   SCM_ENTER_SUBR("read-binary-float");
 607   if (Scm_Length(SCM_OPTARGS) > 2)
 608     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 609   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 610   else {
 611     port_scm = SCM_CAR(SCM_OPTARGS);
 612     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 613   }
 614   port = (port_scm);
 615   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 616   else {
 617     endian_scm = SCM_CAR(SCM_OPTARGS);
 618     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 619   }
 620   endian = check_endian(endian_scm);
 621   {
 622 {
 623 ScmObj SCM_RESULT;
 624 SCM_RESULT = Scm_ReadBinaryFloat(port, endian);
 625 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 626 }
 627   }
 628 }
 629 
 630 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_float__NAME, "read-binary-float", 17, 17);
 631 static SCM_DEFINE_SUBR(binarylib_read_binary_float__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_float__NAME), binarylib_read_binary_float, NULL, NULL);
 632 
 633 static ScmObj binarylib_read_binary_double(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 634 {
 635   ScmObj port_scm;
 636   ScmObj port;
 637   ScmObj endian_scm;
 638   Endian endian;
 639   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 640   SCM_ENTER_SUBR("read-binary-double");
 641   if (Scm_Length(SCM_OPTARGS) > 2)
 642     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 643   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 644   else {
 645     port_scm = SCM_CAR(SCM_OPTARGS);
 646     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 647   }
 648   port = (port_scm);
 649   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 650   else {
 651     endian_scm = SCM_CAR(SCM_OPTARGS);
 652     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 653   }
 654   endian = check_endian(endian_scm);
 655   {
 656 {
 657 ScmObj SCM_RESULT;
 658 SCM_RESULT = Scm_ReadBinaryDouble(port, endian);
 659 SCM_RETURN(SCM_OBJ_SAFE(SCM_RESULT));
 660 }
 661   }
 662 }
 663 
 664 static SCM_DEFINE_STRING_CONST(binarylib_read_binary_double__NAME, "read-binary-double", 18, 18);
 665 static SCM_DEFINE_SUBR(binarylib_read_binary_double__STUB, 0, 1, SCM_OBJ(&binarylib_read_binary_double__NAME), binarylib_read_binary_double, NULL, NULL);
 666 
 667 static ScmObj binarylib_write_binary_float(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 668 {
 669   ScmObj val_scm;
 670   ScmObj val;
 671   ScmObj port_scm;
 672   ScmObj port;
 673   ScmObj endian_scm;
 674   Endian endian;
 675   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 676   SCM_ENTER_SUBR("write-binary-float");
 677   if (Scm_Length(SCM_OPTARGS) > 2)
 678     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 679   val_scm = SCM_ARGREF(0);
 680   if (!SCM_NUMBERP(val_scm)) Scm_Error("number required, but got %S", val_scm);
 681   val = (val_scm);
 682   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 683   else {
 684     port_scm = SCM_CAR(SCM_OPTARGS);
 685     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 686   }
 687   port = (port_scm);
 688   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 689   else {
 690     endian_scm = SCM_CAR(SCM_OPTARGS);
 691     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 692   }
 693   endian = check_endian(endian_scm);
 694   {
 695 Scm_WriteBinaryFloat(val, port, endian);
 696 SCM_RETURN(SCM_UNDEFINED);
 697   }
 698 }
 699 
 700 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_float__NAME, "write-binary-float", 18, 18);
 701 static SCM_DEFINE_SUBR(binarylib_write_binary_float__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_float__NAME), binarylib_write_binary_float, NULL, NULL);
 702 
 703 static ScmObj binarylib_write_binary_double(ScmObj *SCM_FP, int SCM_ARGCNT, void *data_)
 704 {
 705   ScmObj val_scm;
 706   ScmObj val;
 707   ScmObj port_scm;
 708   ScmObj port;
 709   ScmObj endian_scm;
 710   Endian endian;
 711   ScmObj SCM_OPTARGS = SCM_ARGREF(SCM_ARGCNT-1);
 712   SCM_ENTER_SUBR("write-binary-double");
 713   if (Scm_Length(SCM_OPTARGS) > 2)
 714     Scm_Error("too many arguments: up to 2 is expected, %d given.", Scm_Length(SCM_OPTARGS));
 715   val_scm = SCM_ARGREF(0);
 716   if (!SCM_NUMBERP(val_scm)) Scm_Error("number required, but got %S", val_scm);
 717   val = (val_scm);
 718   if (SCM_NULLP(SCM_OPTARGS)) port_scm = SCM_FALSE;
 719   else {
 720     port_scm = SCM_CAR(SCM_OPTARGS);
 721     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 722   }
 723   port = (port_scm);
 724   if (SCM_NULLP(SCM_OPTARGS)) endian_scm = DEFAULT_ENDIAN;
 725   else {
 726     endian_scm = SCM_CAR(SCM_OPTARGS);
 727     SCM_OPTARGS = SCM_CDR(SCM_OPTARGS);
 728   }
 729   endian = check_endian(endian_scm);
 730   {
 731 Scm_WriteBinaryDouble(val, port, endian);
 732 SCM_RETURN(SCM_UNDEFINED);
 733   }
 734 }
 735 
 736 static SCM_DEFINE_STRING_CONST(binarylib_write_binary_double__NAME, "write-binary-double", 19, 19);
 737 static SCM_DEFINE_SUBR(binarylib_write_binary_double__STUB, 1, 1, SCM_OBJ(&binarylib_write_binary_double__NAME), binarylib_write_binary_double, NULL, NULL);
 738 
 739 void Scm_Init_binarylib(ScmModule *module)
 740 {
 741 
 742   SCM_DEFINE(module, "write-binary-double", SCM_OBJ(&binarylib_write_binary_double__STUB));
 743   SCM_DEFINE(module, "write-binary-float", SCM_OBJ(&binarylib_write_binary_float__STUB));
 744   SCM_DEFINE(module, "read-binary-double", SCM_OBJ(&binarylib_read_binary_double__STUB));
 745   SCM_DEFINE(module, "read-binary-float", SCM_OBJ(&binarylib_read_binary_float__STUB));
 746   SCM_DEFINE(module, "write-binary-sint64", SCM_OBJ(&binarylib_write_binary_sint64__STUB));
 747   SCM_DEFINE(module, "write-binary-sint32", SCM_OBJ(&binarylib_write_binary_sint32__STUB));
 748   SCM_DEFINE(module, "write-binary-sint16", SCM_OBJ(&binarylib_write_binary_sint16__STUB));
 749   SCM_DEFINE(module, "write-binary-sint8", SCM_OBJ(&binarylib_write_binary_sint8__STUB));
 750   SCM_DEFINE(module, "write-binary-uint64", SCM_OBJ(&binarylib_write_binary_uint64__STUB));
 751   SCM_DEFINE(module, "write-binary-uint32", SCM_OBJ(&binarylib_write_binary_uint32__STUB));
 752   SCM_DEFINE(module, "write-binary-uint16", SCM_OBJ(&binarylib_write_binary_uint16__STUB));
 753   SCM_DEFINE(module, "write-binary-uint8", SCM_OBJ(&binarylib_write_binary_uint8__STUB));
 754   SCM_DEFINE(module, "read-binary-sint64", SCM_OBJ(&binarylib_read_binary_sint64__STUB));
 755   SCM_DEFINE(module, "read-binary-sint32", SCM_OBJ(&binarylib_read_binary_sint32__STUB));
 756   SCM_DEFINE(module, "read-binary-sint16", SCM_OBJ(&binarylib_read_binary_sint16__STUB));
 757   SCM_DEFINE(module, "read-binary-sint8", SCM_OBJ(&binarylib_read_binary_sint8__STUB));
 758   SCM_DEFINE(module, "read-binary-uint64", SCM_OBJ(&binarylib_read_binary_uint64__STUB));
 759   SCM_DEFINE(module, "read-binary-uint32", SCM_OBJ(&binarylib_read_binary_uint32__STUB));
 760   SCM_DEFINE(module, "read-binary-uint16", SCM_OBJ(&binarylib_read_binary_uint16__STUB));
 761   SCM_DEFINE(module, "read-binary-uint8", SCM_OBJ(&binarylib_read_binary_uint8__STUB));
 762   SCM_DEFINE(module, "default-endian", SCM_OBJ(&binarylib_default_endian__STUB));
 763 }

/* [<][>][^][v][top][bottom][index][help] */