- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
static int card_open(struct inode *inode, struct file *f)
{
unsigned int minor = MINOR(inode->i_rdev);
DEBUG(KERN_CRIT "Driver: card_open()\n");
f->private_data = (void *)(unsigned long long)minor;
return 0;
}
Хотя, когда надо было закодировать пару чисел в другом драйвере, родил ЭТО:
Мда. Можно же вот так?
Прощание с 32-битными платформами?
Блять, что за хуйня с минусами, не видно ГК же.
Это у одного местного жителя жопа горит. Из-за этого он пятнадцатью ботами минусует треды.
Если хочешь, чтобы твой новый тред заметили - просто напиши к нему комментарий. Тут дофига народу читает сток, даже не заглядывая на главную.
На воре - шапка горит, а у пiдора - жOпу бомбитЪ!
Есть ли смысл для каждого создавать свой cdev, или же джва cdevа на все как сейчас есть и оно работает?
Ну хрен знает... Если с ними по-отдельности работают, и на них надо ссылаться в параметрах или конфигах - можно и растащить. А если одна юзерлендная прога работает со всей кучей одновременно - лучше не растаскивать, чтобы не править и не усложнять её.
Это с /dev/kokokoXkudkudahY для любых X, Y.
>А если одна юзерлендная прога работает со всей кучей одновременно - лучше не растаскивать, чтобы не править и не усложнять её.
А это с /dev/kokokoX для любого X.
Ну и конечно в /dev/kokoko0kudkudah0 есть защита от двойного open'a.