#define PY_SSIZE_T_CLEAN #include #include #include #include static PyObject * memory_write(PyObject * self, PyObject * args) { Py_ssize_t offset; Py_buffer data; if (!PyArg_ParseTuple(args, "y*n", &data, &offset)) return NULL; hwd::memory::write( std::vector {static_cast(data.buf), static_cast(data.buf) + data.len}, static_cast(offset)); Py_RETURN_NONE; } static PyMethodDef memory_methods[] = { {"write", memory_write, METH_VARARGS, "mem_write(data, offset)\n--\n\nWrites *data* to memory at *offset*."}, {NULL, NULL, 0, NULL} }; static struct PyModuleDef memory_module = { PyModuleDef_HEAD_INIT, "memory", NULL, -1, memory_methods }; PyMODINIT_FUNC PyInit_memory(void) { return PyModule_Create(&memory_module); }