Добрый день, у меня сегодня проблема, когда я создаю драйвер устройства, где я могу получить его, чтобы он прекрасно читал функцию dice_read, но когда я пытаюсь использовать dice_write, кажется, что это не таквообще ничего.Я даже добавил printk's, чтобы попытаться устранить неполадки, и кажется, что он все равно туда не попадет.не совсем уверен, почему.Я просто пытаюсь использовать строку "echo -ne \ x8 \ x4> / dev / dice", и она должна взять байт с "4" и поместить его в int.Я добавил свой dice_write ниже.Спасибо!(сторон является глобальной переменной)
static ssize_t dice_write(struct file * file, const char * buf,
size_t count, loff_t *ppos)
{
char *data = kmalloc(sizeof(buf), GFP_KERNEL);
copy_from_user(data, &buf, count);
int i = sizeof(data);
sides = 0;
char digit = data[i - 1];
if(digit >= '0' && digit <= '9'){
sides = digit - '0';
}
kfree(data);
return count;
}