IO configuration language

Adam Lackorzynski adam at os.inf.tu-dresden.de
Tue Jun 24 23:27:07 CEST 2014


On Mon Jun 23, 2014 at 12:49:34 +0200, Martin Schröder wrote:
> Am 22.06.2014 23:25, schrieb Adam Lackorzynski:
> >>1) How can I use the device in the example if the hid is not unique? I even
> >>tried wrap(hw:device(NIC0)) but this does not work eiher.
> >
> >wrap(hw.NIC0) should do it.
> 
> this fails here:
> >io      | rom/foo.io: error executing lua config: Wrong arguments for overloaded function 'Vi_dev_factory_create'
> >io      |   Possible C/C++ prototypes are:
> >io      |     Vi::Dev_factory::create(std::string const &)
> >io      |     Vi::Dev_factory::create(Hw::Device *,bool)
> >io      |     Vi::Dev_factory::create(Hw::Device *)
> 
> by using wrap(hw.NIC0()) instead, io does not complain any longer.
> 
> >>2) How can I set the device name for client0/client1 into "foo.dev0" for
> >>dev0 as in the (old) example above? dev0.set_name("foo.dev0"); seems not to
> >>be the right one.
> >
> >I don't think this is easily possible with the new syntax. Do you need
> >that type of name?
> 
> With that change, l4linux does no longer utilize the provided callbacks
> [mach_setup.c: void register_platform_callbacks(void) ->
> l4x_register_platform_device_callback("foodevice", my_device_cb)]. So none
> of the Hw Devices is probed/found.

So setting the name is possible. It should work like this:
        client0 = Io.Vi.System_bus(function ()
	      _self["x.y"] = wrap(...);
        end),

with table style it looks a bit cleaner:
        client0 = Io.Vi.System_bus{
	      ["x.y"] = wrap(...),
        };

(I'm not sure it works with the _self syntax for you).



Adam
-- 
Adam                 adam at os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/



More information about the l4-hackers mailing list