40 lines
1.3 KiB
C
Executable file
40 lines
1.3 KiB
C
Executable file
#ifndef MTOOLS_DIRENTRY_H
|
|
#define MTOOLS_DIRENTRY_H
|
|
|
|
#include "sysincludes.h"
|
|
#include "vfat.h"
|
|
|
|
typedef struct direntry_t {
|
|
struct Stream_t *Dir;
|
|
/* struct direntry_t *parent; parent level */
|
|
int entry; /* slot in parent directory (-3 if root) */
|
|
struct directory dir; /* descriptor in parent directory (random if
|
|
* root)*/
|
|
char name[MAX_VNAMELEN+1]; /* name in its parent directory, or
|
|
* NULL if root */
|
|
int beginSlot; /* begin and end slot, for delete */
|
|
int endSlot;
|
|
} direntry_t;
|
|
|
|
#include "stream.h"
|
|
|
|
int vfat_lookup(direntry_t *entry, const char *filename, int length,
|
|
int flags, char *shortname, char *longname);
|
|
|
|
struct directory *dir_read(direntry_t *entry, int *error);
|
|
|
|
void initializeDirentry(direntry_t *entry, struct Stream_t *Dir);
|
|
int isNotFound(direntry_t *entry);
|
|
direntry_t *getParent(direntry_t *entry);
|
|
void dir_write(direntry_t *entry);
|
|
void low_level_dir_write(direntry_t *entry);
|
|
int fatFreeWithDirentry(direntry_t *entry);
|
|
int labelit(char *dosname,
|
|
char *longname,
|
|
void *arg0,
|
|
direntry_t *entry);
|
|
int isSubdirOf(Stream_t *inside, Stream_t *outside);
|
|
char *getPwd(direntry_t *entry);
|
|
void fprintPwd(FILE *f, direntry_t *entry, int escape);
|
|
int write_vfat(Stream_t *, char *, char *, int, direntry_t *);
|
|
#endif
|