struct cifspsx_private {
	struct ntvfs_module_context *ntvfs;

	/* the base directory */
	char *connectpath;

	/* a linked list of open searches */
	struct search_state *search;

	/* next available search handle */
	uint16_t next_search_handle;

	struct cifspsx_file *open_files;
};

struct cifspsx_dir {
	unsigned int count;
	char *unix_dir;
	struct cifspsx_dirfile {
		char *name;
		struct stat st;
	} *files;
};

struct cifspsx_file {
	struct cifspsx_file *next, *prev;
	int fd;
	struct ntvfs_handle *handle;
	char *name;
};

struct search_state {
	struct search_state *next, *prev;
	uint16_t handle;
	unsigned int current_index;
	struct cifspsx_dir *dir;
};