48 </ul> <p id="GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F"><b>Normal chunks</b> </p> <p>These |
48 </ul> <p id="GUID-F0DB5A9F-EB24-5D2B-B2A8-90EEE2A2C33F"><b>Normal chunks</b> </p> <p>These |
49 chunks have a committed region consisting of a single contiguous range starting |
49 chunks have a committed region consisting of a single contiguous range starting |
50 at the chunk's base address and a size that is a multiple of the MMU page |
50 at the chunk's base address and a size that is a multiple of the MMU page |
51 size. The following diagram is an example of this kind of chunk: </p> <fig id="GUID-BD64E013-2750-5298-8C5A-8DAC9AB30E14"> |
51 size. The following diagram is an example of this kind of chunk: </p> <fig id="GUID-BD64E013-2750-5298-8C5A-8DAC9AB30E14"> |
52 <title>Normal chunks</title> |
52 <title>Normal chunks</title> |
53 <image href="GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e243804_href.png" placement="inline"/> |
53 <image href="GUID-07F65EEA-5969-5E56-9570-245712FB3EE3_d0e240067_href.png" placement="inline"/> |
54 </fig> <p id="GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44"><b>Double-ended chunks</b> </p> <p>These |
54 </fig> <p id="GUID-0FB877CD-C4E1-5253-AFBC-563E3C715A44"><b>Double-ended chunks</b> </p> <p>These |
55 chunks have a committed region consisting of a single contiguous range starting |
55 chunks have a committed region consisting of a single contiguous range starting |
56 at arbitrary lower and upper endpoints within the reserved region. The only |
56 at arbitrary lower and upper endpoints within the reserved region. The only |
57 condition is that the lower and upper endpoints must be a multiple of the |
57 condition is that the lower and upper endpoints must be a multiple of the |
58 MMU page size. Both the bottom and top of the committed region can be altered |
58 MMU page size. Both the bottom and top of the committed region can be altered |
59 dynamically. The following diagram shows an example of this kind of chunk: </p> <fig id="GUID-62D7BB5C-3BF1-5AA1-88A2-45D09D8684C9"> |
59 dynamically. The following diagram shows an example of this kind of chunk: </p> <fig id="GUID-62D7BB5C-3BF1-5AA1-88A2-45D09D8684C9"> |
60 <title>Double-ended chunks</title> |
60 <title>Double-ended chunks</title> |
61 <image href="GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e243820_href.png" placement="inline"/> |
61 <image href="GUID-99C2E42F-1029-5E32-8446-CAAF29D733BA_d0e240083_href.png" placement="inline"/> |
62 </fig> <p id="GUID-230B66B1-7FD8-5944-9284-354C7564156B"><b>Disconnected chunks</b> </p> <p>These |
62 </fig> <p id="GUID-230B66B1-7FD8-5944-9284-354C7564156B"><b>Disconnected chunks</b> </p> <p>These |
63 chunks have a committed region consisting of an arbitrary set of MMU pages |
63 chunks have a committed region consisting of an arbitrary set of MMU pages |
64 within the reserved region. Each page-sized address range within the reserved |
64 within the reserved region. Each page-sized address range within the reserved |
65 region starting on a page boundary can be committed independently. The following |
65 region starting on a page boundary can be committed independently. The following |
66 diagram shows an example of this kind of chunk: </p> <fig id="GUID-13C9EED8-9C28-5289-A558-378DE49A0DAF"> |
66 diagram shows an example of this kind of chunk: </p> <fig id="GUID-13C9EED8-9C28-5289-A558-378DE49A0DAF"> |
67 <title>Disconnected chunks</title> |
67 <title>Disconnected chunks</title> |
68 <image href="GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e243836_href.png" placement="inline"/> |
68 <image href="GUID-59C143F6-3A0C-5C37-9351-A72FE45AFFC9_d0e240099_href.png" placement="inline"/> |
69 </fig> </section> |
69 </fig> </section> |
70 <section id="GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33"><title>Shared chunks</title> <p>A |
70 <section id="GUID-FD985769-32EB-5A8C-97E8-A3D2D89BBC33"><title>Shared chunks</title> <p>A |
71 shared chunk is a mechanism that allows kernel-side code to share memory buffers |
71 shared chunk is a mechanism that allows kernel-side code to share memory buffers |
72 safely with user-side code. By kernel-side code, we usually mean device driver |
72 safely with user-side code. By kernel-side code, we usually mean device driver |
73 code. </p> <p>The main points to note about shared chunks are: </p> <ul> |
73 code. </p> <p>The main points to note about shared chunks are: </p> <ul> |