#include <rtl.h>
#include <debug.h>
Go to the source code of this file.
◆ NDEBUG
◆ FixupChildLinks()
Definition at line 22 of file splaytree.c.
23{
25 {
27 }
28
30 {
32 }
33
35 {
36 if (LeftChild)
37 {
39 }
40 else
41 {
43 }
44 }
45}
root entry for file system trees
#define RtlRightChild(Links)
#define RtlLeftChild(Links)
#define RtlInsertAsRightChild(ParentLinks, ChildLinks)
#define RtlInsertAsLeftChild(ParentLinks, ChildLinks)
Referenced by SwapSplayLinks().
◆ RtlDelete()
Definition at line 180 of file splaytree.c.
181{
184
185
187 {
188
190
191
193 }
194
195
197 {
198
200
201
203
204
206 {
207
209 }
210 else
211 {
212
214 }
215
216
218 }
219
220
222 {
223
225 }
226 else
227 {
228
230 }
231
232
234 {
235
238 }
239
240
242
243
245 {
246
248 }
249 else
250 {
251
253 }
254
255
258}
static VOID SwapSplayLinks(PRTL_SPLAY_LINKS LinkA, PRTL_SPLAY_LINKS LinkB)
PRTL_SPLAY_LINKS NTAPI RtlSplay(PRTL_SPLAY_LINKS Links)
PRTL_SPLAY_LINKS NTAPI RtlSubtreePredecessor(IN PRTL_SPLAY_LINKS Links)
#define RtlIsLeftChild(Links)
◆ RtlDeleteNoSplay()
Definition at line 265 of file splaytree.c.
267{
270
271
273 {
274
276
277
279
280
282 }
283
284
286 {
287
289 {
291 return;
292 }
293
294
296
297
299 {
300
302 }
303 else
304 {
305
307 }
308
309
310 return;
311 }
312
313
315 {
316
318 }
319 else
320 {
321
323 }
324
325
327 {
328
331 return;
332 }
333
334
336
337
339 {
340
342 }
343 else
344 {
345
347 }
348
349
351 return;
352}
◆ RtlRealPredecessor()
Definition at line 359 of file splaytree.c.
360{
362
363
366 {
367
370 }
371
372
375
376
378
379
381}
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
#define RtlIsRightChild(Links)
◆ RtlRealSuccessor()
Definition at line 388 of file splaytree.c.
389{
391
392
395 {
396
399 }
400
401
404
405
407
408
410}
◆ RtlSplay()
Definition at line 417 of file splaytree.c.
418{
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
454
455
457
458
460 {
461
464
465
467 {
468
470 {
471
472
473
474
477
478
479
480
481
484
485
486
487
488
490 {
491
493 }
494 else
495 {
496
498
499
500
501
502
504 {
505
506
507
508
510 }
511 else
512 {
513
514
515
516
518 }
519 }
520
521
524
525
528 }
529
531 {
532
533
534
535
538
539
540
541
542
545
546
547
548
549
551 {
552
554 }
555 else
556 {
557
559
560
561
562
563
565 {
566
567
568
569
571 }
572 else
573 {
574
575
576
577
579 }
580 }
581
582
585
586
589 }
590
591 else
592 {
593
595
596
598
599
601
602
605 }
606 }
607
608 else
609 {
610
612 {
613
614
615
616
619
620
621
622
623
626
627
628
629
630
632 {
633
635 }
636 else
637 {
638
640
641
642
643
644
646 {
647
648
649
650
652 }
653 else
654 {
655
656
657
658
660 }
661 }
662
663
666
667
670 }
671
673 {
674
675
676
677
680
681
682
683
684
687
688
689
690
691
693 {
694
696 }
697 else
698 {
699
701
702
703
704
705
707 {
708
709
710
711
713 }
714 else
715 {
716
717
718
719
721 }
722 }
723
724
727
728
731 }
732
733 else
734 {
735
737
738
740
741
743
744
747 }
748 }
749 }
750
751
754}
#define G(r, i, a, b, c, d)
Referenced by RtlDelete().
◆ RtlSubtreePredecessor()
◆ RtlSubtreeSuccessor()
Definition at line 781 of file splaytree.c.
782{
784
785
788
789
791
792
794}
◆ SwapSplayLinks()
Definition at line 73 of file splaytree.c.
75{
77 {
79 LinkA = LinkB;
80 LinkB = Tmp;
81 }
82
83 {
88
89 *LinkB = Ta; *LinkA =
Tb;
90
91
93 {
94 if (!RootA)
95 {
96 if (LeftA)
97 {
99 }
100 else
101 {
103 }
104 }
105
106 if (LeftB)
107 {
109 }
110 else
111 {
113 }
114 }
115
118
119
120 if (RootA)
122
123#ifdef VERIFY_SWAP_SPLAY_LINKS
124
125 if (RootA)
126 {
128 {
129
130
137 }
138 else
139 {
140
141
148 }
149 }
150 else
151 {
153 {
154
155
162 }
163 else
164 {
165
166
169 }
170 }
171#endif
172 }
173}
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static VOID FixupChildLinks(PRTL_SPLAY_LINKS Links, BOOLEAN Root, BOOLEAN LeftChild)
Referenced by RtlDelete(), and RtlDeleteNoSplay().