*
* S54K -- System 5 4K file system switch entry
*

%FILESYS

Prefix:		s54k			# prefix to functions
FSFlags:	0			# file sys flags in fsinfo
NotifyFlags:	NO_SEEK			# fs_notify flags in fsinfo
Funcs:		access allocmap closei fcntl freemap getdents getinode init
Funcs:		ioctl iput iread itrunc iupdat mount namei notify openi
Funcs:		readi readmap setattr statf statfs umount update writei
Multiproc:	access fcntl freemap getinode iput iread itrunc iupdat
Multiproc:	namei notify openi readi setattr statf update writei

%PARAM

*
* S54K parameters
*
N4KBUF		256			# number of 4K buffers
N4KINODE	NINODE			# number of 4K dependent inodes
N4KHBUF		1024			# must be power of 2
S54KHMASK	(N4KHBUF-1)

%CONFIG					# code added to conf.c for this filesys

#ifdef S54K_0_FS

struct	buf	b4kfreelist;		/* head of the free list of buffers */
struct	buf	b4kdirtylist;		/* head of the list of dirty buffers */
struct	buf	bufhdrs4k[N4KBUF];	/* buffer headers */
char		*buffers4k;		/* pointer to buffer data */
int		s54knbuf = N4KBUF;
int		n4kinode = N4KINODE;
struct	s5inode	s54kinode[N4KINODE+1];	/* s54kinode table */
int		n4khbuf = N4KHBUF;	/* number of hash buffers */
struct buf	s54khbuf[N4KHBUF];	/* hash buffers */
int		s54khmask = S54KHMASK;
int		s54kbasynwait;
int		s54kbasyncnt;

S54K_malloc(nextclick)
int	nextclick;
{
	buffers4k = (char *)ctob(nextclick);
	return (nextclick + N4KBUF);
}

#else /* S54K_0_FS */

s54kbflush() {}
s54kbdflush()
{
	while (1)
		sleep(s54kbdflush);
}
s54kiodone_brelse() {}
S54K_malloc(x) int x; { return (x); }
s54kbdwait_timeout() { return (0); }

#endif /* S54K_0_FS */
