xref: /aosp_15_r20/external/swiftshader/src/System/Memory.hpp (revision 03ce13f70fcc45d86ee91b7ee4cab1936a95046e)
1 // Copyright 2016 The SwiftShader Authors. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //    http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #ifndef Memory_hpp
16 #define Memory_hpp
17 
18 #include <stddef.h>
19 #include <stdint.h>
20 
21 namespace sw {
22 
23 size_t memoryPageSize();
24 
25 void *allocate(size_t bytes, size_t alignment = 16);              // Never initialized.
26 void *allocateZeroOrPoison(size_t bytes, size_t alignment = 16);  // Initialized to zero, except in MemorySanitizer builds.
27 
28 void freeMemory(void *memory);
29 
30 void clear(uint16_t *memory, uint16_t element, size_t count);
31 void clear(uint32_t *memory, uint32_t element, size_t count);
32 
33 }  // namespace sw
34 
35 #endif  // Memory_hpp
36