Mercurial > trustbridge > nss-cmake-static
comparison nss/lib/freebl/mpi/mplogic.h @ 0:1e5118fa0cb1
This is NSS with a Cmake Buildsyste
To compile a static NSS library for Windows we've used the
Chromium-NSS fork and added a Cmake buildsystem to compile
it statically for Windows. See README.chromium for chromium
changes and README.trustbridge for our modifications.
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Mon, 28 Jul 2014 10:47:06 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1e5118fa0cb1 |
---|---|
1 /* | |
2 * mplogic.h | |
3 * | |
4 * Bitwise logical operations on MPI values | |
5 * | |
6 * This Source Code Form is subject to the terms of the Mozilla Public | |
7 * License, v. 2.0. If a copy of the MPL was not distributed with this | |
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | |
9 | |
10 #ifndef _H_MPLOGIC_ | |
11 #define _H_MPLOGIC_ | |
12 | |
13 #include "mpi.h" | |
14 | |
15 /* | |
16 The logical operations treat an mp_int as if it were a bit vector, | |
17 without regard to its sign (an mp_int is represented in a signed | |
18 magnitude format). Values are treated as if they had an infinite | |
19 string of zeros left of the most-significant bit. | |
20 */ | |
21 | |
22 /* Parity results */ | |
23 | |
24 #define MP_EVEN MP_YES | |
25 #define MP_ODD MP_NO | |
26 | |
27 /* Bitwise functions */ | |
28 | |
29 mp_err mpl_not(mp_int *a, mp_int *b); /* one's complement */ | |
30 mp_err mpl_and(mp_int *a, mp_int *b, mp_int *c); /* bitwise AND */ | |
31 mp_err mpl_or(mp_int *a, mp_int *b, mp_int *c); /* bitwise OR */ | |
32 mp_err mpl_xor(mp_int *a, mp_int *b, mp_int *c); /* bitwise XOR */ | |
33 | |
34 /* Shift functions */ | |
35 | |
36 mp_err mpl_rsh(const mp_int *a, mp_int *b, mp_digit d); /* right shift */ | |
37 mp_err mpl_lsh(const mp_int *a, mp_int *b, mp_digit d); /* left shift */ | |
38 | |
39 /* Bit count and parity */ | |
40 | |
41 mp_err mpl_num_set(mp_int *a, int *num); /* count set bits */ | |
42 mp_err mpl_num_clear(mp_int *a, int *num); /* count clear bits */ | |
43 mp_err mpl_parity(mp_int *a); /* determine parity */ | |
44 | |
45 /* Get & Set the value of a bit */ | |
46 | |
47 mp_err mpl_set_bit(mp_int *a, mp_size bitNum, mp_size value); | |
48 mp_err mpl_get_bit(const mp_int *a, mp_size bitNum); | |
49 mp_err mpl_get_bits(const mp_int *a, mp_size lsbNum, mp_size numBits); | |
50 mp_err mpl_significant_bits(const mp_int *a); | |
51 | |
52 #endif /* end _H_MPLOGIC_ */ |