1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/docs/COPYING-GPL-2 Tue Apr 13 00:03:18 2021 +0200 1.3 @@ -0,0 +1,1 @@ 1.4 +LICENCE.txt 1.5 \ No newline at end of file
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/docs/COPYING.txt Tue Apr 13 00:03:18 2021 +0200 2.3 @@ -0,0 +1,22 @@ 2.4 +Licence Agreement 2.5 +----------------- 2.6 + 2.7 +All original work in this distribution is covered by the following copyright 2.8 +and licensing information: 2.9 + 2.10 +Copyright (C) 2018, 2019, 2020, 2021 Paul Boddie <paul@boddie.org.uk> 2.11 + 2.12 +This software is free software; you can redistribute it and/or 2.13 +modify it under the terms of the GNU General Public License as 2.14 +published by the Free Software Foundation; either version 2 of 2.15 +the License, or (at your option) any later version. 2.16 + 2.17 +This software is distributed in the hope that it will be useful, 2.18 +but WITHOUT ANY WARRANTY; without even the implied warranty of 2.19 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2.20 +GNU General Public License for more details. 2.21 + 2.22 +You should have received a copy of the GNU General Public 2.23 +License along with this library; see the file LICENCE.txt 2.24 +If not, write to the Free Software Foundation, Inc., 2.25 +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/docs/LICENCE.txt Tue Apr 13 00:03:18 2021 +0200 3.3 @@ -0,0 +1,339 @@ 3.4 + GNU GENERAL PUBLIC LICENSE 3.5 + Version 2, June 1991 3.6 + 3.7 + Copyright (C) 1989, 1991 Free Software Foundation, Inc., 3.8 + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 3.9 + Everyone is permitted to copy and distribute verbatim copies 3.10 + of this license document, but changing it is not allowed. 3.11 + 3.12 + Preamble 3.13 + 3.14 + The licenses for most software are designed to take away your 3.15 +freedom to share and change it. By contrast, the GNU General Public 3.16 +License is intended to guarantee your freedom to share and change free 3.17 +software--to make sure the software is free for all its users. This 3.18 +General Public License applies to most of the Free Software 3.19 +Foundation's software and to any other program whose authors commit to 3.20 +using it. (Some other Free Software Foundation software is covered by 3.21 +the GNU Lesser General Public License instead.) You can apply it to 3.22 +your programs, too. 3.23 + 3.24 + When we speak of free software, we are referring to freedom, not 3.25 +price. Our General Public Licenses are designed to make sure that you 3.26 +have the freedom to distribute copies of free software (and charge for 3.27 +this service if you wish), that you receive source code or can get it 3.28 +if you want it, that you can change the software or use pieces of it 3.29 +in new free programs; and that you know you can do these things. 3.30 + 3.31 + To protect your rights, we need to make restrictions that forbid 3.32 +anyone to deny you these rights or to ask you to surrender the rights. 3.33 +These restrictions translate to certain responsibilities for you if you 3.34 +distribute copies of the software, or if you modify it. 3.35 + 3.36 + For example, if you distribute copies of such a program, whether 3.37 +gratis or for a fee, you must give the recipients all the rights that 3.38 +you have. You must make sure that they, too, receive or can get the 3.39 +source code. And you must show them these terms so they know their 3.40 +rights. 3.41 + 3.42 + We protect your rights with two steps: (1) copyright the software, and 3.43 +(2) offer you this license which gives you legal permission to copy, 3.44 +distribute and/or modify the software. 3.45 + 3.46 + Also, for each author's protection and ours, we want to make certain 3.47 +that everyone understands that there is no warranty for this free 3.48 +software. If the software is modified by someone else and passed on, we 3.49 +want its recipients to know that what they have is not the original, so 3.50 +that any problems introduced by others will not reflect on the original 3.51 +authors' reputations. 3.52 + 3.53 + Finally, any free program is threatened constantly by software 3.54 +patents. We wish to avoid the danger that redistributors of a free 3.55 +program will individually obtain patent licenses, in effect making the 3.56 +program proprietary. To prevent this, we have made it clear that any 3.57 +patent must be licensed for everyone's free use or not licensed at all. 3.58 + 3.59 + The precise terms and conditions for copying, distribution and 3.60 +modification follow. 3.61 + 3.62 + GNU GENERAL PUBLIC LICENSE 3.63 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 3.64 + 3.65 + 0. This License applies to any program or other work which contains 3.66 +a notice placed by the copyright holder saying it may be distributed 3.67 +under the terms of this General Public License. The "Program", below, 3.68 +refers to any such program or work, and a "work based on the Program" 3.69 +means either the Program or any derivative work under copyright law: 3.70 +that is to say, a work containing the Program or a portion of it, 3.71 +either verbatim or with modifications and/or translated into another 3.72 +language. (Hereinafter, translation is included without limitation in 3.73 +the term "modification".) Each licensee is addressed as "you". 3.74 + 3.75 +Activities other than copying, distribution and modification are not 3.76 +covered by this License; they are outside its scope. The act of 3.77 +running the Program is not restricted, and the output from the Program 3.78 +is covered only if its contents constitute a work based on the 3.79 +Program (independent of having been made by running the Program). 3.80 +Whether that is true depends on what the Program does. 3.81 + 3.82 + 1. You may copy and distribute verbatim copies of the Program's 3.83 +source code as you receive it, in any medium, provided that you 3.84 +conspicuously and appropriately publish on each copy an appropriate 3.85 +copyright notice and disclaimer of warranty; keep intact all the 3.86 +notices that refer to this License and to the absence of any warranty; 3.87 +and give any other recipients of the Program a copy of this License 3.88 +along with the Program. 3.89 + 3.90 +You may charge a fee for the physical act of transferring a copy, and 3.91 +you may at your option offer warranty protection in exchange for a fee. 3.92 + 3.93 + 2. You may modify your copy or copies of the Program or any portion 3.94 +of it, thus forming a work based on the Program, and copy and 3.95 +distribute such modifications or work under the terms of Section 1 3.96 +above, provided that you also meet all of these conditions: 3.97 + 3.98 + a) You must cause the modified files to carry prominent notices 3.99 + stating that you changed the files and the date of any change. 3.100 + 3.101 + b) You must cause any work that you distribute or publish, that in 3.102 + whole or in part contains or is derived from the Program or any 3.103 + part thereof, to be licensed as a whole at no charge to all third 3.104 + parties under the terms of this License. 3.105 + 3.106 + c) If the modified program normally reads commands interactively 3.107 + when run, you must cause it, when started running for such 3.108 + interactive use in the most ordinary way, to print or display an 3.109 + announcement including an appropriate copyright notice and a 3.110 + notice that there is no warranty (or else, saying that you provide 3.111 + a warranty) and that users may redistribute the program under 3.112 + these conditions, and telling the user how to view a copy of this 3.113 + License. (Exception: if the Program itself is interactive but 3.114 + does not normally print such an announcement, your work based on 3.115 + the Program is not required to print an announcement.) 3.116 + 3.117 +These requirements apply to the modified work as a whole. If 3.118 +identifiable sections of that work are not derived from the Program, 3.119 +and can be reasonably considered independent and separate works in 3.120 +themselves, then this License, and its terms, do not apply to those 3.121 +sections when you distribute them as separate works. But when you 3.122 +distribute the same sections as part of a whole which is a work based 3.123 +on the Program, the distribution of the whole must be on the terms of 3.124 +this License, whose permissions for other licensees extend to the 3.125 +entire whole, and thus to each and every part regardless of who wrote it. 3.126 + 3.127 +Thus, it is not the intent of this section to claim rights or contest 3.128 +your rights to work written entirely by you; rather, the intent is to 3.129 +exercise the right to control the distribution of derivative or 3.130 +collective works based on the Program. 3.131 + 3.132 +In addition, mere aggregation of another work not based on the Program 3.133 +with the Program (or with a work based on the Program) on a volume of 3.134 +a storage or distribution medium does not bring the other work under 3.135 +the scope of this License. 3.136 + 3.137 + 3. You may copy and distribute the Program (or a work based on it, 3.138 +under Section 2) in object code or executable form under the terms of 3.139 +Sections 1 and 2 above provided that you also do one of the following: 3.140 + 3.141 + a) Accompany it with the complete corresponding machine-readable 3.142 + source code, which must be distributed under the terms of Sections 3.143 + 1 and 2 above on a medium customarily used for software interchange; or, 3.144 + 3.145 + b) Accompany it with a written offer, valid for at least three 3.146 + years, to give any third party, for a charge no more than your 3.147 + cost of physically performing source distribution, a complete 3.148 + machine-readable copy of the corresponding source code, to be 3.149 + distributed under the terms of Sections 1 and 2 above on a medium 3.150 + customarily used for software interchange; or, 3.151 + 3.152 + c) Accompany it with the information you received as to the offer 3.153 + to distribute corresponding source code. (This alternative is 3.154 + allowed only for noncommercial distribution and only if you 3.155 + received the program in object code or executable form with such 3.156 + an offer, in accord with Subsection b above.) 3.157 + 3.158 +The source code for a work means the preferred form of the work for 3.159 +making modifications to it. For an executable work, complete source 3.160 +code means all the source code for all modules it contains, plus any 3.161 +associated interface definition files, plus the scripts used to 3.162 +control compilation and installation of the executable. However, as a 3.163 +special exception, the source code distributed need not include 3.164 +anything that is normally distributed (in either source or binary 3.165 +form) with the major components (compiler, kernel, and so on) of the 3.166 +operating system on which the executable runs, unless that component 3.167 +itself accompanies the executable. 3.168 + 3.169 +If distribution of executable or object code is made by offering 3.170 +access to copy from a designated place, then offering equivalent 3.171 +access to copy the source code from the same place counts as 3.172 +distribution of the source code, even though third parties are not 3.173 +compelled to copy the source along with the object code. 3.174 + 3.175 + 4. You may not copy, modify, sublicense, or distribute the Program 3.176 +except as expressly provided under this License. Any attempt 3.177 +otherwise to copy, modify, sublicense or distribute the Program is 3.178 +void, and will automatically terminate your rights under this License. 3.179 +However, parties who have received copies, or rights, from you under 3.180 +this License will not have their licenses terminated so long as such 3.181 +parties remain in full compliance. 3.182 + 3.183 + 5. You are not required to accept this License, since you have not 3.184 +signed it. However, nothing else grants you permission to modify or 3.185 +distribute the Program or its derivative works. These actions are 3.186 +prohibited by law if you do not accept this License. Therefore, by 3.187 +modifying or distributing the Program (or any work based on the 3.188 +Program), you indicate your acceptance of this License to do so, and 3.189 +all its terms and conditions for copying, distributing or modifying 3.190 +the Program or works based on it. 3.191 + 3.192 + 6. Each time you redistribute the Program (or any work based on the 3.193 +Program), the recipient automatically receives a license from the 3.194 +original licensor to copy, distribute or modify the Program subject to 3.195 +these terms and conditions. You may not impose any further 3.196 +restrictions on the recipients' exercise of the rights granted herein. 3.197 +You are not responsible for enforcing compliance by third parties to 3.198 +this License. 3.199 + 3.200 + 7. If, as a consequence of a court judgment or allegation of patent 3.201 +infringement or for any other reason (not limited to patent issues), 3.202 +conditions are imposed on you (whether by court order, agreement or 3.203 +otherwise) that contradict the conditions of this License, they do not 3.204 +excuse you from the conditions of this License. If you cannot 3.205 +distribute so as to satisfy simultaneously your obligations under this 3.206 +License and any other pertinent obligations, then as a consequence you 3.207 +may not distribute the Program at all. For example, if a patent 3.208 +license would not permit royalty-free redistribution of the Program by 3.209 +all those who receive copies directly or indirectly through you, then 3.210 +the only way you could satisfy both it and this License would be to 3.211 +refrain entirely from distribution of the Program. 3.212 + 3.213 +If any portion of this section is held invalid or unenforceable under 3.214 +any particular circumstance, the balance of the section is intended to 3.215 +apply and the section as a whole is intended to apply in other 3.216 +circumstances. 3.217 + 3.218 +It is not the purpose of this section to induce you to infringe any 3.219 +patents or other property right claims or to contest validity of any 3.220 +such claims; this section has the sole purpose of protecting the 3.221 +integrity of the free software distribution system, which is 3.222 +implemented by public license practices. Many people have made 3.223 +generous contributions to the wide range of software distributed 3.224 +through that system in reliance on consistent application of that 3.225 +system; it is up to the author/donor to decide if he or she is willing 3.226 +to distribute software through any other system and a licensee cannot 3.227 +impose that choice. 3.228 + 3.229 +This section is intended to make thoroughly clear what is believed to 3.230 +be a consequence of the rest of this License. 3.231 + 3.232 + 8. If the distribution and/or use of the Program is restricted in 3.233 +certain countries either by patents or by copyrighted interfaces, the 3.234 +original copyright holder who places the Program under this License 3.235 +may add an explicit geographical distribution limitation excluding 3.236 +those countries, so that distribution is permitted only in or among 3.237 +countries not thus excluded. In such case, this License incorporates 3.238 +the limitation as if written in the body of this License. 3.239 + 3.240 + 9. The Free Software Foundation may publish revised and/or new versions 3.241 +of the General Public License from time to time. Such new versions will 3.242 +be similar in spirit to the present version, but may differ in detail to 3.243 +address new problems or concerns. 3.244 + 3.245 +Each version is given a distinguishing version number. If the Program 3.246 +specifies a version number of this License which applies to it and "any 3.247 +later version", you have the option of following the terms and conditions 3.248 +either of that version or of any later version published by the Free 3.249 +Software Foundation. If the Program does not specify a version number of 3.250 +this License, you may choose any version ever published by the Free Software 3.251 +Foundation. 3.252 + 3.253 + 10. If you wish to incorporate parts of the Program into other free 3.254 +programs whose distribution conditions are different, write to the author 3.255 +to ask for permission. For software which is copyrighted by the Free 3.256 +Software Foundation, write to the Free Software Foundation; we sometimes 3.257 +make exceptions for this. Our decision will be guided by the two goals 3.258 +of preserving the free status of all derivatives of our free software and 3.259 +of promoting the sharing and reuse of software generally. 3.260 + 3.261 + NO WARRANTY 3.262 + 3.263 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 3.264 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 3.265 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 3.266 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 3.267 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 3.268 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 3.269 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 3.270 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 3.271 +REPAIR OR CORRECTION. 3.272 + 3.273 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 3.274 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 3.275 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 3.276 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 3.277 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 3.278 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 3.279 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 3.280 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 3.281 +POSSIBILITY OF SUCH DAMAGES. 3.282 + 3.283 + END OF TERMS AND CONDITIONS 3.284 + 3.285 + How to Apply These Terms to Your New Programs 3.286 + 3.287 + If you develop a new program, and you want it to be of the greatest 3.288 +possible use to the public, the best way to achieve this is to make it 3.289 +free software which everyone can redistribute and change under these terms. 3.290 + 3.291 + To do so, attach the following notices to the program. It is safest 3.292 +to attach them to the start of each source file to most effectively 3.293 +convey the exclusion of warranty; and each file should have at least 3.294 +the "copyright" line and a pointer to where the full notice is found. 3.295 + 3.296 + <one line to give the program's name and a brief idea of what it does.> 3.297 + Copyright (C) <year> <name of author> 3.298 + 3.299 + This program is free software; you can redistribute it and/or modify 3.300 + it under the terms of the GNU General Public License as published by 3.301 + the Free Software Foundation; either version 2 of the License, or 3.302 + (at your option) any later version. 3.303 + 3.304 + This program is distributed in the hope that it will be useful, 3.305 + but WITHOUT ANY WARRANTY; without even the implied warranty of 3.306 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 3.307 + GNU General Public License for more details. 3.308 + 3.309 + You should have received a copy of the GNU General Public License along 3.310 + with this program; if not, write to the Free Software Foundation, Inc., 3.311 + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 3.312 + 3.313 +Also add information on how to contact you by electronic and paper mail. 3.314 + 3.315 +If the program is interactive, make it output a short notice like this 3.316 +when it starts in an interactive mode: 3.317 + 3.318 + Gnomovision version 69, Copyright (C) year name of author 3.319 + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 3.320 + This is free software, and you are welcome to redistribute it 3.321 + under certain conditions; type `show c' for details. 3.322 + 3.323 +The hypothetical commands `show w' and `show c' should show the appropriate 3.324 +parts of the General Public License. Of course, the commands you use may 3.325 +be called something other than `show w' and `show c'; they could even be 3.326 +mouse-clicks or menu items--whatever suits your program. 3.327 + 3.328 +You should also get your employer (if you work as a programmer) or your 3.329 +school, if any, to sign a "copyright disclaimer" for the program, if 3.330 +necessary. Here is a sample; alter the names: 3.331 + 3.332 + Yoyodyne, Inc., hereby disclaims all copyright interest in the program 3.333 + `Gnomovision' (which makes passes at compilers) written by James Hacker. 3.334 + 3.335 + <signature of Ty Coon>, 1 April 1989 3.336 + Ty Coon, President of Vice 3.337 + 3.338 +This General Public License does not permit incorporating your program into 3.339 +proprietary programs. If your program is a subroutine library, you may 3.340 +consider it more useful to permit linking proprietary applications with the 3.341 +library. If this is what you want to do, use the GNU Lesser General 3.342 +Public License instead of this License.
4.1 --- a/files/block_file_accessor.cc Mon Apr 12 00:33:14 2021 +0200 4.2 +++ b/files/block_file_accessor.cc Tue Apr 13 00:03:18 2021 +0200 4.3 @@ -1,3 +1,24 @@ 4.4 +/* 4.5 + * A file accessor employing a rewritable memory area. 4.6 + * 4.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 4.8 + * 4.9 + * This program is free software; you can redistribute it and/or 4.10 + * modify it under the terms of the GNU General Public License as 4.11 + * published by the Free Software Foundation; either version 2 of 4.12 + * the License, or (at your option) any later version. 4.13 + * 4.14 + * This program is distributed in the hope that it will be useful, 4.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 4.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 4.17 + * GNU General Public License for more details. 4.18 + * 4.19 + * You should have received a copy of the GNU General Public License 4.20 + * along with this program; if not, write to the Free Software 4.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 4.22 + * Boston, MA 02110-1301, USA 4.23 + */ 4.24 + 4.25 #include <stdio.h> 4.26 #include <string.h> 4.27 #include <sys/types.h>
5.1 --- a/files/block_file_accessor.h Mon Apr 12 00:33:14 2021 +0200 5.2 +++ b/files/block_file_accessor.h Tue Apr 13 00:03:18 2021 +0200 5.3 @@ -1,7 +1,30 @@ 5.4 +/* 5.5 + * A file accessor employing a rewritable memory area. 5.6 + * 5.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 5.8 + * 5.9 + * This program is free software; you can redistribute it and/or 5.10 + * modify it under the terms of the GNU General Public License as 5.11 + * published by the Free Software Foundation; either version 2 of 5.12 + * the License, or (at your option) any later version. 5.13 + * 5.14 + * This program is distributed in the hope that it will be useful, 5.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 5.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 5.17 + * GNU General Public License for more details. 5.18 + * 5.19 + * You should have received a copy of the GNU General Public License 5.20 + * along with this program; if not, write to the Free Software 5.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 5.22 + * Boston, MA 02110-1301, USA 5.23 + */ 5.24 + 5.25 #pragma once 5.26 5.27 #include "accessor.h" 5.28 5.29 + 5.30 + 5.31 /* A block file accessor, providing flexpages corresponding to the regions of 5.32 loaded files. */ 5.33
6.1 --- a/files/block_file_opener.cc Mon Apr 12 00:33:14 2021 +0200 6.2 +++ b/files/block_file_opener.cc Tue Apr 13 00:03:18 2021 +0200 6.3 @@ -1,3 +1,24 @@ 6.4 +/* 6.5 + * An opener for a file employing a rewritable memory area. 6.6 + * 6.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 6.8 + * 6.9 + * This program is free software; you can redistribute it and/or 6.10 + * modify it under the terms of the GNU General Public License as 6.11 + * published by the Free Software Foundation; either version 2 of 6.12 + * the License, or (at your option) any later version. 6.13 + * 6.14 + * This program is distributed in the hope that it will be useful, 6.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 6.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 6.17 + * GNU General Public License for more details. 6.18 + * 6.19 + * You should have received a copy of the GNU General Public License 6.20 + * along with this program; if not, write to the Free Software 6.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 6.22 + * Boston, MA 02110-1301, USA 6.23 + */ 6.24 + 6.25 #include "block_file_accessor.h" 6.26 #include "block_file_opener.h" 6.27
7.1 --- a/files/block_file_opener.h Mon Apr 12 00:33:14 2021 +0200 7.2 +++ b/files/block_file_opener.h Tue Apr 13 00:03:18 2021 +0200 7.3 @@ -1,3 +1,24 @@ 7.4 +/* 7.5 + * An opener for a file employing a rewritable memory area. 7.6 + * 7.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 7.8 + * 7.9 + * This program is free software; you can redistribute it and/or 7.10 + * modify it under the terms of the GNU General Public License as 7.11 + * published by the Free Software Foundation; either version 2 of 7.12 + * the License, or (at your option) any later version. 7.13 + * 7.14 + * This program is distributed in the hope that it will be useful, 7.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 7.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 7.17 + * GNU General Public License for more details. 7.18 + * 7.19 + * You should have received a copy of the GNU General Public License 7.20 + * along with this program; if not, write to the Free Software 7.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 7.22 + * Boston, MA 02110-1301, USA 7.23 + */ 7.24 + 7.25 #pragma once 7.26 7.27 #include "host_file_opener.h"
8.1 --- a/files/file_pager.cc Mon Apr 12 00:33:14 2021 +0200 8.2 +++ b/files/file_pager.cc Tue Apr 13 00:03:18 2021 +0200 8.3 @@ -1,6 +1,29 @@ 8.4 +/* 8.5 + * File-specific pager functionality. 8.6 + * 8.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 8.8 + * 8.9 + * This program is free software; you can redistribute it and/or 8.10 + * modify it under the terms of the GNU General Public License as 8.11 + * published by the Free Software Foundation; either version 2 of 8.12 + * the License, or (at your option) any later version. 8.13 + * 8.14 + * This program is distributed in the hope that it will be useful, 8.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 8.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 8.17 + * GNU General Public License for more details. 8.18 + * 8.19 + * You should have received a copy of the GNU General Public License 8.20 + * along with this program; if not, write to the Free Software 8.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 8.22 + * Boston, MA 02110-1301, USA 8.23 + */ 8.24 + 8.25 #include "file_pager.h" 8.26 #include "mapped_file_object_server.h" 8.27 8.28 + 8.29 + 8.30 /* Initialise a pager for a file with a unique file identifier and shared page 8.31 mapper for moderating access to loaded pages. */ 8.32
9.1 --- a/files/file_pager.h Mon Apr 12 00:33:14 2021 +0200 9.2 +++ b/files/file_pager.h Tue Apr 13 00:03:18 2021 +0200 9.3 @@ -1,9 +1,32 @@ 9.4 +/* 9.5 + * File-specific pager functionality. 9.6 + * 9.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 9.8 + * 9.9 + * This program is free software; you can redistribute it and/or 9.10 + * modify it under the terms of the GNU General Public License as 9.11 + * published by the Free Software Foundation; either version 2 of 9.12 + * the License, or (at your option) any later version. 9.13 + * 9.14 + * This program is distributed in the hope that it will be useful, 9.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 9.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9.17 + * GNU General Public License for more details. 9.18 + * 9.19 + * You should have received a copy of the GNU General Public License 9.20 + * along with this program; if not, write to the Free Software 9.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 9.22 + * Boston, MA 02110-1301, USA 9.23 + */ 9.24 + 9.25 #pragma once 9.26 9.27 #include "mapped_file_object_interface.h" 9.28 #include "pager.h" 9.29 #include "file_paging.h" 9.30 9.31 + 9.32 + 9.33 /* A pager abstraction for a file. */ 9.34 9.35 class FilePager : public Pager, public MappedFileObject
10.1 --- a/files/file_paging.cc Mon Apr 12 00:33:14 2021 +0200 10.2 +++ b/files/file_paging.cc Tue Apr 13 00:03:18 2021 +0200 10.3 @@ -1,3 +1,24 @@ 10.4 +/* 10.5 + * General functionality supporting file paging. 10.6 + * 10.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 10.8 + * 10.9 + * This program is free software; you can redistribute it and/or 10.10 + * modify it under the terms of the GNU General Public License as 10.11 + * published by the Free Software Foundation; either version 2 of 10.12 + * the License, or (at your option) any later version. 10.13 + * 10.14 + * This program is distributed in the hope that it will be useful, 10.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 10.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10.17 + * GNU General Public License for more details. 10.18 + * 10.19 + * You should have received a copy of the GNU General Public License 10.20 + * along with this program; if not, write to the Free Software 10.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 10.22 + * Boston, MA 02110-1301, USA 10.23 + */ 10.24 + 10.25 #include "file_pager.h" 10.26 #include "file_paging.h" 10.27
11.1 --- a/files/file_paging.h Mon Apr 12 00:33:14 2021 +0200 11.2 +++ b/files/file_paging.h Tue Apr 13 00:03:18 2021 +0200 11.3 @@ -1,3 +1,24 @@ 11.4 +/* 11.5 + * General functionality supporting file paging. 11.6 + * 11.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 11.8 + * 11.9 + * This program is free software; you can redistribute it and/or 11.10 + * modify it under the terms of the GNU General Public License as 11.11 + * published by the Free Software Foundation; either version 2 of 11.12 + * the License, or (at your option) any later version. 11.13 + * 11.14 + * This program is distributed in the hope that it will be useful, 11.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 11.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11.17 + * GNU General Public License for more details. 11.18 + * 11.19 + * You should have received a copy of the GNU General Public License 11.20 + * along with this program; if not, write to the Free Software 11.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 11.22 + * Boston, MA 02110-1301, USA 11.23 + */ 11.24 + 11.25 #pragma once 11.26 11.27 #include <map>
12.1 --- a/files/host_file_accessor.cc Mon Apr 12 00:33:14 2021 +0200 12.2 +++ b/files/host_file_accessor.cc Tue Apr 13 00:03:18 2021 +0200 12.3 @@ -1,3 +1,24 @@ 12.4 +/* 12.5 + * A file accessor employing a "host" file provided via the C library. 12.6 + * 12.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 12.8 + * 12.9 + * This program is free software; you can redistribute it and/or 12.10 + * modify it under the terms of the GNU General Public License as 12.11 + * published by the Free Software Foundation; either version 2 of 12.12 + * the License, or (at your option) any later version. 12.13 + * 12.14 + * This program is distributed in the hope that it will be useful, 12.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 12.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12.17 + * GNU General Public License for more details. 12.18 + * 12.19 + * You should have received a copy of the GNU General Public License 12.20 + * along with this program; if not, write to the Free Software 12.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 12.22 + * Boston, MA 02110-1301, USA 12.23 + */ 12.24 + 12.25 #include <stdio.h> 12.26 #include <string.h> 12.27 #include <sys/types.h>
13.1 --- a/files/host_file_accessor.h Mon Apr 12 00:33:14 2021 +0200 13.2 +++ b/files/host_file_accessor.h Tue Apr 13 00:03:18 2021 +0200 13.3 @@ -1,9 +1,32 @@ 13.4 +/* 13.5 + * A file accessor employing a "host" file provided via the C library. 13.6 + * 13.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 13.8 + * 13.9 + * This program is free software; you can redistribute it and/or 13.10 + * modify it under the terms of the GNU General Public License as 13.11 + * published by the Free Software Foundation; either version 2 of 13.12 + * the License, or (at your option) any later version. 13.13 + * 13.14 + * This program is distributed in the hope that it will be useful, 13.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 13.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13.17 + * GNU General Public License for more details. 13.18 + * 13.19 + * You should have received a copy of the GNU General Public License 13.20 + * along with this program; if not, write to the Free Software 13.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 13.22 + * Boston, MA 02110-1301, USA 13.23 + */ 13.24 + 13.25 #pragma once 13.26 13.27 #include <stdio.h> 13.28 13.29 #include "accessor.h" 13.30 13.31 + 13.32 + 13.33 /* A host filesystem file accessor, providing flexpages corresponding to file 13.34 regions. */ 13.35
14.1 --- a/files/host_file_opener.cc Mon Apr 12 00:33:14 2021 +0200 14.2 +++ b/files/host_file_opener.cc Tue Apr 13 00:03:18 2021 +0200 14.3 @@ -1,3 +1,24 @@ 14.4 +/* 14.5 + * An opener for a "host" file provided via the C library. 14.6 + * 14.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 14.8 + * 14.9 + * This program is free software; you can redistribute it and/or 14.10 + * modify it under the terms of the GNU General Public License as 14.11 + * published by the Free Software Foundation; either version 2 of 14.12 + * the License, or (at your option) any later version. 14.13 + * 14.14 + * This program is distributed in the hope that it will be useful, 14.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 14.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14.17 + * GNU General Public License for more details. 14.18 + * 14.19 + * You should have received a copy of the GNU General Public License 14.20 + * along with this program; if not, write to the Free Software 14.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 14.22 + * Boston, MA 02110-1301, USA 14.23 + */ 14.24 + 14.25 #include <sys/stat.h> 14.26 14.27 #include "host_file_accessor.h"
15.1 --- a/files/host_file_opener.h Mon Apr 12 00:33:14 2021 +0200 15.2 +++ b/files/host_file_opener.h Tue Apr 13 00:03:18 2021 +0200 15.3 @@ -1,3 +1,24 @@ 15.4 +/* 15.5 + * An opener for a "host" file provided via the C library. 15.6 + * 15.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 15.8 + * 15.9 + * This program is free software; you can redistribute it and/or 15.10 + * modify it under the terms of the GNU General Public License as 15.11 + * published by the Free Software Foundation; either version 2 of 15.12 + * the License, or (at your option) any later version. 15.13 + * 15.14 + * This program is distributed in the hope that it will be useful, 15.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 15.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15.17 + * GNU General Public License for more details. 15.18 + * 15.19 + * You should have received a copy of the GNU General Public License 15.20 + * along with this program; if not, write to the Free Software 15.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 15.22 + * Boston, MA 02110-1301, USA 15.23 + */ 15.24 + 15.25 #pragma once 15.26 15.27 #include <map>
16.1 --- a/files/opener_context_resource.cc Mon Apr 12 00:33:14 2021 +0200 16.2 +++ b/files/opener_context_resource.cc Tue Apr 13 00:03:18 2021 +0200 16.3 @@ -1,3 +1,24 @@ 16.4 +/* 16.5 + * A context resource offering support for opening files. 16.6 + * 16.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 16.8 + * 16.9 + * This program is free software; you can redistribute it and/or 16.10 + * modify it under the terms of the GNU General Public License as 16.11 + * published by the Free Software Foundation; either version 2 of 16.12 + * the License, or (at your option) any later version. 16.13 + * 16.14 + * This program is distributed in the hope that it will be useful, 16.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 16.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16.17 + * GNU General Public License for more details. 16.18 + * 16.19 + * You should have received a copy of the GNU General Public License 16.20 + * along with this program; if not, write to the Free Software 16.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 16.22 + * Boston, MA 02110-1301, USA 16.23 + */ 16.24 + 16.25 #include "opener_context_resource.h" 16.26 #include "opener_context_object_server.h" 16.27 #include "opener_resource.h"
17.1 --- a/files/opener_context_resource.h Mon Apr 12 00:33:14 2021 +0200 17.2 +++ b/files/opener_context_resource.h Tue Apr 13 00:03:18 2021 +0200 17.3 @@ -1,3 +1,24 @@ 17.4 +/* 17.5 + * A context resource offering support for opening files. 17.6 + * 17.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 17.8 + * 17.9 + * This program is free software; you can redistribute it and/or 17.10 + * modify it under the terms of the GNU General Public License as 17.11 + * published by the Free Software Foundation; either version 2 of 17.12 + * the License, or (at your option) any later version. 17.13 + * 17.14 + * This program is distributed in the hope that it will be useful, 17.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 17.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17.17 + * GNU General Public License for more details. 17.18 + * 17.19 + * You should have received a copy of the GNU General Public License 17.20 + * along with this program; if not, write to the Free Software 17.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 17.22 + * Boston, MA 02110-1301, USA 17.23 + */ 17.24 + 17.25 #pragma once 17.26 17.27 #include "opener_context_object_interface.h"
18.1 --- a/files/opener_resource.cc Mon Apr 12 00:33:14 2021 +0200 18.2 +++ b/files/opener_resource.cc Tue Apr 13 00:03:18 2021 +0200 18.3 @@ -1,3 +1,24 @@ 18.4 +/* 18.5 + * A resource offering support for creating contexts and opening files. 18.6 + * 18.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 18.8 + * 18.9 + * This program is free software; you can redistribute it and/or 18.10 + * modify it under the terms of the GNU General Public License as 18.11 + * published by the Free Software Foundation; either version 2 of 18.12 + * the License, or (at your option) any later version. 18.13 + * 18.14 + * This program is distributed in the hope that it will be useful, 18.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 18.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18.17 + * GNU General Public License for more details. 18.18 + * 18.19 + * You should have received a copy of the GNU General Public License 18.20 + * along with this program; if not, write to the Free Software 18.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 18.22 + * Boston, MA 02110-1301, USA 18.23 + */ 18.24 + 18.25 #include "opener_server.h" 18.26 #include "opener_resource.h" 18.27 #include "resource_server.h"
19.1 --- a/files/opener_resource.h Mon Apr 12 00:33:14 2021 +0200 19.2 +++ b/files/opener_resource.h Tue Apr 13 00:03:18 2021 +0200 19.3 @@ -1,3 +1,24 @@ 19.4 +/* 19.5 + * A resource offering support for creating contexts and opening files. 19.6 + * 19.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 19.8 + * 19.9 + * This program is free software; you can redistribute it and/or 19.10 + * modify it under the terms of the GNU General Public License as 19.11 + * published by the Free Software Foundation; either version 2 of 19.12 + * the License, or (at your option) any later version. 19.13 + * 19.14 + * This program is distributed in the hope that it will be useful, 19.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 19.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19.17 + * GNU General Public License for more details. 19.18 + * 19.19 + * You should have received a copy of the GNU General Public License 19.20 + * along with this program; if not, write to the Free Software 19.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 19.22 + * Boston, MA 02110-1301, USA 19.23 + */ 19.24 + 19.25 #pragma once 19.26 19.27 #include <l4/sys/ipc.h> 19.28 @@ -8,6 +29,8 @@ 19.29 #include "pages.h" 19.30 #include "resource.h" 19.31 19.32 + 19.33 + 19.34 /* Support for providing access to files. */ 19.35 19.36 class OpenerResource : public Resource, public FilePaging, public Opener
20.1 --- a/files/test_file_accessor.cc Mon Apr 12 00:33:14 2021 +0200 20.2 +++ b/files/test_file_accessor.cc Tue Apr 13 00:03:18 2021 +0200 20.3 @@ -1,3 +1,24 @@ 20.4 +/* 20.5 + * A test accessor producing generated content. 20.6 + * 20.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 20.8 + * 20.9 + * This program is free software; you can redistribute it and/or 20.10 + * modify it under the terms of the GNU General Public License as 20.11 + * published by the Free Software Foundation; either version 2 of 20.12 + * the License, or (at your option) any later version. 20.13 + * 20.14 + * This program is distributed in the hope that it will be useful, 20.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 20.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20.17 + * GNU General Public License for more details. 20.18 + * 20.19 + * You should have received a copy of the GNU General Public License 20.20 + * along with this program; if not, write to the Free Software 20.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 20.22 + * Boston, MA 02110-1301, USA 20.23 + */ 20.24 + 20.25 #include <stdio.h> 20.26 #include <string.h> 20.27
21.1 --- a/files/test_file_accessor.h Mon Apr 12 00:33:14 2021 +0200 21.2 +++ b/files/test_file_accessor.h Tue Apr 13 00:03:18 2021 +0200 21.3 @@ -1,7 +1,30 @@ 21.4 +/* 21.5 + * A test accessor producing generated content. 21.6 + * 21.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 21.8 + * 21.9 + * This program is free software; you can redistribute it and/or 21.10 + * modify it under the terms of the GNU General Public License as 21.11 + * published by the Free Software Foundation; either version 2 of 21.12 + * the License, or (at your option) any later version. 21.13 + * 21.14 + * This program is distributed in the hope that it will be useful, 21.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 21.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21.17 + * GNU General Public License for more details. 21.18 + * 21.19 + * You should have received a copy of the GNU General Public License 21.20 + * along with this program; if not, write to the Free Software 21.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 21.22 + * Boston, MA 02110-1301, USA 21.23 + */ 21.24 + 21.25 #pragma once 21.26 21.27 #include "accessor.h" 21.28 21.29 + 21.30 + 21.31 /* A file accessor, providing flexpages corresponding to file regions. */ 21.32 21.33 class TestFileAccessor : public Accessor
22.1 --- a/files/test_file_opener.cc Mon Apr 12 00:33:14 2021 +0200 22.2 +++ b/files/test_file_opener.cc Tue Apr 13 00:03:18 2021 +0200 22.3 @@ -1,3 +1,24 @@ 22.4 +/* 22.5 + * An opener for a test file containing generated content. 22.6 + * 22.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 22.8 + * 22.9 + * This program is free software; you can redistribute it and/or 22.10 + * modify it under the terms of the GNU General Public License as 22.11 + * published by the Free Software Foundation; either version 2 of 22.12 + * the License, or (at your option) any later version. 22.13 + * 22.14 + * This program is distributed in the hope that it will be useful, 22.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 22.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 22.17 + * GNU General Public License for more details. 22.18 + * 22.19 + * You should have received a copy of the GNU General Public License 22.20 + * along with this program; if not, write to the Free Software 22.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 22.22 + * Boston, MA 02110-1301, USA 22.23 + */ 22.24 + 22.25 #include "test_file_accessor.h" 22.26 #include "test_file_opener.h" 22.27
23.1 --- a/files/test_file_opener.h Mon Apr 12 00:33:14 2021 +0200 23.2 +++ b/files/test_file_opener.h Tue Apr 13 00:03:18 2021 +0200 23.3 @@ -1,7 +1,30 @@ 23.4 +/* 23.5 + * An opener for a test file containing generated content. 23.6 + * 23.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 23.8 + * 23.9 + * This program is free software; you can redistribute it and/or 23.10 + * modify it under the terms of the GNU General Public License as 23.11 + * published by the Free Software Foundation; either version 2 of 23.12 + * the License, or (at your option) any later version. 23.13 + * 23.14 + * This program is distributed in the hope that it will be useful, 23.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 23.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23.17 + * GNU General Public License for more details. 23.18 + * 23.19 + * You should have received a copy of the GNU General Public License 23.20 + * along with this program; if not, write to the Free Software 23.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 23.22 + * Boston, MA 02110-1301, USA 23.23 + */ 23.24 + 23.25 #pragma once 23.26 23.27 #include "opener_resource.h" 23.28 23.29 + 23.30 + 23.31 /* Support for providing access to files. */ 23.32 23.33 class TestFileOpener : public OpenerResource
24.1 --- a/generic/accessor.cc Mon Apr 12 00:33:14 2021 +0200 24.2 +++ b/generic/accessor.cc Tue Apr 13 00:03:18 2021 +0200 24.3 @@ -1,3 +1,24 @@ 24.4 +/* 24.5 + * Generic accessor functionality. 24.6 + * 24.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 24.8 + * 24.9 + * This program is free software; you can redistribute it and/or 24.10 + * modify it under the terms of the GNU General Public License as 24.11 + * published by the Free Software Foundation; either version 2 of 24.12 + * the License, or (at your option) any later version. 24.13 + * 24.14 + * This program is distributed in the hope that it will be useful, 24.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 24.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 24.17 + * GNU General Public License for more details. 24.18 + * 24.19 + * You should have received a copy of the GNU General Public License 24.20 + * along with this program; if not, write to the Free Software 24.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 24.22 + * Boston, MA 02110-1301, USA 24.23 + */ 24.24 + 24.25 #include "accessor.h" 24.26 24.27 #include <string.h>
25.1 --- a/generic/accessor.h Mon Apr 12 00:33:14 2021 +0200 25.2 +++ b/generic/accessor.h Tue Apr 13 00:03:18 2021 +0200 25.3 @@ -1,7 +1,30 @@ 25.4 +/* 25.5 + * Generic accessor functionality. 25.6 + * 25.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 25.8 + * 25.9 + * This program is free software; you can redistribute it and/or 25.10 + * modify it under the terms of the GNU General Public License as 25.11 + * published by the Free Software Foundation; either version 2 of 25.12 + * the License, or (at your option) any later version. 25.13 + * 25.14 + * This program is distributed in the hope that it will be useful, 25.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 25.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 25.17 + * GNU General Public License for more details. 25.18 + * 25.19 + * You should have received a copy of the GNU General Public License 25.20 + * along with this program; if not, write to the Free Software 25.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 25.22 + * Boston, MA 02110-1301, USA 25.23 + */ 25.24 + 25.25 #pragma once 25.26 25.27 #include "flexpage.h" 25.28 25.29 + 25.30 + 25.31 /* A file accessor, providing flexpages corresponding to file regions. */ 25.32 25.33 class Accessor
26.1 --- a/generic/pager.cc Mon Apr 12 00:33:14 2021 +0200 26.2 +++ b/generic/pager.cc Tue Apr 13 00:03:18 2021 +0200 26.3 @@ -1,3 +1,24 @@ 26.4 +/* 26.5 + * Generic pager functionality. 26.6 + * 26.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 26.8 + * 26.9 + * This program is free software; you can redistribute it and/or 26.10 + * modify it under the terms of the GNU General Public License as 26.11 + * published by the Free Software Foundation; either version 2 of 26.12 + * the License, or (at your option) any later version. 26.13 + * 26.14 + * This program is distributed in the hope that it will be useful, 26.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 26.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 26.17 + * GNU General Public License for more details. 26.18 + * 26.19 + * You should have received a copy of the GNU General Public License 26.20 + * along with this program; if not, write to the Free Software 26.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 26.22 + * Boston, MA 02110-1301, USA 26.23 + */ 26.24 + 26.25 #include "dataspace_server.h" 26.26 #include "ipc.h" 26.27 #include "pager.h"
27.1 --- a/generic/pager.h Mon Apr 12 00:33:14 2021 +0200 27.2 +++ b/generic/pager.h Tue Apr 13 00:03:18 2021 +0200 27.3 @@ -1,3 +1,24 @@ 27.4 +/* 27.5 + * Generic pager functionality. 27.6 + * 27.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 27.8 + * 27.9 + * This program is free software; you can redistribute it and/or 27.10 + * modify it under the terms of the GNU General Public License as 27.11 + * published by the Free Software Foundation; either version 2 of 27.12 + * the License, or (at your option) any later version. 27.13 + * 27.14 + * This program is distributed in the hope that it will be useful, 27.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 27.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27.17 + * GNU General Public License for more details. 27.18 + * 27.19 + * You should have received a copy of the GNU General Public License 27.20 + * along with this program; if not, write to the Free Software 27.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 27.22 + * Boston, MA 02110-1301, USA 27.23 + */ 27.24 + 27.25 #pragma once 27.26 27.27 #include <systypes/base.h>
28.1 --- a/generic/simple_pager.cc Mon Apr 12 00:33:14 2021 +0200 28.2 +++ b/generic/simple_pager.cc Tue Apr 13 00:03:18 2021 +0200 28.3 @@ -1,3 +1,24 @@ 28.4 +/* 28.5 + * A simple pager exposing a single memory region. 28.6 + * 28.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 28.8 + * 28.9 + * This program is free software; you can redistribute it and/or 28.10 + * modify it under the terms of the GNU General Public License as 28.11 + * published by the Free Software Foundation; either version 2 of 28.12 + * the License, or (at your option) any later version. 28.13 + * 28.14 + * This program is distributed in the hope that it will be useful, 28.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 28.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 28.17 + * GNU General Public License for more details. 28.18 + * 28.19 + * You should have received a copy of the GNU General Public License 28.20 + * along with this program; if not, write to the Free Software 28.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 28.22 + * Boston, MA 02110-1301, USA 28.23 + */ 28.24 + 28.25 #include <l4/re/c/dataspace.h> 28.26 28.27 #include "dataspace_server.h"
29.1 --- a/generic/simple_pager.h Mon Apr 12 00:33:14 2021 +0200 29.2 +++ b/generic/simple_pager.h Tue Apr 13 00:03:18 2021 +0200 29.3 @@ -1,3 +1,24 @@ 29.4 +/* 29.5 + * A simple pager exposing a single memory region. 29.6 + * 29.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 29.8 + * 29.9 + * This program is free software; you can redistribute it and/or 29.10 + * modify it under the terms of the GNU General Public License as 29.11 + * published by the Free Software Foundation; either version 2 of 29.12 + * the License, or (at your option) any later version. 29.13 + * 29.14 + * This program is distributed in the hope that it will be useful, 29.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 29.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 29.17 + * GNU General Public License for more details. 29.18 + * 29.19 + * You should have received a copy of the GNU General Public License 29.20 + * along with this program; if not, write to the Free Software 29.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 29.22 + * Boston, MA 02110-1301, USA 29.23 + */ 29.24 + 29.25 #pragma once 29.26 29.27 #include "dataspace_interface.h"
30.1 --- a/generic/types.h Mon Apr 12 00:33:14 2021 +0200 30.2 +++ b/generic/types.h Tue Apr 13 00:03:18 2021 +0200 30.3 @@ -1,5 +1,28 @@ 30.4 +/* 30.5 + * Miscellaneous types. 30.6 + * 30.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 30.8 + * 30.9 + * This program is free software; you can redistribute it and/or 30.10 + * modify it under the terms of the GNU General Public License as 30.11 + * published by the Free Software Foundation; either version 2 of 30.12 + * the License, or (at your option) any later version. 30.13 + * 30.14 + * This program is distributed in the hope that it will be useful, 30.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 30.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 30.17 + * GNU General Public License for more details. 30.18 + * 30.19 + * You should have received a copy of the GNU General Public License 30.20 + * along with this program; if not, write to the Free Software 30.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 30.22 + * Boston, MA 02110-1301, USA 30.23 + */ 30.24 + 30.25 #pragma once 30.26 30.27 + 30.28 + 30.29 /* File identification. */ 30.30 30.31 typedef unsigned long fileid_t;
31.1 --- a/mapping/access_map.cc Mon Apr 12 00:33:14 2021 +0200 31.2 +++ b/mapping/access_map.cc Tue Apr 13 00:03:18 2021 +0200 31.3 @@ -1,3 +1,24 @@ 31.4 +/* 31.5 + * An access map providing memory corresponding to file regions. 31.6 + * 31.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 31.8 + * 31.9 + * This program is free software; you can redistribute it and/or 31.10 + * modify it under the terms of the GNU General Public License as 31.11 + * published by the Free Software Foundation; either version 2 of 31.12 + * the License, or (at your option) any later version. 31.13 + * 31.14 + * This program is distributed in the hope that it will be useful, 31.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 31.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 31.17 + * GNU General Public License for more details. 31.18 + * 31.19 + * You should have received a copy of the GNU General Public License 31.20 + * along with this program; if not, write to the Free Software 31.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 31.22 + * Boston, MA 02110-1301, USA 31.23 + */ 31.24 + 31.25 #include "access_map.h" 31.26 31.27 /* Return the flexpage supporting 'position'. */
32.1 --- a/mapping/access_map.h Mon Apr 12 00:33:14 2021 +0200 32.2 +++ b/mapping/access_map.h Tue Apr 13 00:03:18 2021 +0200 32.3 @@ -1,3 +1,24 @@ 32.4 +/* 32.5 + * An access map providing memory corresponding to file regions. 32.6 + * 32.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 32.8 + * 32.9 + * This program is free software; you can redistribute it and/or 32.10 + * modify it under the terms of the GNU General Public License as 32.11 + * published by the Free Software Foundation; either version 2 of 32.12 + * the License, or (at your option) any later version. 32.13 + * 32.14 + * This program is distributed in the hope that it will be useful, 32.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 32.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 32.17 + * GNU General Public License for more details. 32.18 + * 32.19 + * You should have received a copy of the GNU General Public License 32.20 + * along with this program; if not, write to the Free Software 32.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 32.22 + * Boston, MA 02110-1301, USA 32.23 + */ 32.24 + 32.25 #pragma once 32.26 32.27 #include "flexpage.h" 32.28 @@ -7,11 +28,15 @@ 32.29 #include <map> 32.30 #include <mutex> 32.31 32.32 + 32.33 + 32.34 /* Collection types. */ 32.35 32.36 typedef std::map<offset_t, Flexpage *> _AccessMap; 32.37 typedef std::pair<offset_t, Flexpage *> _AccessMapEntry; 32.38 32.39 + 32.40 + 32.41 /* A mapping from file positions to flexpages. */ 32.42 32.43 class AccessMap
33.1 --- a/mapping/flexpage.cc Mon Apr 12 00:33:14 2021 +0200 33.2 +++ b/mapping/flexpage.cc Tue Apr 13 00:03:18 2021 +0200 33.3 @@ -1,3 +1,24 @@ 33.4 +/* 33.5 + * A flexpage abstraction. 33.6 + * 33.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 33.8 + * 33.9 + * This program is free software; you can redistribute it and/or 33.10 + * modify it under the terms of the GNU General Public License as 33.11 + * published by the Free Software Foundation; either version 2 of 33.12 + * the License, or (at your option) any later version. 33.13 + * 33.14 + * This program is distributed in the hope that it will be useful, 33.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 33.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 33.17 + * GNU General Public License for more details. 33.18 + * 33.19 + * You should have received a copy of the GNU General Public License 33.20 + * along with this program; if not, write to the Free Software 33.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 33.22 + * Boston, MA 02110-1301, USA 33.23 + */ 33.24 + 33.25 #include <algorithm> 33.26 33.27 #include "flexpage.h"
34.1 --- a/mapping/flexpage.h Mon Apr 12 00:33:14 2021 +0200 34.2 +++ b/mapping/flexpage.h Tue Apr 13 00:03:18 2021 +0200 34.3 @@ -1,3 +1,24 @@ 34.4 +/* 34.5 + * A flexpage abstraction. 34.6 + * 34.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 34.8 + * 34.9 + * This program is free software; you can redistribute it and/or 34.10 + * modify it under the terms of the GNU General Public License as 34.11 + * published by the Free Software Foundation; either version 2 of 34.12 + * the License, or (at your option) any later version. 34.13 + * 34.14 + * This program is distributed in the hope that it will be useful, 34.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 34.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 34.17 + * GNU General Public License for more details. 34.18 + * 34.19 + * You should have received a copy of the GNU General Public License 34.20 + * along with this program; if not, write to the Free Software 34.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 34.22 + * Boston, MA 02110-1301, USA 34.23 + */ 34.24 + 34.25 #pragma once 34.26 34.27 #include "memory_utils.h"
35.1 --- a/mapping/ipc.cc Mon Apr 12 00:33:14 2021 +0200 35.2 +++ b/mapping/ipc.cc Tue Apr 13 00:03:18 2021 +0200 35.3 @@ -1,3 +1,24 @@ 35.4 +/* 35.5 + * Interprocess communication utilities. 35.6 + * 35.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 35.8 + * 35.9 + * This program is free software; you can redistribute it and/or 35.10 + * modify it under the terms of the GNU General Public License as 35.11 + * published by the Free Software Foundation; either version 2 of 35.12 + * the License, or (at your option) any later version. 35.13 + * 35.14 + * This program is distributed in the hope that it will be useful, 35.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 35.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 35.17 + * GNU General Public License for more details. 35.18 + * 35.19 + * You should have received a copy of the GNU General Public License 35.20 + * along with this program; if not, write to the Free Software 35.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 35.22 + * Boston, MA 02110-1301, USA 35.23 + */ 35.24 + 35.25 #include <l4/re/c/dataspace.h> 35.26 #include <l4/re/consts.h> 35.27 #include <l4/sys/task.h>
36.1 --- a/mapping/ipc.h Mon Apr 12 00:33:14 2021 +0200 36.2 +++ b/mapping/ipc.h Tue Apr 13 00:03:18 2021 +0200 36.3 @@ -1,3 +1,24 @@ 36.4 +/* 36.5 + * Interprocess communication utilities. 36.6 + * 36.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 36.8 + * 36.9 + * This program is free software; you can redistribute it and/or 36.10 + * modify it under the terms of the GNU General Public License as 36.11 + * published by the Free Software Foundation; either version 2 of 36.12 + * the License, or (at your option) any later version. 36.13 + * 36.14 + * This program is distributed in the hope that it will be useful, 36.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 36.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 36.17 + * GNU General Public License for more details. 36.18 + * 36.19 + * You should have received a copy of the GNU General Public License 36.20 + * along with this program; if not, write to the Free Software 36.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 36.22 + * Boston, MA 02110-1301, USA 36.23 + */ 36.24 + 36.25 #pragma once 36.26 36.27 #include <l4/sys/ipc.h>
37.1 --- a/mapping/page_mapper.cc Mon Apr 12 00:33:14 2021 +0200 37.2 +++ b/mapping/page_mapper.cc Tue Apr 13 00:03:18 2021 +0200 37.3 @@ -1,3 +1,24 @@ 37.4 +/* 37.5 + * A page mapper providing memory pages to satisfy file accesses. 37.6 + * 37.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 37.8 + * 37.9 + * This program is free software; you can redistribute it and/or 37.10 + * modify it under the terms of the GNU General Public License as 37.11 + * published by the Free Software Foundation; either version 2 of 37.12 + * the License, or (at your option) any later version. 37.13 + * 37.14 + * This program is distributed in the hope that it will be useful, 37.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 37.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 37.17 + * GNU General Public License for more details. 37.18 + * 37.19 + * You should have received a copy of the GNU General Public License 37.20 + * along with this program; if not, write to the Free Software 37.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 37.22 + * Boston, MA 02110-1301, USA 37.23 + */ 37.24 + 37.25 #include "ipc.h" 37.26 #include "page_mapper.h" 37.27
38.1 --- a/mapping/page_mapper.h Mon Apr 12 00:33:14 2021 +0200 38.2 +++ b/mapping/page_mapper.h Tue Apr 13 00:03:18 2021 +0200 38.3 @@ -1,3 +1,24 @@ 38.4 +/* 38.5 + * A page mapper providing memory pages to satisfy file accesses. 38.6 + * 38.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 38.8 + * 38.9 + * This program is free software; you can redistribute it and/or 38.10 + * modify it under the terms of the GNU General Public License as 38.11 + * published by the Free Software Foundation; either version 2 of 38.12 + * the License, or (at your option) any later version. 38.13 + * 38.14 + * This program is distributed in the hope that it will be useful, 38.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 38.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 38.17 + * GNU General Public License for more details. 38.18 + * 38.19 + * You should have received a copy of the GNU General Public License 38.20 + * along with this program; if not, write to the Free Software 38.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 38.22 + * Boston, MA 02110-1301, USA 38.23 + */ 38.24 + 38.25 #pragma once 38.26 38.27 #include "access_map.h" 38.28 @@ -6,6 +27,8 @@ 38.29 38.30 #include <mutex> 38.31 38.32 + 38.33 + 38.34 /* A file mapper, associating flexpages with file regions. */ 38.35 38.36 class PageMapper : public PageOwner
39.1 --- a/mapping/page_owner.h Mon Apr 12 00:33:14 2021 +0200 39.2 +++ b/mapping/page_owner.h Tue Apr 13 00:03:18 2021 +0200 39.3 @@ -1,7 +1,30 @@ 39.4 +/* 39.5 + * A page owner abstraction, indicating the current user of a memory region. 39.6 + * 39.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 39.8 + * 39.9 + * This program is free software; you can redistribute it and/or 39.10 + * modify it under the terms of the GNU General Public License as 39.11 + * published by the Free Software Foundation; either version 2 of 39.12 + * the License, or (at your option) any later version. 39.13 + * 39.14 + * This program is distributed in the hope that it will be useful, 39.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 39.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 39.17 + * GNU General Public License for more details. 39.18 + * 39.19 + * You should have received a copy of the GNU General Public License 39.20 + * along with this program; if not, write to the Free Software 39.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 39.22 + * Boston, MA 02110-1301, USA 39.23 + */ 39.24 + 39.25 #pragma once 39.26 39.27 #include "flexpage.h" 39.28 39.29 + 39.30 + 39.31 /* The owner of a flexpage. */ 39.32 39.33 class PageOwner
40.1 --- a/mapping/send_flexpage.h Mon Apr 12 00:33:14 2021 +0200 40.2 +++ b/mapping/send_flexpage.h Tue Apr 13 00:03:18 2021 +0200 40.3 @@ -1,7 +1,30 @@ 40.4 +/* 40.5 + * A "send" flexpage abstraction for communicating memory mappings. 40.6 + * 40.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 40.8 + * 40.9 + * This program is free software; you can redistribute it and/or 40.10 + * modify it under the terms of the GNU General Public License as 40.11 + * published by the Free Software Foundation; either version 2 of 40.12 + * the License, or (at your option) any later version. 40.13 + * 40.14 + * This program is distributed in the hope that it will be useful, 40.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 40.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 40.17 + * GNU General Public License for more details. 40.18 + * 40.19 + * You should have received a copy of the GNU General Public License 40.20 + * along with this program; if not, write to the Free Software 40.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 40.22 + * Boston, MA 02110-1301, USA 40.23 + */ 40.24 + 40.25 #pragma once 40.26 40.27 #include "types.h" 40.28 40.29 + 40.30 + 40.31 /* A "send" flexpage abstraction. */ 40.32 40.33 class SendFlexpage
41.1 --- a/memory/memory.h Mon Apr 12 00:33:14 2021 +0200 41.2 +++ b/memory/memory.h Tue Apr 13 00:03:18 2021 +0200 41.3 @@ -1,3 +1,24 @@ 41.4 +/* 41.5 + * A generic memory pool abstraction. 41.6 + * 41.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 41.8 + * 41.9 + * This program is free software; you can redistribute it and/or 41.10 + * modify it under the terms of the GNU General Public License as 41.11 + * published by the Free Software Foundation; either version 2 of 41.12 + * the License, or (at your option) any later version. 41.13 + * 41.14 + * This program is distributed in the hope that it will be useful, 41.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 41.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 41.17 + * GNU General Public License for more details. 41.18 + * 41.19 + * You should have received a copy of the GNU General Public License 41.20 + * along with this program; if not, write to the Free Software 41.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 41.22 + * Boston, MA 02110-1301, USA 41.23 + */ 41.24 + 41.25 #pragma once 41.26 41.27 #include "region.h"
42.1 --- a/memory/memory_incremental.cc Mon Apr 12 00:33:14 2021 +0200 42.2 +++ b/memory/memory_incremental.cc Tue Apr 13 00:03:18 2021 +0200 42.3 @@ -1,8 +1,28 @@ 42.4 +/* 42.5 + * A memory pool allocating a region at a time from the system. 42.6 + * 42.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 42.8 + * 42.9 + * This program is free software; you can redistribute it and/or 42.10 + * modify it under the terms of the GNU General Public License as 42.11 + * published by the Free Software Foundation; either version 2 of 42.12 + * the License, or (at your option) any later version. 42.13 + * 42.14 + * This program is distributed in the hope that it will be useful, 42.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 42.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 42.17 + * GNU General Public License for more details. 42.18 + * 42.19 + * You should have received a copy of the GNU General Public License 42.20 + * along with this program; if not, write to the Free Software 42.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 42.22 + * Boston, MA 02110-1301, USA 42.23 + */ 42.24 + 42.25 #include "memory_incremental.h" 42.26 42.27 #include <stdlib.h> 42.28 42.29 - 42.30 /* Initialise the memory pool with an optional 'limit' in pages. */ 42.31 42.32 MemoryIncremental::MemoryIncremental(unsigned int limit, offset_t region_size)
43.1 --- a/memory/memory_incremental.h Mon Apr 12 00:33:14 2021 +0200 43.2 +++ b/memory/memory_incremental.h Tue Apr 13 00:03:18 2021 +0200 43.3 @@ -1,3 +1,24 @@ 43.4 +/* 43.5 + * A memory pool allocating a region at a time from the system. 43.6 + * 43.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 43.8 + * 43.9 + * This program is free software; you can redistribute it and/or 43.10 + * modify it under the terms of the GNU General Public License as 43.11 + * published by the Free Software Foundation; either version 2 of 43.12 + * the License, or (at your option) any later version. 43.13 + * 43.14 + * This program is distributed in the hope that it will be useful, 43.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 43.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 43.17 + * GNU General Public License for more details. 43.18 + * 43.19 + * You should have received a copy of the GNU General Public License 43.20 + * along with this program; if not, write to the Free Software 43.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 43.22 + * Boston, MA 02110-1301, USA 43.23 + */ 43.24 + 43.25 #pragma once 43.26 43.27 #include <systypes/base.h>
44.1 --- a/memory/memory_preallocated.cc Mon Apr 12 00:33:14 2021 +0200 44.2 +++ b/memory/memory_preallocated.cc Tue Apr 13 00:03:18 2021 +0200 44.3 @@ -1,3 +1,24 @@ 44.4 +/* 44.5 + * A memory pool providing regions from a preallocated amount of memory. 44.6 + * 44.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 44.8 + * 44.9 + * This program is free software; you can redistribute it and/or 44.10 + * modify it under the terms of the GNU General Public License as 44.11 + * published by the Free Software Foundation; either version 2 of 44.12 + * the License, or (at your option) any later version. 44.13 + * 44.14 + * This program is distributed in the hope that it will be useful, 44.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 44.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 44.17 + * GNU General Public License for more details. 44.18 + * 44.19 + * You should have received a copy of the GNU General Public License 44.20 + * along with this program; if not, write to the Free Software 44.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 44.22 + * Boston, MA 02110-1301, USA 44.23 + */ 44.24 + 44.25 #include "memory_preallocated.h" 44.26 44.27
45.1 --- a/memory/memory_preallocated.h Mon Apr 12 00:33:14 2021 +0200 45.2 +++ b/memory/memory_preallocated.h Tue Apr 13 00:03:18 2021 +0200 45.3 @@ -1,3 +1,24 @@ 45.4 +/* 45.5 + * A memory pool providing regions from a preallocated amount of memory. 45.6 + * 45.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 45.8 + * 45.9 + * This program is free software; you can redistribute it and/or 45.10 + * modify it under the terms of the GNU General Public License as 45.11 + * published by the Free Software Foundation; either version 2 of 45.12 + * the License, or (at your option) any later version. 45.13 + * 45.14 + * This program is distributed in the hope that it will be useful, 45.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 45.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 45.17 + * GNU General Public License for more details. 45.18 + * 45.19 + * You should have received a copy of the GNU General Public License 45.20 + * along with this program; if not, write to the Free Software 45.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 45.22 + * Boston, MA 02110-1301, USA 45.23 + */ 45.24 + 45.25 #pragma once 45.26 45.27 #include <systypes/base.h>
46.1 --- a/memory/memory_utils.cc Mon Apr 12 00:33:14 2021 +0200 46.2 +++ b/memory/memory_utils.cc Tue Apr 13 00:03:18 2021 +0200 46.3 @@ -1,3 +1,24 @@ 46.4 +/* 46.5 + * Memory quantity calculation utilities. 46.6 + * 46.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 46.8 + * 46.9 + * This program is free software; you can redistribute it and/or 46.10 + * modify it under the terms of the GNU General Public License as 46.11 + * published by the Free Software Foundation; either version 2 of 46.12 + * the License, or (at your option) any later version. 46.13 + * 46.14 + * This program is distributed in the hope that it will be useful, 46.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 46.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 46.17 + * GNU General Public License for more details. 46.18 + * 46.19 + * You should have received a copy of the GNU General Public License 46.20 + * along with this program; if not, write to the Free Software 46.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 46.22 + * Boston, MA 02110-1301, USA 46.23 + */ 46.24 + 46.25 #include "memory_utils.h" 46.26 46.27
47.1 --- a/memory/memory_utils.h Mon Apr 12 00:33:14 2021 +0200 47.2 +++ b/memory/memory_utils.h Tue Apr 13 00:03:18 2021 +0200 47.3 @@ -1,3 +1,24 @@ 47.4 +/* 47.5 + * Memory quantity calculation utilities. 47.6 + * 47.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 47.8 + * 47.9 + * This program is free software; you can redistribute it and/or 47.10 + * modify it under the terms of the GNU General Public License as 47.11 + * published by the Free Software Foundation; either version 2 of 47.12 + * the License, or (at your option) any later version. 47.13 + * 47.14 + * This program is distributed in the hope that it will be useful, 47.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 47.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 47.17 + * GNU General Public License for more details. 47.18 + * 47.19 + * You should have received a copy of the GNU General Public License 47.20 + * along with this program; if not, write to the Free Software 47.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 47.22 + * Boston, MA 02110-1301, USA 47.23 + */ 47.24 + 47.25 #pragma once 47.26 47.27 #include <systypes/base.h>
48.1 --- a/memory/region.cc Mon Apr 12 00:33:14 2021 +0200 48.2 +++ b/memory/region.cc Tue Apr 13 00:03:18 2021 +0200 48.3 @@ -1,3 +1,24 @@ 48.4 +/* 48.5 + * Memory region abstractions. 48.6 + * 48.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 48.8 + * 48.9 + * This program is free software; you can redistribute it and/or 48.10 + * modify it under the terms of the GNU General Public License as 48.11 + * published by the Free Software Foundation; either version 2 of 48.12 + * the License, or (at your option) any later version. 48.13 + * 48.14 + * This program is distributed in the hope that it will be useful, 48.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 48.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 48.17 + * GNU General Public License for more details. 48.18 + * 48.19 + * You should have received a copy of the GNU General Public License 48.20 + * along with this program; if not, write to the Free Software 48.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 48.22 + * Boston, MA 02110-1301, USA 48.23 + */ 48.24 + 48.25 #include <string.h> 48.26 #include <stdlib.h> 48.27
49.1 --- a/memory/region.h Mon Apr 12 00:33:14 2021 +0200 49.2 +++ b/memory/region.h Tue Apr 13 00:03:18 2021 +0200 49.3 @@ -1,3 +1,24 @@ 49.4 +/* 49.5 + * Memory region abstractions. 49.6 + * 49.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 49.8 + * 49.9 + * This program is free software; you can redistribute it and/or 49.10 + * modify it under the terms of the GNU General Public License as 49.11 + * published by the Free Software Foundation; either version 2 of 49.12 + * the License, or (at your option) any later version. 49.13 + * 49.14 + * This program is distributed in the hope that it will be useful, 49.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 49.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 49.17 + * GNU General Public License for more details. 49.18 + * 49.19 + * You should have received a copy of the GNU General Public License 49.20 + * along with this program; if not, write to the Free Software 49.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 49.22 + * Boston, MA 02110-1301, USA 49.23 + */ 49.24 + 49.25 #pragma once 49.26 49.27 #include <systypes/base.h>
50.1 --- a/pages/page_queue.cc Mon Apr 12 00:33:14 2021 +0200 50.2 +++ b/pages/page_queue.cc Tue Apr 13 00:03:18 2021 +0200 50.3 @@ -1,3 +1,24 @@ 50.4 +/* 50.5 + * A page queue abstraction. 50.6 + * 50.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 50.8 + * 50.9 + * This program is free software; you can redistribute it and/or 50.10 + * modify it under the terms of the GNU General Public License as 50.11 + * published by the Free Software Foundation; either version 2 of 50.12 + * the License, or (at your option) any later version. 50.13 + * 50.14 + * This program is distributed in the hope that it will be useful, 50.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 50.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 50.17 + * GNU General Public License for more details. 50.18 + * 50.19 + * You should have received a copy of the GNU General Public License 50.20 + * along with this program; if not, write to the Free Software 50.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 50.22 + * Boston, MA 02110-1301, USA 50.23 + */ 50.24 + 50.25 #include "page_queue.h" 50.26 50.27
51.1 --- a/pages/page_queue.h Mon Apr 12 00:33:14 2021 +0200 51.2 +++ b/pages/page_queue.h Tue Apr 13 00:03:18 2021 +0200 51.3 @@ -1,3 +1,24 @@ 51.4 +/* 51.5 + * A page queue abstraction. 51.6 + * 51.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 51.8 + * 51.9 + * This program is free software; you can redistribute it and/or 51.10 + * modify it under the terms of the GNU General Public License as 51.11 + * published by the Free Software Foundation; either version 2 of 51.12 + * the License, or (at your option) any later version. 51.13 + * 51.14 + * This program is distributed in the hope that it will be useful, 51.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 51.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 51.17 + * GNU General Public License for more details. 51.18 + * 51.19 + * You should have received a copy of the GNU General Public License 51.20 + * along with this program; if not, write to the Free Software 51.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 51.22 + * Boston, MA 02110-1301, USA 51.23 + */ 51.24 + 51.25 #pragma once 51.26 51.27 #include <list>
52.1 --- a/pages/page_queue_partitioned.cc Mon Apr 12 00:33:14 2021 +0200 52.2 +++ b/pages/page_queue_partitioned.cc Tue Apr 13 00:03:18 2021 +0200 52.3 @@ -1,3 +1,24 @@ 52.4 +/* 52.5 + * A page queue retaining two internal collections of memory pages. 52.6 + * 52.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 52.8 + * 52.9 + * This program is free software; you can redistribute it and/or 52.10 + * modify it under the terms of the GNU General Public License as 52.11 + * published by the Free Software Foundation; either version 2 of 52.12 + * the License, or (at your option) any later version. 52.13 + * 52.14 + * This program is distributed in the hope that it will be useful, 52.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 52.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 52.17 + * GNU General Public License for more details. 52.18 + * 52.19 + * You should have received a copy of the GNU General Public License 52.20 + * along with this program; if not, write to the Free Software 52.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 52.22 + * Boston, MA 02110-1301, USA 52.23 + */ 52.24 + 52.25 #include "page_queue_partitioned.h" 52.26 52.27
53.1 --- a/pages/page_queue_partitioned.h Mon Apr 12 00:33:14 2021 +0200 53.2 +++ b/pages/page_queue_partitioned.h Tue Apr 13 00:03:18 2021 +0200 53.3 @@ -1,3 +1,24 @@ 53.4 +/* 53.5 + * A page queue retaining two internal collections of memory pages. 53.6 + * 53.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 53.8 + * 53.9 + * This program is free software; you can redistribute it and/or 53.10 + * modify it under the terms of the GNU General Public License as 53.11 + * published by the Free Software Foundation; either version 2 of 53.12 + * the License, or (at your option) any later version. 53.13 + * 53.14 + * This program is distributed in the hope that it will be useful, 53.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 53.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 53.17 + * GNU General Public License for more details. 53.18 + * 53.19 + * You should have received a copy of the GNU General Public License 53.20 + * along with this program; if not, write to the Free Software 53.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 53.22 + * Boston, MA 02110-1301, USA 53.23 + */ 53.24 + 53.25 #pragma once 53.26 53.27 #include <condition_variable>
54.1 --- a/pages/page_queue_shared.cc Mon Apr 12 00:33:14 2021 +0200 54.2 +++ b/pages/page_queue_shared.cc Tue Apr 13 00:03:18 2021 +0200 54.3 @@ -1,3 +1,24 @@ 54.4 +/* 54.5 + * A page queue whose users take turns to access pages. 54.6 + * 54.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 54.8 + * 54.9 + * This program is free software; you can redistribute it and/or 54.10 + * modify it under the terms of the GNU General Public License as 54.11 + * published by the Free Software Foundation; either version 2 of 54.12 + * the License, or (at your option) any later version. 54.13 + * 54.14 + * This program is distributed in the hope that it will be useful, 54.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 54.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 54.17 + * GNU General Public License for more details. 54.18 + * 54.19 + * You should have received a copy of the GNU General Public License 54.20 + * along with this program; if not, write to the Free Software 54.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 54.22 + * Boston, MA 02110-1301, USA 54.23 + */ 54.24 + 54.25 #include "page_queue_shared.h" 54.26 54.27
55.1 --- a/pages/page_queue_shared.h Mon Apr 12 00:33:14 2021 +0200 55.2 +++ b/pages/page_queue_shared.h Tue Apr 13 00:03:18 2021 +0200 55.3 @@ -1,3 +1,24 @@ 55.4 +/* 55.5 + * A page queue whose users take turns to access pages. 55.6 + * 55.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 55.8 + * 55.9 + * This program is free software; you can redistribute it and/or 55.10 + * modify it under the terms of the GNU General Public License as 55.11 + * published by the Free Software Foundation; either version 2 of 55.12 + * the License, or (at your option) any later version. 55.13 + * 55.14 + * This program is distributed in the hope that it will be useful, 55.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 55.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 55.17 + * GNU General Public License for more details. 55.18 + * 55.19 + * You should have received a copy of the GNU General Public License 55.20 + * along with this program; if not, write to the Free Software 55.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 55.22 + * Boston, MA 02110-1301, USA 55.23 + */ 55.24 + 55.25 #pragma once 55.26 55.27 #include <condition_variable>
56.1 --- a/pages/pages.cc Mon Apr 12 00:33:14 2021 +0200 56.2 +++ b/pages/pages.cc Tue Apr 13 00:03:18 2021 +0200 56.3 @@ -1,3 +1,24 @@ 56.4 +/* 56.5 + * A page collection abstraction providing pages from a queue to users. 56.6 + * 56.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 56.8 + * 56.9 + * This program is free software; you can redistribute it and/or 56.10 + * modify it under the terms of the GNU General Public License as 56.11 + * published by the Free Software Foundation; either version 2 of 56.12 + * the License, or (at your option) any later version. 56.13 + * 56.14 + * This program is distributed in the hope that it will be useful, 56.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 56.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 56.17 + * GNU General Public License for more details. 56.18 + * 56.19 + * You should have received a copy of the GNU General Public License 56.20 + * along with this program; if not, write to the Free Software 56.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 56.22 + * Boston, MA 02110-1301, USA 56.23 + */ 56.24 + 56.25 #include "memory_incremental.h" 56.26 #include "pages.h" 56.27
57.1 --- a/pages/pages.h Mon Apr 12 00:33:14 2021 +0200 57.2 +++ b/pages/pages.h Tue Apr 13 00:03:18 2021 +0200 57.3 @@ -1,3 +1,24 @@ 57.4 +/* 57.5 + * A page collection abstraction providing pages from a queue to users. 57.6 + * 57.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 57.8 + * 57.9 + * This program is free software; you can redistribute it and/or 57.10 + * modify it under the terms of the GNU General Public License as 57.11 + * published by the Free Software Foundation; either version 2 of 57.12 + * the License, or (at your option) any later version. 57.13 + * 57.14 + * This program is distributed in the hope that it will be useful, 57.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 57.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 57.17 + * GNU General Public License for more details. 57.18 + * 57.19 + * You should have received a copy of the GNU General Public License 57.20 + * along with this program; if not, write to the Free Software 57.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 57.22 + * Boston, MA 02110-1301, USA 57.23 + */ 57.24 + 57.25 #pragma once 57.26 57.27 #include "flexpage.h"
58.1 --- a/pipes/pipe_accessor.cc Mon Apr 12 00:33:14 2021 +0200 58.2 +++ b/pipes/pipe_accessor.cc Tue Apr 13 00:03:18 2021 +0200 58.3 @@ -1,3 +1,24 @@ 58.4 +/* 58.5 + * A pipe accessor merely resetting allocated memory for use. 58.6 + * 58.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 58.8 + * 58.9 + * This program is free software; you can redistribute it and/or 58.10 + * modify it under the terms of the GNU General Public License as 58.11 + * published by the Free Software Foundation; either version 2 of 58.12 + * the License, or (at your option) any later version. 58.13 + * 58.14 + * This program is distributed in the hope that it will be useful, 58.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 58.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 58.17 + * GNU General Public License for more details. 58.18 + * 58.19 + * You should have received a copy of the GNU General Public License 58.20 + * along with this program; if not, write to the Free Software 58.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 58.22 + * Boston, MA 02110-1301, USA 58.23 + */ 58.24 + 58.25 #include "pipe_accessor.h" 58.26 58.27 #include <string.h>
59.1 --- a/pipes/pipe_accessor.h Mon Apr 12 00:33:14 2021 +0200 59.2 +++ b/pipes/pipe_accessor.h Tue Apr 13 00:03:18 2021 +0200 59.3 @@ -1,7 +1,30 @@ 59.4 +/* 59.5 + * A pipe accessor merely resetting allocated memory for use. 59.6 + * 59.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 59.8 + * 59.9 + * This program is free software; you can redistribute it and/or 59.10 + * modify it under the terms of the GNU General Public License as 59.11 + * published by the Free Software Foundation; either version 2 of 59.12 + * the License, or (at your option) any later version. 59.13 + * 59.14 + * This program is distributed in the hope that it will be useful, 59.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 59.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 59.17 + * GNU General Public License for more details. 59.18 + * 59.19 + * You should have received a copy of the GNU General Public License 59.20 + * along with this program; if not, write to the Free Software 59.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 59.22 + * Boston, MA 02110-1301, USA 59.23 + */ 59.24 + 59.25 #pragma once 59.26 59.27 #include "accessor.h" 59.28 59.29 + 59.30 + 59.31 /* A pipe accessor, providing flexpages for pipe sections. */ 59.32 59.33 class PipeAccessor : public Accessor
60.1 --- a/pipes/pipe_opener_resource.cc Mon Apr 12 00:33:14 2021 +0200 60.2 +++ b/pipes/pipe_opener_resource.cc Tue Apr 13 00:03:18 2021 +0200 60.3 @@ -1,3 +1,24 @@ 60.4 +/* 60.5 + * A pipe opener resource. 60.6 + * 60.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 60.8 + * 60.9 + * This program is free software; you can redistribute it and/or 60.10 + * modify it under the terms of the GNU General Public License as 60.11 + * published by the Free Software Foundation; either version 2 of 60.12 + * the License, or (at your option) any later version. 60.13 + * 60.14 + * This program is distributed in the hope that it will be useful, 60.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 60.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 60.17 + * GNU General Public License for more details. 60.18 + * 60.19 + * You should have received a copy of the GNU General Public License 60.20 + * along with this program; if not, write to the Free Software 60.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 60.22 + * Boston, MA 02110-1301, USA 60.23 + */ 60.24 + 60.25 #include "memory_incremental.h" 60.26 #include "pipe_opener_resource.h" 60.27 #include "pipe_opener_server.h"
61.1 --- a/pipes/pipe_opener_resource.h Mon Apr 12 00:33:14 2021 +0200 61.2 +++ b/pipes/pipe_opener_resource.h Tue Apr 13 00:03:18 2021 +0200 61.3 @@ -1,3 +1,24 @@ 61.4 +/* 61.5 + * A pipe opener resource. 61.6 + * 61.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 61.8 + * 61.9 + * This program is free software; you can redistribute it and/or 61.10 + * modify it under the terms of the GNU General Public License as 61.11 + * published by the Free Software Foundation; either version 2 of 61.12 + * the License, or (at your option) any later version. 61.13 + * 61.14 + * This program is distributed in the hope that it will be useful, 61.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 61.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 61.17 + * GNU General Public License for more details. 61.18 + * 61.19 + * You should have received a copy of the GNU General Public License 61.20 + * along with this program; if not, write to the Free Software 61.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 61.22 + * Boston, MA 02110-1301, USA 61.23 + */ 61.24 + 61.25 #pragma once 61.26 61.27 #include "memory.h" 61.28 @@ -5,6 +26,8 @@ 61.29 #include "pipe_paging.h" 61.30 #include "resource.h" 61.31 61.32 + 61.33 + 61.34 /* Support for providing access to pipes. */ 61.35 61.36 class PipeOpenerResource : public Resource, public PipeOpener
62.1 --- a/pipes/pipe_pager.cc Mon Apr 12 00:33:14 2021 +0200 62.2 +++ b/pipes/pipe_pager.cc Tue Apr 13 00:03:18 2021 +0200 62.3 @@ -1,3 +1,24 @@ 62.4 +/* 62.5 + * A pipe pager providing access to pipe content and navigation support. 62.6 + * 62.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 62.8 + * 62.9 + * This program is free software; you can redistribute it and/or 62.10 + * modify it under the terms of the GNU General Public License as 62.11 + * published by the Free Software Foundation; either version 2 of 62.12 + * the License, or (at your option) any later version. 62.13 + * 62.14 + * This program is distributed in the hope that it will be useful, 62.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 62.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 62.17 + * GNU General Public License for more details. 62.18 + * 62.19 + * You should have received a copy of the GNU General Public License 62.20 + * along with this program; if not, write to the Free Software 62.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 62.22 + * Boston, MA 02110-1301, USA 62.23 + */ 62.24 + 62.25 #include "pipe_pager.h" 62.26 #include "pipe_object_server.h" 62.27
63.1 --- a/pipes/pipe_pager.h Mon Apr 12 00:33:14 2021 +0200 63.2 +++ b/pipes/pipe_pager.h Tue Apr 13 00:03:18 2021 +0200 63.3 @@ -1,3 +1,24 @@ 63.4 +/* 63.5 + * A pipe pager providing access to pipe content and navigation support. 63.6 + * 63.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 63.8 + * 63.9 + * This program is free software; you can redistribute it and/or 63.10 + * modify it under the terms of the GNU General Public License as 63.11 + * published by the Free Software Foundation; either version 2 of 63.12 + * the License, or (at your option) any later version. 63.13 + * 63.14 + * This program is distributed in the hope that it will be useful, 63.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 63.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 63.17 + * GNU General Public License for more details. 63.18 + * 63.19 + * You should have received a copy of the GNU General Public License 63.20 + * along with this program; if not, write to the Free Software 63.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 63.22 + * Boston, MA 02110-1301, USA 63.23 + */ 63.24 + 63.25 #pragma once 63.26 63.27 #include "pipe_accessor.h" 63.28 @@ -5,6 +26,8 @@ 63.29 #include "pipe_paging.h" 63.30 #include "pager.h" 63.31 63.32 + 63.33 + 63.34 /* A pager abstraction for a pipe. */ 63.35 63.36 class PipePager : public Pager, public PipeObject
64.1 --- a/pipes/pipe_paging.cc Mon Apr 12 00:33:14 2021 +0200 64.2 +++ b/pipes/pipe_paging.cc Tue Apr 13 00:03:18 2021 +0200 64.3 @@ -1,3 +1,24 @@ 64.4 +/* 64.5 + * A pipe paging coordinator, permitting memory sharing pipe endpoints. 64.6 + * 64.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 64.8 + * 64.9 + * This program is free software; you can redistribute it and/or 64.10 + * modify it under the terms of the GNU General Public License as 64.11 + * published by the Free Software Foundation; either version 2 of 64.12 + * the License, or (at your option) any later version. 64.13 + * 64.14 + * This program is distributed in the hope that it will be useful, 64.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 64.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 64.17 + * GNU General Public License for more details. 64.18 + * 64.19 + * You should have received a copy of the GNU General Public License 64.20 + * along with this program; if not, write to the Free Software 64.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 64.22 + * Boston, MA 02110-1301, USA 64.23 + */ 64.24 + 64.25 #include "memory_incremental.h" 64.26 #include "memory_preallocated.h" 64.27 #include "page_queue_partitioned.h"
65.1 --- a/pipes/pipe_paging.h Mon Apr 12 00:33:14 2021 +0200 65.2 +++ b/pipes/pipe_paging.h Tue Apr 13 00:03:18 2021 +0200 65.3 @@ -1,9 +1,32 @@ 65.4 +/* 65.5 + * A pipe paging coordinator, permitting memory sharing pipe endpoints. 65.6 + * 65.7 + * Copyright (C) 2021 Paul Boddie <paul@boddie.org.uk> 65.8 + * 65.9 + * This program is free software; you can redistribute it and/or 65.10 + * modify it under the terms of the GNU General Public License as 65.11 + * published by the Free Software Foundation; either version 2 of 65.12 + * the License, or (at your option) any later version. 65.13 + * 65.14 + * This program is distributed in the hope that it will be useful, 65.15 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 65.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 65.17 + * GNU General Public License for more details. 65.18 + * 65.19 + * You should have received a copy of the GNU General Public License 65.20 + * along with this program; if not, write to the Free Software 65.21 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, 65.22 + * Boston, MA 02110-1301, USA 65.23 + */ 65.24 + 65.25 #pragma once 65.26 65.27 #include "page_mapper.h" 65.28 #include "pages.h" 65.29 #include "pipe_accessor.h" 65.30 65.31 + 65.32 + 65.33 /* Pipe paging support, maintaining the sequence of active regions or sections 65.34 in a pipe. */ 65.35