int lockTime;
} ViceLock;
-#define ViceLockCheckLocked(vptr) ((vptr)->lockTime == 0)
-#define ViceLockClear(vptr) ((vptr)->lockCount = (vptr)->lockTime = 0)
+/**
+ * Return non-zero if unlocked.
+ */
+static_inline int
+ViceLockCheckLocked(struct ViceLock *vptr)
+{
+ return (vptr->lockTime == 0);
+}
+
+/**
+ * Clear the lock.
+ */
+static_inline int
+ViceLockClear(struct ViceLock *vptr)
+{
+ vptr->lockCount = 0;
+ vptr->lockTime = 0;
+ return 0;
+}
#define ROOTVNODE 1
extern struct VnodeClassInfo VnodeClassInfo[nVNODECLASSES];
-#define vnodeTypeToClass(type) ((type) == vDirectory? vLarge: vSmall)
-#define vnodeIdToClass(vnodeId) ((vnodeId-1)&VNODECLASSMASK)
-#define vnodeIdToBitNumber(v) (((v)-1)>>VNODECLASSWIDTH)
-/* The following calculation allows for a header record at the beginning
- of the index. The header record is the same size as a vnode */
-#define vnodeIndexOffset(vcp,vnodeNumber) \
- ((vnodeIdToBitNumber(vnodeNumber)+1)<<(vcp)->logSize)
-#define bitNumberToVnodeNumber(b,class) ((VnodeId)(((b)<<VNODECLASSWIDTH)+(class)+1))
-#define vnodeIsDirectory(vnodeNumber) (vnodeIdToClass(vnodeNumber) == vLarge)
+/**
+ * Return the vnode class (large or small) of this vnode type.
+ */
+static_inline VnodeClass
+vnodeTypeToClass(VnodeType vnodeType)
+{
+ return (vnodeType == vDirectory ? vLarge : vSmall);
+}
+
+/**
+ * Return the vnode type of this vnode number.
+ */
+static_inline VnodeClass
+vnodeIdToClass(VnodeId vnodeNumber)
+{
+ return ((vnodeNumber - 1) & VNODECLASSMASK);
+}
+
+/**
+ * Return the vnode index of this vnode number.
+ */
+static_inline afs_uint32
+vnodeIdToBitNumber(VnodeId vnodeNumber)
+{
+ return ((vnodeNumber - 1) >> VNODECLASSWIDTH);
+}
+
+/**
+ * Return the index file offset of this vnode class and number.
+ *
+ * The following calculation allows for a header record at the beginning of
+ * the index. The header record is the same size as a vnode.
+ */
+static_inline afs_foff_t
+vnodeIndexOffset(struct VnodeClassInfo* vcp, VnodeId vnodeNumber)
+{
+ return (((afs_foff_t)(vnodeIdToBitNumber(vnodeNumber) + 1)) << vcp->logSize);
+}
+
+/**
+ * Return the vnode number of this vnode index.
+ */
+static_inline VnodeId
+bitNumberToVnodeNumber(afs_uint32 bitNumber, VnodeClass vnodeClass)
+{
+ return ((((VnodeId)bitNumber) << VNODECLASSWIDTH) + vnodeClass + 1);
+}
+
+/**
+ * Return non-zero if this vnode number is a directory.
+ */
+static_inline int
+vnodeIsDirectory(VnodeId vnodeNumber)
+{
+ return (vnodeIdToClass(vnodeNumber) == vLarge);
+}
+
typedef struct VnodeDiskObject {
unsigned int type:3; /* Vnode is file, directory, symbolic link