Move over to the new fread that Lorentz is implementing
This commit is contained in:
2023-11-11 00:38:39 +01:00
parent 81da833c5b
commit e1118908d9
2 changed files with 19 additions and 7 deletions

View File

@@ -10,8 +10,9 @@
#include <tftp_server.h> #include <tftp_server.h>
#include "log.h" #include "log.h"
#include "llfs.h" #include "llfs.h"
#include "stdlib.h" #include <stdlib.h>
#include "string.h" #include <stdio.h>
#include <string.h>
#define TFTP_READ 0 #define TFTP_READ 0

View File

@@ -52,7 +52,6 @@ int str_cat(char* dest, int dest_size, char c)
*/ */
void* tftp_open(const char* fname, const char* mode, u8_t write) { void* tftp_open(const char* fname, const char* mode, u8_t write) {
LOG_INFO(TAG, "Opening %s", fname); LOG_INFO(TAG, "Opening %s", fname);
llfs_file_t* file;
if (strcmp(fname, virt_file[0].name) == 0 && write == TFTP_READ) { if (strcmp(fname, virt_file[0].name) == 0 && write == TFTP_READ) {
return &virt_file[0]; return &virt_file[0];
@@ -60,7 +59,8 @@ void* tftp_open(const char* fname, const char* mode, u8_t write) {
return &virt_file[1]; return &virt_file[1];
} }
return llfs_file_open(fname); // TODO: waiting on Lorentz to finish creating f* functions for LLFS
return fopen(fname, write ? "wb" : "rb");
} }
/** /**
@@ -70,6 +70,16 @@ void* tftp_open(const char* fname, const char* mode, u8_t write) {
*/ */
void tftp_close(void* handle) { void tftp_close(void* handle) {
LOG_INFO(TAG, "closing file"); LOG_INFO(TAG, "closing file");
if (handle == NULL) {
LOG_CRIT(TAG, "handle is null");
return;
}
if (handle == &virt_file[0] || handle == &virt_file[1]) {
return;
}
// TODO: waiting on Lorentz to finish creating f* functions for LLFS
fclose((FILE*)handle);
} }
/** /**
@@ -85,10 +95,10 @@ void tftp_close(void* handle) {
int tftp_read(void* handle, void* buf, int bytes) { int tftp_read(void* handle, void* buf, int bytes) {
LOG_INFO(TAG, "reading file"); LOG_INFO(TAG, "reading file");
if (handle == NULL) { if (handle == NULL) {
LOG_ERROR(TAG, "handle is null"); LOG_CRIT(TAG, "handle is null");
return -1; return -1;
} }
llfs_file_t* file = (llfs_file_t*)handle; FILE* file = (FILE*)handle;
LOG_INFO(TAG, "reading file: %s", file->name); LOG_INFO(TAG, "reading file: %s", file->name);
if (file == &virt_file[0]) { if (file == &virt_file[0]) {
@@ -106,7 +116,8 @@ int tftp_read(void* handle, void* buf, int bytes) {
LOG_CRIT(TAG, "Exception: Trying to read a write only file"); LOG_CRIT(TAG, "Exception: Trying to read a write only file");
return -1; return -1;
} }
memcpy(buf, file->data, bytes); // TODO: waiting on Lorentz to finish creating f* functions for LLFS
fread(buf, sizeof(uint8_t), bytes, file);
return 0; return 0;
} }