Hi Stefan, We can't compile the latest SVN pull of Genode due to some issues with missing base-foc/contrib/kernel/fiasco. Can you please tell me what the dir structure should be and what it should contain - and check everything is their for the build.
Thanks Daniel
Hi Daniel,
the convenient integration of the Fiasco.OC kernel and bootstrap tools into the Genode build system, introduced with Genode's release 11.05, slightly changed some build system internals.
If you want to use the unmodified kernel version, the current release is laid out to run on top of, you have to do:
make prepare
in the base-foc repository. This will checkout all necessary sources from the Fiasco.OC repository. Then create a new build-directory via the tool/builddir/create_builddir script, e.g.:
./tool/builddir/create_builddir foc_x86_32 \ GENODE_DIR=`pwd` BUILD_DIR=$HOME/builds/foc-build
and run:
make run/demo
within it. That's all.
If you want to use your own kernel, built outside of Genode's build system, of course you can skip the preparation of the base-foc repository, but have to state two variables in 'etc/foc.conf' in your build system (these variable-names changed!):
L4_BUILD_DIR = <path_to_l4re_build_dir> KERNEL = <path_to_kernel_binary>
Please notice, the second variable does no longer target the build-directory of the kernel, but the actual kernel binary. I hope that clarifies
For a complete overview, please have a look at the wiki:
http://genode.org/community/wiki/GenodeOnFiascoOC
Best regards Stefan
On 01.06.2011 04:02, Daniel Waddington wrote:
Hi Stefan, We can't compile the latest SVN pull of Genode due to some issues with missing base-foc/contrib/kernel/fiasco. Can you please tell me what the dir structure should be and what it should contain - and check everything is their for the build.
Thanks Daniel
Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Data protection magic? Nope - It's vRanger. Get your free trial download today. http://p.sf.net/sfu/quest-sfdev2dev
Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Stefan,
OK, we got it to build but could get our additional methods on Foc_cpu_session to build. Question is, how do you introduce a new type (e.g., struct) to be used as part of an RPC signature? Do you have to somewhere say how to marshal/unmarshal that type?
Thanks Daniel
On 06/01/2011 01:12 AM, Stefan Kalkowski wrote:
Hi Daniel,
the convenient integration of the Fiasco.OC kernel and bootstrap tools into the Genode build system, introduced with Genode's release 11.05, slightly changed some build system internals.
If you want to use the unmodified kernel version, the current release is laid out to run on top of, you have to do:
make prepare
in the base-foc repository. This will checkout all necessary sources from the Fiasco.OC repository. Then create a new build-directory via the tool/builddir/create_builddir script, e.g.:
./tool/builddir/create_builddir foc_x86_32 \ GENODE_DIR=`pwd` BUILD_DIR=$HOME/builds/foc-build
and run:
make run/demo
within it. That's all.
If you want to use your own kernel, built outside of Genode's build system, of course you can skip the preparation of the base-foc repository, but have to state two variables in 'etc/foc.conf' in your build system (these variable-names changed!):
L4_BUILD_DIR =<path_to_l4re_build_dir> KERNEL =<path_to_kernel_binary>
Please notice, the second variable does no longer target the build-directory of the kernel, but the actual kernel binary. I hope that clarifies
For a complete overview, please have a look at the wiki:
http://genode.org/community/wiki/GenodeOnFiascoOC
Best regards Stefan
On 01.06.2011 04:02, Daniel Waddington wrote:
Hi Stefan, We can't compile the latest SVN pull of Genode due to some issues with missing base-foc/contrib/kernel/fiasco. Can you please tell me what the dir structure should be and what it should contain - and check everything is their for the build.
Thanks Daniel
Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Data protection magic? Nope - It's vRanger. Get your free trial download today. http://p.sf.net/sfu/quest-sfdev2dev
Genode-main mailing list Genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Daniel,
Foc_cpu_session to build. Question is, how do you introduce a new type (e.g., struct) to be used as part of an RPC signature? Do you have to somewhere say how to marshal/unmarshal that type?
there are no special precautions needed. Any type can be used as RPC argument as long as the following conditions are met:
* The type is self-sufficient, i.e., does not contain pointers and references
* The type has a default constructor
The in/out direction is steered by the 'const' qualifier used for reference arguments and, if more flexibility is needed, by the 'Trait::Rpc_direction' type trait. For a more detailed explanation, please have a look at the Section "Transferable argument types" of the current release notes:
http://genode.org/documentation/release-notes/11.05#section-4
Best regards Norman
Hi Norman,
A statement "Genode::Cpu_session_capability h_cap(Genode::env()->parent()->session("CPU","ram_quota=4K"));" that can be compiled before triggers the following error message now:
/home/tianc/git/omnios/genode/base/include/base/capability.h: In member function Genode::Untyped_capability Genode::Capability<RPC_INTERFACE, BCT>::_check_compatibility(const Genode::Capability<FROM_RPC_INTERFACE, FROM_BCT>&) [with FROM_RPC_INTERFACE = Genode::Session, FROM_BCT = Genode::Native_capability, RPC_INTERFACE = Genode::Cpu_session, BCT = Genode::Native_capability]: /home/tianc/git/omnios/genode/base/include/base/capability.h:147: instantiated from Genode::Capability<RPC_INTERFACE, BCT>::Capability(const Genode::Capability<FROM_RPC_INTERFACE, FROM_BCT>&) [with FROM_RPC_INTERFACE = Genode::Session, FROM_BCT = Genode::Native_capability, RPC_INTERFACE = Genode::Cpu_session, BCT = Genode::Native_capability] /home/tianc/git/omnios/genode-omnios/examples/thread-migration/src/app/32/.. /main.cc:18: instantiated from here /home/tianc/git/omnios/genode/base/include/base/capability.h:128: error: invalid conversion from Genode::Session* to Genode::Cpu_session* make[3]: *** [../main.o] Error 1 make[2]: *** [thread-migration.prg] Error 2 make[1]: *** [gen_deps_and_build_targets] Error 2 make[1]: Leaving directory `/home/tianc/git/omnios/build/genode-build-omnios'
I cannot figure out what's going on.
Best, Chen
-----Original Message----- From: Norman Feske [mailto:norman.feske@...1...] Sent: Wednesday, June 01, 2011 9:41 PM To: genode-main@lists.sourceforge.net Subject: Re: Current genode release
Hi Daniel,
Foc_cpu_session to build. Question is, how do you introduce a new type (e.g., struct) to be used as part of an RPC signature? Do you have to somewhere say how to marshal/unmarshal that type?
there are no special precautions needed. Any type can be used as RPC argument as long as the following conditions are met:
* The type is self-sufficient, i.e., does not contain pointers and references
* The type has a default constructor
The in/out direction is steered by the 'const' qualifier used for reference arguments and, if more flexibility is needed, by the 'Trait::Rpc_direction' type trait. For a more detailed explanation, please have a look at the Section "Transferable argument types" of the current release notes:
http://genode.org/documentation/release-notes/11.05#section-4
Best regards Norman
Hi,
please refer to the paragraph about "Casting capability types" in the release notes for 11.05. These state:
For typed capabilities, the same type conversion rules apply as for pointers. In fact, a typed capability pretty much resembles a typed pointer, pointing to a remote object. Hence, assigning a specialized capability (e.g., CapabilityInput::Session) to a base-typed capability (e.g., Capability<Session>) is always valid. For the opposite case, a static cast is needed. For capabilities, this cast is supported by
static_cap_cast<INTERFACE>(cap)
HTH
Hi Christian,
Problem is solved. Thank you!
Chen
-----Original Message----- From: Christian Helmuth [mailto:christian.helmuth@...1...] Sent: Saturday, June 04, 2011 1:59 PM To: genode-main@lists.sourceforge.net Subject: Re: Current genode release
Hi,
please refer to the paragraph about "Casting capability types" in the release notes for 11.05. These state:
For typed capabilities, the same type conversion rules apply as for pointers. In fact, a typed capability pretty much resembles a typed pointer, pointing to a remote object. Hence, assigning a specialized capability (e.g., CapabilityInput::Session) to a base-typed capability (e.g., Capability<Session>) is always valid. For the opposite case, a static cast is needed. For capabilities, this cast is supported by
static_cap_cast<INTERFACE>(cap)
HTH