[Numpy-discussion] memmap from fd?
Fri Jan 9 15:10:04 CST 2009
On Fri, Jan 9, 2009 at 08:08, Neal Becker <email@example.com> wrote:
> Robert Kern wrote:
>> On Fri, Jan 9, 2009 at 06:05, Neal Becker <firstname.lastname@example.org> 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"
> 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?
"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
More information about the Numpy-discussion