Re: problem with <asm/semaphore.h>

From: Robert Hancock
Date: Thu Apr 19 2007 - 10:26:59 EST


liangbowen wrote:
You're trying to use a kernel data structure in a user-space program.
Don't. The definitions in that header are inside #ifdef __KERNEL__ and
so the provided userspace headers remove that part.

someone've said the exact same thing, and he said that I can add the -
D__KERNEL__ to the compilation options,
but I can't see any #ifdef __KERNEL__ macro in that header(<asm/
semaphore.h>).
Is my header differ from yours?


It's because the userspace headers have been processed with unifdef to remove any sections which are inside #ifdef __KERNEL__, since userspace apps are not supposed to see those sections.

I'm not sure why you want to use a semaphore in a userspace program. Even if you can get it to compile, they definitely won't function properly. Aside from the legal issues (using internal kernel code like that would make your program a derived work of the kernel and thus covered under the GPL).

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/