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

  1. /*
  2.  * lbn68020.h - 32-bit bignum primitives for the 68020 (or 683xx) 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 long lbnSub1_32(unsigned long *num, unsigned len, unsigned long borrow);
  14. unsigned long lbnAdd1_32(unsigned long *num, unsigned len, unsigned long carry);
  15. void
  16. lbnMulN1_32(unsigned long *out, unsigned long const *in, unsigned len, unsigned long k);
  17. unsigned long
  18. lbnMulAdd1_32(unsigned long *out, unsigned long const *in, unsigned len, unsigned long k);
  19. unsigned long
  20. lbnMulSub1_32(unsigned long *out, unsigned long const *in, unsigned len, unsigned long k);
  21. unsigned long
  22. lbnDiv21_32(unsigned long *q, unsigned long nh, unsigned long nl, unsigned long d);
  23. unsigned lbnModQ_32(unsigned long const *n, unsigned len, unsigned d);
  24.  
  25. #ifdef __cplusplus
  26. }
  27. #endif
  28.  
  29. /* #define the values to exclude the C versions */
  30. #define lbnSub1_32 lbnSub1_32
  31. #define lbnAdd1_32 lbnAdd1_32
  32. #define lbnMulN1_32 lbnMulN1_32
  33. #define lbnMulAdd1_32 lbnMulAdd1_32
  34. #define lbnMulSub1_32 lbnMulSub1_32
  35. #define lbnDiv21_32 lbnDiv21_32
  36. #define lbnModQ_32 lbnModQ_32
  37.