Tweak to hopefully make lookaside lists work on amd64: in Windows, the

nll_obsoletelock field in the lookaside list structure is only defined
for the i386 arch. For amd64, the field is gone, and different list
update routines are used which do their locking internally. Apparently
the Inprocomm amd64 driver uses lookaside lists. I'm not positive this
will make it work yet since I don't have an Inprocomm NIC to test, but
this needs to be fixed anyway.
This commit is contained in:
Bill Paul 2005-03-28 17:36:06 +00:00
parent 97b4ef94b5
commit 9a1c9424cf
2 changed files with 7 additions and 1 deletions

View File

@ -428,7 +428,9 @@ typedef struct general_lookaside general_lookaside;
struct npaged_lookaside_list {
general_lookaside nll_l;
#ifdef __i386__
kspin_lock nll_obsoletelock;
#endif
};
typedef struct npaged_lookaside_list npaged_lookaside_list;
@ -654,7 +656,7 @@ typedef struct devobj_extension devobj_extension;
#define IRP_MN_MOUNT_VOLUME 0x01
#define IRP_MN_VERIFY_VOLUME 0x02
#define IRP_MN_LOAD_FILE_SYSTEM 0x03
#define IRP_MN_TRACK_LINK 0x04 // To be obsoleted soon
#define IRP_MN_TRACK_LINK 0x04
#define IRP_MN_KERNEL_CALL 0x04
#define IRP_MN_LOCK 0x01

View File

@ -1530,7 +1530,9 @@ ExInitializePagedLookasideList(lookaside, allocfunc, freefunc,
else
lookaside->nll_l.gl_freefunc = freefunc;
#ifdef __i386__
KeInitializeSpinLock(&lookaside->nll_obsoletelock);
#endif
lookaside->nll_l.gl_depth = LOOKASIDE_DEPTH;
lookaside->nll_l.gl_maxdepth = LOOKASIDE_DEPTH;
@ -1580,7 +1582,9 @@ ExInitializeNPagedLookasideList(lookaside, allocfunc, freefunc,
else
lookaside->nll_l.gl_freefunc = freefunc;
#ifdef __i386__
KeInitializeSpinLock(&lookaside->nll_obsoletelock);
#endif
lookaside->nll_l.gl_depth = LOOKASIDE_DEPTH;
lookaside->nll_l.gl_maxdepth = LOOKASIDE_DEPTH;