32#ifndef __INCLUDE_FS_FDTABLE_H
33#define __INCLUDE_FS_FDTABLE_H
36#include <sys/select.h>
98#ifdef VFS_USING_WORKDIR
struct files_struct * dup_fd(struct files_struct *oldf)
复制FD
int alloc_fd(int minfd)
分配一个系统fd,从全局tg_filelist中拿sysFd
struct fd_table_s * GetFdTable(void)
获取进程文件描述符表
int files_close_internal(int fd, LosProcessCB *processCB)
void delete_files_snapshot(struct files_struct *files)
删除文件管理器快照
void FileTableLock(struct fd_table_s *fdt)
对进程文件表操作上锁
void delete_files(struct files_struct *files)
删除参数进程的文件管理器
void alloc_std_fd(struct fd_table_s *fdt)
struct files_struct * create_files_snapshot(const struct files_struct *oldf)
创建文件管理器快照,所谓快照就是一份拷贝
struct files_struct * alloc_files(void)
为进程分配文件管理器,其中包含fd总数,(0,1,2)默认给了stdin,stdout,stderr
void FileTableUnLock(struct fd_table_s *fdt)
对进程文件表操作解锁
struct file_table_s * ft_fds
unsigned int max_fds
进程的文件描述符最多有256个
fd_set * proc_fds
进程fd管理位,用bitmap管理FD使用情况,默认打开了 0,1,2 (stdin,stdout,stderr)
进程fd <--> 系统FD绑定 sysFd的默认值是-1
unsigned int next_fd
下一个fd
unsigned int file_lock
文件互斥锁
spinlock_t workdir_lock
工作区目录自旋锁
struct fd_table_s * fdt
持有的文件表
char workdir[PATH_MAX]
工作区路径,最大 256个字符