LCOV - code coverage report
Current view: top level - include/linux - file.h (source / functions) Hit Total Coverage
Test: btrfstest.info Lines: 3 4 75.0 %
Date: 2014-11-28 Functions: 0 0 -

          Line data    Source code
       1             : /*
       2             :  * Wrapper functions for accessing the file_struct fd array.
       3             :  */
       4             : 
       5             : #ifndef __LINUX_FILE_H
       6             : #define __LINUX_FILE_H
       7             : 
       8             : #include <linux/compiler.h>
       9             : #include <linux/types.h>
      10             : #include <linux/posix_types.h>
      11             : 
      12             : struct file;
      13             : 
      14             : extern void fput(struct file *);
      15             : 
      16             : struct file_operations;
      17             : struct vfsmount;
      18             : struct dentry;
      19             : struct path;
      20             : extern struct file *alloc_file(struct path *, fmode_t mode,
      21             :         const struct file_operations *fop);
      22             : 
      23             : static inline void fput_light(struct file *file, int fput_needed)
      24             : {
      25             :         if (fput_needed)
      26             :                 fput(file);
      27             : }
      28             : 
      29             : struct fd {
      30             :         struct file *file;
      31             :         unsigned int flags;
      32             : };
      33             : #define FDPUT_FPUT       1
      34             : #define FDPUT_POS_UNLOCK 2
      35             : 
      36             : static inline void fdput(struct fd fd)
      37             : {
      38         216 :         if (fd.flags & FDPUT_FPUT)
      39           0 :                 fput(fd.file);
      40             : }
      41             : 
      42             : extern struct file *fget(unsigned int fd);
      43             : extern struct file *fget_raw(unsigned int fd);
      44             : extern unsigned long __fdget(unsigned int fd);
      45             : extern unsigned long __fdget_raw(unsigned int fd);
      46             : extern unsigned long __fdget_pos(unsigned int fd);
      47             : 
      48             : static inline struct fd __to_fd(unsigned long v)
      49             : {
      50         216 :         return (struct fd){(struct file *)(v & ~3),v & 3};
      51             : }
      52             : 
      53             : static inline struct fd fdget(unsigned int fd)
      54             : {
      55         216 :         return __to_fd(__fdget(fd));
      56             : }
      57             : 
      58             : static inline struct fd fdget_raw(unsigned int fd)
      59             : {
      60             :         return __to_fd(__fdget_raw(fd));
      61             : }
      62             : 
      63             : extern int f_dupfd(unsigned int from, struct file *file, unsigned flags);
      64             : extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
      65             : extern void set_close_on_exec(unsigned int fd, int flag);
      66             : extern bool get_close_on_exec(unsigned int fd);
      67             : extern void put_filp(struct file *);
      68             : extern int get_unused_fd_flags(unsigned flags);
      69             : #define get_unused_fd() get_unused_fd_flags(0)
      70             : extern void put_unused_fd(unsigned int fd);
      71             : 
      72             : extern void fd_install(unsigned int fd, struct file *file);
      73             : 
      74             : extern void flush_delayed_fput(void);
      75             : extern void __fput_sync(struct file *);
      76             : 
      77             : #endif /* __LINUX_FILE_H */

Generated by: LCOV version 1.10