error: ‘struct tty_driver’ has no member named ‘write’

error: ‘struct tty_driver’ has no member named ‘write’

我是内核模块编程的新手,在编译一些旧内核代码时遇到了一些问题。我收到以下错误消息,

 error: ‘struct tty_driver’ has no member named ‘write’
            ((my_tty->driver)->write) (my_tty,0,str,strlen(str));

我检查了 tty_driver.h 文件,那里定义了 write。发生什么了?如何访问版本 3.13.0-24

我的代码在这里:

void print_string(char *str)
{
      struct tty_struct *my_tty;
      my_tty = get_current_tty();

      if (my_tty != NULL)
      {
             (*(my_tty->driver)->write)(my_tty, 0, str, strlen(str));
      }
}

提前致谢..

write 确实被定义,但不是 tty_driver 的成员。它被定义为 tty_operations 的成员,并且 tty_driver 有一个成员 ops,一个指向 const tty_operations.

的指针

所以,我使用 my_driver->ops->write 而不是 my_driver->driver->write