mmap and ctypes

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • castironpi

    mmap and ctypes

    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:
    >>b
    <mmap.mmap object at 0x009FEDB8>
    >>c= ctypes.pointer( b )
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "C:\programs\Py thon25\lib\ctyp es\__init__.py" , line 318, in
    pointer
    return POINTER(type(in st))(inst)
    File "C:\programs\Py thon25\lib\ctyp es\__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_int o and
    struct.unpack_f rom? 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:



  • Michel Claveau - NoSpam SVP ; merci

    #2
    Re: mmap and ctypes

    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
    --
    Michel Claveau



    Comment

    • castironpi

      #3
      Re: mmap and ctypes

      On Aug 16, 4:42 pm, "Michel Claveau - NoSpam SVP ; merci"
      <noZ.sp...@ZZ.Z svpZ.comwrote:
      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
      --
      Michel Claveau
      Say more-- what DLL? @-greetings

      Comment

      • castironpi

        #4
        Re: mmap and ctypes

        On Aug 16, 5:20 pm, castironpi <castiro...@gma il.comwrote:
        On Aug 16, 4:42 pm, "Michel Claveau - NoSpam SVP ; merci"
        >
        <noZ.sp...@ZZ.Z svpZ.comwrote:
        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
        --
        Michel Claveau
        >
        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_CallFu nction( ctypesmod_cast, "IO",
        seg, tp );
        return char_buf;

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

        Comment

        • Méta-MCI \(MVP\)

          #5
          Re: mmap and ctypes

          Hi!

          See here:


          @-salutations
          --
          Michel Claveau

          Comment

          • castironpi

            #6
            Re: mmap and ctypes

            On Aug 18, 1:09 am, "Méta-MCI \(MVP\)"
            <enleverlesX.X. ..@XmclaveauX.c omwrote:
            Hi!
            >
            See here:
             http://www.ponx.org/download/CD/COMdll/autoitmmap.dll
            >
            @-salutations
            --
            Michel Claveau
            I don't see how it fits in.

            Comment

            Working...