tMutex glVFS_MountList;
tVFS_Mount *gVFS_Mounts;
tVFS_Mount *gVFS_RootMount = NULL;
+Uint32 giVFS_NextMountIdent = 1;
// === CODE ===
/**
free(mnt);
return -2;
}
+
+ mnt->Identifier = giVFS_NextMountIdent++;
+ #if 0
+ // Ensure identifiers don't repeat
+ // - Only a problem if there have been 4 billion mounts
+ while( giVFS_NextMountIdent == 0 || VFS_GetMountByIdent(giVFS_NextMountIdent) )
+ giVFS_NextMountIdent ++;
+ #endif
// Set root
if(!gVFS_RootMount) gVFS_RootMount = mnt;
return 0;
}
+/**
+ * \brief Gets a mount point given the identifier
+ */
+tVFS_Mount *VFS_GetMountByIdent(Uint32 MountID)
+{
+ tVFS_Mount *mnt;
+ for(mnt = gVFS_Mounts; mnt; mnt = mnt->Next)
+ {
+ if(mnt->Identifier == MountID)
+ return mnt;
+ }
+ return NULL;
+}
+
/**
* \brief Updates the mount file buffer
*