Commit Graph

178 Commits

Author SHA1 Message Date
Aleksandr Vyhovanec
8b97ea95c7 Merged in AVyhovanec/nuttx (pull request #564)
FAT. Effectively handles the situation when a new file position is within the current sector.

* Find begin of the next token

* EOL

* revert

* Accelerates the work of the FS with a multitude of operations to write small pieces of data within the current sector.

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-01-05 20:52:53 +00:00
Gregory Nutt
49775ea801 fs/fat: Fix a bug in the FAT ftruncate logic. 2018-01-05 11:56:39 -06:00
Gregory Nutt
376e30dab4 net/route: Fix a couple of compile-related issues that have crept in sense the last time the file-based routing table was used. 2018-01-05 08:57:22 -06:00
Gregory Nutt
fb73006a4b These changes implemnt FAT file shrinkage as needed to fully support ftruncate().
Squashed commit of the following:

    fs/fat:  Resolves issues with truncating the cluster chain when shrinking files via ftruncate().
    fs/fat:  First cut at implementation file shrinkage logic needed to support ftruncate().  Certainly shrinks the file size but it does not appear to correctly disconnect the cluster chains.
    fs/fat:  Restructure some functions in files to better support forthcoming file shrinkage logic.  Put framework for file shrinkage in place.  That logic is incomplete on initial commit.
2018-01-04 19:08:43 -06:00
Gregory Nutt
5d1a91fd8e configs/lpcxpresso-lpc5428/fb: Should disable pixel depths that are not being used. 2018-01-04 16:40:31 -06:00
Gregory Nutt
39fe6a0dff Squashed commit of the following:
fs/nxffs:  Add partial implementation of the truncate method:  It extend files, but cannot yet shrink them.
    fs/smartfs:  Add partial implementation of the truncate method:  It extend files, but cannot yet shrink them.
    fs/fat:  Add partial implementation of the truncate method:  It extend files, but no yet shrink them.
    fs/nfs:  Add support for the truncate method to the NFS file system.
2018-01-04 10:54:54 -06:00
Gregory Nutt
e4652bd3dc Squashed commit of the following:
fs: Add truncate() support for userfs
    fs/unionfs:  Add truncate() support to the unionfs
    fs/tmpfs:  Add ftruncate() support to tmpfs
    syscall/: Add system call support for ftruncate()
    net/route:  Adding ftruncate() support eliminates an issue in file-based routing table management.
    fs:  Add basic framework to support truncate() and ftruncate().  The infrastructure is complete.  Now, however, the actual implementation of ftruncate() will have to be done for each file system.
2018-01-03 16:03:56 -06:00
Gregory Nutt
91f48701ae arch/arm/src/sam34: Fix some compile warnings that I introduced with a possibly overzealous recent change. 2017-12-17 17:43:20 -06:00
Gregory Nutt
8057af6724 fs/fat: Still trying to eliminate warnings in all configurations. 2017-12-17 17:10:37 -06:00
Gregory Nutt
cf8a7bebf6 Eliminate another warning. 2017-12-17 16:47:49 -06:00
Gregory Nutt
f96478bb99 fs/fat: Don't warn about the CONFIG_FAT_MAXFNAME being too large if long file name support is not implemented. 2017-12-17 16:41:26 -06:00
Gregory Nutt
9638f3f065 fs/fat: CONFIG_FAT_MAXFNAME may not exceed NAME_MAX (CONFIG_NAME_MAX) 2017-12-15 06:19:14 -06:00
Gregory Nutt
9b31a81b00 Squashed commit of the following:
fs/fat:  Remove mkfatfs from the OS.  This is a user-space application and belongs in apps, not in the OS.
2017-10-20 12:36:25 -06:00
Jussi Kivilinna
d02c0c05ae FS FAT: Fix hard-fault when listing contents of FAT root 2017-10-13 07:54:40 -06:00
Gregory Nutt
9568600ab1 Squashed commit of the following:
This commit backs out most of commit b4747286b1.  That change was added because sem_wait() would sometimes cause cancellation points inappropriated.  But with these recent changes, nxsem_wait() is used instead and it is not a cancellation point.

    In the OS, all calls to sem_wait() changed to nxsem_wait().  nxsem_wait() does not return errors via errno so each place where nxsem_wait() is now called must not examine the errno variable.

    In all OS functions (not libraries), change sem_wait() to nxsem_wait().  This will prevent the OS from creating bogus cancellation points and from modifying the per-task errno variable.

    sched/semaphore:  Add the function nxsem_wait().  This is a new internal OS interface.  It is functionally equivalent to sem_wait() except that (1) it is not a cancellation point, and (2) it does not set the per-thread errno value on return.
2017-10-04 15:22:27 -06:00
Gregory Nutt
42a0796615 Squashed commit of the following:
sched/semaphore:  Add nxsem_post() which is identical to sem_post() except that it never modifies the errno variable.  Changed all references to sem_post in the OS to nxsem_post().

    sched/semaphore:  Add nxsem_destroy() which is identical to sem_destroy() except that it never modifies the errno variable.  Changed all references to sem_destroy() in the OS to nxsem_destroy().

    libc/semaphore and sched/semaphore:  Add nxsem_getprotocol() and nxsem_setprotocola which are identical to sem_getprotocol() and set_setprotocol() except that they never modifies the errno variable.  Changed all references to sem_setprotocol in the OS to nxsem_setprotocol().  sem_getprotocol() was not used in the OS
2017-10-03 15:35:24 -06:00
Gregory Nutt
83cdb0c552 Squashed commit of the following:
libc/semaphore:  Add nxsem_getvalue() which is identical to sem_getvalue() except that it never modifies the errno variable.  Changed all references to sem_getvalue in the OS to nxsem_getvalue().

    sched/semaphore:  Rename all internal private functions from sem_xyz to nxsem_xyz.  The sem_ prefix is (will be) reserved only for the application semaphore interfaces.

    libc/semaphore:  Add nxsem_init() which is identical to sem_init() except that it never modifies the errno variable.  Changed all references to sem_init in the OS to nxsem_init().

    sched/semaphore:  Rename sem_tickwait() to nxsem_tickwait() so that it is clear this is an internal OS function.

    sched/semaphoate:  Rename sem_reset() to nxsem_reset() so that it is clear this is an internal OS function.
2017-10-03 12:52:31 -06:00
Masayuki Ishikawa
99bdab3ac3 FAT: Fix 'Missing unlock' in fs_fat32.c
Jira: PDFW15IS-265
Coverity-ID: 10590 10589
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-05-22 14:44:24 +09:00
Gregory Nutt
40f8e8b41f Fix some backward DEBUGASSERT tests in ROMFS and FAT. 2017-02-13 14:06:39 -06:00
Gregory Nutt
34f1b333b1 FAT: Fix some errors that I introduced in my review of Alan's patch. My screw-up, not Alan's. Sorry. 2017-02-13 12:43:35 -06:00
Alan Carvalho de Assis
a73651c8ca fstat: Add fstat() support to FAT. 2017-02-13 12:21:06 -06:00
Gregory Nutt
7d91fabf01 fstat: Add skeleton implmentations of fstat() in all file systems. 2017-02-12 13:42:27 -06:00
Gregory Nutt
bd7d3a92f5 Add logic to VFS rename: If target of rename exists and is a directory, then the source file should be moved 'under' the target directory. POSIX also requires that if the target is a file, then that old file must be deleted. 2017-02-11 11:18:30 -06:00
Gregory Nutt
45fd98da88 Add macros support that will eventually allow dynamic allocation of strings need to support soft links. 2017-02-05 14:25:45 -06:00
Gregory Nutt
8f2c7198ed inode_find: Now takes struct inode_desc_s type as input. This was necessary before that structure includes some data storage. It was used within inode_find(), but that means that the life of the data was the life of inode_find(). That data must persist longer. It is now provided by the caller so that the life of the data persists for the entire life of the caller. 2017-02-05 09:51:42 -06:00
Gregory Nutt
0c9935f8ac FS: Remove inode_find_nofollow. Instead provide a bool nofollow argument to inode_find. 2017-02-04 11:46:54 -06:00
Gregory Nutt
610afe9cd9 FAT performance improvement. In large files, seeking to a position fromt he beginning of the file can be very time consuming. ftell does lssek(fd, 0, SET_CURR). In that case, that is wasted time since we are going to seek to the same position. This fix short-circutes fat_seek() in all cases where we attempt to seek to curren position. Suggested by Nate Weibley 2016-08-03 13:32:52 -06:00
Gregory Nutt
ad2f7b0119 fs/: Change some *err() message to *info() messages if what was a *dbg() message does not indicate and error condition. 2016-06-11 17:14:02 -06:00
Gregory Nutt
a1469a3e95 Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err() 2016-06-11 15:50:49 -06:00
Gregory Nutt
1cdc746726 Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES 2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe Replace all occurrences of vdbg with vinfo 2016-06-11 11:59:51 -06:00
Gregory Nutt
9008308b64 Remove some block comments before empty code sections 2016-04-11 18:16:04 -06:00
Gregory Nutt
b6f5ffa9a8 CDC/AC: too man right parentheses if IFLOW_CONTROL enabled 2016-02-24 11:54:02 -06:00
Gregory Nutt
0682671ffe Update Kconfig help comments 2016-02-23 06:38:51 -06:00
Gregory Nutt
c620b321b1 FAT: Add a new configuration option to decouple the logic that retries the direct transfer from the logic that enables DMA memory allocators. 2016-02-22 18:25:58 -06:00
Gregory Nutt
7c44444883 FAT: Add an option to force all transfers to be performed indirectly through the FAT file system's internal sector buffers 2016-02-22 16:26:04 -06:00
Gregory Nutt
0fb035f76b Standardize some naming in code section comments 2016-02-21 18:09:04 -06:00
Gregory Nutt
658272bbbf FAT: Fix some duplicate definition warnings when big-endian is enabled 2015-12-26 14:49:40 -06:00
Gregory Nutt
11afff74dc Kconfig change for improved usability 2015-11-29 12:13:24 -06:00
Gregory Nutt
c70987e551 nuttx/fs: Fix some spacing and alignment issues 2015-10-11 11:39:29 -06:00
Gregory Nutt
0b12dbf95d Fix some spacing problems 2015-10-04 15:04:00 -06:00
Gregory Nutt
cb9e27c3b0 Standardize naming used for public data and function groupings 2015-10-02 16:30:35 -06:00
Gregory Nutt
342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt
3d6161a7aa Update some comments 2015-04-13 07:39:56 -06:00
Gregory Nutt
1a3c6f7ec9 FAT: Fix misthink when CONFIG_ENDIAN_BIG=y. From Lwazi Dube 2015-04-12 14:24:05 -06:00
Gregory Nutt
ddb8073ad5 Update TODO list and some comments 2015-03-16 08:49:39 -06:00
Gregory Nutt
f60f22258a Trivial update to FAT, comments, README 2015-03-15 15:06:17 -06:00
Gregory Nutt
b637a0cc3e Costmetic changes name while debugging a filename issue 2015-03-15 12:22:12 -06:00
Gregory Nutt
7adc1b96c9 FAT cosmetic changes 2015-03-15 08:41:42 -06:00
Gregory Nutt
9f7f258728 Add support for umount2(target, MNT_FORCE) in the FAT file system. 2015-03-15 07:45:19 -06:00