#ifdef __KERNEL__ #include #include #include #include #include #include #include #include #include #include "../proc_api/proc_api.h" #include "shm_dev.h" static int shm_dev_proc_show(struct seq_file *seq, void *token) { seq_printf(seq, "Vserion: %s\n", SHMDEV_VERSION); seq_printf(seq, "Total Share Memory Size: %u(KB)\n", (PAGE_ALIGN(SHM_MEM_SIZE)) / 1024); return 0; } static int shm_dev_proc_ioctl(struct seq_file *seq, void *token) { return 0; } static int shm_dev_proc_help(struct seq_file *seq, void *token) { PDBGFS_PRIV priv = (PDBGFS_PRIV)(seq->private); seq_puts(seq, "==============Options Helps=============\n"); seq_printf(seq, "usage: echo \"\" > /proc/%s/%s/%s\n", PROC_API_DIR_NAME, SHM_DEV_DBG_DIR, priv->name); return 0; } static DBGFS_PRIV g_ProcConfig[] = { { "shm_dev", 0, 0L, NULL, NULL, shm_dev_proc_show, shm_dev_proc_ioctl, shm_dev_proc_help }, }; static PROC_API g_shmdev_dbg = { SHM_DEV_DBG_DIR, g_ProcConfig, sizeof(g_ProcConfig) / sizeof(g_ProcConfig[0]), }; int shm_dev_proc_init(void) { if(proc_api_register(&g_shmdev_dbg) != ERR_DBGFS_NO_ERROR) { printk(KERN_ERR "Regisetr %s Error\n", g_shmdev_dbg.dir_name); return -EINVAL; } return 0; } int shm_dev_proc_uninit(void) { return proc_api_unregister(&g_shmdev_dbg); } #endif