Unix - 使用不同的驱动程序树?

时间:2015-05-16 14:28:46

标签: c linux unix tree drivers

背景:

我的问题有一个很强的假设:没有用户可以列出驱动程序树。

我正在阅读this (organization of the different drivers in Linux/Unix

如果创建了新的操作系统并且没有用户可以列出驱动程序树,那么是否需要这样复杂的树?

我的感觉是:不,只要内核能够非常快地找到一个驱动程序。

然后将这些结构限制为像这样的结构数组可能是相关的:

struct descript_driver {

    /* the usual struct with the functions 
     * pointers(.open = blah, .mmap = blah and so on). 
     */
    struct actions act;

    char * driver_name;
    char * vendor_name;  

    int vendorid; 
    int class_type; // GRAPHIC, NETWORK, CAMERA (#define or enum)...
    int major_id;
    int minor_id;
};

/* 256 is just an example. It could be more, or less. 
 * There are up to 256 majors but potentially a lot of minors. 
 * And each one has its index.
 * Addressing is O(1).
 */
struct descript_driver array_of_drivers[256];

让驱动程序/内核记住它的索引只是为了在数组中流动。

中断仍将占据主要数字。 并且由于次要编号,在O(1)中调用正确的函数仍然很容易。

我的想法有什么问题吗?这是改善我的项目的重要一点。

由于

0 个答案:

没有答案