Ejemplo n.º 1
0
//added by Ying
int sys_shmem_count(void)
{
    int page_number;
    if (argint(0, &page_number) < 0)
        return -1;
    return shmem_count(page_number);
}
Ejemplo n.º 2
0
int
main(int argc, char *argv[])
{
	void *ptr;
 	int n;
	int i;

	for (i = 0; i < 4; i++) {
		ptr = shmem_access(i);
		if (ptr == NULL) {
			test_failed();
		}
	}
	
	int pid = fork();
	if (pid < 0) {
		test_failed();
	}
	else if (pid == 0) {
		for (i = 0; i < 4; i++) {
			n = shmem_count(i);
			if (n != 2) {
				test_failed();
			}
		}
		exit();	
	}
	else {
		wait();
	}

	test_passed();
	exit();
}
Ejemplo n.º 3
0
int sys_shmem_count(void) {
  int page_num;
  // illegal page number
  if(argint(0, &page_num) < 0) 
    return -1;
  
  // call shmem_count in proc.c
  return shmem_count(page_num);
}
Ejemplo n.º 4
0
int
main(int argc, char *argv[])
{	
	char *ptr;
	int i;
	char d, arr[6] = "CS537";
	

	int pid = fork();
	if (pid < 0) {
		test_failed();
	}	
	else if (pid == 0) {
		// printf(1, "child shmem_counter before access: %d\n", shmem_count(3));

		ptr = shmem_access(3);
		if (ptr == NULL) {
			test_failed();
		}
		
		for (i = 0; i < 5; i++) {
			*(ptr+i) = arr[i];
			printf(1, "write: %c\n", *(ptr+i));
		}
		for (i = 0; i < 5; i++) {
			d = *(ptr+i);
			printf(1, "read in child: %c\n", d);
		}
		// printf(1, "child shmem_counter after access: %d\n", shmem_count(3));

		exit();
	}
	else {
		wait();
		// printf(1, "parent shmem_counter before access: %d\n", shmem_count(3));		
		ptr = shmem_access(3);
		// printf(1, "parent shmem_counter after access: %d\n", shmem_count(3));		

		if (ptr == NULL) {
			test_failed();
		}
		
		for (i = 0; i < 5; i++) {		
			printf(1, "read in parent: %c\n", *(ptr+i));
			if (*(ptr+i) != arr[i]) {
				printf(1, "%d\t%c\t%c\n", shmem_count(3), *(ptr+i), arr[i]);
				test_failed();
			}
		}
	}
	
	test_passed();
	exit();
}