]> xenbits.xensource.com Git - xenclient/toolstack.git/commitdiff
fix pci to have the required id
authorVincent Hanquez <vincent.hanquez@eu.citrix.com>
Wed, 29 Jul 2009 00:46:08 +0000 (01:46 +0100)
committerVincent Hanquez <vincent.hanquez@eu.citrix.com>
Wed, 29 Jul 2009 00:46:08 +0000 (01:46 +0100)
xenvm/tasks.ml
xenvm/vmact.ml
xenvm/xenvm.ml

index 73286f701047eec071c872389f7cd573d20c975c..1621cdd39b10c6482c587ad9a9c3d9c7f2fa2498 100644 (file)
@@ -95,7 +95,9 @@ let actions_table = [
                                               "type", R, ArgString; "mode", R, ArgString;
                                               "devtype", R, ArgString ]);
        (AddNic,     mk_desc_args "nic-add" [ "bridge", O, ArgString; "mac", O, ArgString; "model", O, ArgString ]);
-       (AddPCI,     mk_desc_args "pci-add" [ "domain", R, ArgInt; "bus", R, ArgInt; "slot", R, ArgInt; "func", R, ArgInt ]);
+       (AddPCI,     mk_desc_args "pci-add" [ "id", R, ArgInt; "domain", R, ArgInt; "bus", R, ArgInt;
+                                             "slot", R, ArgInt; "func", R, ArgInt;
+                                             "msitranslate", O, ArgBool; "power_mgmt", O, ArgBool ]);
        (DelDisk,    mk_desc "disk-del");
        (DelNic,     mk_desc "nic-del");
        (DelPCI,     mk_desc "pci-del");
index efe87330c8a05832098b949d6dde54cf27eb3623..a4e2637dadae6356acf33c564d28180422e17033 100644 (file)
@@ -678,7 +678,7 @@ let add_disk state path device ty mode devtype =
                Vmconfig.disk_dynadded = false;
        } in
        let cfg = get_new_config state in
-       (* add disk to disks *)
+       let cfg = { cfg with disks = cfg.disks @ [ disk ] } in
        set_new_config state cfg;
        Xenvmlib.Ok
 
@@ -689,13 +689,14 @@ let add_nic state bridge mac model =
                Vmconfig.nic_model = model;
        } in
        let cfg = get_new_config state in
-       (* add nic to nics *)
+       let cfg = { cfg with nics = cfg.nics @ [ nic ] } in
        set_new_config state cfg;
        Xenvmlib.Ok
 
-let add_pci state domain bus slot func bind msitranslate power_mgmt =
+let add_pci state id domain bus slot func bind msitranslate power_mgmt =
        let msitranslate = may (fun b -> if b then 1 else 0) msitranslate in
        let power_mgmt = may (fun b -> if b then 1 else 0) power_mgmt in
+       let id = Int64.to_int id in
        let pci = {
                Vmconfig.pci_bind = bind;
                Vmconfig.pci_domain = Int64.to_int domain;
@@ -706,7 +707,7 @@ let add_pci state domain bus slot func bind msitranslate power_mgmt =
                Vmconfig.pci_power_mgmt = power_mgmt;
        } in
        let cfg = get_new_config state in
-       (* add pci to pcis *)
+       let cfg = { cfg with pcis = cfg.pcis @ [ id, pci ] } in
        set_new_config state cfg;
        Xenvmlib.Ok
 
index 420c59a5c971960e6829d2c70d2f0f78026a2294..1ec82ba72927b99b69b058e4705a9dbf9be8f4ab 100644 (file)
@@ -464,6 +464,7 @@ let do_task quit state (task, args) =
                let model = optional_arg_nodef Tasks.args_get_string args "model" in
                Vmact.add_nic state bridge mac model
        | Tasks.AddPCI ->
+               let id = Tasks.args_get_int args "id" in
                let domain = Tasks.args_get_int args "domain" in
                let bus = Tasks.args_get_int args "bus" in
                let slot = Tasks.args_get_int args "slot" in
@@ -471,7 +472,7 @@ let do_task quit state (task, args) =
                let bind = optional_arg true Tasks.args_get_bool args "bind" in
                let msitranslate = optional_arg_nodef Tasks.args_get_bool args "msitranslate" in
                let power_mgmt = optional_arg_nodef Tasks.args_get_bool args "power_mgmt" in
-               Vmact.add_pci state domain bus slot func bind msitranslate power_mgmt
+               Vmact.add_pci state id domain bus slot func bind msitranslate power_mgmt
        | Tasks.DelDisk | Tasks.DelNic | Tasks.DelPCI ->
                Xenvmlib.Error "not implemented"
        | Tasks.ListDisk | Tasks.ListNic | Tasks.ListPCI ->