/*
* Get or Set or 'Get and Set' the cluster'th entry in the FAT.
*
* function - whether to get or set a fat entry
* pmp - address of the msdosfsmount structure for the filesystem
* whose FAT is to be manipulated.
* cn - which cluster is of interest
* oldcontents - address of a word that is to receive the contents of the
* cluster'th entry if this is a get function
* newcontents - the new value to be written into the cluster'th element of
* the FAT if this is a set function.
*
* This function can also be used to free a cluster by setting the FAT entry
* for a cluster to 0.
*
* All copies of the FAT are updated if this is a set function. NOTE: If
* fatentry() marks a cluster as free it does not update the inusemap in
* the msdosfsmount structure. This is left to the caller.
*/