Beispiel #1
0
void main(uint32_t magic, const multiboot_info_t *mbi)
{
    vga_clear();
    check_multiboot(magic, mbi);
    init_memory(mbi);

    //-----

    struct kmem_cache *cache = kmem_cache_create("test", 1024, 1024);

    void *obj1 = kmem_cache_alloc(cache, KMEM_ZEROED);
    void *obj2 = kmem_cache_alloc(cache, KMEM_ZEROED);
    void *obj3 = kmem_cache_alloc(cache, KMEM_ZEROED);
    void *obj4 = kmem_cache_alloc(cache, KMEM_ZEROED);
    void *obj5 = kmem_cache_alloc(cache, KMEM_ZEROED);

    printf("obj1: 0x%p\n", obj1);
    printf("obj2: 0x%p\n", obj2);
    printf("obj3: 0x%p\n", obj3);
    printf("obj4: 0x%p\n", obj4);
    printf("obj5: 0x%p\n", obj5);

    kmem_cache_free(cache, obj2);
    obj2 = kmem_cache_alloc(cache, KMEM_DEFAULT);
    printf("obj2: 0x%p\n", obj2);

    kmem_cache_free(cache, obj1);
    kmem_cache_free(cache, obj2);
    kmem_cache_free(cache, obj3);
    kmem_cache_free(cache, obj4);
    kmem_cache_free(cache, obj5);

    kmem_cache_print_info(cache);

    kmem_cache_destroy(cache);

    init_interrupts();

    __asm__ __volatile__("int $0x3");
    __asm__ __volatile__("int $0x4");

    while (1)
    {
    }

    ASSERT_MSG(0, "control reached end of main");
}
Beispiel #2
0
int main(unsigned arg_c, char *arg_v[])
{
	FILE *file;

	if(arg_c < 2)
	{
		printf("Checks if file is Multiboot compatible\n");
		return 1;
	}
	file = fopen(arg_v[1], "rb");
	if(file == NULL)
	{
		printf("Can't open file '%s'\n", arg_v[1]);
		return 2;
	}
	check_multiboot(arg_v[1], file);
	fclose(file);
	return 0;
}
Beispiel #3
0
void kmain(uint32_t magic, multiboot_info_t * mbinfo)
{
    con_init();

    klog_info("Kernel Location:   0x%08x - 0x%08x\n", KERNEL_START, KERNEL_END);
    klog_info("Multiboot Version: %x\n", mbinfo->flags);
    klog_info("Memory (Low/High): 0x%08x/0x%08x\n", mbinfo->mem_lower, mbinfo->mem_upper);
    check_multiboot(magic, mbinfo);

    arch_init();
    mm_init(mbinfo);

    klog_info("Sepix %s-%s %s %s\n",
              BUILD_VERSION_BRANCH,
              BUILD_VERSION_REV,
              BUILD_VERSION_DATE,
              STRINGIFY(ARCH));

    task_init();
    arch_start();
    
    task_idle_fn();
}
Beispiel #4
0
int
main (int argc, char *argv[])
{
  int c;

  do
    {
      c = getopt_long (argc, argv, optstring, longopts, 0);
      switch (c)
	{
	case EOF:
	  break;

	case 'h':
	  usage (0);
	  break;

	case 'v':
	  printf ("mbchk (GNU GRUB " VERSION ")\n");
	  exit (0);
	  break;

	case 'q':
	  quiet = 1;
	  break;

	default:
	  usage (1);
	  break;
	}
    }
  while (c != EOF);

  if (optind < argc)
    {
      while (optind < argc)
	{
	  FILE *fp;

	  fp = fopen (argv[optind], "r");
	  if (! fp)
	    {
	      fprintf (stderr, "%s: No such file.\n", argv[optind]);
	      exit (1);
	    }

	  if (! check_multiboot (argv[optind], fp))
	    exit (1);

	  fclose (fp);
	  optind++;
	}
    }
  else
    {
      if (! check_multiboot ("<stdin>", stdin))
	exit (1);
    }

  return 0;
}