Lines Matching full:misc

3  * linux/drivers/char/misc.c
5 * Generic misc open routine by Johan Myreen
15 * of the misc drivers, as they are now completely independent. Linus.
24 * Renamed to misc and miscdevice to be more accurate. Alan Cox 26-Mar-96
159 * @misc: device structure
175 int misc_register(struct miscdevice *misc) in misc_register() argument
179 bool is_dynamic = (misc->minor == MISC_DYNAMIC_MINOR); in misc_register()
181 INIT_LIST_HEAD(&misc->list); in misc_register()
192 misc->minor = DYNAMIC_MINORS - i - 1; in misc_register()
198 if (c->minor == misc->minor) { in misc_register()
205 dev = MKDEV(MISC_MAJOR, misc->minor); in misc_register()
207 misc->this_device = in misc_register()
208 device_create_with_groups(misc_class, misc->parent, dev, in misc_register()
209 misc, misc->groups, "%s", misc->name); in misc_register()
210 if (IS_ERR(misc->this_device)) { in misc_register()
212 int i = DYNAMIC_MINORS - misc->minor - 1; in misc_register()
216 misc->minor = MISC_DYNAMIC_MINOR; in misc_register()
218 err = PTR_ERR(misc->this_device); in misc_register()
226 list_add(&misc->list, &misc_list); in misc_register()
235 * @misc: device to unregister
241 void misc_deregister(struct miscdevice *misc) in misc_deregister() argument
243 int i = DYNAMIC_MINORS - misc->minor - 1; in misc_deregister()
245 if (WARN_ON(list_empty(&misc->list))) in misc_deregister()
249 list_del(&misc->list); in misc_deregister()
250 device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor)); in misc_deregister()
273 ret = proc_create_seq("misc", 0, NULL, &misc_seq_ops); in misc_init()
274 misc_class = class_create(THIS_MODULE, "misc"); in misc_init()
280 if (register_chrdev(MISC_MAJOR, "misc", &misc_fops)) in misc_init()
286 pr_err("unable to get major %d for misc devices\n", MISC_MAJOR); in misc_init()
290 remove_proc_entry("misc", NULL); in misc_init()