home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / crypl200.zip / BNLIB / LBN68000.H < prev    next >
C/C++ Source or Header  |  1996-05-16  |  1KB  |  42 lines

  1. /*
  2.  * lbn68000.h - 16-bit bignum primitives for the 68000 (or 68010) processors.
  3.  *
  4.  * These primitives use little-endian word order.
  5.  * (The order of bytes within words is irrelevant.)
  6.  */
  7. #define BN_LITTLE_ENDIAN 1
  8.  
  9. #ifdef __cplusplus
  10. extern "C" {
  11. #endif
  12.  
  13. unsigned short lbnSub1_16(unsigned short *num, unsigned len, unsigned short borrow);
  14. unsigned short lbnAdd1_16(unsigned short *num, unsigned len, unsigned short carry);
  15. void
  16. lbnMulN1_16(unsigned short *out, unsigned short const *in, unsigned len, unsigned short k);
  17. unsigned short
  18. lbnMulAdd1_16(unsigned short *out, unsigned short const *in, unsigned len, unsigned short k);
  19. unsigned short
  20. lbnMulSub1_16(unsigned short *out, unsigned short const *in, unsigned len, unsigned short k);
  21. unsigned short
  22. lbnDiv21_16(unsigned short *q, unsigned short nh, unsigned short nl, unsigned short d);
  23. unsigned lbnModQ_16(unsigned short const *n, unsigned len, unsigned short d);
  24.  
  25. int is68020(void);
  26.  
  27. #ifdef __cplusplus
  28. }
  29. #endif
  30.  
  31. /* #define the values to exclude the C versions */
  32. #define lbnSub1_16 lbnSub1_16
  33. #define lbnAdd1_16 lbnAdd1_16
  34. #define lbnMulN1_16 lbnMulN1_16
  35. #define lbnMulAdd1_16 lbnMulAdd1_16
  36. #define lbnMulSub1_16 lbnMulSub1_16
  37. #define lbnDiv21_16 lbnDiv21_16
  38. #define lbnModQ_16 lbnModQ_16
  39.  
  40. /* Also include the 68020 definitions for 16/32 bit switching versions. */
  41. #include <lbn68020.h>
  42.