Volume Support
[PHAT File System]

Collaboration diagram for Volume Support:

Detailed Description

Dealing with volumes.


Data Structures

struct  PHATVBR
 Volume boot record. More...
struct  PHATSECTBUF
 Sector buffer structure. More...
struct  PHATVOL
 Volume info structure. More...

Functions

int PhatVolMount (NUTDEVICE *dev, NUTFILE *blkmnt, u_char part_type)
 Mount a PHAT volume.
int PhatVolUnmount (NUTDEVICE *dev)
 Unmount a PHAT volume.
u_long PhatClusterSector (NUTFILE *nfp, u_long clust)


Function Documentation

int PhatVolMount ( NUTDEVICE dev,
NUTFILE blkmnt,
u_char  part_type 
)

Mount a PHAT volume.

This routine is called by the block device driver while mounting a partition. It reads and verifies the volume boot record, which is located in the first sector of a volume.

The routine may also initializes any caching mechanism. Thus, it must be called before any other read or write access.

Parameters:
dev Specifies the file system device.
blkmnt Handle of the block device's partition mount.
part_type Partition type:
  • PTYPE_FAT32
  • PTYPE_FAT32_LBA
  • PTYPE_FAT16
  • PTYPE_FAT16_BIG
  • PTYPE_FAT16_LBA
  • PTYPE_FAT12
Returns:
0 on success or -1 in case of an error.

Definition at line 179 of file phatvol.c.

References PHATVBR::bios_clustsz, PHATVBR::bios_media, PHATVBR::bios_ntabs, PHATVBR::bios_root_clust, PHATVBR::bios_rootsz, PHATVBR::bios_rsvd_sects, PHATVBR::bios_sectsz, PHATVBR::bios_tabsz, PHATVBR::bios_tabsz_big, PHATVBR::bios_volsz, PHATVBR::bios_volsz_big, PHATVBR::boot_drive, _NUTDEVICE::dev_dcb, _NUTDEVICE::dev_icb, _NUTDEVICE::dev_ioctl, ENODEV, errno, free, malloc, memcpy(), memset(), _NUTFILE::nf_dev, NUTBLKDEV_INFO, NutEventPost(), BLKPAR_INFO::par_blkbp, BLKPAR_INFO::par_blksz, BLKPAR_INFO::par_nfp, PhatDbgVbr(), PhatSectorRead(), PhatVolUnmount(), printf, PTYPE_FAT12, PTYPE_FAT16, PTYPE_FAT16_BIG, PTYPE_FAT16_LBA, PTYPE_FAT32, PTYPE_FAT32_LBA, PHATSECTBUF::sect_data, PHATSECTBUF::sect_num, stdout, PHATVOL::vol_buf, PHATVOL::vol_clustsz, PHATVOL::vol_data_sect, PHATVOL::vol_fsmutex, PHATVOL::vol_iomutex, PHATVOL::vol_last_clust, PHATVOL::vol_numfree, PHATVOL::vol_root_clust, PHATVOL::vol_root_sect, PHATVOL::vol_rootsz, PHATVOL::vol_sectsz, PHATVOL::vol_tab_sect, PHATVOL::vol_tabsz, and PHATVOL::vol_type.

int PhatVolUnmount ( NUTDEVICE dev  ) 

Unmount a PHAT volume.

This routine is called by the block device driver while unmounting a partition.

Parameters:
dev Specifies the file system device.
Returns:
0 on success or -1 in case of an error.

Definition at line 365 of file phatvol.c.

References _NUTDEVICE::dev_dcb, free, PHATSECTBUF::sect_data, and PHATVOL::vol_buf.

u_long PhatClusterSector ( NUTFILE nfp,
u_long  clust 
)

Definition at line 390 of file phatvol.c.

References _NUTDEVICE::dev_dcb, IsFixedRootDir(), _NUTFILE::nf_dev, PHATVOL::vol_clustsz, PHATVOL::vol_data_sect, and PHATVOL::vol_root_sect.


© 2000-2007 by egnite Software GmbH - visit http://www.ethernut.de/