[RFC 0/4] cell offloaded stdio
jschopp
jschopp@austin.ibm.com
Fri Oct 20 19:32:00 GMT 2006
> You mean like sys/stdio.h which is already included?
I need to think this through some more. The goal is to get FILE* to be an int, and to
have stdout, stderr, and stdin all initialized with 1, 2, & 3. This instead of FILE*
being a pointer to an __sFILE and stdout, stderr, and stdin all being pointers to real
structures.
> I would have advised just adding a special spe_send function for I/O
> which passes the FILE pointer in and does the magic on the other side.
> This saves you having to edit each and every file if you decide to
> change the mechanism.
I can't do that, as nice as it would be if I could. The interface is already architected
and can't be changed. Besides which the real FILE pointer is in a totally different
address space on the PowerPC part of the chip (in glibc).
> Remind me again why you are overriding all user-visible I/O functions
> and not simply the underlying functions used internally by newlib (e.g.
> __vfprintf_r which is used by the entire printf family of functions)?
> For example, if a non stdio C function in newlib needs to do some I/O
> internally for its purposes, it will call _xxxx_r routines which you
> haven't overridden.
I did the user visible functions to save a branch (which are quite costly on the cell
spe), because the user visible set maps better than the newlib internal set, and because I
thought that the stdio C functions were the only users of the _xxx_r stdio functions.
If there are other users of the _xxx_r routines still existing I may need to override
those referenced _xxx_r routines as well. Right now everything I've tested works fine.
-Joel
More information about the Newlib
mailing list