[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: kernel headers & userspace
Selon Guillaume Thouvenin <guillaume.thouvenin@xxxxxxxxxx>:
> > ---- NEW HEADER FILE ----
> > #ifndef __LINUX_ELSA_H
> > #define __LINUX_ELSA_H
> >
> > struct bank_root_s;
> > enum elsa_opcode {BANK_INIT,BANK_ALLOC,BANK_FREE,BANK_ADD,BANK_REMOVE};
> >
> > /*
> > * sys_elsa() interface.
> > *
> > * int sys_elsa(int opcode, unsigned int arg0,
> > * unsigned int arg1, unsigned int arg2)
> > */
> >
> > #ifdef __KERNEL__
> >
> > Now, I can compile the test program. Therefore, my question is :
> > Is it a correct solution
>
> There is a problem with this solution because the can declare the structure
> bank_root_s in the user program but the compiler will not know the size of
> the structure as the type is incomplete....
In fact, I think the problem is that a user MUST NOT interact directly with
kernel structure. So, struct bank_root_s shouldn't be visible from userland.
Guillaume
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/