Hi! Is it possible to use the L4 Semaphore and Lock within a L4Linux kernel module somehow? I believe, that both is already used within the L4Linux kernel itself, but the symbols are not exported to other kernel module. When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id" If I try to add the libsemaphore.a, the situation gets worse and the following symbols are undefined. "LOG_flush" "_exit" "l4thread_create_long" l4thread_get_prio" "l4sigma0_kip_kernel_has_feature" "l4thread_l4_id" "l4thread_myself" "l4thread_data_set" "l4thread_data_get" "LOG_logL" "l4thread_set_prio" "l4thread_data_allocate_key" Even adding more libs to the L4Linux kernel module does not resolve all symbols - I'm not even sure if that could work at all. These are the libs already linked in (and making the kernel module work - without semaphores / locks): libdm_generic.a \ libl4env.a \ libl4env_err.a \ libgeneric_blk-server.a \ libl4sys.a \ libnames.a \ libroot.o.a \ libdiet_c.a \ I also tried to simply load the kernel module with unresolved symbols - in hope that the running kernel would solve it - to no success. Does anyone have a solution to this? Best regards Oskar. -- Sirrix AG security technologies - http://www.sirrix.com Oskar Senft eMail: o.senft@sirrix.com Tel +49 (681) 936 251 - 119 Fax +49 (681) 936 251 - 500 get public key from keyserver Fingerprint 6FC6 3E44 233F 7F4B 33C7 A8D0 2EDA F3BA B5A3 0BA4 This message may contain confidential and/or privileged information. If you are not the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.
Hi folks!
When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id" Ok, I now found, that these symbols are dynamically linked to the L4Linux kernel by the loader as these are defined in libloader.s.so.
Is there a way to use them with Linux kernel modules, too? Regards Oskar. -- Sirrix AG security technologies - http://www.sirrix.com Oskar Senft eMail: o.senft@sirrix.com Tel +49 (681) 936 251 - 119 Fax +49 (681) 936 251 - 500 get public key from keyserver Fingerprint 6FC6 3E44 233F 7F4B 33C7 A8D0 2EDA F3BA B5A3 0BA4 This message may contain confidential and/or privileged information. If you are not the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message.
On Tue Aug 08, 2006 at 15:40:10 +0200, Oskar Senft wrote:
When I now try to use them, the linker tells that the following symbols are undefined: "l4semaphore_restart_down" "l4semaphore_restart_up" "l4thread_myself" "l4semaphore_thread_l4_id" Ok, I now found, that these symbols are dynamically linked to the L4Linux kernel by the loader as these are defined in libloader.s.so.
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end. Adam -- This message may contain nonsense. If you think this is the case you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please send it back asap without copying and/or reading. Thanks!
Hi Adam!
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end. Ok, thank you. Attached you find a patch for adding the symbols. Could you include it to the CVS L4Linux tree?
Best regards Oskar. -- Sirrix AG security technologies - http://www.sirrix.com Oskar Senft eMail: o.senft@sirrix.com Tel +49 (681) 936 251 - 119 Fax +49 (681) 936 251 - 519 get public key from keyserver Fingerprint 6FC6 3E44 233F 7F4B 33C7 A8D0 2EDA F3BA B5A3 0BA4 This message may contain confidential and/or privileged information. If you are not the addressee, you must not use, copy, disclose or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. --- l4linux-2.6/arch/l4/kernel/main.c.orig 2006-08-02 17:11:58.000000000 +0200 +++ l4linux-2.6/arch/l4/kernel/main.c 2006-08-09 13:39:20.000000000 +0200 @@ -1667,4 +1667,12 @@ char l4env_ipc_errstrings[0]; EXPORT_SYMBOL(l4env_ipc_errstrings); +#include <l4/semaphore/semaphore.h> +EXPORT_SYMBOL(l4semaphore_restart_up); +EXPORT_SYMBOL(l4semaphore_restart_down); +EXPORT_SYMBOL(l4semaphore_thread_l4_id); + +#include <l4/thread/thread.h> +EXPORT_SYMBOL(l4thread_myself); + #endif /* ARCH_x86 */
On Wed Aug 09, 2006 at 15:35:22 +0200, Oskar Senft wrote:
Is there a way to use them with Linux kernel modules, too?
You have to export these functions. Examples are in arch/l4/kernel/main.c at the end. Ok, thank you. Attached you find a patch for adding the symbols. Could you include it to the CVS L4Linux tree?
Done so internally. Should go public by tomorrow. Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
participants (2)
-
Adam Lackorzynski -
Oskar Senft