mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-05 02:34:18 +00:00
d2edcad66e
Thanks to Phil Zimmermann for the code and for the license exception we needed to include it. There remains some build system integration work to be done before this code will build properly in the FreeSWITCH tree.
38 lines
1.3 KiB
C
38 lines
1.3 KiB
C
/*
|
|
* Copyright (c) 1995 Colin Plumb. All rights reserved.
|
|
* For licensing and other legal details, see the file legal.c.
|
|
*
|
|
* lbn68000.h - 16-bit bignum primitives for the 68000 (or 68010) processors.
|
|
*
|
|
* These primitives use little-endian word order.
|
|
* (The order of bytes within words is irrelevant.)
|
|
*/
|
|
#define BN_LITTLE_ENDIAN 1
|
|
|
|
typedef unsigned short bnword16
|
|
#define BNWORD16 bnword16
|
|
|
|
bnword16 lbnSub1_16(bnword16 *num, unsigned len, bnword16 borrow);
|
|
bnword16 lbnAdd1_16(bnword16 *num, unsigned len, bnword16 carry);
|
|
void lbnMulN1_16(bnword16 *out, bnword16 const *in, unsigned len, bnword16 k);
|
|
bnword16
|
|
lbnMulAdd1_16(bnword16 *out, bnword16 const *in, unsigned len, bnword16 k);
|
|
bnword16
|
|
lbnMulSub1_16(bnword16 *out, bnword16 const *in, unsigned len, bnword16 k);
|
|
bnword16 lbnDiv21_16(bnword16 *q, bnword16 nh, bnword16 nl, bnword16 d);
|
|
unsigned lbnModQ_16(bnword16 const *n, unsigned len, bnword16 d);
|
|
|
|
int is68020(void);
|
|
|
|
/* #define the values to exclude the C versions */
|
|
#define lbnSub1_16 lbnSub1_16
|
|
#define lbnAdd1_16 lbnAdd1_16
|
|
#define lbnMulN1_16 lbnMulN1_16
|
|
#define lbnMulAdd1_16 lbnMulAdd1_16
|
|
#define lbnMulSub1_16 lbnMulSub1_16
|
|
#define lbnDiv21_16 lbnDiv21_16
|
|
#define lbnModQ_16 lbnModQ_16
|
|
|
|
/* Also include the 68020 definitions for 16/32 bit switching versions. */
|
|
#include <lbn68020.h>
|