Как создать proc запись под/proc/driver?

В случае вывода из нескольких сетей вы можете попытаться установить OMP_WAIT_POLICY на PASSIVE.

Кстати, OpenVINO 2019R1 перешел из OpenMP в TBB. Это может дать лучшую эффективность в случае конвейера сетей глубокого обучения.

6
задан Gilles 'SO- stop being evil' 26 September 2011 в 18:12
поделиться

2 ответа

Смотря proc_fs.h, proc_root_driver определяется как:

extern struct proc_dir_entry *proc_root_driver;

пока CONFIG_PROC_FS включен. Если у Вас есть CONFIG_PROC_FS, выбранный при конфигурировании ядра необходимо смочь использовать его, поскольку Вы предложили себя т.е.:

#include <linux/proc_fs.h>
struct proc_dir_entry * procfile
procfile = create_proc_entry("myprocfile", 0400, proc_root_driver);

Если это не работает, проверьте, что у Вас есть набор CONFIG_PROC_FS. Для проверки можно скомпилировать исходный файл с-E опцией и проверить, что вызов create_proc_entry включает не ПУСТОЙ параметр как последний параметр. Если это является ПУСТЫМ, или вызов не там вообще, то CONFIG_PROC_FS не включен.

4
ответ дан 17 December 2019 в 00:15
поделиться
/* proc entries for ayyaz */

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/major.h>
#include <linux/fs.h>
#include <linux/err.h>
#include <linux/ioctl.h>
#include <linux/init.h>
#include <linux/proc_fs.h>

#ifdef CONFIG_PROC_FS

/*====================================================================*/
/* Support for /proc/ayyaz */

static struct proc_dir_entry *proc_ayyaz;

DEFINE_MUTEX(ayyaz_table_mutex);


/*====================================================================*/
/* Init code */
static int ayyaz_read_proc (char *page, char **start, off_t off, int count,
                          int *eof, void *data_unused)
{
        int len, l, i;
        off_t   begin = 0;

        mutex_lock(&ayyaz_table_mutex);

        len = sprintf(page, "hello ayyaz here\n");
        mutex_unlock(&ayyaz_table_mutex);
        if (off >= len+begin)
                return 0;
        *start = page + (off-begin);
        return ((count < begin+len-off) ? count : begin+len-off);
}


static int __init init_ayyaz(void)
{
        if ((proc_ayyaz = create_proc_entry( "ayyaz_maps", 0, NULL )))
                proc_ayyaz->read_proc = ayyaz_read_proc;
        return 0;
}

static void __exit cleanup_ayyaz(void)
{
        if (proc_ayyaz)
                remove_proc_entry( "ayyaz", NULL);
}

module_init(init_ayyaz);
module_exit(cleanup_ayyaz);
#else
#error "Please add CONFIG_PROC_FS=y in your .config "
#endif /* CONFIG_PROC_FS */


MODULE_LICENSE("proprietary");
MODULE_AUTHOR("Md.Ayyaz A Mulla  <md.ayyaz@gmail.com>");
MODULE_DESCRIPTION("proc files for ayyaz");

Скомпилируйте этот драйвер. Если он компилируется успешно, вы увидите / proc / ayyaz .

3
ответ дан 17 December 2019 в 00:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: