1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:48:12 +00:00
serenity/Userland/Libraries/LibGfx
Andreas Kling 2d1a651e0a Kernel: Make purgeable memory a VMObject level concept (again)
This patch changes the semantics of purgeable memory.

- AnonymousVMObject now has a "purgeable" flag. It can only be set when
  constructing the object. (Previously, all anonymous memory was
  effectively purgeable.)

- AnonymousVMObject now has a "volatile" flag. It covers the entire
  range of physical pages. (Previously, we tracked ranges of volatile
  pages, effectively making it a page-level concept.)

- Non-volatile objects maintain a physical page reservation via the
  committed pages mechanism, to ensure full coverage for page faults.

- When an object is made volatile, it relinquishes any unused committed
  pages immediately. If later made non-volatile again, we then attempt
  to make a new committed pages reservation. If this fails, we return
  ENOMEM to userspace.

mmap() now creates purgeable objects if passed the MAP_PURGEABLE option
together with MAP_ANONYMOUS. anon_create() memory is always purgeable.
2021-07-25 17:28:05 +02:00
..
Filters LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
AffineTransform.cpp Everywhere: Don't promote float to double where not needed 2021-07-08 10:11:00 +02:00
AffineTransform.h LibGfx: Add some helper methods to AffineTransform 2021-05-02 22:48:06 +02:00
Bitmap.cpp Kernel: Make purgeable memory a VMObject level concept (again) 2021-07-25 17:28:05 +02:00
Bitmap.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
BitmapFont.cpp LibGfx: Use calloc() instead of malloc()+memset() Gfx::BitmapFont 2021-07-22 09:17:01 +02:00
BitmapFont.h LibTTF+LibGfx: Make Gfx::Font::bold_variant() work for TTF fonts 2021-07-20 02:48:29 +02:00
BMPLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
BMPLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
BMPWriter.cpp LibGfx/BMPWriter: Add support for V3 & V4 DIB headers 2021-07-05 00:43:00 +02:00
BMPWriter.h LibGfx/BMPWriter: Add support for V3 & V4 DIB headers 2021-07-05 00:43:00 +02:00
CharacterBitmap.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
CharacterBitmap.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ClassicStylePainter.cpp LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
ClassicStylePainter.h Everywhere: Add missing comma between copyright year and name 2021-04-29 00:59:26 +02:00
ClassicWindowTheme.cpp LibGfx: Remove Gfx::FontDatabase::default_bold_font() 2021-05-20 20:55:29 +02:00
ClassicWindowTheme.h LibGfx: Fix classic theme frame transparency check 2021-07-05 12:29:14 +02:00
CMakeLists.txt LibGfx: Add support for DDS images 2021-05-18 08:45:53 +01:00
Color.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Color.h LibGfx: Implement Color::from_hsl/hsla() 2021-07-22 23:09:01 +02:00
DDSLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
DDSLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
DisjointRectSet.cpp LibGfx: Unify Rect, Point, and Size 2021-05-02 22:48:06 +02:00
DisjointRectSet.h WindowServer: Add basic virtual desktop support 2021-07-03 12:27:23 +02:00
Emoji.cpp LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
Emoji.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Font.h LibTTF+LibGfx: Make Gfx::Font::bold_variant() work for TTF fonts 2021-07-20 02:48:29 +02:00
FontDatabase.cpp LibGfx: Try to get TTF font when query is not in name->font map 2021-07-11 14:12:47 +02:00
FontDatabase.h LibGfx+WindowServer: Have WindowServer broadcast system font settings 2021-05-21 20:15:51 +02:00
Forward.h LibGfx: Add a Line class and a Rect<T>::RelativeLocation class 2021-06-20 14:57:26 +02:00
Gamma.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
GIFLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
GIFLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
ICOLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
ICOLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
ImageDecoder.cpp LibGfx: Add support for DDS images 2021-05-18 08:45:53 +01:00
ImageDecoder.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
JPGLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
JPGLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
Line.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Matrix.h LibGfx/Matrix: Add inverse() and friends 2021-05-24 00:33:18 +01:00
Matrix4x4.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Orientation.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Painter.cpp LibTTF+LibGfx: Improve vertical alignment of glyphs 2021-07-20 02:48:29 +02:00
Painter.h LibGfx: Add helper for painting a rounded rect with equal corner radii 2021-06-04 19:11:45 +02:00
Palette.cpp AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
Palette.h LibGUI+HackStudio: Make gutter a first class element 2021-06-13 12:33:15 +01:00
Path.cpp Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Path.h LibGfx: Add Path::clear 2021-05-25 00:24:09 +04:30
PBMLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PBMLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PGMLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PGMLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PNGLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PNGLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PNGWriter.cpp LibGfx: Use clear_with capacity instead of clear in PNGWriter 2021-07-14 13:37:18 +02:00
PNGWriter.h LibGfx: Store the size of the chunk from start in PNGWriter 2021-07-14 13:37:18 +02:00
Point.cpp LibGfx: Convert Point to east-const style 2021-06-16 21:53:10 +02:00
Point.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
PortableImageLoaderCommon.h LibGfx: Remove "purgeable Gfx::Bitmap" as a separate concept 2021-07-25 14:39:21 +02:00
PPMLoader.cpp LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
PPMLoader.h LibGfx: Make Gfx::Bitmap::set_nonvolatile() report allocation failure 2021-07-25 14:39:25 +02:00
Rect.cpp LibGfx: Add a Line class and a Rect<T>::RelativeLocation class 2021-06-20 14:57:26 +02:00
Rect.h LibGfx: Add an algorithm to disperse overlapping rectangles 2021-07-21 00:06:58 +02:00
ShareableBitmap.cpp LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
ShareableBitmap.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Size.cpp LibGfx: Add a bunch of [[nodiscard]] to Size 2021-06-16 21:53:10 +02:00
Size.h LibGfx: Add a bunch of [[nodiscard]] to Size 2021-06-16 21:53:10 +02:00
StandardCursor.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Streamer.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StylePainter.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StylePainter.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
SystemTheme.cpp LibGfx: Remove unused current_system_theme() function 2021-05-20 22:12:42 +02:00
SystemTheme.h LibGUI+HackStudio: Make gutter a first class element 2021-06-13 12:33:15 +01:00
TextAlignment.h LibGfx: Add missing TextAlignment::BottomLeft 2021-05-21 08:04:31 +02:00
TextAttributes.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
TextDirection.cpp Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
TextDirection.h Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
TextElision.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Triangle.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Triangle.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Typeface.cpp Everywhere: Use s.unverwerth@serenityos.org :^) 2021-05-29 12:30:08 +01:00
Typeface.h Everywhere: Use s.unverwerth@serenityos.org :^) 2021-05-29 12:30:08 +01:00
Vector2.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Vector3.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
Vector4.h Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
WindowTheme.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WindowTheme.h WindowServer+LibGfx: Automatic "modified" markers in window titles 2021-05-01 19:42:29 +02:00