LINUX.ORG.RU

Сообщения timigor

 

Подскажите с f->f_op->read

Подскажите кто знает!
Читаю-пишу в ttyS0 из прерывания таймера примерно так:
void ndt_irq (unsigned long data)
{
spin_lock_bh(&timer_lock);
struct my_buf *tbf;
tbf = &rbuffer;

fs=get_fs();
set_fs(KERNEL_DS);
if (f && f->f_dentry && f->f_op && f->f_op->read) {
.......
retval = f->f_op->read(f, &tbf->rc, 1, &f->f_pos);
........
f->f_op->write(f, "NICHEVO NE CHITAET", 18, &f->f_pos);

if (retval <= 0) printk("<0> ^tstnd: READE returns: %d\n", retval);
}
else printk("<0> ^tstnd: stuct FILE is empty\n");
set_fs(fs);

mod_timer(&timer, jiffies + HZ);
spin_unlock_bh(&timer_lock);
}
Передаётся всё нормально, но ничего не читает. Возвращает код -11 (типа: пилите Шура - они золотые)
Если циклить на чтении - пилит до бесконечности.

timigor
()

помогите с СОМ из ядра

Помогите пожалуйста. Задача - данные получаемые модулем перепихивать в СОМ порт а получаемые из СОМ пропихивать в модуль. При открытии порта инициализирую структуру file, оттуда беру write. Если всё делать в пределах одной функции - работает. Вызываю из другой - получаю сообщение "unknown interface: No such device", хотя структура не пустая и write из неё вызывается. Куда всё девается не могу понять. Похоже что-то не так объявляю. Вот пример кода: #define MODULE #include <linux/module.h> #include <asm/uaccess.h> #include <linux/mm.h> #include <asm/segment.h> ...... struct file *f; static void ttys_write(const char *buf, size_t lenbuf) { struct file *fw; fw = f; if(fw != NULL) { fw->f_op->write(fw, buf, lenbuf, &fw->f_pos); print_string("^tstnd: ===ttys_write===\n"); } } .....ВСЁ РАБОТАЕТ: int init_module (void) { ....... set_fs(KERNEL_DS); f=filp_open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY, 0666); ttys_write("===OPEN_TTYS0===", 16); return 0; } ......НИЧЕГО НЕ РАБОТАЕТ: void cleanup_module (void) { /*mm_segment_t fs=get_fs(); struct file *fe; fe = f; if(fe != NULL) { */ ttys_write("===CLOSE_TTYS0===", 17); /* filp_close(fe,0); ..... } set_fs(fs);*/ ...... }

timigor
()

RSS подписка на новые темы