]> git.ipfire.org Git - thirdparty/u-boot.git/blob - fs/fdos/fdos.h
Add GPL-2.0+ SPDX-License-Identifier to source files
[thirdparty/u-boot.git] / fs / fdos / fdos.h
1 /*
2 * (C) Copyright 2002
3 * Stäubli Faverges - <www.staubli.com>
4 * Pierre AUBERT p.aubert@staubli.com
5 *
6 * SPDX-License-Identifier: GPL-2.0+
7 */
8
9 #ifndef _FDOS_H_
10 #define _FDOS_H_
11
12
13 #undef FDOS_DEBUG
14
15 #ifdef FDOS_DEBUG
16 #define PRINTF(fmt,args...) printf (fmt ,##args)
17 #else
18 #define PRINTF(fmt,args...)
19 #endif
20
21 /* Data structure describing media */
22 typedef struct fs
23 {
24 unsigned long tot_sectors;
25
26 int cluster_size;
27 int num_clus;
28
29 int fat_start;
30 int fat_len;
31 int nb_fat;
32 int num_fat;
33
34 int dir_start;
35 int dir_len;
36
37 unsigned char *fat_buf;
38
39 } Fs_t;
40
41 /* Data structure describing one file system slot */
42 typedef struct slot {
43 int (*map) (struct fs *fs,
44 struct slot *file,
45 int where,
46 int *len);
47 unsigned long FileSize;
48
49 unsigned short int FirstAbsCluNr;
50 unsigned short int PreviousAbsCluNr;
51 unsigned short int PreviousRelCluNr;
52
53 Directory_t dir;
54 } Slot_t;
55
56 typedef struct file {
57 char *name;
58 int Case;
59 Fs_t *fs;
60 Slot_t subdir;
61 Slot_t file;
62 } File_t;
63
64
65 /* dev.c */
66 int dev_read (void *buffer, int where, int len);
67 int dev_open (void);
68 int check_dev (BootSector_t *boot, Fs_t *fs);
69
70 /* fat.c */
71 unsigned int fat_decode (Fs_t *fs, unsigned int num);
72 int read_fat (BootSector_t *boot, Fs_t *fs);
73
74 /* vfat.c */
75 int vfat_lookup (Slot_t *dir,
76 Fs_t *fs,
77 Directory_t *dirent,
78 int *entry,
79 int *vfat_start,
80 char *filename,
81 int flags,
82 char *outname,
83 Slot_t *file);
84
85 /* subdir.c */
86 char *basename (char *name);
87 int open_subdir (File_t *desc);
88 int open_file (Slot_t *file, Directory_t *dir);
89 int read_file (Fs_t *fs,
90 Slot_t *file,
91 char *buf,
92 int where,
93 int len);
94 void init_subdir (void);
95
96 /* fs.c */
97 int fs_init (Fs_t *fs);
98
99
100 #endif