struct kvm *kvm__init(void);
void kvm__enable_singlestep(struct kvm *self);
-bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename);
+bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename, const char *kernel_cmdline);
void kvm__reset_vcpu(struct kvm *self);
void kvm__run(struct kvm *self);
void kvm__emulate_io(struct kvm *self, uint16_t port, void *data, int direction, int size, uint32_t count);
#define BZ_DEFAULT_SETUP_SECTS 4
-static bool load_bzimage(struct kvm *self, int fd)
+static bool load_bzimage(struct kvm *self, int fd, const char *kernel_cmdline)
{
unsigned long setup_sects;
struct boot_params boot;
return true;
}
-bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename)
+bool kvm__load_kernel(struct kvm *kvm, const char *kernel_filename,
+ const char *kernel_cmdline)
{
bool ret;
int fd;
if (fd < 0)
die("unable to open kernel");
- ret = load_bzimage(kvm, fd);
+ ret = load_bzimage(kvm, fd, kernel_cmdline);
if (ret)
goto found_kernel;
int main(int argc, char *argv[])
{
const char *kernel_filename = NULL;
+ const char *kernel_cmdline = NULL;
struct kvm *kvm;
int i;
if (!strncmp("--kernel=", argv[i], 9)) {
kernel_filename = &argv[i][9];
continue;
+ } else if (!strncmp("--params=", argv[i], 9)) {
+ kernel_cmdline = &argv[i][9];
+ continue;
} else {
/* any unspecified arg is kernel image */
if (argv[i][0] != '-')
kvm = kvm__init();
- if (!kvm__load_kernel(kvm, kernel_filename))
+ if (!kvm__load_kernel(kvm, kernel_filename, kernel_cmdline))
die("unable to load kernel %s", kernel_filename);
kvm__reset_vcpu(kvm);