#define OPENAFS_WINNT_AFSD_BUF_H 1
#include <osi.h>
+#include <opr/jhash.h>
+
#ifdef DISKCACHE95
#include "cm_diskcache.h"
#endif /* DISKCACHE95 */
#define CM_BUF_CACHETYPE_VIRTUAL 2
extern int buf_cacheType;
-/* force it to be signed so that mod comes out positive or 0 */
-#define BUF_HASH(fidp,offsetp) ((((fidp)->hash \
- +(offsetp)->LowPart) / cm_data.buf_blockSize) \
- % cm_data.buf_hashSize)
+#define BUF_HASH(fidp, offsetp) \
+ (opr_jhash((uint32_t *)(offsetp), 2, (fidp)->hash) & (cm_data.buf_hashSize - 1))
-/* another hash fn */
-#define BUF_FILEHASH(fidp) ((fidp)->hash % cm_data.buf_hashSize)
+#define BUF_FILEHASH(fidp) ((fidp)->hash & (cm_data.buf_hashSize - 1))
#define CM_BUF_MAGIC ('B' | 'U' <<8 | 'F'<<16 | 'F'<<24)
extern long buf_Get(struct cm_scache *, osi_hyper_t *, cm_req_t *, cm_buf_t **);
-extern afs_uint32 buf_CleanAsyncLocked(cm_scache_t *, cm_buf_t *, cm_req_t *, afs_uint32 flags, afs_uint32 *);
+extern afs_uint32 buf_CleanLocked(cm_scache_t *, cm_buf_t *, cm_req_t *, afs_uint32 flags, afs_uint32 *);
-extern afs_uint32 buf_CleanAsync(cm_scache_t *, cm_buf_t *, cm_req_t *, afs_uint32 flags, afs_uint32 *);
+extern afs_uint32 buf_Clean(cm_scache_t *, cm_buf_t *, cm_req_t *, afs_uint32 flags, afs_uint32 *);
extern void buf_CleanWait(cm_scache_t *, cm_buf_t *, afs_uint32 locked);