Мой вопрос касается использования и поведения структур в Linux Kernel Space.Я пишу драйвер устройства char:
struct LEDs{
int red_l;
};
ssize_t gmem_driver_write(struct file *file, const char *buf,
size_t count, loff_t *ppos)
{
struct LEDs myled;
printk("Red is: %d \n", myled.red_l);
return 0;
}
static long my_ioctl(struct file *f, unsigned int cmd, unsigned long arg)
{
struct LEDs myled = {};
myled.red_l = 1;
return 0;
}
Если я сначала вызываю my_ioctl, а затем пишу из пространства пользователя, я ожидаю, что red_l будет иметь значение 1 в светодиодах структуры, а затем я ожидаю, что он будет печататься внутри записифункция.Но он печатает мусорное значение.
Мой вопрос: так как эта логика работает в пространстве пользователя, есть ли здесь что-то другое?Что можно сделать, чтобы заставить его работать в Linux Kernel Space?