#include "all.h"
#include "mem.h"
#include "io.h"
#include "ureg.h"

#include "dosfs.h"

static Dosfile file;
static int opened;
char nvrfile[128] = "plan9.nvr";

static void
nvopen(void)
{
	int s;
	Dosfile *fp;

	if(opened)
		return;
	opened = 1;
	s = spllo();
	fp = dosopen(&dos, nvrfile, &file);
	splx(s);
	if(fp == 0)
		panic("can't open %s\n", nvrfile);
}

int
nvread(int offset, void *a, int n)
{
	int r, s;

	nvopen();

	s = spllo();
	file.offset = offset;
	r = dosread(&file, a, n);
	splx(s);
	return r;
}

int
nvwrite(int offset, void *a, int n)
{
	int r, s;

	nvopen();

	s = spllo();
	file.offset = offset;
	r = doswrite(&file, a, n);
	splx(s);
	return r;
}