Lines Matching refs:entry

76 	struct snd_info_entry *entry;  member
82 static void snd_info_disconnect(struct snd_info_entry *entry);
159 struct snd_info_entry *entry; in snd_info_entry_llseek() local
163 entry = data->entry; in snd_info_entry_llseek()
164 mutex_lock(&entry->access); in snd_info_entry_llseek()
165 if (entry->content == SNDRV_INFO_CONTENT_DATA && in snd_info_entry_llseek()
166 entry->c.ops->llseek) { in snd_info_entry_llseek()
167 offset = entry->c.ops->llseek(entry, in snd_info_entry_llseek()
172 if (entry->content == SNDRV_INFO_CONTENT_DATA) in snd_info_entry_llseek()
173 size = entry->size; in snd_info_entry_llseek()
197 mutex_unlock(&entry->access); in snd_info_entry_llseek()
205 struct snd_info_entry *entry; in snd_info_entry_read() local
218 entry = data->entry; in snd_info_entry_read()
219 switch (entry->content) { in snd_info_entry_read()
232 if (pos >= entry->size) in snd_info_entry_read()
234 if (entry->c.ops->read) { in snd_info_entry_read()
235 size = entry->size - pos; in snd_info_entry_read()
237 size = entry->c.ops->read(entry, in snd_info_entry_read()
252 struct snd_info_entry *entry; in snd_info_entry_write() local
260 entry = data->entry; in snd_info_entry_write()
266 switch (entry->content) { in snd_info_entry_write()
271 mutex_lock(&entry->access); in snd_info_entry_write()
274 mutex_unlock(&entry->access); in snd_info_entry_write()
279 mutex_unlock(&entry->access); in snd_info_entry_write()
283 mutex_unlock(&entry->access); in snd_info_entry_write()
287 if (entry->c.ops->write && count > 0) { in snd_info_entry_write()
288 size_t maxsize = entry->size - pos; in snd_info_entry_write()
290 size = entry->c.ops->write(entry, in snd_info_entry_write()
303 struct snd_info_entry *entry; in snd_info_entry_open() local
309 entry = PDE_DATA(inode); in snd_info_entry_open()
310 if (entry == NULL || ! entry->p) { in snd_info_entry_open()
314 if (!try_module_get(entry->module)) { in snd_info_entry_open()
320 if ((entry->content == SNDRV_INFO_CONTENT_DATA && in snd_info_entry_open()
321 entry->c.ops->read == NULL)) { in snd_info_entry_open()
327 if ((entry->content == SNDRV_INFO_CONTENT_DATA && in snd_info_entry_open()
328 entry->c.ops->write == NULL)) { in snd_info_entry_open()
338 data->entry = entry; in snd_info_entry_open()
339 switch (entry->content) { in snd_info_entry_open()
363 if (entry->c.ops->open) { in snd_info_entry_open()
364 if ((err = entry->c.ops->open(entry, mode, in snd_info_entry_open()
374 if (entry->content == SNDRV_INFO_CONTENT_TEXT && in snd_info_entry_open()
376 if (entry->c.text.read) { in snd_info_entry_open()
377 mutex_lock(&entry->access); in snd_info_entry_open()
378 entry->c.text.read(entry, data->rbuffer); in snd_info_entry_open()
379 mutex_unlock(&entry->access); in snd_info_entry_open()
396 module_put(entry->module); in snd_info_entry_open()
404 struct snd_info_entry *entry; in snd_info_entry_release() local
410 entry = data->entry; in snd_info_entry_release()
411 switch (entry->content) { in snd_info_entry_release()
418 if (entry->c.text.write) { in snd_info_entry_release()
419 entry->c.text.write(entry, data->wbuffer); in snd_info_entry_release()
421 if (entry->card) in snd_info_entry_release()
422 dev_warn(entry->card->dev, "info: data write error to %s (%i)\n", in snd_info_entry_release()
423 entry->name, in snd_info_entry_release()
427 entry->name, in snd_info_entry_release()
436 if (entry->c.ops->release) in snd_info_entry_release()
437 entry->c.ops->release(entry, mode, in snd_info_entry_release()
441 module_put(entry->module); in snd_info_entry_release()
449 struct snd_info_entry *entry; in snd_info_entry_poll() local
455 entry = data->entry; in snd_info_entry_poll()
457 switch (entry->content) { in snd_info_entry_poll()
459 if (entry->c.ops->poll) in snd_info_entry_poll()
460 return entry->c.ops->poll(entry, in snd_info_entry_poll()
463 if (entry->c.ops->read) in snd_info_entry_poll()
465 if (entry->c.ops->write) in snd_info_entry_poll()
476 struct snd_info_entry *entry; in snd_info_entry_ioctl() local
481 entry = data->entry; in snd_info_entry_ioctl()
482 switch (entry->content) { in snd_info_entry_ioctl()
484 if (entry->c.ops->ioctl) in snd_info_entry_ioctl()
485 return entry->c.ops->ioctl(entry, in snd_info_entry_ioctl()
497 struct snd_info_entry *entry; in snd_info_entry_mmap() local
502 entry = data->entry; in snd_info_entry_mmap()
503 switch (entry->content) { in snd_info_entry_mmap()
505 if (entry->c.ops->mmap) in snd_info_entry_mmap()
506 return entry->c.ops->mmap(entry, in snd_info_entry_mmap()
537 struct snd_info_entry *entry; in snd_info_init() local
538 if ((entry = snd_info_create_module_entry(THIS_MODULE, "oss", NULL)) == NULL) in snd_info_init()
540 entry->mode = S_IFDIR | S_IRUGO | S_IXUGO; in snd_info_init()
541 if (snd_info_register(entry) < 0) { in snd_info_init()
542 snd_info_free_entry(entry); in snd_info_init()
545 snd_oss_root = entry; in snd_info_init()
550 struct snd_info_entry *entry; in snd_info_init() local
551 if ((entry = snd_info_create_module_entry(THIS_MODULE, "seq", NULL)) == NULL) in snd_info_init()
553 entry->mode = S_IFDIR | S_IRUGO | S_IXUGO; in snd_info_init()
554 if (snd_info_register(entry) < 0) { in snd_info_init()
555 snd_info_free_entry(entry); in snd_info_init()
558 snd_seq_root = entry; in snd_info_init()
598 struct snd_info_entry *entry; in snd_info_card_create() local
604 if ((entry = snd_info_create_module_entry(card->module, str, NULL)) == NULL) in snd_info_card_create()
606 entry->mode = S_IFDIR | S_IRUGO | S_IXUGO; in snd_info_card_create()
607 if (snd_info_register(entry) < 0) { in snd_info_card_create()
608 snd_info_free_entry(entry); in snd_info_card_create()
611 card->proc_root = entry; in snd_info_card_create()
770 struct snd_info_entry *entry; in snd_info_create_entry() local
771 entry = kzalloc(sizeof(*entry), GFP_KERNEL); in snd_info_create_entry()
772 if (entry == NULL) in snd_info_create_entry()
774 entry->name = kstrdup(name, GFP_KERNEL); in snd_info_create_entry()
775 if (entry->name == NULL) { in snd_info_create_entry()
776 kfree(entry); in snd_info_create_entry()
779 entry->mode = S_IFREG | S_IRUGO; in snd_info_create_entry()
780 entry->content = SNDRV_INFO_CONTENT_TEXT; in snd_info_create_entry()
781 mutex_init(&entry->access); in snd_info_create_entry()
782 INIT_LIST_HEAD(&entry->children); in snd_info_create_entry()
783 INIT_LIST_HEAD(&entry->list); in snd_info_create_entry()
784 return entry; in snd_info_create_entry()
801 struct snd_info_entry *entry = snd_info_create_entry(name); in snd_info_create_module_entry() local
802 if (entry) { in snd_info_create_module_entry()
803 entry->module = module; in snd_info_create_module_entry()
804 entry->parent = parent; in snd_info_create_module_entry()
806 return entry; in snd_info_create_module_entry()
825 struct snd_info_entry *entry = snd_info_create_entry(name); in snd_info_create_card_entry() local
826 if (entry) { in snd_info_create_card_entry()
827 entry->module = card->module; in snd_info_create_card_entry()
828 entry->card = card; in snd_info_create_card_entry()
829 entry->parent = parent; in snd_info_create_card_entry()
831 return entry; in snd_info_create_card_entry()
836 static void snd_info_disconnect(struct snd_info_entry *entry) in snd_info_disconnect() argument
841 list_for_each_safe(p, n, &entry->children) { in snd_info_disconnect()
845 if (! entry->p) in snd_info_disconnect()
847 list_del_init(&entry->list); in snd_info_disconnect()
848 root = entry->parent == NULL ? snd_proc_root : entry->parent->p; in snd_info_disconnect()
850 proc_remove(entry->p); in snd_info_disconnect()
851 entry->p = NULL; in snd_info_disconnect()
856 struct snd_info_entry *entry = device->device_data; in snd_info_dev_free_entry() local
857 snd_info_free_entry(entry); in snd_info_dev_free_entry()
863 struct snd_info_entry *entry = device->device_data; in snd_info_dev_register_entry() local
864 return snd_info_register(entry); in snd_info_dev_register_entry()
895 struct snd_info_entry *entry; in snd_card_proc_new() local
898 entry = snd_info_create_card_entry(card, name, card->proc_root); in snd_card_proc_new()
899 if (! entry) in snd_card_proc_new()
901 if ((err = snd_device_new(card, SNDRV_DEV_INFO, entry, &ops)) < 0) { in snd_card_proc_new()
902 snd_info_free_entry(entry); in snd_card_proc_new()
906 *entryp = entry; in snd_card_proc_new()
918 void snd_info_free_entry(struct snd_info_entry * entry) in snd_info_free_entry() argument
920 if (entry == NULL) in snd_info_free_entry()
922 if (entry->p) { in snd_info_free_entry()
924 snd_info_disconnect(entry); in snd_info_free_entry()
927 kfree(entry->name); in snd_info_free_entry()
928 if (entry->private_free) in snd_info_free_entry()
929 entry->private_free(entry); in snd_info_free_entry()
930 kfree(entry); in snd_info_free_entry()
943 int snd_info_register(struct snd_info_entry * entry) in snd_info_register() argument
947 if (snd_BUG_ON(!entry)) in snd_info_register()
949 root = entry->parent == NULL ? snd_proc_root : entry->parent->p; in snd_info_register()
951 if (S_ISDIR(entry->mode)) { in snd_info_register()
952 p = proc_mkdir_mode(entry->name, entry->mode, root); in snd_info_register()
958 p = proc_create_data(entry->name, entry->mode, root, in snd_info_register()
959 &snd_info_entry_operations, entry); in snd_info_register()
964 proc_set_size(p, entry->size); in snd_info_register()
966 entry->p = p; in snd_info_register()
967 if (entry->parent) in snd_info_register()
968 list_add_tail(&entry->list, &entry->parent->children); in snd_info_register()
981 static void snd_info_version_read(struct snd_info_entry *entry, struct snd_info_buffer *buffer) in snd_info_version_read() argument
990 struct snd_info_entry *entry; in snd_info_version_init() local
992 entry = snd_info_create_module_entry(THIS_MODULE, "version", NULL); in snd_info_version_init()
993 if (entry == NULL) in snd_info_version_init()
995 entry->c.text.read = snd_info_version_read; in snd_info_version_init()
996 if (snd_info_register(entry) < 0) { in snd_info_version_init()
997 snd_info_free_entry(entry); in snd_info_version_init()
1000 snd_info_version_entry = entry; in snd_info_version_init()