fat12: beginnings of open/close on partition

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
2019-06-09 20:32:53 +08:00
parent e6701a4b50
commit c4c5f706b0
9 changed files with 237 additions and 34 deletions

20
include/fat12-internals.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef FAT12_INTERNALS_H__
#define FAT12_INTERNALS_H__
struct fat_directory_entry {
uint8_t file_name[8];
uint8_t extension[3];
uint8_t file_attributes;
uint8_t reserved1;
uint8_t ctime_ms;
uint8_t ctime_hms[2];
uint8_t ctime_date[2];
uint8_t atime_date[2];
uint8_t ea_index[2];
uint8_t mtime_hms[2];
uint8_t mtime_date[2];
uint8_t first_cluster[2];
uint8_t file_size[4];
};
#endif /* FAT12_INTERNALS_H__ */

View File

@ -3,6 +3,13 @@
#include <stdint.h>
struct fat12_partition;
struct fat12_partition * fat12_alloc(void);
int fat12_open(struct fat12_partition *part, const char *filename);
int fat12_close(struct fat12_partition *part);
void fat12_free(struct fat12_partition **part);
void fat12_write_u8(void *ptr, uint8_t val);
uint8_t fat12_read_u8(void *ptr);
void fat12_write_u16(void *ptr, uint16_t val);
@ -13,20 +20,4 @@ uint32_t fat12_get_cluster(void *fat, uint32_t cluster);
int fat12_defrag(int fd);
int fat12_mkfs(int fd, uint32_t bytes);
struct fat_directory_entry {
uint8_t file_name[8];
uint8_t extension[3];
uint8_t file_attributes;
uint8_t reserved1;
uint8_t ctime_ms;
uint8_t ctime_hms[2];
uint8_t ctime_date[2];
uint8_t atime_date[2];
uint8_t ea_index[2];
uint8_t mtime_hms[2];
uint8_t mtime_date[2];
uint8_t first_cluster[2];
uint8_t file_size[4];
};
#endif /* PANG_O_LIN_FAT12_H__ */

View File

@ -1,14 +1,20 @@
#ifndef PANG_O_LIN_IO_H__
#define PANG_O_LIN_IO_H__
#include <sys/types.h>
#ifdef unix
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#endif
ssize_t pang_write(int fd, const void *buf, size_t count);
ssize_t pang_read(int fd, void *buf, size_t count);
off_t pang_seek(int fd, off_t offset, int whence);
int pang_open(const char *pathname, int flags);
int pang_close(int fd);
#endif /* PANG_O_LIN_IO_H__ */