pyke/mapping.c, key.c: Make the mapping code more intrusive and complete.
[pyke] / pyke-mLib.h
CommitLineData
c1756f78
MW
1/* -*-c-*-
2 *
3 * Pyke: the Python Kit for Extensions, mLib integration
4 *
5 * (c) 2019 Straylight/Edgeware
6 */
7
8/*----- Licensing notice --------------------------------------------------*
9 *
10 * This file is part of Pyke: the Python Kit for Extensions.
11 *
12 * Pyke is free software: you can redistribute it and/or modify it under
13 * the terms of the GNU General Public License as published by the Free
14 * Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 *
17 * Pyke is distributed in the hope that it will be useful, but WITHOUT
18 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 * for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with Pyke. If not, write to the Free Software Foundation, Inc.,
24 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 */
26
27#ifndef PYKE_MLIB_H
28#define PYKE_MLIB_H
29
30#ifdef __cplusplus
31 extern "C" {
32#endif
33
34/*----- Header files ------------------------------------------------------*/
35
36#ifndef PYKE_H
37# include "pyke.h"
38#endif
39
40PUBLIC_SYMBOLS;
41#include <mLib/bits.h>
78daa0e0 42#include <mLib/sym.h>
c1756f78
MW
43PRIVATE_SYMBOLS;
44
45/*----- Conversions -------------------------------------------------------*/
46
47#define DECL_CONVU_(n) extern int convu##n(PyObject *, void *);
48DOUINTSZ(DECL_CONVU_)
49 /* Define an `O&' input conversion `convuN' for each mLib type `uintN'. */
50
51extern int convk64(PyObject *, void *);
52 /* Input conversion for `kludge64'. */
53
54extern PyObject *getk64(kludge64);
55 /* Output conversion for `kludge64'. */
56
78daa0e0
MW
57/*----- Mapping support ---------------------------------------------------*/
58
59extern Py_ssize_t gmap_pysize_from_sym(sym_table *);
60 /* Determine the size of a mapping based on a `sym_table'. */
61
c1756f78
MW
62/*----- That's all, folks -------------------------------------------------*/
63
64#ifdef __cplusplus
65 }
66#endif
67
68#endif