7 typedef struct private_dumm_t private_dumm_t
;
9 struct private_dumm_t
{
11 linked_list_t
*guests
;
14 static guest_t
* start_guest(private_dumm_t
*this, char *name
, char *kernel
,
15 char *master
, int mem
)
19 guest
= guest_create(name
, kernel
, master
, mem
);
22 if (guest
->start(guest
))
24 this->guests
->insert_last(this->guests
, guest
);
27 guest
->destroy(guest
);
32 static iterator_t
* create_guest_iterator(private_dumm_t
*this)
34 return this->guests
->create_iterator(this->guests
, TRUE
);
37 static void destroy(private_dumm_t
*this)
39 this->guests
->destroy_offset(this->guests
, offsetof(guest_t
, destroy
));
44 * check for a directory, create if it does not exist
46 static bool makedir(char *dir
)
50 if (stat(dir
, &st
) != 0)
52 return mkdir(dir
, S_IRWXU
) == 0;
54 return S_ISDIR(st
.st_mode
);
59 private_dumm_t
*this = malloc_thing(private_dumm_t
);
61 this->public.start_guest
= (void*)start_guest
;
62 this->public.create_guest_iterator
= (void*)create_guest_iterator
;
63 this->public.destroy
= (void*)destroy
;
65 if (!makedir(HOST_DIR
) || !makedir(MOUNT_DIR
) || !makedir(RUN_DIR
))
71 this->guests
= linked_list_create();