1/* 2 Python wrappers for DCERPC/SMB client routines. 3 4 Copyright (C) Tim Potter, 2002 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 2 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19*/ 20 21#ifndef _PY_CONV_H 22#define _PY_CONV_H 23 24#include "python/py_common.h" 25 26enum pyconv_types { PY_UNISTR, PY_UNISTR2, PY_UINT32, PY_UINT16, PY_STRING, 27 PY_UID, PY_GID }; 28 29struct pyconv { 30 char *name; /* Name of member */ 31 enum pyconv_types type; /* Type */ 32 size_t offset; /* Offset into structure */ 33}; 34 35PyObject *from_struct(void *s, struct pyconv *conv); 36BOOL to_struct(void *s, PyObject *dict, struct pyconv *conv); 37PyObject *from_unistr_list(uint16 *dependentfiles); 38 39/* Another version of offsetof (-: */ 40 41#undef offsetof 42#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) 43 44#endif /* _PY_CONV_H */ 45