Пример #1
0
int main(int argc, char**argv){
    /*create data file*/
    CREATE_FILE(MMAP_FILE, DATA_FOR_MMAP, DATASIZE_FOR_MMAP);

    /*test1: test mmap+munmap with 0 offset*/
    mmap_test(0);

    /*test2: test mmap with not 0 offset*/
    mmap_test(10);
    return 0;
}
Пример #2
0
int mmap_find_squence(size_t s) {
	if (s == 0)
		return -1;
	
	if (s == 1)
		return mmap_find_first();
		
	for (uint32_t i=0;i<pmm_get_free_block_count()/32;++i) {
		if (_pmm_mmap[i] != 0xffffffff) {
			for (int j=0;j<32;++j) {
				int bit = 1 << j;
				if (!(_pmm_mmap[i] & bit)) {
					
					int start_bit = i*32 + bit;
					uint32_t free_bit = 0;
					
					for (uint32_t count=0;count<=s;++count) {
						if (!(mmap_test(start_bit+count)))
							free_bit++;
							
						if (free_bit == s)
							return i*32+j;
					}
				}
			}
		}
	}
	
	return -1;
}
Пример #3
0
int main(int argc, char **argv)
{
        (void) printf("Congrats!  You're running this executable.\n");
        (void) printf("Now let's see how you handle the tests...\n");


        mmap_test();

        null_test();
        zero_test();
        brk_test();

        fault_test();

        wait_test();
        cow_fork();

        fork_test();

        return 0;
}