Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static ssize_t device_write(struct file *file, const char __user *buffer, size_t length, loff_t *offset)
- {
- DBG("device write attempt\n");
- DBG_FMT("length: %i\n", length);
- //struct packet _x;
- //struct packet *foo = &_x;
- struct packet foo;
- DBG_FMT("size should be greater than %i but less than %i - it is: %i\n", sizeof(struct packet) - DATA_MAX, sizeof(struct packet), length);
- if ((length > sizeof(struct packet)) || (length <= (sizeof(struct packet) - DATA_MAX))) // too much or no payload
- return -EINVAL;
- DBG_FMT("allocated memory variable is assigned to: %i", sizeof(foo));
- if (copy_from_user(&foo, buffer, length))
- return -EFAULT;
- foo.data[length - (sizeof(struct packet) - DATA_MAX)] = '\0'; // set 0-Byte to end of string
- DBG_FMT(" header :: duration: %i, count: %i\n", foo.duration, foo.count);
- DBG_FMT(" payload :: as string: < %s >\n", foo.data);
- //if (!rfm12_ask_modulate(foo))
- // return -EINVAL;
- DBG_FMT("return: %i\n", length);
- return length;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement