1 #ifndef H_MPW_PY
2 #define H_MPW_PY
3 
4 /** \ingroup py_c
5  * \file python/mpw-py.h
6  */
7 #include "beecrypt/mp.h"
8 
9 /**
10  */
11 typedef struct mpwObject_s {
12     PyObject_HEAD
13     int ob_size;
14     mpw data[1];
15 } mpwObject;
16 
17 /**
18  */
19 /*@unchecked@*/
20 extern PyTypeObject mpw_Type;
21 
22 #define	mpw_Check(_o)		PyObject_TypeCheck((_o), &mpw_Type)
23 #define mpw_CheckExact(_o)	((_o)->ob_type == &mpw_Type)
24 
25 #define	MP_ROUND_B2W(_b)	MP_BITS_TO_WORDS((_b) + MP_WBITS - 1)
26 
27 #define	MPW_SIZE(_a)	(size_t)((_a)->ob_size < 0 ? -(_a)->ob_size : (_a)->ob_size)
28 #define	MPW_DATA(_a)	((_a)->data)
29 
30 /**
31  */
32 mpwObject * mpw_New(int ob_size)
33 	/*@*/;
34 
35 /**
36  */
37 mpwObject * mpw_FromMPW(size_t size, mpw* data, int normalize)
38 	/*@*/;
39 
40 #endif
41