gwyn@Brl@sri-unix (10/20/82)
From: Doug Gwyn <gwyn@Brl> Date: 18 Oct 82 9:34:43-EDT (Mon) I believe the structure passing, return, and assignment have been there since 7th Edition UNIX (documented in a 1-page paper behind the C Reference Manual). Note that the "csv" routine has since been changed along with a corresponding change in the PDP-11 (Ritchie) compiler, to link via R0 instead of R5. This apparently is intended to avoid problems when the save sequence is interrupted (by signal or device interrupt); it is also slightly faster. If your C compiler is based on 7th Edition or older, it is easy to change to this new scheme. However, there is still a problem with true interrupts occurring during return of a struct from a function, so this facility should be avoided in kernel or standalone work.