LCOV - code coverage report
Current view: top level - include/linux - file.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 6 6 100.0 %
Date: 2014-02-18 Functions: 0 0 -
Branches: 30 39 76.9 %

           Branch data     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                 :            :         int need_put;
      32                 :            : };
      33                 :            : 
      34                 :            : static inline void fdput(struct fd fd)
      35                 :            : {
      36 [ +  + ][ +  + ]:   41296287 :         if (fd.need_put)
           [ +  +  +  + ]
         [ -  + ][ +  + ]
         [ -  + ][ +  + ]
         [ -  + ][ -  + ]
         [ -  + ][ -  + ]
            [ - ][ +  + ]
            [ +  + ][ + ]
            [ + ][ -  + ]
         [ +  + ][ -  + ]
                 [ +  + ]
      37                 :    1190211 :                 fput(fd.file);
      38                 :            : }
      39                 :            : 
      40                 :            : extern struct file *fget(unsigned int fd);
      41                 :            : extern struct file *fget_light(unsigned int fd, int *fput_needed);
      42                 :            : 
      43                 :            : static inline struct fd fdget(unsigned int fd)
      44                 :            : {
      45                 :            :         int b;
      46                 :   33546010 :         struct file *f = fget_light(fd, &b);
      47                 :   33544861 :         return (struct fd){f,b};
      48                 :            : }
      49                 :            : 
      50                 :            : extern struct file *fget_raw(unsigned int fd);
      51                 :            : extern struct file *fget_raw_light(unsigned int fd, int *fput_needed);
      52                 :            : 
      53                 :            : static inline struct fd fdget_raw(unsigned int fd)
      54                 :            : {
      55                 :            :         int b;
      56                 :    8268223 :         struct file *f = fget_raw_light(fd, &b);
      57                 :    8268088 :         return (struct fd){f,b};
      58                 :            : }
      59                 :            : 
      60                 :            : extern int f_dupfd(unsigned int from, struct file *file, unsigned flags);
      61                 :            : extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
      62                 :            : extern void set_close_on_exec(unsigned int fd, int flag);
      63                 :            : extern bool get_close_on_exec(unsigned int fd);
      64                 :            : extern void put_filp(struct file *);
      65                 :            : extern int get_unused_fd_flags(unsigned flags);
      66                 :            : #define get_unused_fd() get_unused_fd_flags(0)
      67                 :            : extern void put_unused_fd(unsigned int fd);
      68                 :            : 
      69                 :            : extern void fd_install(unsigned int fd, struct file *file);
      70                 :            : 
      71                 :            : extern void flush_delayed_fput(void);
      72                 :            : extern void __fput_sync(struct file *);
      73                 :            : 
      74                 :            : #endif /* __LINUX_FILE_H */

Generated by: LCOV version 1.9