nvt-se
04ccf215e4
dereference gc_wait
2009-03-26 15:45:55 +00:00
nvt-se
8785bee644
avoid repetitive garbage collection if no files have been deleted since
...
the last try.
2009-03-26 12:36:10 +00:00
nvt-se
bffbb06d4a
corrected GC page isolation loop.
...
adjusted cfs_coffee_reserve signature to use cfs_offset_t instead of uint32_t.
made cfs_coffee_format also to clear *next_free.
2009-03-20 15:15:43 +00:00
nvt-se
b7bdfe8daf
bugfixes:
...
* set invalid page on all removed files which have cache entries.
* update file cache entries earlier to prevent overwrites.
2009-03-19 20:44:43 +00:00
oliverschmidt
545c0c506e
Switched cfs offset type to signed int to allow backward movements with cfs_seek.
2009-03-01 12:28:39 +00:00
nvt-se
47d70f2ae3
Switched name to CFS_CONF_OFFSET_TYPE to emphasize that it is a configurable option.
2009-03-01 12:00:00 +00:00
nvt-se
63b89a67fe
* cfs_opendir in Coffee now accepts any name.
...
* refer to the documentation of each whence parameter. Old documentation didn't consider negative movements either.
2009-02-28 13:40:25 +00:00
oliverschmidt
938f151a66
Allow to override the whence macros individually - just like the open flags.
2009-02-28 11:39:02 +00:00
nvt-se
aaa9d62304
fixed cfs_seek signature.
2009-02-27 14:52:52 +00:00
nvt-se
6615e39e27
switched unsigned int to cfs_offset_t
2009-02-27 14:50:35 +00:00
nvt-se
90e8016906
file end check must be against fdp->offset.
2009-02-27 14:35:12 +00:00
nvt-se
3191a2568c
Major API change:
...
1. Introduced a cfs_offset_t type that designates file offsets. unsigned int
was insufficient on several platforms with non-volatile storage that exceed
the capacity of unsigned int.
2. Switched cfs_seek signature to POSIX style with a "whence" parameter.
2009-02-27 14:25:37 +00:00
nvt-se
5e038640e2
fixed error in last commit: second character must terminate
2009-02-27 13:21:59 +00:00
nvt-se
a258be684f
permit the current directory name "." to be used in cfs_opendir.
2009-02-27 13:19:04 +00:00
nvt-se
2295df7246
The text suggested that only append operations were supported.
2009-02-27 10:54:08 +00:00
nvt-se
2e12c2408e
bug fix: removed possible null pointer dereference.
2009-02-25 23:59:26 +00:00
nvt-se
bc7c90bb9f
doubled the speed of uncached file openings.
2009-02-22 15:19:31 +00:00
nvt-se
957ae56b13
broke out the essence of the search algorithm to a separate function.
2009-02-19 21:35:38 +00:00
nvt-se
07c50cc200
corrected file cache status checks in previous commit.
2009-02-17 18:50:29 +00:00
nvt-se
d029dd8240
cleaned up mostly the GC code.
...
made EOF hints optional.
default build is now ~500 bytes smaller.
2009-02-17 16:56:32 +00:00
nvt-se
883d10e136
GC fix: isolated pages must always be allocated.
...
page allocation: increased utilization because the algorithm failed to
count all space before.
style: renamed and simplified some code and names.
2009-02-14 19:09:17 +00:00
nvt-se
b8f3dca765
fixed merge_log bug and space allocation error with isolated pages.
2009-02-12 11:24:22 +00:00
nvt-se
98f7f9a06a
sizeof on coffee_fd_set is no longer suitable since it has become a
...
pointer.
2009-02-09 12:02:10 +00:00
fros4943
4f7f3c97b5
* added coffee_files to the protected memory needed during cfs-based checkpointing operations
...
* renamed cfs_coffee_get_fd_set() to cfs_coffee_get_protected_memory() to highlight that not only fd_set is protected
2009-02-09 10:08:26 +00:00
nvt-se
d0a546b049
A long refactoring session yielded the following.
...
Technical changes:
* Factored out file specific information from the file descriptor
structure into a new file structure.
- Useful file metadata can be stored after the file is closed.
- File descriptors become much smaller.
- Significantly reduces the need to scan for the file end.
* Use correct types in all function signatures.
* Removed the directory cache.
Results:
* Enormous speed increase when opening cached files (10x-20x.)
* Multiple fd:s pointing to the same file have the correct semantics.
* About 100 bytes smaller ROM size.
* Slightly smaller static RAM size.
2009-02-08 17:08:13 +00:00
nvt-se
fda75c4c08
Use the right type for pages in the directory cache. This makes the
...
cache much smaller on most platforms.
2009-02-03 16:21:53 +00:00
nvt-se
4b56200586
documented the new function that helps sensornet checkpointing to protect
...
file descriptors while rolling back state.
2009-01-29 18:24:58 +00:00
fros4943
8f462b9a52
zeroed debug flag
2009-01-23 17:28:09 +00:00
fros4943
7e5047012b
added function for getting coffee's fd_set address and size
2009-01-23 16:27:49 +00:00
nvt-se
9d7e9fe297
reduced code size by removing some unnecessary statements.
2008-12-18 15:49:43 +00:00
nvt-se
f041a2eada
fixed compilation error when debug flag was set.
2008-12-12 10:23:49 +00:00
nvt-se
532ebc1e9a
reduced the code size by 200 bytes.
...
fixed an EOF hint bug that occured when files where extended.
2008-12-09 16:01:18 +00:00
nvt-se
8c608efea4
added file removal capability to xmem fs
2008-11-30 22:42:40 +00:00
nvt-se
15e8675ab9
Added file removal function to the CFS API. Only cfs-coffee and cfs-posix
...
implements this, whereas the others just return -1.
2008-11-24 10:56:55 +00:00
nvt-se
a59cbaf19f
removed redundant code.
2008-11-19 14:39:08 +00:00
nvt-se
5fe2c34038
- important bug fix regarding writing after a merge log operation: parameters
...
must be restored.
- fixed watchdog problem in reserve
2008-11-19 13:42:07 +00:00
nvt-se
c4a5010c46
break out eof update functionality since its now needed at more than one
...
place.
2008-11-18 23:10:30 +00:00
nvt-se
3c0d67c14f
simplified complex functions through abstractions.
...
switched base offset to coffee_offset_t type.
2008-11-17 14:37:23 +00:00
nvt-se
25a73a43dc
loop parameter must be signed in case batch_size is 0.
2008-11-17 10:34:57 +00:00
nvt-se
5fc9534188
reuse merge_log to also do file extensions.
2008-11-17 09:09:17 +00:00
nvt-se
2ec836f1f9
function argument should be a pointer
2008-11-13 14:46:32 +00:00
nvt-se
4e2d39546b
removed debug output.
2008-11-13 00:58:51 +00:00
nvt-se
a06ad707ee
corrected EOF hint calculation.
2008-11-13 00:58:13 +00:00
nvt-se
28ed5e2a4a
- Added passive directory cache filling.
...
- Improved variable naming.
- Cast unknown integer type parameters to format type for printf calls.
2008-11-10 23:07:53 +00:00
nvt-se
a1ea7cbe3e
generalized log buffer adjustments into functions. simplified next_log_record
...
usage.
2008-11-04 23:30:47 +00:00
nvt-se
6ca91f1271
revoked accidental renaming om dir cache entries.
2008-11-04 23:12:44 +00:00
nvt-se
e6a7089942
refactored the code and reduced the ROM size a few dozen of bytes
2008-11-04 23:09:55 +00:00
nvt-se
ae8c93d0aa
cut 500 bytes of ROM size.
2008-11-04 17:48:36 +00:00
nvt-se
1309cb474d
removed redundant code
2008-11-04 17:23:59 +00:00
nvt-se
becfecfe1b
reduced rom size by ~40 bytes
2008-11-04 16:58:52 +00:00
nvt-se
a6a17bc52c
optimized the merge log operation and fixed a fd update bug.
2008-11-04 15:49:54 +00:00
nvt-se
71d01a44a1
adjust read chunk size according to log entry size
2008-11-03 20:21:43 +00:00
nvt-se
fff8b46110
fixed a buffer bug with the micro logs
2008-11-03 16:58:18 +00:00
nvt-se
a6afeb2de6
fixed bug with dislocated end of file search
2008-11-03 15:13:13 +00:00
nvt-se
afeedb1f2b
fixed compiler warnings that were introduced with the new reserve function.
2008-10-29 15:36:21 +00:00
nvt-se
e15fbdbd40
allow duplicate reservations when flushing the log.
2008-10-28 14:47:50 +00:00
nvt-se
f05ccac0a7
documented the extra Coffee functions.
2008-10-21 13:39:56 +00:00
nvt-se
b591bb1b72
read as much as possible, even when reading log records.
2008-10-21 13:26:24 +00:00
nvt-se
7d07a7f65d
prohibit 0-sized log entries.
2008-10-16 13:17:27 +00:00
nvt-se
8bb7e37baf
- new log semantics: read the previous log entry only if the new one doesn't completely overshadow it.
...
- bug fix: prohibit file reservations with names that already exist.
2008-10-16 12:54:36 +00:00
nvt-se
77c72f4588
improved log write semantics on configured logs.
2008-10-16 09:58:57 +00:00
nvt-se
ccd492f687
sanity check on configure_log parameters
2008-10-15 13:57:30 +00:00
nvt-se
10639bc982
use abstract types for offsets and pages so that we can easily port it to
...
very large or small memories.
2008-10-03 19:27:28 +00:00
nvt-se
7f3e81f5d3
fixed file descriptor leakage and erroneous flag setting.
2008-09-21 16:07:26 +00:00
nvt-se
9e7add658b
corrected assignments.
2008-09-21 15:30:51 +00:00
nvt-se
ac6ce4cbf1
increased sequential read performance by eliminating a header reading.
2008-09-21 15:01:48 +00:00
nvt-se
4b6abd4fb7
bug fixes:
...
- close all file descriptors after formatting.
- do not increase file size when flushing the log.
- make sure that the fd is positive in FD_VALID.
2008-09-21 12:49:08 +00:00
nvt-se
195062416e
corrected parameter type
2008-08-28 14:32:53 +00:00
nvt-se
86bce2636d
fixed bug with eof hint
2008-08-28 14:31:10 +00:00
nvt-se
f122654317
the isolated flag must have higher precedence than the obsolete flag
2008-08-28 12:50:09 +00:00
nvt-se
e483f335ce
activated EOF hints and fixed a bug in the garbage collector.
2008-08-25 09:57:38 +00:00
nvt-se
8b7e743921
Enforce the number of pages in a sector to be a power of two.
2008-08-15 22:38:43 +00:00
nvt-se
c36a0a33fc
Improved the performance of the garbage collector and the algorithm for
...
finding contiguous pages.
Adjusted the file header and added a validity indicator.
Removed some redundant code and fixes minor issues in the text.
2008-08-15 12:34:56 +00:00
nvt-se
2b68f88e77
moved platform independent definitions
2008-07-11 21:39:26 +00:00
nvt-se
e8a85b3726
moved platform independent code to the right place
2008-07-11 21:35:10 +00:00
oliverschmidt
5ac52ec4d1
Added VC++ compatibility.
2008-07-06 11:08:07 +00:00
nvt-se
671f5c6393
Major performance boost to directory listings and non-cached file openings.
2008-07-04 02:54:30 +00:00
nvt-se
45c6d92377
exclude log files from directory list
2008-07-03 23:50:54 +00:00
nvt-se
3fc9c96ac2
should be comparison, not assignment
2008-07-03 23:41:28 +00:00
nvt-se
8f64a71362
Simplified file finding code.
...
Renamed fd_set to coffee_fd_set in order to avoid name clash on the native
platform.
2008-07-03 23:29:58 +00:00
nvt-se
379b09d576
Fixed bug that occured after the node had been rebooted.
2008-07-03 22:59:10 +00:00
nvt-se
65ec55e68f
call watchdog_periodic in potentially long-running loops
2008-07-02 15:18:43 +00:00
nvt-se
7e4bab3cc8
turned off debugging by default
2008-07-02 12:06:02 +00:00
nvt-se
26716fe7a1
added formatting function and made code style compliant
2008-07-02 11:11:13 +00:00
nvt-se
63a8390f51
no debugging printouts by default
2008-05-14 14:02:48 +00:00
nvt-se
92649bedce
A flash file system for sensor nodes.
2008-04-28 10:33:14 +00:00
oliverschmidt
5d910d643e
Set directory entry size if available in some dirent field. Currently for the Apple2 only.
2008-03-29 13:54:56 +00:00
adamdunkels
eced8a3ec2
Removed left-over debug printouts
2008-01-24 23:07:05 +00:00
adamdunkels
af73a358f4
Added const to constant arguments
2008-01-24 13:08:35 +00:00
adamdunkels
bf5ba0fdea
Added missing filesize field
2008-01-09 08:12:52 +00:00
adamdunkels
bac526c5f1
Fixed handling of CFS_WRITE and CFS_APPEND
2008-01-08 14:27:06 +00:00
oliverschmidt
1ecf65d6c2
Allow to implement cfs API on preprocessor level. The benefits are:
...
- Less overhead.
- Switching implementations without makefile changes.
- Compatibility with specific declaration needs. (I.e. the cc65 module loader expects the read() function to be defined as fastcall but that contradicts the cfs API declaration.)
2007-12-23 15:22:33 +00:00
oliverschmidt
f67506ba2a
Set truncate flag to make sure that overwriting a existing file doesn't result in a mix of old and new content.
2007-12-23 14:12:44 +00:00
oliverschmidt
0564cc50fd
Splitted POSIX based cfs implementation to avoid pulling in potentially large POSIX directory I/O functions without needing them at all.
2007-12-21 01:36:01 +00:00
oliverschmidt
034111b106
Made cfs implementation adhere to (new) cfs interface, streamlined implementation, reduced header dependencies and removed the 'cfs-root/' prefix. The reasoning behind the latter:
...
- Productive embedded targets don't use the posix based variant anyway.
- For testing purposes the prefix is a hurdle as the documentation doesn't mention it ;-))
- The prefix is incompatible with posix implementations lacking directory support (like the C64).
2007-11-22 11:37:34 +00:00
oliverschmidt
df1c80ee79
Made cfs implementation adhere to (new) cfs interface.
2007-11-22 11:29:13 +00:00
oliverschmidt
c69a49b2a2
Improved cfs interface.
2007-11-22 11:27:08 +00:00
oliverschmidt
6f1c485d8e
Removed compiler warnings.
2007-11-17 21:01:31 +00:00
oliverschmidt
3b057f7966
Removed used variable that caused compiler warning.
2007-11-17 20:04:44 +00:00
adamdunkels
1e1e44a3f8
Fixed compiler warnings to make code compile with gcc's -pedantic switch
2007-11-17 18:01:00 +00:00