kallsyms.c (07354a00901d103085e4376b7df0aad264c1836a) kallsyms.c (15ad7cdcfd76450d4beebc789ec646664238184d)
1/*
2 * kallsyms.c: in-kernel printing of symbolic oopses and stack traces.
3 *
4 * Rewritten and vastly simplified by Rusty Russell for in-kernel
5 * module loader:
6 * Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
7 *
8 * ChangeLog:

--- 384 unchanged lines hidden (view full) ---

393 module_name(iter->owner));
394 else
395 seq_printf(m, "%0*lx %c %s\n",
396 (int)(2*sizeof(void*)),
397 iter->value, iter->type, iter->name);
398 return 0;
399}
400
1/*
2 * kallsyms.c: in-kernel printing of symbolic oopses and stack traces.
3 *
4 * Rewritten and vastly simplified by Rusty Russell for in-kernel
5 * module loader:
6 * Copyright 2002 Rusty Russell <rusty@rustcorp.com.au> IBM Corporation
7 *
8 * ChangeLog:

--- 384 unchanged lines hidden (view full) ---

393 module_name(iter->owner));
394 else
395 seq_printf(m, "%0*lx %c %s\n",
396 (int)(2*sizeof(void*)),
397 iter->value, iter->type, iter->name);
398 return 0;
399}
400
401static struct seq_operations kallsyms_op = {
401static const struct seq_operations kallsyms_op = {
402 .start = s_start,
403 .next = s_next,
404 .stop = s_stop,
405 .show = s_show
406};
407
408static int kallsyms_open(struct inode *inode, struct file *file)
409{

--- 18 unchanged lines hidden (view full) ---

428
429static int kallsyms_release(struct inode *inode, struct file *file)
430{
431 struct seq_file *m = (struct seq_file *)file->private_data;
432 kfree(m->private);
433 return seq_release(inode, file);
434}
435
402 .start = s_start,
403 .next = s_next,
404 .stop = s_stop,
405 .show = s_show
406};
407
408static int kallsyms_open(struct inode *inode, struct file *file)
409{

--- 18 unchanged lines hidden (view full) ---

428
429static int kallsyms_release(struct inode *inode, struct file *file)
430{
431 struct seq_file *m = (struct seq_file *)file->private_data;
432 kfree(m->private);
433 return seq_release(inode, file);
434}
435
436static struct file_operations kallsyms_operations = {
436static const struct file_operations kallsyms_operations = {
437 .open = kallsyms_open,
438 .read = seq_read,
439 .llseek = seq_lseek,
440 .release = kallsyms_release,
441};
442
443static int __init kallsyms_init(void)
444{
445 struct proc_dir_entry *entry;
446
447 entry = create_proc_entry("kallsyms", 0444, NULL);
448 if (entry)
449 entry->proc_fops = &kallsyms_operations;
450 return 0;
451}
452__initcall(kallsyms_init);
453
454EXPORT_SYMBOL(__print_symbol);
437 .open = kallsyms_open,
438 .read = seq_read,
439 .llseek = seq_lseek,
440 .release = kallsyms_release,
441};
442
443static int __init kallsyms_init(void)
444{
445 struct proc_dir_entry *entry;
446
447 entry = create_proc_entry("kallsyms", 0444, NULL);
448 if (entry)
449 entry->proc_fops = &kallsyms_operations;
450 return 0;
451}
452__initcall(kallsyms_init);
453
454EXPORT_SYMBOL(__print_symbol);