Hi, Still confused bu at a higher level, I need some further help to grasp how to replace a passive/active translator.
First a question related to the io_select() call in eglibc-2.13/hurd/hurdselect.c. I was assuming that the corresponding S_io_select() implementation was from pflocal.c, but adding print statements of trying to set a breakpoint in gdb does not hit that code. (And trying to step into the io_select() call in gdb makes it freeze). 1) In hurd there are a number of *S_io_select() implementations, how to find which one is executed by the call in hurdselect.c? Grepping through the hurd source code shows: boot/boot.c:S_io_select pfinet/io-ops.c:S_io_select pflocal/io.c:S_io_select <- I assumed this was the one, right or wrong? console-client/trans.c:netfs_S_io_select libdiskfs/io-select.c:diskfs_S_io_select libtreefs/s-io.c:treefs_S_io_select libtrivfs/io-select.c:trivfs_S_io_select pfinet/tunnel.c:trivfs_S_io_select random/random.c:trivfs_S_io_select storeio/io.c:trivfs_S_io_select term/users.c:trivfs_S_io_select trans/fifo.c:trivfs_S_io_select <- Maybe this is the one? firmlink.c:trivfs_S_io_select hello-mt.c: trivfs_S_io_select trans/hello.c: trivfs_S_io_select trans/new-fifo.c:trivfs_S_io_select trans/null.c:trivfs_S_io_select trans/streamio.c:trivfs_S_io_select You also have these _Xio_select definitions created by the build: build/boot/ioServer.c:mig_internal void _Xio_select build/libdiskfs/ioServer.c:mig_internal void _Xio_select build/libnetfs/ioServer.c:mig_internal void _Xio_select build/libtrivfs/ioServer.c:mig_internal void _Xio_select build/pfinet/ioServer.c:mig_internal void _Xio_select build/pflocal/ioServer.c:mig_internal void _Xio_select My guess is that they are related to the mach interface, via MIG, to the the corresponding RPC_* files generated by the glibc build. Maybe I missed some of the definitions, never mind. I still cannot yet find the Hurd code corresponding to the call in hurdselect.c. I know Samuel wrote som stuff in rpc.mdwn, but things are still not crystal clear (to me). 2) To replace an active translator /hurd/pflocal with a modified one the following questions arise: a) How to find out if the translator is both passive and active: pflocal is a passive translator: #> showtrans /servers/socket/1 /hurd/pflocal b) How to find out if there is also an active running? #> settrans --help does not give any guidance, neither does #> showtrans --help Killing the process containing /hurd/pflocal as suggested by Samuel on IRC freezes the ssh connection, break out from ssh and log in again (or use the console) -> The passive translator starts again! c) How to get rid of the active translator? #> settrans -f /servers/socket/1 ?? d) Trying to replace the old active translator without removing the old one: #> settrans -a /servers/socket/1 /hurd/pflocal.new settrans: /servers/socket/1: Device or resource busy etc... Help please.