6565 * double this size, and so on. Larger segments may be created if necessary
6666 * to satisfy large requests.
6767 */
68- #define DSA_INITIAL_SEGMENT_SIZE ((Size ) (1 * 1024 * 1024))
68+ #define DSA_INITIAL_SEGMENT_SIZE ((size_t ) (1 * 1024 * 1024))
6969
7070/*
7171 * How many segments to create before we double the segment size. If this is
9898#define DSA_OFFSET_BITMASK (((dsa_pointer) 1 << DSA_OFFSET_WIDTH) - 1)
9999
100100/* The maximum size of a DSM segment. */
101- #define DSA_MAX_SEGMENT_SIZE ((Size ) 1 << DSA_OFFSET_WIDTH)
101+ #define DSA_MAX_SEGMENT_SIZE ((size_t ) 1 << DSA_OFFSET_WIDTH)
102102
103103/* Number of pages (see FPM_PAGE_SIZE) per regular superblock. */
104104#define DSA_PAGES_PER_SUPERBLOCK 16
121121#define DSA_EXTRACT_OFFSET (dp ) ((dp) & DSA_OFFSET_BITMASK)
122122
123123/* The type used for index segment indexes (zero based). */
124- typedef Size dsa_segment_index ;
124+ typedef size_t dsa_segment_index ;
125125
126126/* Sentinel value for dsa_segment_index indicating 'none' or 'end'. */
127127#define DSA_SEGMENT_INDEX_NONE (~(dsa_segment_index)0)
@@ -153,9 +153,9 @@ typedef struct
153153/* Sanity check magic value. */
154154uint32 magic ;
155155/* Total number of pages in this segment (excluding metadata area). */
156- Size usable_pages ;
156+ size_t usable_pages ;
157157/* Total size of this segment in bytes. */
158- Size size ;
158+ size_t size ;
159159
160160/*
161161 * Index of the segment that precedes this one in the same segment bin, or
@@ -169,7 +169,7 @@ typedef struct
169169 */
170170dsa_segment_index next ;
171171/* The index of the bin that contains this segment. */
172- Size bin ;
172+ size_t bin ;
173173
174174/*
175175 * A flag raised to indicate that this segment is being returned to the
@@ -197,7 +197,7 @@ typedef struct
197197dsa_pointer prevspan ;/* Previous span. */
198198dsa_pointer nextspan ;/* Next span. */
199199dsa_pointer start ;/* Starting address. */
200- Size npages ;/* Length of span in pages. */
200+ size_t npages ;/* Length of span in pages. */
201201uint16 size_class ;/* Size class. */
202202uint16 ninitialized ;/* Maximum number of objects ever allocated. */
203203uint16 nallocatable ;/* Number of objects currently allocatable. */
@@ -308,17 +308,17 @@ typedef struct
308308/* The object pools for each size class. */
309309dsa_area_pool pools [DSA_NUM_SIZE_CLASSES ];
310310/* The total size of all active segments. */
311- Size total_segment_size ;
311+ size_t total_segment_size ;
312312/* The maximum total size of backing storage we are allowed. */
313- Size max_total_segment_size ;
313+ size_t max_total_segment_size ;
314314/* Highest used segment index in the history of this area. */
315315dsa_segment_index high_segment_index ;
316316/* The reference count for this area. */
317317int refcnt ;
318318/* A flag indicating that this area has been pinned. */
319319bool pinned ;
320320/* The number of times that segments have been freed. */
321- Size freed_segment_counter ;
321+ size_t freed_segment_counter ;
322322/* The LWLock tranche ID. */
323323int lwlock_tranche_id ;
324324/* The general lock (protects everything except object pools). */
@@ -371,7 +371,7 @@ struct dsa_area
371371dsa_segment_index high_segment_index ;
372372
373373/* The last observed freed_segment_counter. */
374- Size freed_segment_counter ;
374+ size_t freed_segment_counter ;
375375};
376376
377377#define DSA_SPAN_NOTHING_FREE ((uint16) -1)
@@ -382,7 +382,7 @@ struct dsa_area
382382(segment_map_ptr - &area->segment_maps[0])
383383
384384static void init_span (dsa_area * area ,dsa_pointer span_pointer ,
385- dsa_area_pool * pool ,dsa_pointer start ,Size npages ,
385+ dsa_area_pool * pool ,dsa_pointer start ,size_t npages ,
386386uint16 size_class );
387387static bool transfer_first_span (dsa_area * area ,dsa_area_pool * pool ,
388388int fromclass ,int toclass );
@@ -396,8 +396,8 @@ static void unlink_span(dsa_area *area, dsa_area_span *span);
396396static void add_span_to_fullness_class (dsa_area * area ,dsa_area_span * span ,
397397dsa_pointer span_pointer ,int fclass );
398398static void unlink_segment (dsa_area * area ,dsa_segment_map * segment_map );
399- static dsa_segment_map * get_best_segment (dsa_area * area ,Size npages );
400- static dsa_segment_map * make_new_segment (dsa_area * area ,Size requested_pages );
399+ static dsa_segment_map * get_best_segment (dsa_area * area ,size_t npages );
400+ static dsa_segment_map * make_new_segment (dsa_area * area ,size_t requested_pages );
401401static dsa_area * create_internal (void * place ,size_t size ,
402402int tranche_id ,
403403dsm_handle control_handle ,
@@ -662,7 +662,7 @@ dsa_pin_mapping(dsa_area *area)
662662 * flags.
663663 */
664664dsa_pointer
665- dsa_allocate_extended (dsa_area * area ,Size size ,int flags )
665+ dsa_allocate_extended (dsa_area * area ,size_t size ,int flags )
666666{
667667uint16 size_class ;
668668dsa_pointer start_pointer ;
@@ -685,8 +685,8 @@ dsa_allocate_extended(dsa_area *area, Size size, int flags)
685685 */
686686if (size > dsa_size_classes [lengthof (dsa_size_classes )- 1 ])
687687{
688- Size npages = fpm_size_to_pages (size );
689- Size first_page ;
688+ size_t npages = fpm_size_to_pages (size );
689+ size_t first_page ;
690690dsa_pointer span_pointer ;
691691dsa_area_pool * pool = & area -> control -> pools [DSA_SCLASS_SPAN_LARGE ];
692692
@@ -818,7 +818,7 @@ dsa_free(dsa_area *area, dsa_pointer dp)
818818dsa_area_span * span ;
819819char * superblock ;
820820char * object ;
821- Size size ;
821+ size_t size ;
822822int size_class ;
823823
824824/* Make sure we don't have a stale segment in the slot 'dp' refers to. */
@@ -925,7 +925,7 @@ void *
925925dsa_get_address (dsa_area * area ,dsa_pointer dp )
926926{
927927dsa_segment_index index ;
928- Size offset ;
928+ size_t offset ;
929929
930930/* Convert InvalidDsaPointer to NULL. */
931931if (!DsaPointerIsValid (dp ))
@@ -998,7 +998,7 @@ dsa_unpin(dsa_area *area)
998998 * backends that have attached to them.
999999 */
10001000void
1001- dsa_set_size_limit (dsa_area * area ,Size limit )
1001+ dsa_set_size_limit (dsa_area * area ,size_t limit )
10021002{
10031003LWLockAcquire (DSA_AREA_LOCK (area ),LW_EXCLUSIVE );
10041004area -> control -> max_total_segment_size = limit ;
@@ -1057,7 +1057,7 @@ dsa_trim(dsa_area *area)
10571057void
10581058dsa_dump (dsa_area * area )
10591059{
1060- Size i ,
1060+ size_t i ,
10611061j ;
10621062
10631063/*
@@ -1158,10 +1158,10 @@ dsa_dump(dsa_area *area)
11581158 * Return the smallest size that you can successfully provide to
11591159 * dsa_create_in_place.
11601160 */
1161- Size
1161+ size_t
11621162dsa_minimum_size (void )
11631163{
1164- Size size ;
1164+ size_t size ;
11651165int pages = 0 ;
11661166
11671167size = MAXALIGN (sizeof (dsa_area_control ))+
@@ -1189,9 +1189,9 @@ create_internal(void *place, size_t size,
11891189dsa_area_control * control ;
11901190dsa_area * area ;
11911191dsa_segment_map * segment_map ;
1192- Size usable_pages ;
1193- Size total_pages ;
1194- Size metadata_bytes ;
1192+ size_t usable_pages ;
1193+ size_t total_pages ;
1194+ size_t metadata_bytes ;
11951195int i ;
11961196
11971197/* Sanity check on the space we have to work in. */
@@ -1224,7 +1224,7 @@ create_internal(void *place, size_t size,
12241224control -> segment_header .freed = false;
12251225control -> segment_header .size = DSA_INITIAL_SEGMENT_SIZE ;
12261226control -> handle = control_handle ;
1227- control -> max_total_segment_size = (Size )- 1 ;
1227+ control -> max_total_segment_size = (size_t )-1 ;
12281228control -> total_segment_size = size ;
12291229memset (& control -> segment_handles [0 ],0 ,
12301230sizeof (dsm_handle )* DSA_MAX_SEGMENTS );
@@ -1337,11 +1337,11 @@ attach_internal(void *place, dsm_segment *segment, dsa_handle handle)
13371337static void
13381338init_span (dsa_area * area ,
13391339dsa_pointer span_pointer ,
1340- dsa_area_pool * pool ,dsa_pointer start ,Size npages ,
1340+ dsa_area_pool * pool ,dsa_pointer start ,size_t npages ,
13411341uint16 size_class )
13421342{
13431343dsa_area_span * span = dsa_get_address (area ,span_pointer );
1344- Size obsize = dsa_size_classes [size_class ];
1344+ size_t obsize = dsa_size_classes [size_class ];
13451345
13461346/*
13471347 * The per-pool lock must be held because we manipulate the span list for
@@ -1437,7 +1437,7 @@ alloc_object(dsa_area *area, int size_class)
14371437dsa_pointer block ;
14381438dsa_pointer result ;
14391439char * object ;
1440- Size size ;
1440+ size_t size ;
14411441
14421442/*
14431443 * Even though ensure_active_superblock can in turn call alloc_object if
@@ -1523,12 +1523,12 @@ ensure_active_superblock(dsa_area *area, dsa_area_pool *pool,
15231523{
15241524dsa_pointer span_pointer ;
15251525dsa_pointer start_pointer ;
1526- Size obsize = dsa_size_classes [size_class ];
1527- Size nmax ;
1526+ size_t obsize = dsa_size_classes [size_class ];
1527+ size_t nmax ;
15281528int fclass ;
1529- Size npages = 1 ;
1530- Size first_page ;
1531- Size i ;
1529+ size_t npages = 1 ;
1530+ size_t first_page ;
1531+ size_t i ;
15321532dsa_segment_map * segment_map ;
15331533
15341534Assert (LWLockHeldByMe (DSA_SCLASS_LOCK (area ,size_class )));
@@ -1959,9 +1959,9 @@ unlink_segment(dsa_area *area, dsa_segment_map *segment_map)
19591959 * pages map.
19601960 */
19611961static dsa_segment_map *
1962- get_best_segment (dsa_area * area ,Size npages )
1962+ get_best_segment (dsa_area * area ,size_t npages )
19631963{
1964- Size bin ;
1964+ size_t bin ;
19651965
19661966Assert (LWLockHeldByMe (DSA_AREA_LOCK (area )));
19671967check_for_freed_segments_locked (area );
@@ -1978,7 +1978,7 @@ get_best_segment(dsa_area *area, Size npages)
19781978 * The minimum contiguous size that any segment in this bin should
19791979 * have. We'll re-bin if we see segments with fewer.
19801980 */
1981- Size threshold = (Size )1 << (bin - 1 );
1981+ size_t threshold = (size_t )1 << (bin - 1 );
19821982dsa_segment_index segment_index ;
19831983
19841984/* Search this bin for a segment with enough contiguous space. */
@@ -1987,7 +1987,7 @@ get_best_segment(dsa_area *area, Size npages)
19871987{
19881988dsa_segment_map * segment_map ;
19891989dsa_segment_index next_segment_index ;
1990- Size contiguous_pages ;
1990+ size_t contiguous_pages ;
19911991
19921992segment_map = get_segment_by_index (area ,segment_index );
19931993next_segment_index = segment_map -> header -> next ;
@@ -2003,7 +2003,7 @@ get_best_segment(dsa_area *area, Size npages)
20032003/* Re-bin it if it's no longer in the appropriate bin. */
20042004if (contiguous_pages < threshold )
20052005{
2006- Size new_bin ;
2006+ size_t new_bin ;
20072007
20082008new_bin = contiguous_pages_to_segment_bin (contiguous_pages );
20092009
@@ -2051,13 +2051,13 @@ get_best_segment(dsa_area *area, Size npages)
20512051 * segments would be exceeded.
20522052 */
20532053static dsa_segment_map *
2054- make_new_segment (dsa_area * area ,Size requested_pages )
2054+ make_new_segment (dsa_area * area ,size_t requested_pages )
20552055{
20562056dsa_segment_index new_index ;
2057- Size metadata_bytes ;
2058- Size total_size ;
2059- Size total_pages ;
2060- Size usable_pages ;
2057+ size_t metadata_bytes ;
2058+ size_t total_size ;
2059+ size_t total_pages ;
2060+ size_t usable_pages ;
20612061dsa_segment_map * segment_map ;
20622062dsm_segment * segment ;
20632063
@@ -2095,7 +2095,7 @@ make_new_segment(dsa_area *area, Size requested_pages)
20952095 * pages we can fit.
20962096 */
20972097total_size = DSA_INITIAL_SEGMENT_SIZE *
2098- ((Size )1 << (new_index /DSA_NUM_SEGMENTS_AT_EACH_SIZE ));
2098+ ((size_t )1 << (new_index /DSA_NUM_SEGMENTS_AT_EACH_SIZE ));
20992099total_size = Min (total_size ,DSA_MAX_SEGMENT_SIZE );
21002100total_size = Min (total_size ,
21012101area -> control -> max_total_segment_size -
@@ -2222,7 +2222,7 @@ make_new_segment(dsa_area *area, Size requested_pages)
22222222static void
22232223check_for_freed_segments (dsa_area * area )
22242224{
2225- Size freed_segment_counter ;
2225+ size_t freed_segment_counter ;
22262226
22272227/*
22282228 * Any other process that has freed a segment has incremented
@@ -2258,7 +2258,7 @@ check_for_freed_segments(dsa_area *area)
22582258static void
22592259check_for_freed_segments_locked (dsa_area * area )
22602260{
2261- Size freed_segment_counter ;
2261+ size_t freed_segment_counter ;
22622262int i ;
22632263
22642264Assert (LWLockHeldByMe (DSA_AREA_LOCK (area )));