From 37263db433a10969c6688f9fe7f2446974086b96 Mon Sep 17 00:00:00 2001 From: wangshuo Date: Wed, 19 May 2021 09:23:53 +0800 Subject: [PATCH] =?UTF-8?q?blog:=20nuttx+tmpfs=E7=AE=80=E4=BB=8B.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nuttx+tmpfs\347\256\200\344\273\213.md" | 1992 +++++++++++++++++ .../nuttx.jpg" | Bin 0 -> 72746 bytes .../tmpfs.jpg" | Bin 0 -> 217419 bytes 3 files changed, 1992 insertions(+) create mode 100644 "web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx+tmpfs\347\256\200\344\273\213.md" create mode 100644 "web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx.jpg" create mode 100644 "web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/tmpfs.jpg" diff --git "a/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx+tmpfs\347\256\200\344\273\213.md" "b/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx+tmpfs\347\256\200\344\273\213.md" new file mode 100644 index 00000000..2f0f0a47 --- /dev/null +++ "b/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx+tmpfs\347\256\200\344\273\213.md" @@ -0,0 +1,1992 @@ +--- +title: 文件系统--nuttx tmpfs简介 +date: 2021-05-18 +tags: + - 文件系统 + - tmpfs + - nuttx +archives: 2021-05 +author: wangshuo +summary: 结合nuttx的源码介绍nuttx的tmpfs +--- +# 前言 +tmpfs(temporary filesystem)直译为临时文件系统,类似于虚拟磁盘(ramdisk),但ramdisk是一个块设备,而且需要一个mkfs之类的命令格式化后才能使用。而tmpfs是一个独立的文件系统,不是块设备,只要挂载,就可以立即使用。本文将以nuttx-10.0.1的tmpfs为研究对象介绍其基本数据结构和基础接口功能实现。
+
+ +# 数据结构 +tmpfs的源码位于nuttx的fs/tmpfs目录下,只有一个C文件,因此阅读起来相对比较简单,这里先介绍一下tmpfs的关键数据结构。
+
+ +## object +目录和文件的抽象,从下图几个结构体的对比也可以看出,object结构体可以认为是为了便于统一接口而将文件和目录的结构体进行的抽象,从面向对象的角度来看,object可以理解为file和directory结构体的的父类。 +``` +/* The generic form of a TMPFS memory object */ + +struct tmpfs_object_s +{ + FAR struct tmpfs_dirent_s *to_dirent; + struct tmpfs_sem_s to_exclsem; + + size_t to_alloc; /* Allocated size of the memory object */ + uint8_t to_type; /* See enum tmpfs_objtype_e */ + uint8_t to_refs; /* Reference count */ +}; +``` +

+ +
+

+ +## dirent +可以理解为检索项,后续将通过dirent来找到对应的object,从源码可以看出,dirent只是在object之外增加了对象的名称。 +``` +/* The form of one directory entry */ + +struct tmpfs_dirent_s +{ + FAR struct tmpfs_object_s *tde_object; + FAR char *tde_name; +}; +``` +
+ +## directory +目录,directory里面有一个或多个dirent,目录中的dirent可以指向文件或子目录,从根目录开始文件和目录交织在一起构成一棵tmpfs树。 +``` +/* The form of a directory memory object */ + +struct tmpfs_directory_s +{ + /* First fields must match common TMPFS object layout */ + + FAR struct tmpfs_dirent_s *tdo_dirent; + struct tmpfs_sem_s tdo_exclsem; + + size_t tdo_alloc; /* Allocated size of the directory object */ + uint8_t tdo_type; /* See enum tmpfs_objtype_e */ + uint8_t tdo_refs; /* Reference count */ + + /* Remaining fields are unique to a directory object */ + + uint16_t tdo_nentries; /* Number of directory entries */ + struct tmpfs_dirent_s tdo_entry[1]; +}; +``` +
+ +## file +文件,书面地讲是有顺序的字节流。每个文件都有一个可阅读的文件名,用户可以对指定文件名的文件进行读、写、创建删除等操作。 +``` +/* The form of a regular file memory object + * + * NOTE that in this very simplified implementation, there is no per-open + * state. The file memory object also serves as the open file object, + * saving an allocation. This has the negative side effect that no per- + * open state can be retained (such as open flags). + */ + +struct tmpfs_file_s +{ + /* First fields must match common TMPFS object layout */ + + FAR struct tmpfs_dirent_s *tfo_dirent; + struct tmpfs_sem_s tfo_exclsem; + + size_t tfo_alloc; /* Allocated size of the file object */ + uint8_t tfo_type; /* See enum tmpfs_objtype_e */ + uint8_t tfo_refs; /* Reference count */ + + /* Remaining fields are unique to a directory object */ + + uint8_t tfo_flags; /* See TFO_FLAG_* definitions */ + size_t tfo_size; /* Valid file size */ + uint8_t tfo_data[1]; /* File data starts here */ +}; +``` +
+ +## tmpfs_s +tmpfs的实例,其tfs_root成员指向了tmpfs的根目录。 +``` +/* This structure represents one instance of a TMPFS file system */ + +struct tmpfs_s +{ + /* The root directory */ + + FAR struct tmpfs_dirent_s tfs_root; + struct tmpfs_sem_s tfs_exclsem; +}; +``` +
+ + +## 结构体关系 +以上结构体的之间的关系如下图所示。 +
+

+ +# 主要内部接口 +这里根据操作内容将关键的内部接口分为以下四类。 +

+## dirent操作 +### tmpfs_add_dirent +上文提到dirent是object加上名称的简化封装版本,而object是目录和文件的抽象,因此文件和目录的新增都会用到tmpfs_add_dirent,其源码如下。
+可以看出tmpfs_add_dirent其实只做了一件事,即在对当前目录tdo进行realloc,新增一项tdo_entry,并把新的object(即to)和name赋值给新的tdo_entry。 +``` +/**************************************************************************** + * Name: tmpfs_add_dirent + ****************************************************************************/ + +static int tmpfs_add_dirent(FAR struct tmpfs_directory_s **tdo, + FAR struct tmpfs_object_s *to, + FAR const char *name) +{ + FAR struct tmpfs_directory_s *oldtdo; + FAR struct tmpfs_directory_s *newtdo; + FAR struct tmpfs_dirent_s *tde; + FAR char *newname; + unsigned int nentries; + int index; + + /* Copy the name string so that it will persist as long as the + * directory entry. + */ + + newname = strdup(name); + if (newname == NULL) + { + return -ENOMEM; + } + + /* Get the new number of entries */ + + oldtdo = *tdo; + nentries = oldtdo->tdo_nentries + 1; + + /* Reallocate the directory object (if necessary) */ + + index = tmpfs_realloc_directory(tdo, nentries); + if (index < 0) + { + kmm_free(newname); + return index; + } + + /* Save the new object info in the new directory entry */ + + newtdo = *tdo; + tde = &newtdo->tdo_entry[index]; + tde->tde_object = to; + tde->tde_name = newname; + + /* Add backward link to the directory entry to the object */ + + to->to_dirent = tde; + return OK; +} +``` +
+
+ +### tmpfs_find_dirent +tmpfs_find_dirent函数用于在指定的目录tdo中查找指定name的dirent,其源码如下,实现较为简单,就是单纯的遍历查找。 +``` +/**************************************************************************** + * Name: tmpfs_find_dirent + ****************************************************************************/ + +static int tmpfs_find_dirent(FAR struct tmpfs_directory_s *tdo, + FAR const char *name) +{ + int i; + + /* Search the list of directory entries for a match */ + + for (i = 0; + i < tdo->tdo_nentries && + strcmp(tdo->tdo_entry[i].tde_name, name) != 0; + i++); + + /* Return what we found, if anything */ + + return i < tdo->tdo_nentries ? i : -ENOENT; +} +``` +

+ +### tmpfs_remove_dirent +tmpfs_remove_dirent函数用于从指定的目录tdo中删除名称为name的dirent,其源码如下。这里首先free掉在tmpfs_add_dirent函数中strdup的name,然后判断被删除的dirent是否为最后一个,如果是直接退出,否则把最后一个dirent覆盖到要删除的dirent中从而空出最后一个dirent以备后续使用,避免频繁realloc。 +``` +/**************************************************************************** + * Name: tmpfs_remove_dirent + ****************************************************************************/ + +static int tmpfs_remove_dirent(FAR struct tmpfs_directory_s *tdo, + FAR const char *name) +{ + int index; + int last; + + /* Search the list of directory entries for a match */ + + index = tmpfs_find_dirent(tdo, name); + if (index < 0) + { + return index; + } + + /* Free the object name */ + + if (tdo->tdo_entry[index].tde_name != NULL) + { + kmm_free(tdo->tdo_entry[index].tde_name); + } + + /* Remove by replacing this entry with the final directory entry */ + + last = tdo->tdo_nentries - 1; + if (index != last) + { + FAR struct tmpfs_dirent_s *newtde; + FAR struct tmpfs_dirent_s *oldtde; + FAR struct tmpfs_object_s *to; + + /* Move the directory entry */ + + newtde = &tdo->tdo_entry[index]; + oldtde = &tdo->tdo_entry[last]; + to = oldtde->tde_object; + + newtde->tde_object = to; + newtde->tde_name = oldtde->tde_name; + + /* Reset the backward link to the directory entry */ + + to->to_dirent = newtde; + } + + /* And decrement the count of directory entries */ + + tdo->tdo_nentries = last; + return OK; +} +``` +

+ +## object操作 +### tmpfs_find_object +上文提到object是目录和文件的抽象,因此文件和目录的find都用tmpfs_find_object来实现,其源码如下。
+函数虽然在150行左右,但是并不复杂。入参中的relpath为绝对路径,函数从tmpfs的根目录开始查找,具体某一目录下的查找用到了上文提到的tmpfs_find_dirent函数,如果找不到则返回错误码,如果找到则目标object以及其所在的目录上锁,to_refs和tdo_refs都加1。 +``` +/**************************************************************************** + * Name: tmpfs_find_object + ****************************************************************************/ + +static int tmpfs_find_object(FAR struct tmpfs_s *fs, + FAR const char *relpath, + FAR struct tmpfs_object_s **object, + FAR struct tmpfs_directory_s **parent) +{ + FAR struct tmpfs_object_s *to = NULL; + FAR struct tmpfs_directory_s *tdo = NULL; + FAR struct tmpfs_directory_s *next_tdo; + FAR char *segment; + FAR char *next_segment; + FAR char *tkptr; + FAR char *copy; + int index; + int ret; + + /* Make a copy of the path (so that we can modify it via strtok) */ + + copy = strdup(relpath); + if (copy == NULL) + { + return -ENOMEM; + } + + /* Traverse the file system for any object with the matching name */ + + to = fs->tfs_root.tde_object; + next_tdo = (FAR struct tmpfs_directory_s *)fs->tfs_root.tde_object; + + for (segment = strtok_r(copy, "/", &tkptr); + segment != NULL; + segment = next_segment) + { + /* Get the next segment after the one we are currently working on. + * This will be NULL is we are working on the final segment of the + * relpath. + */ + + next_segment = strtok_r(NULL, "/", &tkptr); + + /* Search the next directory. */ + + tdo = next_tdo; + + /* Find the TMPFS object with the next segment name in the current + * directory. + */ + + index = tmpfs_find_dirent(tdo, segment); + if (index < 0) + { + /* No object with this name exists in the directory. */ + + kmm_free(copy); + return index; + } + + to = tdo->tdo_entry[index].tde_object; + + /* Is this object another directory? */ + + if (to->to_type != TMPFS_DIRECTORY) + { + /* No. Was this the final segment in the path? */ + + if (next_segment == NULL) + { + /* Then we can break out of the loop now */ + + break; + } + + /* No, this was not the final segment of the relpath. + * We cannot continue the search if any of the intermediate + * segments do no correspond to directories. + */ + + kmm_free(copy); + return -ENOTDIR; + } + + /* Search this directory for the next segment. If we + * exit the loop, tdo will still refer to the parent + * directory of to. + */ + + next_tdo = (FAR struct tmpfs_directory_s *)to; + } + + /* When we exit this loop (successfully), to will point to the TMPFS + * object associated with the terminal segment of the relpath. + * Increment the reference count on the located object. + */ + + /* Free the dup'ed string */ + + kmm_free(copy); + + /* Return what we found */ + + if (parent) + { + if (tdo != NULL) + { + /* Get exclusive access to the parent and increment the reference + * count on the object. + */ + + ret = tmpfs_lock_directory(tdo); + if (ret < 0) + { + return ret; + } + + tdo->tdo_refs++; + } + + *parent = tdo; + } + + if (object) + { + if (to != NULL) + { + /* Get exclusive access to the object and increment the reference + * count on the object. + */ + + ret = tmpfs_lock_object(to); + if (ret < 0) + { + return ret; + } + + to->to_refs++; + } + + *object = to; + } + + return OK; +} +``` +

+ + +## 文件操作 +### tmpfs_alloc_file +tmpfs_alloc_file函数用于为新的文件分配空间,其源码如下,实现也非常简单,申请内存,结构体初始化,仅此而已。 +``` +/**************************************************************************** + * Name: tmpfs_alloc_file + ****************************************************************************/ + +static FAR struct tmpfs_file_s *tmpfs_alloc_file(void) +{ + FAR struct tmpfs_file_s *tfo; + size_t allocsize; + + /* Create a new zero length file object */ + + allocsize = SIZEOF_TMPFS_FILE(CONFIG_FS_TMPFS_FILE_ALLOCGUARD); + tfo = (FAR struct tmpfs_file_s *)kmm_malloc(allocsize); + if (tfo == NULL) + { + return NULL; + } + + /* Initialize the new file object. NOTE that the initial state is + * locked with one reference count. + */ + + tfo->tfo_alloc = allocsize; + tfo->tfo_type = TMPFS_REGULAR; + tfo->tfo_refs = 1; + tfo->tfo_flags = 0; + tfo->tfo_size = 0; + + tfo->tfo_exclsem.ts_holder = getpid(); + tfo->tfo_exclsem.ts_count = 1; + nxsem_init(&tfo->tfo_exclsem.ts_sem, 0, 0); + + return tfo; +} +``` +

+ +### tmpfs_create_file +tmpfs_create_file用于创建一个新文件,其源码如下。一开始会先判断是否是在根目录下创建文件,如果是则parent变量为根目录,反正则通过tmpfs_find_directory函数找到待创建文件的上一级目录。然后会通过tmpfs_find_dirent函数查找当前文件是否存在,如果存在则返回错误码退出;如果不存在则调用tmpfs_alloc_file函数为新文件分配空间,调用tmpfs_add_dirent函数在新文件所在的目录下为其分配一个dirent。 +``` +/**************************************************************************** + * Name: tmpfs_create_file + ****************************************************************************/ + +static int tmpfs_create_file(FAR struct tmpfs_s *fs, + FAR const char *relpath, + FAR struct tmpfs_file_s **tfo) +{ + FAR struct tmpfs_directory_s *parent; + FAR struct tmpfs_file_s *newtfo; + FAR char *copy; + FAR char *name; + int ret; + + /* Duplicate the path variable so that we can modify it */ + + copy = strdup(relpath); + if (copy == NULL) + { + return -ENOMEM; + } + + /* Separate the path into the file name and the path to the parent + * directory. + */ + + name = strrchr(copy, '/'); + if (name == NULL) + { + /* No subdirectories... use the root directory */ + + name = copy; + parent = (FAR struct tmpfs_directory_s *)fs->tfs_root.tde_object; + + /* Lock the root directory to emulate the behavior of + * tmpfs_find_directory() + */ + + ret = tmpfs_lock_directory(parent); + if (ret < 0) + { + kmm_free(copy); + return ret; + } + + parent->tdo_refs++; + } + else + { + /* Terminate the parent directory path */ + + *name++ = '\0'; + + /* Locate the parent directory that should contain this name. + * On success, tmpfs_find_directory() will lock the parent + * directory and increment the reference count. + */ + + ret = tmpfs_find_directory(fs, copy, &parent, NULL); + if (ret < 0) + { + goto errout_with_copy; + } + } + + /* Verify that no object of this name already exists in the directory */ + + ret = tmpfs_find_dirent(parent, name); + if (ret != -ENOENT) + { + /* Something with this name already exists in the directory. + * OR perhaps some fatal error occurred. + */ + + if (ret >= 0) + { + ret = -EEXIST; + } + + goto errout_with_parent; + } + + /* Allocate an empty file. The initial state of the file is locked with + * one reference count. + */ + + newtfo = tmpfs_alloc_file(); + if (newtfo == NULL) + { + ret = -ENOMEM; + goto errout_with_parent; + } + + /* Then add the new, empty file to the directory */ + + ret = tmpfs_add_dirent(&parent, (FAR struct tmpfs_object_s *)newtfo, name); + if (ret < 0) + { + goto errout_with_file; + } + + /* Release the reference and lock on the parent directory */ + + parent->tdo_refs--; + tmpfs_unlock_directory(parent); + + /* Free the copy of the relpath and return success */ + + kmm_free(copy); + *tfo = newtfo; + return OK; + + /* Error exits */ + +errout_with_file: + nxsem_destroy(&newtfo->tfo_exclsem.ts_sem); + kmm_free(newtfo); + +errout_with_parent: + parent->tdo_refs--; + tmpfs_unlock_directory(parent); + +errout_with_copy: + kmm_free(copy); + return ret; +} + +``` +

+ +### tmpfs_find_file +tmpfs_find_file函数用于从指定的绝对路径中查找目标文件,其源码如下。可以看出本质上就是调用了tmpfs_find_object,同时增加了判断,如果找到的目标文件的属性(to_type)不是文件,则返回错误码退出。 +``` +/**************************************************************************** + * Name: tmpfs_find_file + ****************************************************************************/ + +static int tmpfs_find_file(FAR struct tmpfs_s *fs, + FAR const char *relpath, + FAR struct tmpfs_file_s **tfo, + FAR struct tmpfs_directory_s **parent) +{ + FAR struct tmpfs_object_s *to; + int ret; + + /* Find the object at this path. If successful, tmpfs_find_object() will + * lock both the object and the parent directory and will increment the + * reference count on both. + */ + + ret = tmpfs_find_object(fs, relpath, &to, parent); + if (ret >= 0) + { + /* We found it... but is it a regular file? */ + + if (to->to_type != TMPFS_REGULAR) + { + /* No... unlock the object and its parent and return an error */ + + tmpfs_release_lockedobject(to); + + if (parent) + { + FAR struct tmpfs_directory_s *tdo = *parent; + + tdo->tdo_refs--; + tmpfs_unlock_directory(tdo); + } + + ret = -EISDIR; + } + + /* Return the verified file object */ + + *tfo = (FAR struct tmpfs_file_s *)to; + } + + return ret; +} +``` +

+ + +### tmpfs_realloc_file +tmpfs_realloc_file函数用于扩充当前文件的空间,其源码如下。结构体tmpfs_file_s中的tfo_alloc成员记录了当前file的实际大小,且在文件新创建时会预分配一部分空间,因此当待扩充的大小不超过文件的实际大小时,改变tfo_size的值即可。否则通过kmm_realloc函数进行扩充并完成结构体的更新。 +``` +/**************************************************************************** + * Name: tmpfs_realloc_file + ****************************************************************************/ + +static int tmpfs_realloc_file(FAR struct tmpfs_file_s **tfo, + size_t newsize) +{ + FAR struct tmpfs_file_s *oldtfo = *tfo; + FAR struct tmpfs_file_s *newtfo; + size_t objsize; + size_t allocsize; + size_t delta; + + /* Check if the current allocation is sufficient */ + + objsize = SIZEOF_TMPFS_FILE(newsize); + + /* Are we growing or shrinking the object? */ + + if (objsize <= oldtfo->tfo_alloc) + { + /* Shrinking ... Shrink unconditionally if the size is shrinking to + * zero. + */ + + if (newsize > 0) + { + /* Otherwise, don't realloc unless the object has shrunk by a + * lot. + */ + + delta = oldtfo->tfo_alloc - objsize; + if (delta <= CONFIG_FS_TMPFS_FILE_FREEGUARD) + { + /* Hasn't shrunk enough.. Return doing nothing for now */ + + oldtfo->tfo_size = newsize; + return OK; + } + } + } + + /* Added some additional amount to the new size to account frequent + * reallocations. + */ + + allocsize = objsize + CONFIG_FS_TMPFS_FILE_ALLOCGUARD; + + /* Realloc the file object */ + + newtfo = (FAR struct tmpfs_file_s *)kmm_realloc(oldtfo, allocsize); + if (newtfo == NULL) + { + return -ENOMEM; + } + + /* Adjust the reference in the parent directory entry */ + + DEBUGASSERT(newtfo->tfo_dirent); + newtfo->tfo_dirent->tde_object = (FAR struct tmpfs_object_s *)newtfo; + + /* Return the new address of the reallocated file object */ + + newtfo->tfo_alloc = allocsize; + newtfo->tfo_size = newsize; + *tfo = newtfo; + return OK; +} +``` +

+ +## 目录操作 +### tmpfs_alloc_directory +tmpfs_alloc_directory函数用于为新的目录分配空间,类似于tmpfs_alloc_file,其实现主要为申请内存,结构体初始化,在此不多赘述。 +

+ +### tmpfs_create_directory +tmpfs_create_directory用于创建一个新目录,类似于tmpfs_create_file,在此不多赘述。 +

+ +### tmpfs_find_directory +tmpfs_find_directory函数用于从指定的绝对路径中查找目标兖,类似于tmpfs_find_file。本质上也是是调用了tmpfs_find_object,同时增加了判断,如果找到的目标文件的属性(to_type)不是目录,则返回错误码退出。 +

+ + +### tmpfs_realloc_directory +tmpfs_realloc_directory用于为指定目录tdo扩充一个dirent,其源码如下。不同于tmpfs_realloc_file,这里tmpfs_realloc_directory的入参为期望realloc后dirent的总数。上文提到tmpfs不会立即删去dirent而是将结尾部分预留出来,因此如果当前目录中预留的dirent满足需求,则仅需更新tdo_nentries即可。反之则调用kmm_realloc扩充空间并更新相关结构体。 +``` +/**************************************************************************** + * Name: tmpfs_realloc_directory + ****************************************************************************/ + +static int tmpfs_realloc_directory(FAR struct tmpfs_directory_s **tdo, + unsigned int nentries) +{ + FAR struct tmpfs_directory_s *oldtdo = *tdo; + FAR struct tmpfs_directory_s *newtdo; + size_t objsize; + int ret = oldtdo->tdo_nentries; + + /* Get the new object size */ + + objsize = SIZEOF_TMPFS_DIRECTORY(nentries); + if (objsize <= oldtdo->tdo_alloc) + { + /* Already big enough. + * REVISIT: Missing logic to shrink directory objects. + */ + + oldtdo->tdo_nentries = nentries; + return ret; + } + + /* Added some additional amount to the new size to account frequent + * reallocations. + */ + + objsize += CONFIG_FS_TMPFS_DIRECTORY_ALLOCGUARD; + + /* Realloc the directory object */ + + newtdo = (FAR struct tmpfs_directory_s *)kmm_realloc(oldtdo, objsize); + if (newtdo == NULL) + { + return -ENOMEM; + } + + /* Adjust the reference in the parent directory entry */ + + DEBUGASSERT(newtdo->tdo_dirent); + newtdo->tdo_dirent->tde_object = (FAR struct tmpfs_object_s *)newtdo; + + /* Return the new address of the reallocated directory object */ + + newtdo->tdo_alloc = objsize; + newtdo->tdo_nentries = nentries; + *tdo = newtdo; + + /* Return the index to the first, newly allocated directory entry */ + + return ret; +} +``` +

+ + +# 接口 +与一般的文件系统一样,tmpfs也提供了一些标准接口作为系统调用的最终实现,这里我们着重讲几个常用的接口。

+ +## bind +### 作用 +被调用于初始化阶段,用于创建一个tmpfs根文件系统实例。 +

+ +### 源码分析 +从源码可以看出,bind函数其实就做了两件事:tmpfs_s结构体的内存申请和初始化,涉及的接口在上文已介绍,这里不多赘述。 +``` +/**************************************************************************** + * Name: tmpfs_bind + ****************************************************************************/ + +static int tmpfs_bind(FAR struct inode *blkdriver, FAR const void *data, + FAR void **handle) +{ + FAR struct tmpfs_directory_s *tdo; + FAR struct tmpfs_s *fs; + + finfo("blkdriver: %p data: %p handle: %p\n", blkdriver, data, handle); + DEBUGASSERT(blkdriver == NULL && handle != NULL); + + /* Create an instance of the tmpfs file system */ + + fs = (FAR struct tmpfs_s *)kmm_zalloc(sizeof(struct tmpfs_s)); + if (fs == NULL) + { + return -ENOMEM; + } + + /* Create a root file system. This is like a single directory entry in + * the file system structure. + */ + + tdo = tmpfs_alloc_directory(); + if (tdo == NULL) + { + kmm_free(fs); + return -ENOMEM; + } + + fs->tfs_root.tde_object = (FAR struct tmpfs_object_s *)tdo; + fs->tfs_root.tde_name = ""; + + /* Set up the backward link (to support reallocation) */ + + tdo->tdo_dirent = &fs->tfs_root; + + /* Initialize the file system state */ + + fs->tfs_exclsem.ts_holder = TMPFS_NO_HOLDER; + fs->tfs_exclsem.ts_count = 0; + nxsem_init(&fs->tfs_exclsem.ts_sem, 0, 1); + + /* Return the new file system handle */ + + *handle = (FAR void *)fs; + return OK; +} +``` +

+ +## unbind +### 作用 +释放整个tmpfs文件系统 +

+ +### 源码分析 +unbind的核心为tmpfs_foreach函数,该函数通过层层遍历逐级释放掉tmpfs中的内容,最后tmpfs释放掉根文件系统。 +``` +/**************************************************************************** + * Name: tmpfs_unbind + ****************************************************************************/ + +static int tmpfs_unbind(FAR void *handle, FAR struct inode **blkdriver, + unsigned int flags) +{ + FAR struct tmpfs_s *fs = (FAR struct tmpfs_s *)handle; + FAR struct tmpfs_directory_s *tdo; + int ret; + + finfo("handle: %p blkdriver: %p flags: %02x\n", + handle, blkdriver, flags); + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Lock the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Traverse all directory entries (recursively), freeing all resources. */ + + tdo = (FAR struct tmpfs_directory_s *)fs->tfs_root.tde_object; + ret = tmpfs_foreach(tdo, tmpfs_free_callout, NULL); + + /* Now we can destroy the root file system and the file system itself. */ + + nxsem_destroy(&tdo->tdo_exclsem.ts_sem); + kmm_free(tdo); + + nxsem_destroy(&fs->tfs_exclsem.ts_sem); + kmm_free(fs); + return ret; +} +``` +

+ +## open +### 作用 +对应于用户态使用open系统调用,用于打开一个文件。 +

+ +### 源码分析 + +代码虽150行左右,但是内部接口我们之前已有介绍,因此此时再看并不复杂。首先是通过tmpfs_find_file函数查找文件,如果文件确实不存在,则根据用户态传进来的flag来决定是tmpfs_create_file创建一个新文件还是报错退出;如果文件存在,则根据用户态传进来的flag来决定是返回EEXIST错误码退出还是将文件清零。 +``` +/**************************************************************************** + * Name: tmpfs_open + ****************************************************************************/ + +static int tmpfs_open(FAR struct file *filep, FAR const char *relpath, + int oflags, mode_t mode) +{ + FAR struct inode *inode; + FAR struct tmpfs_s *fs; + FAR struct tmpfs_file_s *tfo; + off_t offset; + int ret; + + finfo("filep: %p\n", filep); + DEBUGASSERT(filep->f_priv == NULL && filep->f_inode != NULL); + + /* Get the mountpoint inode reference from the file structure and the + * mountpoint private data from the inode structure + */ + + inode = filep->f_inode; + fs = inode->i_private; + + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Skip over any leading directory separators (shouldn't be any) */ + + for (; *relpath == '/'; relpath++); + + /* Find the file object associated with this relative path. + * If successful, this action will lock both the parent directory and + * the file object, adding one to the reference count of both. + * In the event that -ENOENT, there will still be a reference and + * lock on the returned directory. + */ + + ret = tmpfs_find_file(fs, relpath, &tfo, NULL); + if (ret >= 0) + { + /* The file exists. We hold the lock and one reference count + * on the file object. + * + * It would be an error if we are asked to create it exclusively + */ + + if ((oflags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) + { + /* Already exists -- can't create it exclusively */ + + ret = -EEXIST; + goto errout_with_filelock; + } + + /* Check if the caller has sufficient privileges to open the file. + * REVISIT: No file protection implemented + */ + + /* If O_TRUNC is specified and the file is opened for writing, + * then truncate the file. This operation requires that the file is + * writeable, but we have already checked that. O_TRUNC without write + * access is ignored. + */ + + if ((oflags & (O_TRUNC | O_WRONLY)) == (O_TRUNC | O_WRONLY)) + { + /* Truncate the file to zero length (if it is not already + * zero length) + */ + + if (tfo->tfo_size > 0) + { + ret = tmpfs_realloc_file(&tfo, 0); + if (ret < 0) + { + goto errout_with_filelock; + } + } + } + } + + /* ENOENT would be returned by tmpfs_find_file() if the full directory + * path was found, but the file was not found in the final directory. + */ + + else if (ret == -ENOENT) + { + /* The file does not exist. Were we asked to create it? */ + + if ((oflags & O_CREAT) == 0) + { + /* No.. then we fail with -ENOENT */ + + ret = -ENOENT; + goto errout_with_fslock; + } + + /* Yes.. create the file object. There will be a reference and a lock + * on the new file object. + */ + + ret = tmpfs_create_file(fs, relpath, &tfo); + if (ret < 0) + { + goto errout_with_fslock; + } + } + + /* Some other error occurred */ + + else + { + goto errout_with_fslock; + } + + /* Save the struct tmpfs_file_s instance as the file private data */ + + filep->f_priv = tfo; + + /* In write/append mode, we need to set the file pointer to the end of the + * file. + */ + + offset = 0; + if ((oflags & (O_APPEND | O_WRONLY)) == (O_APPEND | O_WRONLY)) + { + offset = tfo->tfo_size; + } + + filep->f_pos = offset; + + /* Unlock the file file object, but retain the reference count */ + + tmpfs_unlock_file(tfo); + tmpfs_unlock(fs); + return OK; + + /* Error exits */ + +errout_with_filelock: + tmpfs_release_lockedfile(tfo); + +errout_with_fslock: + tmpfs_unlock(fs); + return ret; +} +``` +

+ + +## close +### 作用 +对应于用户态使用close系统调用,用于关闭一个文件。 +

+ +### 源码分析 +close函数的实现也非常简单,其核心其实就是对tfo_refs成员的操作,源码如下,不多赘述。 +``` +/**************************************************************************** + * Name: tmpfs_close + ****************************************************************************/ + +static int tmpfs_close(FAR struct file *filep) +{ + FAR struct tmpfs_file_s *tfo; + int ret; + + finfo("filep: %p\n", filep); + DEBUGASSERT(filep->f_priv != NULL && filep->f_inode != NULL); + + /* Recover our private data from the struct file instance */ + + tfo = filep->f_priv; + + /* Get exclusive access to the file */ + + ret = tmpfs_lock_file(tfo); + if (ret < 0) + { + return ret; + } + + /* Decrement the reference count on the file */ + + DEBUGASSERT(tfo->tfo_refs > 0); + if (tfo->tfo_refs > 0) + { + tfo->tfo_refs--; + } + + filep->f_priv = NULL; + + /* If the reference count decremented to zero and the file has been + * unlinked, then free the file allocation now. + */ + + if (tfo->tfo_refs == 0 && (tfo->tfo_flags & TFO_FLAG_UNLINKED) != 0) + { + /* Free the file object while we hold the lock? Weird but this + * should be safe because the object is unlinked and could not + * have any other references. + */ + + kmm_free(tfo); + return OK; + } + + /* Release the lock on the file */ + + tmpfs_unlock_file(tfo); + return OK; +} +``` +

+ +## read +### 作用 +对应于用户态使用read系统调用,用于从文件中读取内容到指定buf。 +

+ +### 源码分析 +read函数的源码如下,核心是调用memcpy将文件指定位置的内容复制到用户提供的buf中。 +``` +/**************************************************************************** + * Name: tmpfs_read + ****************************************************************************/ + +static ssize_t tmpfs_read(FAR struct file *filep, FAR char *buffer, + size_t buflen) +{ + FAR struct tmpfs_file_s *tfo; + ssize_t nread; + off_t startpos; + off_t endpos; + int ret; + + finfo("filep: %p buffer: %p buflen: %lu\n", + filep, buffer, (unsigned long)buflen); + DEBUGASSERT(filep->f_priv != NULL && filep->f_inode != NULL); + + /* Recover our private data from the struct file instance */ + + tfo = filep->f_priv; + + /* Get exclusive access to the file */ + + ret = tmpfs_lock_file(tfo); + if (ret < 0) + { + return ret; + } + + /* Handle attempts to read beyond the end of the file. */ + + startpos = filep->f_pos; + nread = buflen; + endpos = startpos + buflen; + + if (endpos > tfo->tfo_size) + { + endpos = tfo->tfo_size; + nread = endpos - startpos; + } + + /* Copy data from the memory object to the user buffer */ + + memcpy(buffer, &tfo->tfo_data[startpos], nread); + filep->f_pos += nread; + + /* Release the lock on the file */ + + tmpfs_unlock_file(tfo); + return nread; +} +``` +

+ +## write +### 作用 +对应于用户态使用write系统调用,用于把指定buf中的内容写入文件。 +

+ +### 源码分析 +write函数的源码如下,核心是调用memcpy将用户提供的buf中的内容复制到文件指定位置。如果文件空间不足则会先调用tmpfs_realloc_file函数进行扩容。 +``` +/**************************************************************************** + * Name: tmpfs_write + ****************************************************************************/ + +static ssize_t tmpfs_write(FAR struct file *filep, FAR const char *buffer, + size_t buflen) +{ + FAR struct tmpfs_file_s *tfo; + ssize_t nwritten; + off_t startpos; + off_t endpos; + int ret; + + finfo("filep: %p buffer: %p buflen: %lu\n", + filep, buffer, (unsigned long)buflen); + DEBUGASSERT(filep->f_priv != NULL && filep->f_inode != NULL); + + /* Recover our private data from the struct file instance */ + + tfo = filep->f_priv; + + /* Get exclusive access to the file */ + + ret = tmpfs_lock_file(tfo); + if (ret < 0) + { + return ret; + } + + /* Handle attempts to write beyond the end of the file */ + + startpos = filep->f_pos; + nwritten = buflen; + endpos = startpos + buflen; + + if (endpos > tfo->tfo_size) + { + /* Reallocate the file to handle the write past the end of the file. */ + + ret = tmpfs_realloc_file(&tfo, (size_t)endpos); + if (ret < 0) + { + goto errout_with_lock; + } + + filep->f_priv = tfo; + } + + /* Copy data from the memory object to the user buffer */ + + memcpy(&tfo->tfo_data[startpos], buffer, nwritten); + filep->f_pos += nwritten; + + /* Release the lock on the file */ + + tmpfs_unlock_file(tfo); + return nwritten; + +errout_with_lock: + tmpfs_unlock_file(tfo); + return (ssize_t)ret; +} +``` +

+ +## seek +### 作用 +对应于用户态使用lseek系统调用,用于获取或移动文件指针的位置。 +

+ +### 源码分析 +tmpfs中用f_pos成员表示当前文件指针的位置,上文中也可以看到open时f_pos根据用户需要会清理或追加到文件尾部。tmpfs的seek源码如下,实现较为简单, 这里不多赘述。 +``` +/**************************************************************************** + * Name: tmpfs_seek + ****************************************************************************/ + +static off_t tmpfs_seek(FAR struct file *filep, off_t offset, int whence) +{ + FAR struct tmpfs_file_s *tfo; + off_t position; + + finfo("filep: %p\n", filep); + DEBUGASSERT(filep->f_priv != NULL && filep->f_inode != NULL); + + /* Recover our private data from the struct file instance */ + + tfo = filep->f_priv; + + /* Map the offset according to the whence option */ + + switch (whence) + { + case SEEK_SET: /* The offset is set to offset bytes. */ + position = offset; + break; + + case SEEK_CUR: /* The offset is set to its current location plus + * offset bytes. */ + position = offset + filep->f_pos; + break; + + case SEEK_END: /* The offset is set to the size of the file plus + * offset bytes. */ + position = offset + tfo->tfo_size; + break; + + default: + return -EINVAL; + } + + /* Attempts to set the position beyond the end of file will + * work if the file is open for write access. + * + * REVISIT: This simple implementation has no per-open storage that + * would be needed to retain the open flags. + */ + +#if 0 + if (position > tfo->tfo_size && (tfo->tfo_oflags & O_WROK) == 0) + { + /* Otherwise, the position is limited to the file size */ + + position = tfo->tfo_size; + } +#endif + + /* Save the new file position */ + + filep->f_pos = position; + return position; +} +``` +

+ +## mkdir +### 作用 +对应于用户态使用mkdir系统调用,用于创建一个新目录。 +

+ +### 源码分析 +write函数的源码如下,核心是调用tmpfs_create_directory来创建目录,具体实现上文已介绍,这里不多赘述。 +``` +/**************************************************************************** + * Name: tmpfs_mkdir + ****************************************************************************/ + +static int tmpfs_mkdir(FAR struct inode *mountpt, FAR const char *relpath, + mode_t mode) +{ + FAR struct tmpfs_s *fs; + int ret; + + finfo("mountpt: %p relpath: %s mode: %04x\n", mountpt, relpath, mode); + DEBUGASSERT(mountpt != NULL && relpath != NULL); + + /* Get the file system structure from the inode reference. */ + + fs = mountpt->i_private; + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Create the directory. */ + + ret = tmpfs_create_directory(fs, relpath, NULL); + tmpfs_unlock(fs); + return ret; +} +``` +

+ +## opendir +### 作用 +对应于用户态使用opendir,用于打开一个目录。 +

+ +### 源码分析 +opendir函数的源码如下,核心是调用tmpfs_find_directory找到指定的目录,并将目录结构体返回给调用opendir的上一级,并经过处理返回给用户。 +``` +/**************************************************************************** + * Name: tmpfs_opendir + ****************************************************************************/ + +static int tmpfs_opendir(FAR struct inode *mountpt, FAR const char *relpath, + FAR struct fs_dirent_s *dir) +{ + FAR struct tmpfs_s *fs; + FAR struct tmpfs_directory_s *tdo; + int ret; + + finfo("mountpt: %p relpath: %s dir: %p\n", + mountpt, relpath, dir); + DEBUGASSERT(mountpt != NULL && relpath != NULL && dir != NULL); + + /* Get the mountpoint private data from the inode structure */ + + fs = mountpt->i_private; + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Skip over any leading directory separators (shouldn't be any) */ + + for (; *relpath == '/'; relpath++); + + /* Find the directory object associated with this relative path. + * If successful, this action will lock both the parent directory and + * the file object, adding one to the reference count of both. + * In the event that -ENOENT, there will still be a reference and + * lock on the returned directory. + */ + + ret = tmpfs_find_directory(fs, relpath, &tdo, NULL); + if (ret >= 0) + { + dir->u.tmpfs.tf_tdo = tdo; + dir->u.tmpfs.tf_index = tdo->tdo_nentries; + + tmpfs_unlock_directory(tdo); + } + + /* Release the lock on the file system and return the result */ + + tmpfs_unlock(fs); + return ret; +} +``` +

+ +## closedir +### 作用 +对应于用户态使用closedir,用于关闭通过opendir打开的目录。 +

+ +### 源码分析 +closedir函数的源码如下,核心就是将tdo_refs自减,该成员在opendir的使用由于调用了tmpfs_find_object发生了自增。 +``` +/**************************************************************************** + * Name: tmpfs_closedir + ****************************************************************************/ + +static int tmpfs_closedir(FAR struct inode *mountpt, + FAR struct fs_dirent_s *dir) +{ + FAR struct tmpfs_directory_s *tdo; + + finfo("mountpt: %p dir: %p\n", mountpt, dir); + DEBUGASSERT(mountpt != NULL && dir != NULL); + + /* Get the directory structure from the dir argument */ + + tdo = dir->u.tmpfs.tf_tdo; + DEBUGASSERT(tdo != NULL); + + /* Decrement the reference count on the directory object */ + + tmpfs_lock_directory(tdo); + tdo->tdo_refs--; + tmpfs_unlock_directory(tdo); + return OK; +} +``` +

+ +## readdir +### 作用 +对应于用户态使用readdir,用于读取opendir打开的目录。 +

+ +### 源码分析 +readdir的源码如下,其核心是使用opendir时获取的tf_index从后往前访问目标目录下的dirent,然后index自减。 +``` +/**************************************************************************** + * Name: tmpfs_readdir + ****************************************************************************/ + +static int tmpfs_readdir(FAR struct inode *mountpt, + FAR struct fs_dirent_s *dir) +{ + FAR struct tmpfs_directory_s *tdo; + unsigned int index; + int ret; + + finfo("mountpt: %p dir: %p\n", mountpt, dir); + DEBUGASSERT(mountpt != NULL && dir != NULL); + + /* Get the directory structure from the dir argument and lock it */ + + tdo = dir->u.tmpfs.tf_tdo; + DEBUGASSERT(tdo != NULL); + + tmpfs_lock_directory(tdo); + + /* Have we reached the end of the directory? */ + + index = dir->u.tmpfs.tf_index; + if (index-- == 0) + { + /* We signal the end of the directory by returning the special error: + * -ENOENT + */ + + finfo("End of directory\n"); + ret = -ENOENT; + } + else + { + FAR struct tmpfs_dirent_s *tde; + FAR struct tmpfs_object_s *to; + + /* Does this entry refer to a file or a directory object? */ + + tde = &tdo->tdo_entry[index]; + to = tde->tde_object; + DEBUGASSERT(to != NULL); + + if (to->to_type == TMPFS_DIRECTORY) + { + /* A directory */ + + dir->fd_dir.d_type = DTYPE_DIRECTORY; + } + else /* to->to_type == TMPFS_REGULAR) */ + { + /* A regular file */ + + dir->fd_dir.d_type = DTYPE_FILE; + } + + /* Copy the entry name */ + + strncpy(dir->fd_dir.d_name, tde->tde_name, NAME_MAX); + + /* Save the index for next time */ + + dir->u.tmpfs.tf_index = index; + ret = OK; + } + + tmpfs_unlock_directory(tdo); + return ret; +} +``` +

+ +## unlink +### 作用 +对应于用户态使用unlink系统调用,用于删除一个文件。 +

+ +### 源码分析 +unlink函数源码如下,首先通过tmpfs_find_file找到目标文件以及其所在的目录,然后通过tmpfs_remove_dirent函数将目标文件的dirent从所在目录中删去。随后会判断文件的tfo_refs值,如果小于等于1,则会调用kmm_free释放目标文件占用的内存。 +``` +/**************************************************************************** + * Name: tmpfs_unlink + ****************************************************************************/ + +static int tmpfs_unlink(FAR struct inode *mountpt, FAR const char *relpath) +{ + FAR struct tmpfs_s *fs; + FAR struct tmpfs_directory_s *tdo; + FAR struct tmpfs_file_s *tfo = NULL; + FAR const char *name; + int ret; + + finfo("mountpt: %p relpath: %s\n", mountpt, relpath); + DEBUGASSERT(mountpt != NULL && relpath != NULL); + + /* Get the file system structure from the inode reference. */ + + fs = mountpt->i_private; + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Find the file object and parent directory associated with this relative + * path. If successful, tmpfs_find_file will lock both the file object + * and the parent directory and take one reference count on each. + */ + + ret = tmpfs_find_file(fs, relpath, &tfo, &tdo); + if (ret < 0) + { + goto errout_with_lock; + } + + DEBUGASSERT(tfo != NULL); + + /* Get the file name from the relative path */ + + name = strrchr(relpath, '/'); + if (name != NULL) + { + /* Skip over the file '/' character */ + + name++; + } + else + { + /* The name must lie in the root directory */ + + name = relpath; + } + + /* Remove the file from parent directory */ + + ret = tmpfs_remove_dirent(tdo, name); + if (ret < 0) + { + goto errout_with_objects; + } + + /* If the reference count is not one, then just mark the file as + * unlinked + */ + + if (tfo->tfo_refs > 1) + { + /* Make the file object as unlinked */ + + tfo->tfo_flags |= TFO_FLAG_UNLINKED; + + /* Release the reference count on the file object */ + + tfo->tfo_refs--; + tmpfs_unlock_file(tfo); + } + + /* Otherwise we can free the object now */ + + else + { + nxsem_destroy(&tfo->tfo_exclsem.ts_sem); + kmm_free(tfo); + } + + /* Release the reference and lock on the parent directory */ + + tdo->tdo_refs--; + tmpfs_unlock_directory(tdo); + tmpfs_unlock(fs); + + return OK; + +errout_with_objects: + tmpfs_release_lockedfile(tfo); + + tdo->tdo_refs--; + tmpfs_unlock_directory(tdo); + +errout_with_lock: + tmpfs_unlock(fs); + return ret; +} +``` +

+ +## rmdir +### 作用 +对应于用户态使用rmdir系统调用,用于删除一个目录。 +

+ +### 源码分析 +rmdir的源码如下,类似于unlink,先通过tmpfs_find_directory查找目标目录,不同的是如果目标目录下还有文件或目标目录被其它进程打开,会直接返回错误码退出。其余过程与unlink基本一致。 +``` +/**************************************************************************** + * Name: tmpfs_rmdir + ****************************************************************************/ + +static int tmpfs_rmdir(FAR struct inode *mountpt, FAR const char *relpath) +{ + FAR struct tmpfs_s *fs; + FAR struct tmpfs_directory_s *parent; + FAR struct tmpfs_directory_s *tdo; + FAR const char *name; + int ret; + + finfo("mountpt: %p relpath: %s\n", mountpt, relpath); + DEBUGASSERT(mountpt != NULL && relpath != NULL); + + /* Get the file system structure from the inode reference. */ + + fs = mountpt->i_private; + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + return ret; + } + + /* Find the directory object and parent directory associated with this + * relative path. If successful, tmpfs_find_file will lock both the + * directory object and the parent directory and take one reference count + * on each. + */ + + ret = tmpfs_find_directory(fs, relpath, &tdo, &parent); + if (ret < 0) + { + goto errout_with_lock; + } + + /* Is the directory empty? We cannot remove directories that still + * contain references to file system objects. No can we remove the + * directory if there are outstanding references on it (other than + * our reference). + */ + + if (tdo->tdo_nentries > 0 || tdo->tdo_refs > 1) + { + ret = -EBUSY; + goto errout_with_objects; + } + + /* Get the directory name from the relative path */ + + name = strrchr(relpath, '/'); + if (name != NULL) + { + /* Skip over the fidirectoryle '/' character */ + + name++; + } + else + { + /* The name must lie in the root directory */ + + name = relpath; + } + + /* Remove the directory from parent directory */ + + ret = tmpfs_remove_dirent(parent, name); + if (ret < 0) + { + goto errout_with_objects; + } + + /* Free the directory object */ + + nxsem_destroy(&tdo->tdo_exclsem.ts_sem); + kmm_free(tdo); + + /* Release the reference and lock on the parent directory */ + + parent->tdo_refs--; + tmpfs_unlock_directory(parent); + tmpfs_unlock(fs); + + return OK; + +errout_with_objects: + tdo->tdo_refs--; + tmpfs_unlock_directory(tdo); + + parent->tdo_refs--; + tmpfs_unlock_directory(parent); + +errout_with_lock: + tmpfs_unlock(fs); + return ret; +} +``` +

+ +## rename +### 作用 +对应于用户态使用rename系统调用,用于重命名文件或目录。 +

+ +### 源码分析 +rename源码如下,tmpfs_rename传入的oldrelpath和newrelpath均已经处理为绝对路径。首先先判断newrelpath是否在根目录,若是则父目录为根文件系统,否则通过tmpfs_find_directory函数查找新文件名对应的新父目录,找到后通过tmpfs_find_dirent函数在新父目录中查找新文件名是否已经有对应的文件存在,如果是则返回错误码,否则继续执行。接下来会查找旧文件名对应的父目录以及文件本身的结构体,并将旧文件名对应的dirent从旧父目录中删去,然后将新文件名对应的dirent与文件结构体关联并添加到新的父目录,如此便rename完成。 +``` +/**************************************************************************** + * Name: tmpfs_rename + ****************************************************************************/ + +static int tmpfs_rename(FAR struct inode *mountpt, + FAR const char *oldrelpath, + FAR const char *newrelpath) +{ + FAR struct tmpfs_directory_s *oldparent; + FAR struct tmpfs_directory_s *newparent; + FAR struct tmpfs_object_s *to; + FAR struct tmpfs_s *fs; + FAR const char *oldname; + FAR char *newname; + FAR char *copy; + int ret; + + finfo("mountpt: %p oldrelpath: %s newrelpath: %s\n", + mountpt, oldrelpath, newrelpath); + DEBUGASSERT(mountpt != NULL && oldrelpath != NULL && newrelpath != NULL); + + /* Get the file system structure from the inode reference. */ + + fs = mountpt->i_private; + DEBUGASSERT(fs != NULL && fs->tfs_root.tde_object != NULL); + + /* Duplicate the newpath variable so that we can modify it */ + + copy = strdup(newrelpath); + if (copy == NULL) + { + return -ENOMEM; + } + + /* Get exclusive access to the file system */ + + ret = tmpfs_lock(fs); + if (ret < 0) + { + kmm_free(copy); + return ret; + } + + /* Separate the new path into the new file name and the path to the new + * parent directory. + */ + + newname = strrchr(copy, '/'); + if (newname == NULL) + { + /* No subdirectories... use the root directory */ + + newname = copy; + newparent = (FAR struct tmpfs_directory_s *)fs->tfs_root.tde_object; + + tmpfs_lock_directory(newparent); + newparent->tdo_refs++; + } + else + { + /* Terminate the parent directory path */ + + *newname++ = '\0'; + + /* Locate the parent directory that should contain this name. + * On success, tmpfs_find_directory() will lockthe parent + * directory and increment the reference count. + */ + + ret = tmpfs_find_directory(fs, copy, &newparent, NULL); + if (ret < 0) + { + goto errout_with_lock; + } + } + + /* Verify that no object of this name already exists in the destination + * directory. + */ + + ret = tmpfs_find_dirent(newparent, newname); + if (ret != -ENOENT) + { + /* Something with this name already exists in the directory. + * OR perhaps some fatal error occurred. + */ + + if (ret >= 0) + { + ret = -EEXIST; + } + + goto errout_with_newparent; + } + + /* Find the old object at oldpath. If successful, tmpfs_find_object() + * will lock both the object and the parent directory and will increment + * the reference count on both. + */ + + ret = tmpfs_find_object(fs, oldrelpath, &to, &oldparent); + if (ret < 0) + { + goto errout_with_newparent; + } + + /* Get the old file name from the relative path */ + + oldname = strrchr(oldrelpath, '/'); + if (oldname != NULL) + { + /* Skip over the file '/' character */ + + oldname++; + } + else + { + /* The name must lie in the root directory */ + + oldname = oldrelpath; + } + + /* Remove the entry from the parent directory */ + + ret = tmpfs_remove_dirent(oldparent, oldname); + if (ret < 0) + { + goto errout_with_oldparent; + } + + /* Add an entry to the new parent directory. */ + + ret = tmpfs_add_dirent(&newparent, to, newname); + +errout_with_oldparent: + oldparent->tdo_refs--; + tmpfs_unlock_directory(oldparent); + + tmpfs_release_lockedobject(to); + +errout_with_newparent: + newparent->tdo_refs--; + tmpfs_unlock_directory(newparent); + +errout_with_lock: + tmpfs_unlock(fs); + kmm_free(copy); + return ret; +} +``` +

+ + +# 小结 +本文结合nuttx源码介绍了tmpfs的基本数据结构以及常用的几个系统调用实现。nuttx tmpfs的内容虽然并不复杂但是功能基本完备,并且对于后续理解linux中复杂的文件系统具有一定的参考价值。
+
+ +# 文章推荐 +glibc malloc系列文章:
+    原理简析:
+     https://openeuler.org/zh/blog/wangshuo/glibc+malloc%E5%8E%9F%E7%90%86%E7%AE%80%E6%9E%90/glibc+malloc%E5%8E%9F%E7%90%86%E7%AE%80%E6%9E%90.html
+    数据结构:
+     https://openeuler.org/zh/blog/wangshuo/glibc+malloc%E6%BA%90%E7%A0%81%E7%AE%80%E6%9E%90.html
+    malloc:
+     https://openeuler.org/zh/blog/wangshuo/glibc+malloc%E6%BA%90%E7%A0%81%E7%AE%80%E6%9E%90(%E4%BA%8C).html
+    free:
+     https://openeuler.org/zh/blog/wangshuo/glibc+malloc%E6%BA%90%E7%A0%81%E7%AE%80%E6%9E%90(%E4%B8%89).html
+
+ +glibc问题定位与分析系列文章:
+    memcpy 1k字节x86_64虚拟机性能下降分析:
+     https://openeuler.org/zh/blog/wangshuo/memcpy_1k%E5%AD%97%E8%8A%82x86_64%E8%99%9A%E6%8B%9F%E6%9C%BA%E6%80%A7%E8%83%BD%E4%B8%8B%E9%99%8D%E5%88%86%E6%9E%90.html
+    调用栈问题分析:
+     https://openeuler.org/zh/blog/wangshuo/glibc%E9%97%AE%E9%A2%98%E5%AE%9A%E4%BD%8D--%E6%8E%A8%E6%A0%88%E9%97%AE%E9%A2%98%E5%88%86%E6%9E%90.html
+
+ +    glibc locale使用简析:
+     https://openeuler.org/zh/blog/wangshuo/glibc%20locale%E4%BD%BF%E7%94%A8%E7%AE%80%E6%9E%90/glibc+locale%E4%BD%BF%E7%94%A8%E7%AE%80%E6%9E%90.html
diff --git "a/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx.jpg" "b/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/nuttx.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..ff6bde1a1d1693a0c6fabb8c03a874d78582cdf0 GIT binary patch literal 72746 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⪚w7l{Zh-;vxJyP-WDlezxQxsC&^cT}>^uq7f-Yz>u7vUwc;|_sA2Ef}N`0p=4 zkE)FAxt;B-rAb%lrLNbA8c;QDqun(~mA_^$a29u1CA$_vA-&~59~ka21Pfo2-X!c! z3PnG`8pdz+U<5!iE!Xq}ZEXj);RA-ZPC{(T`b()E-ygAC&(G3?<40)aQo>|nq&4Sa z-ArDalyPP8Qgvi2Zm|joX^P=+53glEk@9%Tmo0qFmMy35QP6g(Pv>{4rey*@m*#fj zs{UpnBq;fr^r{>-VR0EEZAi_r;3jwb2@f1|B>iLr)e_*>$)HUb!kYAjO>YB;8=4hc zGd8?g6GG=T+6pH0=sUe$+FGqU87TZ~&w-c9#~%)qEvf>nPep;7qjWnYW7gLZI5rw{ zE^Th9RXbaAYLg|)fMMc(aXGvc8rOq5-EA#D1vX_2D6*yjUY$?*MtLrua@4&+$>8S0 z6jz>Hldm1Ui)k?q-0{~7iCE36*n5oj^~|gs4ELv;%dL%t_Po2~nkn=ocFd7tp8)=r z1P#xpd+lo@{M!8}ikpPu3Z6Un=z@xY1DHyLqSB`*@t(gPF$MoxfEt1{gXL6h&7sXP zku($+)=7Q*HWq1PV9+_o*f~p|SvK;F3zxgSoaLoC2e^omS?F!vor>!HToMUU1`bse z_kLq*ju^X;gLNy6vznbBFptR_yNt@jYF3Ib7 zl<`Vg2Aap*ktx)x0`HCLz;N>0fpj}!MzH}$)wysvoVu0 zXp|Cqdm5m$1d&^=pAY7$IF`5OCiXeZpiXENI}zi3l;wqR)TFt2@aB%SapI=+Fvhhc z+M!jn8!8<%{NmX(Hh|HSXH=O7C;%OkJa5_3YbE(&C@8^|%!2xAhhnjCeTYcq#(w;# zBCD?dcHR&;1BV#uPg=e&bc?mJmm ztRP^RT8vd5;56}U7FYhcu<4J&!saj?s{V9NuMFVxrtC&a-{$rX-vh_ACSHd4Z=#1F z&3f7*O)$2)fb{Of9h}P&sGkJ@J*#lC^yWA?M89|wc{9S9iWza)ade zgQ5Te^*`Nq3b<`0m9M4VcKabId&}YY1nhx^ByUm6lyQroE!78w02^Gsm^W!6`Q9GL z?OZkIQ5(0OnIKJVT6<$`#QhU=1ikBbK*)<{cOOvr2OSeyJz)foOfEetHXbZ&9@1(n zVbjA7+`m`x&ekeD^4jRX4IdS7R zBw$tB3VOIj2E}1*lzDW$`lqK>f^bvUqPl0Vp!Pd(!+Vq-1Z9tb#w_Pz6l(26+~wGY zy?%WpOM_~tx9MYR>86rtr1B@M@^9#L3&ghq_g2HIc-SxDbC*EO{EM5aV_T3MXEXen zClnB_Dbp#yX>17uBV*=An?XCOHYq|qx88{@cd0i?cj~vt;pYoMgf>%kf;rT|p!|Vd z!9-%DR_yOu_QvX66zMT5`AM2kd10`YXQ@N61TTO?!E|mDu6+tJr&+H=$HH=L=nTY%c9A>yJK@NGru# zKtd_PeIJjy8||c6jGtrtz5_2o!I5a;uXmqwD@Ok4@0blILvjWjUeeuBSo)rg=s9;& ze{Iib)zQk}(LsX1%;;ieUV38xdcebng&u)tjL)2@O#9fV!|-v_^u24on4SI@JpIp4;DLgXakCfb zM{h3%9`Rs$dj4}8<0W4}p=5as)Z%s82)u%4!IypB9H5He8}Id5-G(LeDmIJ9{`1>m zw$?lOmcGzB-`VH5QTk7k!2EMELw&1?LFoCd+nj){j3DF9z*a_@%v7X)EJNc)V6oDh zdwGRKqdKq|s`j}_V4ZK;?vp12Sf4fLc+e(@&jCZcN)D*7od9Rc^$zZ(no!66Y@m)=M#{sviTLYkBX0 zcVQLil)~$-th+=lGcIfvxtjI&l8#paaKr!hTlTAK-vK8c)_&V6+~^2ODH%7XBWFWl z4PZ(+;1-+;92jr|RwIVKOBbOy2{Gc;Xa=;;%Q~j-5Gm#qVz{yIW zleRpZ3mjP6465lw)7VkM<^?dk7jG_40gjgL1KRX%`$l8PXdl>;gn7WAd-jv{!52;e ziB&-P6??eUk%RUH(D=pq%%;GBl6Sz!f0lRK${5M@93sF`H||EDe~|_c;q{ROH_+`7 zCe2>JpmPTrRJL7^pqj2y$|xq!_U8qVClRyn{4#>z_}j&lkMBte-a% zIJ^I*{&M}!a3pU#G&r!#dMG6ba*6~fbyRHgLg|{F0D4<_ad`sJ+lT;$*UAZX99Irc zeRlk&l{e6Yp0I>DZTF?ctZro=yoj6^ApxNl0Sxwoy~|%AM+?M{i$Qtt+Wk>YqX7XO hK^qMSS_Q;||BPJbXLf2FRock_1fH&bF6*2UngBg~s-FM= literal 0 HcmV?d00001 diff --git "a/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/tmpfs.jpg" "b/web-ui/docs/zh/blog/wangshuo/nuttx+tmpfs\347\256\200\344\273\213/tmpfs.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..1fd30102b027343730b7e0508c0ee4a9772d14fd GIT binary patch literal 217419 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 V>TPE#u?YVA<*?SFIHl8G{|_ndN_hYP literal 0 HcmV?d00001 -- Gitee