NetBSD kernel's HD Audio sound driver has interrupt handler. The interrupt handler of the demo is re-written by Haskell language using Ajhc Haskell Compiler [ Ссылка ].
At the demo, run following operations.
First, set breakpoint at the interrupt of finding headphone,
and see Haskell function names on backtrace.
Second, set breakpoint s_alloc() function, that allocate area
in Haskell heap. Make sure of calling the function while anytime
running kernel.
Nevertheless, playing wav file does not break up.
The source code is found at [ Ссылка ]. The interrupt handler source code at [ Ссылка ]. A picture of the architecture is also at [ Ссылка ].
Discussion on mailing list: [ Ссылка ]
Music Copyright (c) 2011 Epopsan. It's licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. [ Ссылка ]
Ещё видео!