如何从内核 space 写入只有主要和次要设备号可用的 tty?
How to write to a tty from kernel space with only major and minor device numbers available?
我想从内核写入一个 tty space,并且只能访问该特定 tty 的主要和次要设备号。
我正在通过一个运行良好的系统调用进入内核,并且能够通过使用
写入当前 tty
my_tty = current->signal->tty;
(my_tty->driver->ops->write) (my_tty,"Text message", SIZE);
问题是有时我希望写入不同的 tty,并且(据我所知)只能访问由 current->signal->tty 定义的 tty。
我所拥有的是我希望寻址的 tty 的主要和次要设备编号,我将其作为参数传递给系统调用。
谁能就我可以研究的可用解决方案提出建议?
除了上述使用调用程序的当前 tty 的解决方案外,我没有找到任何其他解决方案。可能我使用了不正确的搜索词。
我还没有示例代码,因为我还没有向我现有的系统调用中添加任何内容。一旦我知道要使用什么,我会很高兴。也许已经有实现这一目标的功能?我只是希望得到一个关于使用什么或在哪里查看的指示。
您不会通过将 major/minor 数字传递给您的系统调用来执行此操作。
相反,让用户空间端打开它想要的 tty,然后将生成的文件描述符传递给您的系统调用。然后使用序列 { fget(); kernel_write(); fput(); }
写入提供的文件描述符。
我想从内核写入一个 tty space,并且只能访问该特定 tty 的主要和次要设备号。
我正在通过一个运行良好的系统调用进入内核,并且能够通过使用
写入当前 ttymy_tty = current->signal->tty;
(my_tty->driver->ops->write) (my_tty,"Text message", SIZE);
问题是有时我希望写入不同的 tty,并且(据我所知)只能访问由 current->signal->tty 定义的 tty。
我所拥有的是我希望寻址的 tty 的主要和次要设备编号,我将其作为参数传递给系统调用。
谁能就我可以研究的可用解决方案提出建议?
除了上述使用调用程序的当前 tty 的解决方案外,我没有找到任何其他解决方案。可能我使用了不正确的搜索词。
我还没有示例代码,因为我还没有向我现有的系统调用中添加任何内容。一旦我知道要使用什么,我会很高兴。也许已经有实现这一目标的功能?我只是希望得到一个关于使用什么或在哪里查看的指示。
您不会通过将 major/minor 数字传递给您的系统调用来执行此操作。
相反,让用户空间端打开它想要的 tty,然后将生成的文件描述符传递给您的系统调用。然后使用序列 { fget(); kernel_write(); fput(); }
写入提供的文件描述符。