void check_map_large(){ //These variable created for compiling sake Seq_T SEG_MEMORY = Seq_new(100); Seq_T UNMAP_SEQ = Seq_new(10); Umsegment_Id one = map_segment(6); Umsegment_Id two = map_segment(6); Umsegment_Id three = map_segment(8000); Umsegment_Id four = map_segment(6); int size = UArray_length(Seq_get(SEG_MEMORY, three)); if (size != 8000) fprintf(stderr, "Big segment is incorrect size %d.\n", size); unmap_segment(one); unmap_segment(two); unmap_segment(three); unmap_segment(four); Seq_free(&SEG_MEMORY); Seq_free(&UNMAP_SEQ); }
void check_unmap(){ //These variable created for compiling sake Seq_T SEG_MEMORY = Seq_new(100); Seq_T UNMAP_SEQ = Seq_new(10); Umsegment_Id one = map_segment(10); Umsegment_Id two = map_segment(15); Umsegment_Id three = map_segment(20); Umsegment_Id four = map_segment(25); unmap_segment(two); if ((Umsegment_Id)(uintptr_t)Seq_remhi(UNMAP_SEQ) != 15) fprintf(stderr, "Unmapped id was not found in sequence"); Umsegment_Id five = map_segment(5); if(five != two) fprintf(stderr, "Unmapped id was not used"); unmap_segment(one); unmap_segment(five); unmap_segment(three); unmap_segment(four); Seq_free(&SEG_MEMORY); Seq_free(&UNMAP_SEQ); }
/* * segment_remove() - remove the specified segment, if exists. */ int segment_remove(char *name) { glctx_t *gcp = &glctx; segment_t *segp; segp = segment_get(name); if (segp == NULL) { fprintf(stderr, "%s: no such segment: %s\n", gcp->program_name, name); return SEG_ERR; } unmap_segment(segp); free_seg_slot(segp); return SEG_OK; }
void check_map_capcity(){ //These variable created for compiling sake Seq_T SEG_MEMORY = Seq_new(100); Seq_T UNMAP_SEQ = Seq_new(10); for (int i = 0; i < 2000; i++){ int size = rand() % 20; Umsegment_Id id = map_segment(size); (void) id; if (Seq_get(SEG_MEMORY, i) == NULL) fprintf(stderr, "Segment %d not mapped.\n", size); i++; } for (int j = 1999; j >= 0; j--){ unmap_segment((Umsegment_Id) j); if (Seq_get(SEG_MEMORY, j) != NULL) fprintf(stderr, "Segment %d not unmapped.\n", j); } Seq_free(&SEG_MEMORY); Seq_free(&UNMAP_SEQ); }
extern void unmap(void *machine_p, unsigned C) { unmap_segment(machine_p, C); }