コード例 #1
0
ファイル: ht.c プロジェクト: Colin0114/UnixV6
htclose(dev, flag)
{
	register int unit;

	unit = dev.d_minor&077;
	h_openf[unit] = 0;
	if (flag) {
		hcommand(dev, WEOF);
		hcommand(dev, WEOF);
	}
	hcommand(dev, REW);
}
コード例 #2
0
ファイル: ht.c プロジェクト: dank101/3BSD
htclose(dev, flag)
{
	register int unit;

	unit = minor(dev) & 03;
	if (flag == FWRITE || ((flag&FWRITE) && (h_flags[unit]&H_WRITTEN))) {
		VOID hcommand(dev, WEOF);
		VOID hcommand(dev, WEOF);
		VOID hcommand(dev, SREV);
	}
/*	VOID hcommand(dev, REW);	*/
/* for 'mtm' file positioning */
	if((minor(dev)&4) == 0) /* no 4 -> rewind */
		VOID hcommand(dev, REW);
	h_openf[unit] = 0;
}
コード例 #3
0
ファイル: ht.c プロジェクト: Colin0114/UnixV6
htopen(dev, flag)
{
	register unit;

	unit = dev.d_minor&077;
	if (unit >= NUNIT || h_openf[unit])
		u.u_error = ENXIO;
	else {
		h_openf[unit]++;
		h_blkno[unit] = 0;
		h_nxrec[unit] = 65535;
		hcommand(dev, NOP);
	}
}
コード例 #4
0
ファイル: ht.c プロジェクト: dank101/3BSD
htopen(dev, flag)
{
	register unit, ds;

	httab.b_flags |= B_TAPE;
	unit = minor(dev) & 03;
	if (unit >= NUNIT || h_openf[unit]) {
		u.u_error = ENXIO;
		return;
	}
	h_blkno[unit] = 0;
	h_nxrec[unit] = INF;
	h_flags[unit] = 0;
	ds = hcommand(dev, NOP);
	if ((ds&MOL)==0 || (flag && (ds&WRL)))
		u.u_error = ENXIO;
	if (u.u_error==0)
		h_openf[unit]++;
}