On Fri, Jan 9, 2009 at 08:08, Neal Becker <ndbeck...@gmail.com> wrote:
> Robert Kern wrote:
>
>> On Fri, Jan 9, 2009 at 06:05, Neal Becker <ndbeck...@gmail.com> wrote:
>>> I'm working on interfacing to a custom FPGA board.  The kernel driver
>>> exposes the FPGA memory via mmap.
>>>
>>> It might be nice to use numpy memmap to read/write data.  One issue is
>>> that I think I will need to create the memmap array from a fd, not a file
>>> name.  The reason is I wrote the driver to only allow 1 exclusive open,
>>> and I already have it open for other reasons.  Any chance to create a
>>> memmap array from a fd?
>>
>> Use os.fdopen(fd) to create a file object which can be passed to the
>> memmap constructor.
>>
>
> Looks like this is not going to work without some change to memmap.  The 
> problem is, I need read/write access.  The only choice in memmap is 'w+'.

'r+' is for reading and writing.

> But this does:
>        if (mode == 'w+') and shape is None:
>            raise ValueError, "shape must be given"
>
>        fid.seek(0,2)
>
> My device has hijacked 'read' to mean something entirely different than you 
> might expect.  The seek call invokes 'read'.
>
> It looks like the purpose of this code is to find the size of the mappable 
> area.  The best solution I think is just throw it away.

We can't. We need it.

> Consistent with mmap semantics, attempting access outside the mappable area 
> should cause and error - but I don't think there is any reliable way to know 
> the length of the mappable area apriori.

For regular files, that seems to me to be fairly reliable. Why isn't it?

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to