MagickCore  6.9.10
Convert, Edit, Or Compose Bitmap Images
cache-private.h
Go to the documentation of this file.
1 /*
2  Copyright 1999-2019 ImageMagick Studio LLC, a non-profit organization
3  dedicated to making software imaging solutions freely available.
4 
5  You may not use this file except in compliance with the License.
6  obtain a copy of the License at
7 
8  https://imagemagick.org/script/license.php
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16  MagickCore cache private methods.
17 */
18 #ifndef MAGICKCORE_CACHE_PRIVATE_H
19 #define MAGICKCORE_CACHE_PRIVATE_H
20 
21 #include <time.h>
22 #include "magick/cache.h"
24 #include "magick/opencl-private.h"
25 #include "magick/random_.h"
26 #include "magick/thread-private.h"
27 #include "magick/semaphore.h"
28 
29 #if defined(__cplusplus) || defined(c_plusplus)
30 extern "C" {
31 #endif
32 
33 typedef void
35 
36 typedef const IndexPacket
37  *(*GetVirtualIndexesFromHandler)(const Image *);
38 
39 typedef IndexPacket
40  *(*GetAuthenticIndexesFromHandler)(const Image *);
41 
43  (*GetOneAuthenticPixelFromHandler)(Image *,const ssize_t,const ssize_t,
46  const ssize_t,const ssize_t,PixelPacket *,ExceptionInfo *),
48 
49 typedef const PixelPacket
50  *(*GetVirtualPixelHandler)(const Image *,const VirtualPixelMethod,
51  const ssize_t,const ssize_t,const size_t,const size_t,ExceptionInfo *),
52  *(*GetVirtualPixelsHandler)(const Image *);
53 
54 typedef PixelPacket
55  *(*GetAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
56  const size_t,const size_t,ExceptionInfo *);
57 
58 typedef PixelPacket
59  *(*GetAuthenticPixelsFromHandler)(const Image *);
60 
61 typedef PixelPacket
62  *(*QueueAuthenticPixelsHandler)(Image *,const ssize_t,const ssize_t,
63  const size_t,const size_t,ExceptionInfo *);
64 
65 typedef void
67 
68 typedef struct _CacheMethods
69 {
72 
75 
78 
81 
84 
87 
90 
93 
96 
99 
103 
104 typedef struct _NexusInfo
105 {
108 
111 
114 
118 
121 
124 
125  size_t
128 
129 typedef struct _OpenCLCacheInfo
130 {
131  cl_event
133 
134  cl_mem
136 
137  cl_uint
139 
142 
145 
149 
150 typedef struct _CacheInfo
151 {
152  ClassType
154 
157 
158  size_t
160 
161  CacheType
163 
164  MapMode
167 
170 
171  size_t
174 
177 
180 
183 
186 
187  size_t
189 
190  NexusInfo
192 
195 
198 
201 
202  int
204 
205  char
208 
211 
212  RandomInfo
214 
215  size_t
217 
218  void
220 
224 
226  id;
227 
228  ssize_t
230 
234 
235  time_t
237 
238  size_t
240 
244 
245 extern MagickExport Cache
246  AcquirePixelCache(const size_t),
250 
251 extern MagickExport CacheType
252  GetPixelCacheType(const Image *);
253 
254 extern MagickExport ClassType
256 
259 
260 extern MagickExport const IndexPacket
262 
263 extern MagickExport const PixelPacket
265  const ssize_t,const ssize_t,const size_t,const size_t,NexusInfo *,
268 
272 
275 
276 extern MagickExport NexusInfo
277  **AcquirePixelCacheNexus(const size_t),
278  **DestroyPixelCacheNexus(NexusInfo **,const size_t);
279 
281  *GetAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
282  const size_t,const size_t,NexusInfo *,ExceptionInfo *) magick_hot_spot,
283  *QueueAuthenticPixel(Image *,const ssize_t,const ssize_t,const size_t,
284  const size_t,const MagickBooleanType,NexusInfo *,ExceptionInfo *),
285  *QueueAuthenticPixelCacheNexus(Image *,const ssize_t,const ssize_t,
286  const size_t,const size_t,const MagickBooleanType,NexusInfo *,
288 
289 extern MagickExport size_t
291 
292 extern MagickExport void
294  GetPixelCacheTileSize(const Image *,size_t *,size_t *),
297 
298 extern MagickPrivate void
299  ResetPixelCacheEpoch(void);
300 
303 
304 #if defined(MAGICKCORE_OPENCL_SUPPORT)
305 extern MagickPrivate cl_event
306  *GetOpenCLEvents(const Image *,cl_uint *);
307 
308 extern MagickPrivate cl_mem
309  GetAuthenticOpenCLBuffer(const Image *,ExceptionInfo *);
310 
311 extern MagickPrivate void
312  AddOpenCLEvent(const Image *,cl_event),
313  SyncAuthenticOpenCLBuffer(const Image *);
314 #endif
315 
316 #if defined(__cplusplus) || defined(c_plusplus)
317 }
318 #endif
319 
320 #endif
QueueAuthenticPixelCacheNexus
MagickExport PixelPacket * QueueAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *) magick_hot_spot
Definition: cache.c:4348
MagickExport
#define MagickExport
Definition: method-attribute.h:80
_CacheInfo::file
int file
Definition: cache-private.h:203
GetVirtualPixelsNexus
MagickExport const PixelPacket * GetVirtualPixelsNexus(const Cache, NexusInfo *)
Definition: cache.c:3544
SyncImagePixelCache
MagickPrivate MagickBooleanType SyncImagePixelCache(Image *, ExceptionInfo *)
Definition: cache.c:5642
GetPixelCacheStorageClass
MagickExport ClassType GetPixelCacheStorageClass(const Cache)
Definition: cache.c:2613
QueueAuthenticPixel
MagickExport PixelPacket * QueueAuthenticPixel(Image *, const ssize_t, const ssize_t, const size_t, const size_t, const MagickBooleanType, NexusInfo *, ExceptionInfo *)
GetPixelCacheType
MagickExport CacheType GetPixelCacheType(const Image *)
Definition: cache.c:1962
cl_event
void * cl_event
Definition: opencl-private.h:32
_CacheInfo::length
MagickSizeType length
Definition: cache-private.h:179
VirtualPixelMethod
VirtualPixelMethod
Definition: cache-view.h:28
GetAuthenticIndexesFromHandler
IndexPacket *(* GetAuthenticIndexesFromHandler)(const Image *)
Definition: cache-private.h:40
_OpenCLCacheInfo
Definition: cache-private.h:130
_CacheMethods::get_authentic_indexes_from_handler
GetAuthenticIndexesFromHandler get_authentic_indexes_from_handler
Definition: cache-private.h:86
DestroyPixelCache
MagickExport Cache DestroyPixelCache(Cache)
_CacheInfo::pixels
PixelPacket * pixels
Definition: cache-private.h:194
_CacheInfo::number_connections
size_t number_connections
Definition: cache-private.h:216
_NexusInfo::indexes
IndexPacket * indexes
Definition: cache-private.h:123
_CacheInfo::type
CacheType type
Definition: cache-private.h:162
_OpenCLCacheInfo::pixels
PixelPacket * pixels
Definition: cache-private.h:144
_CacheInfo::rows
size_t rows
Definition: cache-private.h:173
GetPixelCacheMethods
MagickExport void GetPixelCacheMethods(CacheMethods *)
_NexusInfo
Definition: cache-private.h:105
NexusInfo
struct _NexusInfo NexusInfo
magick_restrict
#define magick_restrict
Definition: MagickCore.h:41
_RectangleInfo
Definition: geometry.h:123
_CacheMethods::get_virtual_pixels_handler
GetVirtualPixelsHandler get_virtual_pixels_handler
Definition: cache-private.h:74
_CacheInfo::storage_class
ClassType storage_class
Definition: cache-private.h:153
_CacheInfo::indexes
IndexPacket * indexes
Definition: cache-private.h:197
QueueAuthenticPixelsHandler
PixelPacket *(* QueueAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:62
_CacheMethods::get_authentic_pixels_from_handler
GetAuthenticPixelsFromHandler get_authentic_pixels_from_handler
Definition: cache-private.h:92
_CacheInfo::debug
MagickBooleanType debug
Definition: cache-private.h:223
_CacheInfo::mapped
MagickBooleanType mapped
Definition: cache-private.h:169
SyncAuthenticPixelCacheNexus
MagickExport MagickBooleanType SyncAuthenticPixelCacheNexus(Image *, NexusInfo *magick_restrict, ExceptionInfo *) magick_hot_spot
GetPixelCacheChannels
MagickExport size_t GetPixelCacheChannels(const Cache)
Definition: cache.c:2372
MagickSizeType
size_t MagickSizeType
Definition: magick-type.h:136
AcquirePixelCache
MagickExport Cache AcquirePixelCache(const size_t)
_CacheInfo::nexus_info
NexusInfo ** nexus_info
Definition: cache-private.h:191
IndexPacket
Quantum IndexPacket
Definition: pixel.h:129
_NexusInfo::authentic_pixel_cache
MagickBooleanType authentic_pixel_cache
Definition: cache-private.h:120
_CacheInfo::server_info
void * server_info
Definition: cache-private.h:219
MagickThreadType
pid_t MagickThreadType
Definition: thread_.h:34
_CacheMethods::destroy_pixel_handler
DestroyPixelHandler destroy_pixel_handler
Definition: cache-private.h:101
_CacheInfo::active_index_channel
MagickBooleanType active_index_channel
Definition: cache-private.h:200
AcquirePixelCacheNexus
MagickExport NexusInfo ** AcquirePixelCacheNexus(const size_t)
CacheType
CacheType
Definition: cache.h:28
DestroyPixelCacheNexus
MagickExport NexusInfo ** DestroyPixelCacheNexus(NexusInfo **, const size_t)
Definition: cache.c:1242
random_.h
_CacheInfo::offset
MagickOffsetType offset
Definition: cache-private.h:176
cl_uint
void * cl_uint
Definition: opencl-private.h:34
GetPixelCacheTileSize
MagickExport void GetPixelCacheTileSize(const Image *, size_t *, size_t *)
_CacheInfo::reference_count
ssize_t reference_count
Definition: cache-private.h:229
semaphore.h
_CacheMethods::get_one_authentic_pixel_from_handler
GetOneAuthenticPixelFromHandler get_one_authentic_pixel_from_handler
Definition: cache-private.h:89
_CacheInfo::semaphore
SemaphoreInfo * semaphore
Definition: cache-private.h:232
_CacheInfo::filename
char filename[MaxTextExtent]
Definition: cache-private.h:206
DestroyPixelHandler
void(* DestroyPixelHandler)(Image *)
Definition: cache-private.h:66
_CacheInfo::synchronize
MagickBooleanType synchronize
Definition: cache-private.h:222
_OpenCLCacheInfo::events_semaphore
SemaphoreInfo * events_semaphore
Definition: cache-private.h:147
CacheMethods
struct _CacheMethods CacheMethods
thread-private.h
GetVirtualPixelsHandler
const PixelPacket *(*) *(* GetVirtualPixelsHandler)(const Image *)
Definition: cache-private.h:52
OpenCLCacheInfo
struct _OpenCLCacheInfo OpenCLCacheInfo
SemaphoreInfo
Definition: semaphore.c:60
GetPixelCacheColorspace
MagickExport ColorspaceType GetPixelCacheColorspace(const Cache)
Definition: cache.c:2408
_Image
Definition: image.h:153
GetAuthenticPixelCacheNexus
MagickExport PixelPacket * GetAuthenticPixelCacheNexus(Image *, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
_OpenCLCacheInfo::buffer
cl_mem buffer
Definition: cache-private.h:135
_CacheInfo::number_threads
size_t number_threads
Definition: cache-private.h:188
_MagickPixelPacket
Definition: pixel.h:105
GetAuthenticPixelsFromHandler
PixelPacket *(* GetAuthenticPixelsFromHandler)(const Image *)
Definition: cache-private.h:59
_CacheInfo::disk_mode
MapMode disk_mode
Definition: cache-private.h:166
_CacheMethods::get_one_virtual_pixel_from_handler
GetOneVirtualPixelFromHandler get_one_virtual_pixel_from_handler
Definition: cache-private.h:80
ColorspaceType
ColorspaceType
Definition: colorspace.h:26
SetPixelCacheMethods
MagickExport void SetPixelCacheMethods(Cache, CacheMethods *)
Definition: cache.c:4996
_CacheInfo::random_info
RandomInfo * random_info
Definition: cache-private.h:213
MapMode
MapMode
Definition: blob.h:31
GetVirtualPixelHandler
const PixelPacket *(* GetVirtualPixelHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:50
_NexusInfo::region
RectangleInfo region
Definition: cache-private.h:110
_CacheInfo::mode
MapMode mode
Definition: cache-private.h:165
_CacheMethods
Definition: cache-private.h:69
MagickPrivate
#define MagickPrivate
Definition: method-attribute.h:81
ClonePixelCacheMethods
MagickExport void ClonePixelCacheMethods(Cache, const Cache)
GetVirtualPixelCacheNexus
MagickExport const PixelPacket * GetVirtualPixelCacheNexus(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, const size_t, const size_t, NexusInfo *, ExceptionInfo *) magick_hot_spot
_CacheMethods::get_authentic_pixels_handler
GetAuthenticPixelsHandler get_authentic_pixels_handler
Definition: cache-private.h:83
cl_mem
void * cl_mem
Definition: opencl-private.h:33
GetAuthenticPixelsHandler
PixelPacket *(* GetAuthenticPixelsHandler)(Image *, const ssize_t, const ssize_t, const size_t, const size_t, ExceptionInfo *)
Definition: cache-private.h:55
SyncAuthenticPixelsHandler
MagickBooleanType(*)(*)(* SyncAuthenticPixelsHandler)(Image *, ExceptionInfo *)
Definition: cache-private.h:47
_CacheInfo::methods
CacheMethods methods
Definition: cache-private.h:210
_CacheInfo::opencl
OpenCLCacheInfo * opencl
Definition: cache-private.h:242
GetVirtualIndexesFromHandler
const IndexPacket *(* GetVirtualIndexesFromHandler)(const Image *)
Definition: cache-private.h:37
_CacheInfo::virtual_pixel_method
VirtualPixelMethod virtual_pixel_method
Definition: cache-private.h:182
_OpenCLCacheInfo::length
MagickSizeType length
Definition: cache-private.h:141
CacheInfo
struct _CacheInfo CacheInfo
_CacheInfo::cache_filename
char cache_filename[MaxTextExtent]
Definition: cache-private.h:207
GetOneVirtualPixelFromHandler
MagickBooleanType(*)(* GetOneVirtualPixelFromHandler)(const Image *, const VirtualPixelMethod, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:45
cache.h
_CacheMethods::get_virtual_pixel_handler
GetVirtualPixelHandler get_virtual_pixel_handler
Definition: cache-private.h:71
ResetPixelCacheEpoch
MagickPrivate void ResetPixelCacheEpoch(void)
Definition: cache.c:4967
_OpenCLCacheInfo::event_count
cl_uint event_count
Definition: cache-private.h:138
MagickBooleanType
MagickBooleanType
Definition: magick-type.h:192
_NexusInfo::signature
size_t signature
Definition: cache-private.h:126
ClonePixelCache
MagickExport Cache ClonePixelCache(const Cache)
_NexusInfo::mapped
MagickBooleanType mapped
Definition: cache-private.h:107
_ExceptionInfo
Definition: exception.h:103
Cache
void * Cache
Definition: cache-private.h:34
_CacheInfo::signature
size_t signature
Definition: cache-private.h:239
distribute-cache.h
opencl-private.h
_NexusInfo::pixels
PixelPacket * pixels
Definition: cache-private.h:117
_CacheMethods::queue_authentic_pixels_handler
QueueAuthenticPixelsHandler queue_authentic_pixels_handler
Definition: cache-private.h:95
GetPixelCacheNexusExtent
MagickExport MagickSizeType GetPixelCacheNexusExtent(const Cache, NexusInfo *)
Definition: cache.c:2523
_CacheInfo::virtual_pixel_color
MagickPixelPacket virtual_pixel_color
Definition: cache-private.h:185
_CacheInfo
Definition: cache-private.h:151
_CacheInfo::id
MagickThreadType id
Definition: cache-private.h:226
GetVirtualIndexesFromNexus
MagickExport const IndexPacket * GetVirtualIndexesFromNexus(const Cache, NexusInfo *)
Definition: cache.c:2770
_CacheInfo::file_semaphore
SemaphoreInfo * file_semaphore
Definition: cache-private.h:233
_CacheInfo::timestamp
time_t timestamp
Definition: cache-private.h:236
_CacheMethods::get_virtual_indexes_from_handler
GetVirtualIndexesFromHandler get_virtual_indexes_from_handler
Definition: cache-private.h:77
_CacheMethods::sync_authentic_pixels_handler
SyncAuthenticPixelsHandler sync_authentic_pixels_handler
Definition: cache-private.h:98
_CacheInfo::channels
size_t channels
Definition: cache-private.h:159
_CacheInfo::columns
size_t columns
Definition: cache-private.h:172
GetOneAuthenticPixelFromHandler
MagickBooleanType(* GetOneAuthenticPixelFromHandler)(Image *, const ssize_t, const ssize_t, PixelPacket *, ExceptionInfo *)
Definition: cache-private.h:43
_NexusInfo::cache
PixelPacket * cache
Definition: cache-private.h:116
MaxTextExtent
#define MaxTextExtent
Definition: method-attribute.h:89
magick_hot_spot
#define magick_hot_spot
Definition: method-attribute.h:122
_OpenCLCacheInfo::events
cl_event * events
Definition: cache-private.h:132
_NexusInfo::length
MagickSizeType length
Definition: cache-private.h:113
ReferencePixelCache
MagickExport Cache ReferencePixelCache(Cache)
Definition: cache.c:4935
ClassType
ClassType
Definition: magick-type.h:185
_PixelPacket
Definition: pixel.h:132
_CacheInfo::colorspace
ColorspaceType colorspace
Definition: cache-private.h:156
_RandomInfo
Definition: random.c:77
MagickOffsetType
ssize_t MagickOffsetType
Definition: magick-type.h:135