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

TOMOYO Linux Cross Reference
Linux/include/linux/file.h

Version: ~ [ linux-5.10-rc1 ] ~ [ linux-5.9.1 ] ~ [ linux-5.8.16 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.72 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.152 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.202 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.240 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.240 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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         if (fd.flags & FDPUT_FPUT)
 39                 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 extern void __f_unlock_pos(struct file *);
 48 
 49 static inline struct fd __to_fd(unsigned long v)
 50 {
 51         return (struct fd){(struct file *)(v & ~3),v & 3};
 52 }
 53 
 54 static inline struct fd fdget(unsigned int fd)
 55 {
 56         return __to_fd(__fdget(fd));
 57 }
 58 
 59 static inline struct fd fdget_raw(unsigned int fd)
 60 {
 61         return __to_fd(__fdget_raw(fd));
 62 }
 63 
 64 static inline struct fd fdget_pos(int fd)
 65 {
 66         return __to_fd(__fdget_pos(fd));
 67 }
 68 
 69 static inline void fdput_pos(struct fd f)
 70 {
 71         if (f.flags & FDPUT_POS_UNLOCK)
 72                 __f_unlock_pos(f.file);
 73         fdput(f);
 74 }
 75 
 76 extern int f_dupfd(unsigned int from, struct file *file, unsigned flags);
 77 extern int replace_fd(unsigned fd, struct file *file, unsigned flags);
 78 extern void set_close_on_exec(unsigned int fd, int flag);
 79 extern bool get_close_on_exec(unsigned int fd);
 80 extern void put_filp(struct file *);
 81 extern int get_unused_fd_flags(unsigned flags);
 82 extern void put_unused_fd(unsigned int fd);
 83 
 84 extern void fd_install(unsigned int fd, struct file *file);
 85 
 86 extern void flush_delayed_fput(void);
 87 extern void __fput_sync(struct file *);
 88 
 89 #endif /* __LINUX_FILE_H */
 90 

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

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp