@@ -15,44 +15,44 @@ use crate::{
15
15
utils:: { nonnull_slice_from_raw_parts, nonnull_slice_len, nonnull_slice_start} ,
16
16
} ;
17
17
18
- #[ cfg_attr ( doc, svgbobdoc:: transform) ]
18
+ #[ doc = svgbobdoc:: transform! (
19
19
/// The TLSF header (top-level) data structure.
20
20
///
21
21
/// # Data Structure Overview
22
22
///
23
23
/// <center>
24
24
/// ```svgbob
25
25
/// First level
26
- /// FLLEN = 8
27
- /// ,-----+-----+-----+-----+-----+-----+-----+-----,
28
- /// fl_bitmap: FLBitmap = | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
29
- /// +-----+-----+-----+-----+-----+-----+-----+-----+
30
- /// min size | 2¹¹ | 2¹⁰ | 2⁹ | 2⁸ | 2⁷ | 2⁶ | 2⁵ | 2⁴ |
31
- /// '-----+-----+-----+--+--+-----+-----+-----+-----'
32
- /// |
33
- /// ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶|╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶
34
- /// Second Level |
35
- /// v SLLEN = 8
36
- /// ,-----+-----+-----+-----+-----+-----+-----+-----,
37
- /// "sl_bitmap[4]: SLBitmap"= | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
38
- /// +-----+-----+-----+-----+-----+-----+-----+-----+
39
- /// min size 2⁸(1+n/8) | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
40
- /// +-----+-----+-----+-----+-----+-----+-----+-----+
41
- /// first_free | | | O | | | | | |
42
- /// '-----+-----+--|--+-----+-----+-----+-----+-----'
43
- /// |
44
- /// | size = 416..448
45
- /// |
46
- /// ╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶|╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶╶
47
- /// Free blocks |
48
- /// |
49
- /// ,-----------------------------------'
50
- /// | ,---+---+-------, ,---+---+-------, ,---+---+-------,
51
- /// '-+>O | O-+-------+----+>O | O-+-------+----+>O | | |
52
- /// +---+---' | +---+---' | +---+---' |
53
- /// | | | | | |
54
- /// | | | | | |
55
- /// '---------------' '---------------' '---------------'
26
+ /// " FLLEN = 8"
27
+ /// ╭─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────╮
28
+ /// " fl_bitmap: FLBitmap ="│ 0 │ 0 │ 0 │ 1 │ 0 │ 0 │ 0 │ 0 │
29
+ /// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
30
+ /// " min size"│ 2¹¹ │ 2¹⁰ │ 2⁹ │ 2⁸ │ 2⁷ │ 2⁶ │ 2⁵ │ 2⁴ │
31
+ /// ╰─────┴─────┴─────┴──┬──┴─────┴─────┴─────┴─────╯
32
+ /// │
33
+ /// ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
34
+ /// Second Level │
35
+ /// v " SLLEN = 8"
36
+ /// ╭─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────╮
37
+ /// "sl_bitmap[4]: SLBitmap ="│ 0 │ 0 │ 1 │ 0 │ 0 │ 0 │ 0 │ 0 │
38
+ /// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
39
+ /// " min size 2⁸(1+n/8)"│ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
40
+ /// ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
41
+ /// " first_free"│ │ │ ○ │ │ │ │ │ │
42
+ /// ╰─────┴─────┴──┼──┴─────┴─────┴─────┴─────┴─────╯
43
+ /// │
44
+ /// │ " size = 416..448"
45
+ /// │
46
+ /// ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┼ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
47
+ /// Free blocks │
48
+ /// │
49
+ /// ╭───────────────────────────────────╯
50
+ /// │ ╭───┬───┬───────╮ ╭───┬───┬───────╮ ╭───┬───┬───────╮
51
+ /// ╰─┼>○ │ ○─┼───────┼────┼>○ │ ○─┼───────┼────┼>○ │ │ │
52
+ /// ├───┴───╯ │ ├───┴───╯ │ ├───┴───╯ │
53
+ /// │ │ │ │ │ │
54
+ /// │ │ │ │ │ │
55
+ /// ╰───────────────╯ ╰───────────────╯ ╰───────────────╯
56
56
/// 416 bytes 432 bytes 416 bytes
57
57
/// ```
58
58
/// </center>
@@ -64,6 +64,7 @@ use crate::{
64
64
///
65
65
/// The maximum block size is `(GRANULARITY << FLLEN) - GRANULARITY`.
66
66
///
67
+ ) ]
67
68
#[ derive( Debug ) ]
68
69
pub struct Tlsf < ' pool , FLBitmap , SLBitmap , const FLLEN : usize , const SLLEN : usize > {
69
70
fl_bitmap : FLBitmap ,
0 commit comments