Add virtText.txt
This commit is contained in:
2023-11-13 13:26:08 +01:00
parent cd7a98d630
commit d36ce9ae1e

View File

@@ -13,7 +13,8 @@ extern struct llfs_data_file* llfs_root;
static tftp_custom_file_t virt_file[] = static tftp_custom_file_t virt_file[] =
{ {
{.name = "index.txt",.data = NULL, .len = 0, .ofset = 0}, {.name = "index.txt",.data = NULL, .len = 0, .ofset = 0},
{.name = "virtImage.raw",.data = NULL, .len = 0, .ofset = 0} {.name = "virtImage.raw",.data = NULL, .len = 0, .ofset = 0},
{.name = "virtText.txt",.data = NULL, .len = 0, .ofset = 0}
}; };
int str_cat_str(char* dest, size_t dest_size, const char* src) { int str_cat_str(char* dest, size_t dest_size, const char* src) {
@@ -103,6 +104,8 @@ void* tftp_open(const char* fname, const char* mode, uint8_t write) {
return &virt_file[0]; return &virt_file[0];
} else if (strcmp(fname, virt_file[1].name) == 0 && write != TFTP_READ) { } else if (strcmp(fname, virt_file[1].name) == 0 && write != TFTP_READ) {
return &virt_file[1]; return &virt_file[1];
} else if (strcmp(fname, virt_file[2].name) == 0 && write != TFTP_READ) {
return &virt_file[2];
} }
// TODO: waiting on Lorentz to finish creating f* functions for LLFS // TODO: waiting on Lorentz to finish creating f* functions for LLFS
@@ -120,7 +123,9 @@ void tftp_close(void* handle) {
LOG_CRIT(TAG, "handle is null"); LOG_CRIT(TAG, "handle is null");
return; return;
} }
if (handle == &virt_file[0] || handle == &virt_file[1]) {
if (handle == &virt_file[0] || handle == &virt_file[1] || handle == &virt_file[2]) {
((tftp_custom_file_t*)handle)->ofset = 0;
return; return;
} }
@@ -153,6 +158,9 @@ int tftp_read(void* handle, void* buf, int bytes) {
} else if ((tftp_custom_file_t*)file == &virt_file[1]) { } else if ((tftp_custom_file_t*)file == &virt_file[1]) {
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;
} else if ((tftp_custom_file_t*)file == &virt_file[2]) {
LOG_CRIT(TAG, "Exception: Trying to read a write only file");
return -1;
} }
// TODO: waiting on Lorentz to finish creating f* functions for LLFS // TODO: waiting on Lorentz to finish creating f* functions for LLFS
ret = fread(buf, sizeof(uint8_t), bytes, file); ret = fread(buf, sizeof(uint8_t), bytes, file);
@@ -206,6 +214,9 @@ void init_index(void)
str_cat(virt_file[0].data, len, '\n'); str_cat(virt_file[0].data, len, '\n');
root = root->next; root = root->next;
} }
virt_file[2].data = malloc(100);
virt_file[2].len = 100;
} }
struct tftp_context tftpContext_s = { struct tftp_context tftpContext_s = {
@@ -239,4 +250,7 @@ void tftp_server_deinit(void) {
virt_file[0].data = NULL; virt_file[0].data = NULL;
virt_file[0].len = 0; virt_file[0].len = 0;
virt_file[0].ofset = 0; virt_file[0].ofset = 0;
free(virt_file[2].data);
virt_file[2].data = NULL;
virt_file[2].len = 0;
} }