int main (int argc, char *argv[]) { SASIndex_t index; int rc; rc = SASJoinRegion(); if (rc != 0) { fprintf (stderr, "%s: SASJoinRegion failed: %d\n", progName, rc); exit (EXIT_FAILURE); } index = SASIndexCreate (block__Size256K); if (index == 0) { fprintf (stderr, "%s: SASIndexCreate(%li) failed\n", progName, block__Size256K); exit (EXIT_FAILURE); } sasindex_add_element (index, 'a', "1"); sasindex_add_element (index, 'b', "2"); sasindex_add_element (index, 'c', "3"); sasindex_print (index); sasindex_print_enum (index); SASCleanUp (); return 0; }
int main () { int rc; SAS_IO_INIT // init the io stuff rc = SASJoinRegion (); if (rc) { printf ("SASJoinRegion Error# %d\n", rc); return 1; } else { printf ("SAS Joined\n"); rc += test_unit (128); rc += test_unit (3 * 128); rc += test_unitfast (128); rc += test_unitfast (3 * 128); } //SASCleanUp(); printf ("SAS removed\n"); SASRemove (); return rc; };
int main () { int rc; int failures = 0; if ((rc = SASJoinRegion ())) { SASSIM_PRINT_ERR ("SASJoinRegion: %i", rc); exit (JOIN_EXIT_FAILURE); } printf ("__SAS_BASE_ADDRESS=%lx\n", __SAS_BASE_ADDRESS); printf ("RegionSize =%lx\n", RegionSize); printf ("SegmentSize =%lx\n", SegmentSize); printf ("__SAS_TEMP_ADDRESS=%lx\n", __SAS_TEMP_ADDRESS); printf ("__SAS_TEMP_FREE =%lx\n", __SAS_TEMP_FREE); failures += sassim_btree_test1 (); failures += sassim_btree_test_split(); //SASCleanUp(); printf("SAS removed\n"); SASRemove(); return failures; }
int main() { SASSimpleHeap_t heap; void **blockDescriptor; size_t blockDescriptorCount; int rc, i; /* Init a SPHDE region: create and attach the control shared memory * segment and locks. */ rc = SASJoinRegion(); if (rc != 0) { fprintf(stderr, "%s: error: SASJoinRegion: %d\n", progName, rc); exit(EXIT_FAILURE); } /* Now it allocates a vector descriptor: the trick is SASSimpleHeap_t * allocates a control header of size 'heap_offset': * (1MB - heap_offset)/16KB == 63 entries * 32 bits -> 63*sizeof(void*) == 252 bytes * 64 bits -> 63*sizeof(void*) == 504 bytes * So it used a block of 512 to work on both 32 and 64 bits */ blockDescriptor = SASBlockAlloc(block__Size512); printf("%s: SASBlockAlloc(%lu) ", progName, block__Size512); if (!blockDescriptor) { printf("failed\n"); exit(EXIT_FAILURE); } printf("succeed: %p\n", blockDescriptor); heap = SASSimpleHeapCreate(kHeapSize); printf("%s: SASSimpleHeapCreate(%zu) ", progName, kHeapSize); if (!heap) { printf("failed\n"); exit(EXIT_FAILURE); } printf("succeed: %p\n", heap); /* And finally allocates each memory chunk. */ blockDescriptorCount = (block__Size1M - heap_offset) / kBlockSize; for (i=0; i<blockDescriptorCount; ++i) { blockDescriptor[i] = SASSimpleHeapAlloc(heap, kBlockSize); if (!blockDescriptor[i]) { printf("%s: blockDescriptor[%d] = SASSimpleHeapAlloc(%p, %zu) failed\n", progName, i, heap, kBlockSize); exit(EXIT_FAILURE); } memset(blockDescriptor[i], i, kBlockSize); } printf("%s: SASSimpleHeapFreeSpace(%p): %zu\n", progName, heap, SASSimpleHeapFreeSpace(heap)); SASSimpleHeapDestroy(heap); printf("%s: SASSimpleHeapDestroy(%p)\n", progName, heap); SASBlockDealloc(blockDescriptor, block__Size512); printf("%s: SASBlockDealloc(%p, %lu)\n", progName, blockDescriptor, block__Size512); SASCleanUp(); return 0; }