lab 6 - signal modules; implement filter (again) for signalfs and test the recursiveness of the file server.
Inferno 4th Edition 20040830. See also labs 4 an 5.
2004/0922 21:24 Changed filter.b to use the clone interface. The ctl file accepts a source command which takes a filename or another signal source which may be served by the same signalfs
% echo source /usr/caerwyn/lab/6/mnt/wave > mnt/filter/2/ctl
The filter module then opens ctl reads the number of the conversation directory and then opens data. The filter is then responsible for setup of the signal source. It should probably pass through commands written to ctl that it does not understand, so the wave can be controlled through the filter ctl.
I made a small change to signalfs.b to not fork the namespace so the mount of the server affects the current process and the filter module is able to access the wave
176c178 < pidc <-= sys->pctl(0, nil); --- > pidc <-= sys->pctl(Sys->FORKNS, nil);
The recursion (if that's the right term) works. Filter reads data from wave served by the same file server; or it could be a different file server running remotely.
This was a quick lab session to resolve my doubts about signalfs. Need to really start implementing all the filters. Especially those that combine multiple sources.