Why not to declare these structs in fs.c and just place forward declarations and typedefs in header? This will do their fields really private.