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