Lines Matching refs:files
247 * This is called from the FS initialization logic to configure the files.
258 * Description: Initializes the list of files for a new task
304 * Assign an vnode to a specific files structure. This is the heart of
498 process_files = processCB->files;
501 PRINT_ERR("process files is NULL, %s %d\n", __FUNCTION__ ,__LINE__);
780 struct files_struct *files = LOS_MemAlloc(m_aucSysMem0, sizeof(struct files_struct));
781 if (!files)
786 files->count = 1;
787 files->file_lock = 0;
788 files->next_fd = 3;
790 spin_lock_init(&files->workdir_lock);
791 memset_s(files->workdir, PATH_MAX, 0, PATH_MAX);
792 files->workdir[0] = '/';
794 files->fdt = alloc_fd_table(NR_OPEN_DEFAULT);
795 if (!files->fdt)
798 (VOID)LOS_MemFree(m_aucSysMem0, files);
806 files->rootVnode = VnodeGetRoot();
809 return files;
816 struct files_struct *files = NULL;
821 files = LOS_MemAlloc(m_aucSysMem0, sizeof(struct files_struct));
822 if(!files)
827 files->count = 1;
828 files->file_lock = 0;
829 files->next_fd = old_files->next_fd;
831 spin_lock_init(&files->workdir_lock);
832 memset_s(files->workdir, PATH_MAX, 0, PATH_MAX);
833 strncpy_s(files->workdir, PATH_MAX - 1, old_files->workdir, PATH_MAX - 1);
840 (VOID)LOS_MemFree(m_aucSysMem0, files);
844 files->fdt = new_fdt;
850 files->rootVnode = old_files->rootVnode;
853 return files;
860 * Close a current process's fd specified by struct files.
861 * And delete files struct.
864 void delete_files(struct files_struct *files)
866 if (files == NULL)
872 if ((files->rootVnode != NULL) && (files->rootVnode->useCount > 0))
874 files->rootVnode->useCount--;
878 if (files->fdt == NULL)
883 for (int i = 0; i < files->fdt->max_fds; i++)
885 if (FD_ISSET(i, files->fdt->proc_fds))
893 (VOID)sem_destroy(&files->fdt->ft_sem);
894 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt->ft_fds);
895 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt->proc_fds);
896 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt);
898 (VOID)LOS_MemFree(m_aucSysMem0, files);
906 struct files_struct *files = NULL;
911 files = LOS_MemAlloc(m_aucSysMem0, sizeof(struct files_struct));
912 if (!files)
917 files->count = 1;
918 files->file_lock = 0;
919 files->next_fd = old_files->next_fd;
921 spin_lock_init(&files->workdir_lock);
922 memset_s(files->workdir, PATH_MAX, 0, PATH_MAX);
923 strncpy_s(files->workdir, PATH_MAX - 1, old_files->workdir, PATH_MAX - 1);
930 (VOID)LOS_MemFree(m_aucSysMem0, files);
934 files->fdt = new_fdt;
940 files->rootVnode = old_files->rootVnode;
943 return files;
947 void delete_files_snapshot(struct files_struct *files)
949 if (files == NULL)
953 if (files->fdt == NULL)
958 (VOID)sem_destroy(&files->fdt->ft_sem);
959 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt->ft_fds);
960 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt->proc_fds);
961 (VOID)LOS_MemFree(m_aucSysMem0, files->fdt);
963 (VOID)LOS_MemFree(m_aucSysMem0, files);