|
|
1.1 root 1: /*
2: * UAE - The Un*x Amiga Emulator
3: *
4: * Unix file system handler for AmigaDOS
5: *
6: * Copyright 1997 Bernd Schmidt
7: */
8:
9: struct hardfiledata {
1.1.1.6 ! root 10: uae_u64 size;
! 11: uae_u64 offset;
1.1 root 12: int nrcyls;
13: int secspertrack;
14: int surfaces;
15: int reservedblocks;
1.1.1.3 root 16: int blocksize;
1.1 root 17: FILE *fd;
1.1.1.6 ! root 18:
! 19: /* geometry from possible RDSK block */
! 20: unsigned int cylinders;
! 21: unsigned int sectors;
! 22: unsigned int heads;
1.1 root 23: };
24:
1.1.1.6 ! root 25: #define FILESYS_VIRTUAL 0
! 26: #define FILESYS_HARDFILE 1
! 27: #define FILESYS_HARDFILE_RDB 2
! 28: #define FILESYS_HARDDRIVE 3
! 29:
! 30: #define FILESYS_MAX_BLOCKSIZE 2048
! 31:
1.1.1.2 root 32: struct uaedev_mount_info;
33:
1.1 root 34: extern struct hardfiledata *get_hardfile_data (int nr);
1.1.1.5 root 35:
36: extern int nr_units (struct uaedev_mount_info *mountinfo);
1.1.1.6 ! root 37: extern int hardfile_fs_type (struct uaedev_mount_info *mountinfo, int unit_no);
1.1.1.5 root 38:
39: extern char *set_filesys_unit (struct uaedev_mount_info *mountinfo, int,
40: const char *devname, const char *volname, const char *rootdir,
41: int readonly, int secs, int surfaces, int reserved,
42: int blocksize, int bootpri);
43: extern char *add_filesys_unit (struct uaedev_mount_info *mountinfo,
44: const char *devname, const char *volname, const char *rootdir,
45: int readonly, int secs, int surfaces, int reserved,
46: int blocksize, int bootpri);
47: extern char *get_filesys_unit (struct uaedev_mount_info *mountinfo, int nr,
48: char **devname, char **volname, char **rootdir,
49: int *readonly, int *secspertrack, int *surfaces, int *reserved,
50: int *cylinders, int *size, int *blocksize, int *bootpri);
51: extern int kill_filesys_unit (struct uaedev_mount_info *mountinfo, int);
52: extern int move_filesys_unit (struct uaedev_mount_info *mountinfo, int nr, int to);
53: extern int sprintf_filesys_unit (struct uaedev_mount_info *mountinfo, char *buffer, int num);
54: extern void write_filesys_config (struct uaedev_mount_info *mountinfo, const char *unexpanded,
55: const char *defaultpath, FILE *f);
56:
57: extern struct uaedev_mount_info *alloc_mountinfo (void);
58: extern struct uaedev_mount_info *dup_mountinfo (struct uaedev_mount_info *);
59: extern void free_mountinfo (struct uaedev_mount_info *);
60:
61: extern void filesys_reset (void);
62: extern void filesys_prepare_reset (void);
63: extern void filesys_start_threads (void);
64:
65: extern void filesys_install (void);
66: extern void filesys_install_code (void);
67: extern void filesys_store_devinfo (uae_u8 *);
1.1.1.6 ! root 68:
! 69: extern int hdf_read (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
! 70: extern int hdf_write (struct hardfiledata *hfd, void *buffer, uae_u64 offset, int len);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.