I remember reading about xor chaining in a Dr. Dobb’s article in the late
80’s or early 90’s, and have always wanted to find a use for one.
Tim: You are correct, I only implemented a deque (add to tail, remove from
head), as that was my immediate requirement. Yes, I do want to implements a
fuller set of functions to traverse and such, but, as you mentioned, those
are expensive operations, and probably not very practical for large lists.
Adding RemoveTail, and InsertHead are trivial.
Peter: Yes, I considered using different naming, or do something more like
the kernel does (disable interrupts, etc.). I am not adverse to others
contributing to the code either
Phil: I did put two functions in the header. Good suggestion though. The
interlocked versions are probably best left as functions.
Thanks for the feedback.
On Thu, Oct 18, 2018 at 4:57 PM Peter_Viscarola_(OSR)
wrote:
> OSR https://community.osr.com/
> Peter_Viscarola_(OSR) commented on Windows kernel XOR chain list
>
> First… Thank you, Jamey, for once again openly sharing your work with
> the Windows driver development community. That’s darn nice of you.
>
> Now… Being basically ignorant, I’m not going to claim I understand how
> this thing works.
>
> But I did notice that there’s an ExInterlockedRemoveHeadXorList
> implementation… and I wanted to note that this is not similar to the
> standard Windows ExInterlockedRemoveHeadList function in that it can only
> be called at IRQL <= DISPATCH_LEVEL. I think using the same naming
> convention, but a very different set of functionalities and constraints is
> unwise.
>
> I always wanted to point out that this implementation unfortunately lacks
> SAL annotations. Which is unfortunate, as these types of projects are cool
> ways to show people what SAL is about and how it should be used.
>
> Peter
>
> –
> Reply to this email directly or follow the link below to check it out:
> https://community.osr.com/discussion/comment/291010#Comment_291010
>
> Check it out:
> https://community.osr.com/discussion/comment/291010#Comment_291010
>