fork download
  1. int num_of_pages = size / PAGE_SIZE ;
  2. num_of_pages= ROUNDUP(num_of_pages,PAGE_SIZE);
  3. uint32 min=9999;
  4. struct Frame_Info* ptr_frame_info;
  5. int num_of_pages_Kheap = (KERNEL_HEAP_MAX-KERNEL_HEAP_START)/PAGE_SIZE;
  6. uint32 va=0;
  7. uint32 *ptr_table = NULL;
  8. for(int i = KERNEL_HEAP_START ; i < KERNEL_HEAP_MAX ; i+=PAGE_SIZE)
  9. {
  10. int count =0 ;
  11. ptr_frame_info = get_frame_info(ptr_page_directory,(void*)i, &ptr_table);
  12. if (ptr_frame_info == NULL)
  13. {
  14. for(int j = i; j < KERNEL_HEAP_MAX;j+=PAGE_SIZE )
  15. {
  16. ptr_frame_info = get_frame_info(ptr_page_directory,(void*)j, &ptr_table);
  17. if (ptr_frame_info == NULL)
  18. {
  19. count++;
  20. }
  21. else
  22. {
  23. if (count<min && count>=num_of_pages)
  24. {
  25. min=count;
  26. va=i;
  27. break;
  28. }
  29. else
  30. break;
  31. }
  32. }
  33. }
  34. }
  35. uint32 ret=va;
  36. for(int i = 0;i<num_of_pages;i++)
  37. {
  38. ptr_table=NULL;
  39. ptr_frame_info = get_frame_info(ptr_page_directory, (void*)va, &ptr_table);
  40. allocate_frame(&ptr_frame_info) ;
  41. map_frame(ptr_page_directory, ptr_frame_info, (void*)va, PERM_USER|PERM_WRITEABLE);
  42. va+=PAGE_SIZE;
  43. }
  44.  
  45. //NOTE: Allocation is based on BEST FIT strategy
  46. //NOTE: All kernel heap allocations are multiples of PAGE_SIZE (4KB)
  47. //refer to the project presentation and documentation for details
  48.  
  49. //TODO: [PROJECT 2019 - BONUS1] Implement the FIRST FIT strategy for Kernel allocation
  50. // Beside the BEST FIT
  51. // use "isKHeapPlacementStrategyFIRSTFIT() ..." functions to check the current strategy
  52.  
  53. //change this "return" according to your answer
  54. if(ret == 0)
  55. return NULL;
  56. else
  57. return (void*)ret;
  58.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:1: error: class, interface, or enum expected
int num_of_pages = size / PAGE_SIZE ;
^
Main.java:1: error: class, interface, or enum expected
int num_of_pages = size / PAGE_SIZE ;
    ^
Main.java:2: error: class, interface, or enum expected
	num_of_pages= ROUNDUP(num_of_pages,PAGE_SIZE);
	^
Main.java:3: error: class, interface, or enum expected
	uint32 min=9999;
	^
Main.java:4: error: class, interface, or enum expected
	struct Frame_Info* ptr_frame_info;
	^
Main.java:5: error: class, interface, or enum expected
	int num_of_pages_Kheap = (KERNEL_HEAP_MAX-KERNEL_HEAP_START)/PAGE_SIZE;
	^
Main.java:6: error: class, interface, or enum expected
	uint32 va=0;
	^
Main.java:7: error: class, interface, or enum expected
	uint32 *ptr_table = NULL;
	^
Main.java:8: error: class, interface, or enum expected
	for(int i = KERNEL_HEAP_START ; i < KERNEL_HEAP_MAX ; i+=PAGE_SIZE)
	^
Main.java:8: error: class, interface, or enum expected
	for(int i = KERNEL_HEAP_START ; i < KERNEL_HEAP_MAX ; i+=PAGE_SIZE)
	                                ^
Main.java:8: error: class, interface, or enum expected
	for(int i = KERNEL_HEAP_START ; i < KERNEL_HEAP_MAX ; i+=PAGE_SIZE)
	                                                      ^
Main.java:11: error: class, interface, or enum expected
		ptr_frame_info = get_frame_info(ptr_page_directory,(void*)i, &ptr_table);
		^
Main.java:12: error: class, interface, or enum expected
		if (ptr_frame_info == NULL)
		^
Main.java:14: error: class, interface, or enum expected
		    for(int j = i; j < KERNEL_HEAP_MAX;j+=PAGE_SIZE )
		                   ^
Main.java:14: error: class, interface, or enum expected
		    for(int j = i; j < KERNEL_HEAP_MAX;j+=PAGE_SIZE )
		                                       ^
Main.java:17: error: class, interface, or enum expected
		    	if (ptr_frame_info == NULL)
		    	^
Main.java:20: error: class, interface, or enum expected
		    	}
		    	^
Main.java:26: error: class, interface, or enum expected
		    			va=i;
		    			^
Main.java:27: error: class, interface, or enum expected
		    			break;
		    			^
Main.java:28: error: class, interface, or enum expected
		    		}
		    		^
Main.java:31: error: class, interface, or enum expected
		    	}
		    	^
Main.java:36: error: class, interface, or enum expected
	for(int i = 0;i<num_of_pages;i++)
	^
Main.java:36: error: class, interface, or enum expected
	for(int i = 0;i<num_of_pages;i++)
	              ^
Main.java:36: error: class, interface, or enum expected
	for(int i = 0;i<num_of_pages;i++)
	                             ^
Main.java:39: error: class, interface, or enum expected
		ptr_frame_info = get_frame_info(ptr_page_directory, (void*)va, &ptr_table);
		^
Main.java:40: error: class, interface, or enum expected
		allocate_frame(&ptr_frame_info) ;
		^
Main.java:41: error: class, interface, or enum expected
		map_frame(ptr_page_directory, ptr_frame_info, (void*)va, PERM_USER|PERM_WRITEABLE);
		^
Main.java:42: error: class, interface, or enum expected
		va+=PAGE_SIZE;
		^
Main.java:43: error: class, interface, or enum expected
	}
	^
Main.java:56: error: class, interface, or enum expected
	else
	^
30 errors
stdout
Standard output is empty