aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/fs/iso9660
diff options
context:
space:
mode:
authorMarvin Borner2020-04-15 16:35:29 +0200
committerMarvin Borner2020-04-15 16:35:29 +0200
commitaa3d1b4689e6dadd982fe1e5ca8af69ca39c617d (patch)
tree8d4eff1df3031e601cb50cf005130a591fce35a1 /src/kernel/fs/iso9660
parent10cd931d75a02942c5ad254cef2e56b515122fa3 (diff)
Added ext2 filesystem
Diffstat (limited to 'src/kernel/fs/iso9660')
-rw-r--r--src/kernel/fs/iso9660/iso9660.c59
-rw-r--r--src/kernel/fs/iso9660/iso9660.h22
2 files changed, 0 insertions, 81 deletions
diff --git a/src/kernel/fs/iso9660/iso9660.c b/src/kernel/fs/iso9660/iso9660.c
deleted file mode 100644
index ab00c31..0000000
--- a/src/kernel/fs/iso9660/iso9660.c
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <stdint.h>
-#include <kernel/fs/atapi_pio.h>
-#include <kernel/fs/iso9660/iso9660.h>
-#include <kernel/lib/stdlib.h>
-#include <kernel/memory/alloc.h>
-
-struct iso9660_entity *ISO9660_get(char **dirs, uint8_t dirs_sz)
-{
- ATAPI_read(1, 0x10);
- uint32_t last_len = *(uint32_t *)(ATAPI_PIO_BUFFER + ISO9660_ROOT_RECORD_OFFSET +
- ISO9660_DIR_EAR_LENGTH);
- uint32_t last_lba =
- *(uint32_t *)(ATAPI_PIO_BUFFER + ISO9660_ROOT_RECORD_OFFSET + ISO9660_DIR_EAR_LBA);
-
- for (uint8_t dirs_i = 0; dirs_i < dirs_sz; dirs_i++) {
- ATAPI_read((last_len % 2048 != 0) + (last_len / 2048), last_lba);
-
- uint8_t found = 0;
- for (uint32_t i = 0; i < last_len && !found;) {
- if (!*(uint8_t *)(ATAPI_PIO_BUFFER + i + ISO9660_DIR_RECORD_LENGTH))
- break;
-
- char *filename = (char *)(ATAPI_PIO_BUFFER + i + ISO9660_DIR_FILENAME);
-
- for (uint32_t j = 0; j < ISO9660_DIR_FILENAME_LENGTH; j++) {
- if (filename[j] == ';') {
- filename[j] = 0;
- break;
- }
- }
-
- if (strcmp(dirs[dirs_i], filename) == 0) {
- found = 1;
- last_lba =
- *(uint32_t *)(ATAPI_PIO_BUFFER + i + ISO9660_DIR_EAR_LBA);
- last_len = *(uint32_t *)(ATAPI_PIO_BUFFER + i +
- ISO9660_DIR_EAR_LENGTH);
- } else {
- i += *(uint8_t *)(ATAPI_PIO_BUFFER + i + ISO9660_DIR_RECORD_LENGTH);
- }
- }
-
- if (!found) {
- return (struct iso9660_entity *)0;
- }
- }
-
- struct iso9660_entity *ret =
- (struct iso9660_entity *)kmalloc(sizeof(struct iso9660_entity));
- ret->lba = last_lba;
- ret->length = last_len;
- return ret;
-}
-
-uint8_t *ISO9660_read(struct iso9660_entity *entity)
-{
- ATAPI_read((entity->length % 2048 != 0) + (entity->length / 2048), entity->lba);
- return (uint8_t *)ATAPI_PIO_BUFFER;
-} \ No newline at end of file
diff --git a/src/kernel/fs/iso9660/iso9660.h b/src/kernel/fs/iso9660/iso9660.h
deleted file mode 100644
index 6b2e0b0..0000000
--- a/src/kernel/fs/iso9660/iso9660.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef MELVIX_ISO9660_H
-#define MELVIX_ISO9660_H
-
-#define ISO9660_ROOT_RECORD_OFFSET 156
-#define ISO9660_DIR_RECORD_LENGTH 0
-#define ISO9660_DIR_EAR_LBA 2
-#define ISO9660_DIR_EAR_LENGTH 10
-#define ISO9660_DIR_FILENAME_LENGTH 32
-#define ISO9660_DIR_FILENAME 33
-
-#include <stdint.h>
-
-struct iso9660_entity {
- uint32_t lba;
- uint32_t length;
-};
-
-struct iso9660_entity *ISO9660_get(char **dirs, uint8_t dirs_sz);
-
-uint8_t *ISO9660_read(struct iso9660_entity *entity);
-
-#endif \ No newline at end of file