diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/drivers/ao_fat.c | 19 | ||||
| -rw-r--r-- | src/drivers/ao_log_fat.c | 4 | 
2 files changed, 10 insertions, 13 deletions
diff --git a/src/drivers/ao_fat.c b/src/drivers/ao_fat.c index afd645cd..1a1b8eb0 100644 --- a/src/drivers/ao_fat.c +++ b/src/drivers/ao_fat.c @@ -1052,7 +1052,7 @@ static int8_t  _ao_fat_open(char name[11], uint8_t mode)  {  	uint16_t		entry = 0; -	struct ao_fat_dirent	dirent; +	static struct ao_fat_dirent	dirent;  	int8_t			status;  	if (_ao_fat_setup() != AO_FAT_FILESYSTEM_SUCCESS) @@ -1214,12 +1214,11 @@ ao_fat_map_current(struct ao_file *file, int len, cluster_offset_t *offsetp, clu  	offset = file->offset & SECTOR_MASK;  	sector = _ao_fat_current_sector(file);  	if (sector == 0xffffffff) { -		printf ("invalid sector at offset %d\n", file->offset);  		return NULL;  	}  	buf = _ao_fat_sector_get(sector);  	if (!buf) -		printf ("sector get failed. Sector %d. Partition end %d\n", sector, partition_end); +		return NULL;  	if (offset + len < SECTOR_SIZE)  		*this_time = len;  	else @@ -1259,7 +1258,6 @@ ao_fat_read(int8_t fd, void *dst, int len)  	while (len) {  		buf = ao_fat_map_current(file, len, &offset, &this_time);  		if (!buf) { -			printf ("map_current failed\n");  			ret = -AO_FAT_EIO;  			break;  		} @@ -1307,7 +1305,6 @@ ao_fat_write(int8_t fd, void *src, int len)  	while (len) {  		buf = ao_fat_map_current(file, len, &offset, &this_time);  		if (!buf) { -			printf ("map_current failed\n");  			ret = -AO_FAT_EIO;  			break;  		} @@ -1375,7 +1372,7 @@ int8_t  ao_fat_unlink(char name[11])  {  	uint16_t		entry = 0; -	struct ao_fat_dirent	dirent; +	static struct ao_fat_dirent	dirent;  	int8_t			ret;  	ao_mutex_get(&ao_fat_mutex); @@ -1492,7 +1489,7 @@ static void  ao_fat_list_cmd(void)  {  	uint16_t		entry = 0; -	struct ao_fat_dirent	dirent; +	static struct ao_fat_dirent	dirent;  	int			i;  	int8_t			status; @@ -1535,10 +1532,10 @@ ao_fat_parse_name(char name[11])  static void  ao_fat_dump_cmd(void)  { -	char		name[11]; +	static char	name[11];  	int8_t		fd;  	int		cnt, i; -	char		buf[32]; +	static char	buf[32];  	ao_fat_parse_name(name);  	if (name[0] == '\0') { @@ -1561,10 +1558,10 @@ ao_fat_dump_cmd(void)  static void  ao_fat_write_cmd(void)  { -	char		name[11]; +	static char	name[11];  	int8_t		fd;  	int		cnt, i; -	char		buf[64]; +	static char	buf[64];  	char		c;  	int		status; diff --git a/src/drivers/ao_log_fat.c b/src/drivers/ao_log_fat.c index af77401c..45b67012 100644 --- a/src/drivers/ao_log_fat.c +++ b/src/drivers/ao_log_fat.c @@ -27,7 +27,7 @@ static uint8_t	log_mutex;  static void  ao_log_open(void)  { -	char	name[12]; +	static char	name[12];  	int8_t	status;  	sprintf(name,"%04d%02d%02dLOG", 2000 + log_year, log_month, log_day); @@ -38,7 +38,7 @@ ao_log_open(void)  		log_open = 1;  	} else if (status == -AO_FAT_ENOENT) {  		status = ao_fat_creat(name); -		if (status == AO_FAT_SUCCESS) { +		if (status >= 0) {  			log_fd = status;  			log_open = 1;  		}  | 
