mmap and ctypes

C

castironpi

Hi all,

I have a mmap and a data structure in it. I know the structure's
location in the mmap and what structure it is. It has a ctypes
definition.

I want to initialize a ctypes object to point to a part of the mmap.

Here is my attempt:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\programs\Python25\lib\ctypes\__init__.py", line 318, in
pointer
return POINTER(type(inst))(inst)
File "C:\programs\Python25\lib\ctypes\__init__.py", line 262, in
POINTER
{'_type_': cls})
TypeError: _type_ must have storage info

and then use 'cast', but it fails here.

Is there some way to combine ctypes with struct.pack_into and
struct.unpack_from? Can I access the mmap's buffer directly? Could
be very handy and I'm willing to talk about the C function involved.
What kind of modification to mmapmodule would we be looking at? Does
someone want to do it with me?

I am looking at mmapmodule.c, line 75, access to the char * data
member of mmap_object. Link is here:

http://www.google.com/codesearch?hl...on25.tar.bz2&cs_f=python/Modules/mmapmodule.c
 
G

Guest

Hi!

I use mmap for interchange data between Python & Autoit. For that, I
use (Autoit's side) a little DLL.
This DLL can, perhaps, be used with ctypes.

@-salutations
 
C

castironpi

Hi!

I use mmap for interchange data between Python & Autoit.  For that, I
use (Autoit's side) a little DLL.
This DLL can, perhaps, be used with ctypes.

@-salutations

Say more-- what DLL? @-greetings
 
C

castironpi

Say more-- what DLL?  @-greetings

This worked to 'cast' the mmap memory block to an integer:

a= ctypesbuf.get( m, 0, ctypes.POINTER( ctypes.c_uint32 ) )

where ctypesbuf is a C extension module, and 'get' contains:

...
char* seg= map->data+ index;
PyObject* char_buf= PyObject_CallFunction( ctypesmod_cast, "IO",
seg, tp );
return char_buf;

However I find no equivalent to 'map->data' in Python.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,583
Members
45,073
Latest member
DarinCeden

Latest Threads

Top