billc <billclem@gmail.com> wrote:
+---------------
| Topic: Doing Evil Things with CL
| Presenter: Brad Beveridge
...
| Summary: Brad will be talking about various low-level bits and pieces,
| including:
|
| - Loading code that is normally a Linux driver into a Lisp image
+---------------
Hey, that's *my* trick!! ;-}
Well, no, actually. My signature hack is writing the driver in a
Lisp image in the first place, and, only after it's functionally
complete *and* tested by mmap()'ing the hardware into the Lisp
image and using the Lisp-based driver to poke at the hardware
including DMA'ing into pinned user-mode pages, then hand-compiling[1]
it to C and dropping it into the Unix/Linux kernel...
-Rob
[1] Well, I do tend to automatically generate the C header files,
mainly the hardware register bit definitions (structs & manifest
constants) from within the Lisp image. And also some simple
C macros. And initialized arrays of magic constants. And also
sometimes function prototypes. But the body of the executable
function code is still hand-compiled to C.
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607