~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/fs/proc/kmsg.c

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  *  linux/fs/proc/kmsg.c
  3  *
  4  *  Copyright (C) 1992  by Linus Torvalds
  5  *
  6  */
  7 
  8 #include <linux/types.h>
  9 #include <linux/errno.h>
 10 #include <linux/sched.h>
 11 #include <linux/kernel.h>
 12 #include <linux/poll.h>
 13 
 14 #include <asm/uaccess.h>
 15 #include <asm/io.h>
 16 
 17 extern unsigned long log_size;
 18 extern wait_queue_head_t log_wait;
 19 
 20 extern int do_syslog(int type, char * bug, int count);
 21 
 22 static int kmsg_open(struct inode * inode, struct file * file)
 23 {
 24         return do_syslog(1,NULL,0);
 25 }
 26 
 27 static int kmsg_release(struct inode * inode, struct file * file)
 28 {
 29         (void) do_syslog(0,NULL,0);
 30         return 0;
 31 }
 32 
 33 static ssize_t kmsg_read(struct file * file, char * buf,
 34                          size_t count, loff_t *ppos)
 35 {
 36         return do_syslog(2,buf,count);
 37 }
 38 
 39 static unsigned int kmsg_poll(struct file *file, poll_table * wait)
 40 {
 41         poll_wait(file, &log_wait, wait);
 42         if (log_size)
 43                 return POLLIN | POLLRDNORM;
 44         return 0;
 45 }
 46 
 47 
 48 struct file_operations proc_kmsg_operations = {
 49         read:           kmsg_read,
 50         poll:           kmsg_poll,
 51         open:           kmsg_open,
 52         release:        kmsg_release,
 53 };
 54 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.