Skip to content

Commit e9e9c89

Browse files
committed
added filesystem stub, corrected syntax of IDE, solved Pi
1 parent b56231b commit e9e9c89

File tree

4 files changed

+40
-3
lines changed

4 files changed

+40
-3
lines changed

kernel/filesystem.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "filesystem.h"

kernel/filesystem.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#ifndef PROTECC_ATTACC_INCLUDECC
2+
#define PROTECC_ATTACC_INCLUDECC
3+
4+
int file_stat(char *filename, stat_t *stat);
5+
// Renvoie dans stat les méta-informations liées au fichier passé en argument.
6+
// La structure stat_t doit contenir au minimum le champ size qui est la taille du fichier.
7+
// Retourne 0 en cas de succès et -1 en cas d'échec.
8+
9+
bool file_exists(char *filename);
10+
// Renvoie true si le fichier passé en argument existe.
11+
12+
int file_open(char *filename);
13+
// Ouvre un fichier et renvoie un descripteur de fichier pour y accéder ou -1 en cas d'échec.
14+
15+
int file_read(int fd, void *buf, uint count);
16+
// Essaie de lire count bytes depuis le fichier référencé par
17+
// fd et les place dans le buffer buf.
18+
// Renvoie le nombre de bytes lus, ou 0 en cas de fin de fichier, ou -1 en cas d’erreur.
19+
20+
int file_seek(int fd, uint offset);
21+
// Positionne la position pointeur du fichier ouvert (référencé par le descripteur
22+
// fd) à offset par rapport au début du fichier.
23+
// Renvoie la nouvelle position ou -1 en cas d’échec.
24+
25+
void file_close(int fd);
26+
// Ferme le fichier référencé par le descripteur fd
27+
28+
file_iterator_t file_iterator();
29+
// Créé un itérateur permettant d'itérer sur les fichiers du système de fichiers.
30+
31+
bool file_has_next(file_iterator_t *it);
32+
// Renvoie true si il y a encore un fichier sur lequel itérer.
33+
34+
void file_next(char *filename, file_iterator_t *it);
35+
// Copie dans filename le nom du prochain fichier pointé par l’itérateur
36+
37+
#endif

kernel/ide.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99

1010
#include "ide.h"
11-
#include "io.h"
1211

1312
#define CMD_PORT 0x1f7
1413
#define DATA_PORT 0x1f0
@@ -69,4 +68,3 @@ void write_sector(int sector, void *src) {
6968
data++;
7069
}
7170
}
72-

kernel/ide.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#ifndef _IDE_H_
22
#define _IDE_H_
33

4-
#include "types.h"
4+
#include "../common/types.h"
5+
#include "pio.h"
56

67
#define SECTOR_SIZE 512
78

0 commit comments

Comments
 (0)