bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(still) Need some help with translators


From: Svante Signell
Subject: (still) Need some help with translators
Date: Tue, 06 Nov 2012 23:48:12 +0100

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]