106 total_bytes =
vtoc->toc_total_bytes;
108 nentry =
vtoc->toc_nentry;
118 errmsg(
"out of shared memory")));
120 vtoc->toc_allocated_bytes += nbytes;
140 total_bytes =
vtoc->toc_total_bytes;
142 nentry =
vtoc->toc_nentry;
181 Assert(address > (
void *) toc);
182 offset = ((
char *) address) - (
char *) toc;
186 total_bytes =
vtoc->toc_total_bytes;
188 nentry =
vtoc->toc_nentry;
200 errmsg(
"out of shared memory")));
203 Assert(offset < total_bytes);
204 vtoc->toc_entry[nentry].key = key;
205 vtoc->toc_entry[nentry].offset = offset;
245 for (
i = 0;
i < nentry; ++
i)
248 return ((
char *) toc) + toc->toc_entry[
i].offset;
#define pg_read_barrier()
#define pg_write_barrier()
#define BUFFERALIGN_DOWN(LEN)
#define Assert(condition)
#define FLEXIBLE_ARRAY_MEMBER
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
void * shm_toc_allocate(shm_toc *toc, Size nbytes)
Size shm_toc_estimate(shm_toc_estimator *e)
shm_toc * shm_toc_create(uint64 magic, void *address, Size nbytes)
Size shm_toc_freespace(shm_toc *toc)
void shm_toc_insert(shm_toc *toc, uint64 key, void *address)
void * shm_toc_lookup(shm_toc *toc, uint64 key, bool noError)
shm_toc * shm_toc_attach(uint64 magic, void *address)
Size add_size(Size s1, Size s2)
Size mul_size(Size s1, Size s2)
#define SpinLockInit(lock)
#define SpinLockRelease(lock)
#define SpinLockAcquire(lock)
shm_toc_entry toc_entry[FLEXIBLE_ARRAY_MEMBER]