Plan 9 from User Space's /usr/local/plan9/src/libventi/dtype.c

#include <u.h>
#include <libc.h>
#include <venti.h>

enum {
	OVtErrType,		/* illegal */

	OVtRootType,
	OVtDirType,
	OVtPointerType0,
	OVtPointerType1,
	OVtPointerType2,
	OVtPointerType3,
	OVtPointerType4,
	OVtPointerType5,
	OVtPointerType6,
	OVtPointerType7,		/* not used */
	OVtPointerType8,		/* not used */
	OVtPointerType9,		/* not used */
	OVtDataType,

	OVtMaxType
};


uint todisk[] = {
	OVtDataType,
	OVtPointerType0,
	OVtPointerType1,
	OVtPointerType2,
	OVtPointerType3,
	OVtPointerType4,
	OVtPointerType5,
	OVtPointerType6,
	OVtDirType,
	OVtPointerType0,
	OVtPointerType1,
	OVtPointerType2,
	OVtPointerType3,
	OVtPointerType4,
	OVtPointerType5,
	OVtPointerType6,
	OVtRootType,
};

uint fromdisk[] = {
	VtCorruptType,
	VtRootType,
	VtDirType,
	VtDirType+1,
	VtDirType+2,
	VtDirType+3,
	VtDirType+4,
	VtDirType+5,
	VtDirType+6,
	VtDirType+7,
	VtCorruptType,
	VtCorruptType,
	VtCorruptType,
	VtDataType,
};

uint
vttodisktype(uint n)
{
	if(n >= nelem(todisk))
		return VtCorruptType;
	return todisk[n];
}

uint
vtfromdisktype(uint n)
{
	if(n >= nelem(fromdisk))
		return VtCorruptType;
	return fromdisk[n];
}


Space Glenda

Copyright © 2005 Lucent Technologies, Russ Cox, MIT.
See license for details.