@@ -48,6 +48,7 @@ pub struct Config {
48
48
pub fan_out_limit : u64 ,
49
49
pub hypervisor : bool ,
50
50
pub arm_pa_size_bits : usize ,
51
+ pub benchmark : bool ,
51
52
}
52
53
53
54
pub enum Arch {
@@ -584,6 +585,15 @@ impl Invocation {
584
585
arg_strs. push ( Invocation :: fmt_field ( "attr" , attr) ) ;
585
586
( page, cap_lookup. get ( & page) . unwrap ( ) . as_str ( ) )
586
587
}
588
+ InvocationArgs :: CnodeCopy { cnode, dest_index, dest_depth, src_root, src_obj, src_depth, rights } => {
589
+ arg_strs. push ( Invocation :: fmt_field ( "dest_index" , dest_index) ) ;
590
+ arg_strs. push ( Invocation :: fmt_field ( "dest_depth" , dest_depth) ) ;
591
+ arg_strs. push ( Invocation :: fmt_field_cap ( "src_root" , src_root, cap_lookup) ) ;
592
+ arg_strs. push ( Invocation :: fmt_field_cap ( "src_obj" , src_obj, cap_lookup) ) ;
593
+ arg_strs. push ( Invocation :: fmt_field ( "src_depth" , src_depth) ) ;
594
+ arg_strs. push ( Invocation :: fmt_field ( "rights" , rights) ) ;
595
+ ( cnode, cap_lookup. get ( & cnode) . unwrap ( ) . as_str ( ) )
596
+ }
587
597
InvocationArgs :: CnodeMint { cnode, dest_index, dest_depth, src_root, src_obj, src_depth, rights, badge } => {
588
598
arg_strs. push ( Invocation :: fmt_field ( "dest_index" , dest_index) ) ;
589
599
arg_strs. push ( Invocation :: fmt_field ( "dest_depth" , dest_depth) ) ;
@@ -628,7 +638,8 @@ impl Invocation {
628
638
InvocationLabel :: IrqSetIrqHandler => "IRQ Handler" ,
629
639
InvocationLabel :: ArmPageTableMap => "Page Table" ,
630
640
InvocationLabel :: ArmPageMap => "Page" ,
631
- InvocationLabel :: CnodeMint => "CNode" ,
641
+ InvocationLabel :: CnodeMint |
642
+ InvocationLabel :: CnodeCopy => "CNode" ,
632
643
InvocationLabel :: SchedControlConfigureFlags => "SchedControl" ,
633
644
InvocationLabel :: ArmVcpuSetTcb => "VCPU" ,
634
645
_ => panic ! ( "Internal error: unexpected label when getting object type '{:?}'" , self . label)
@@ -649,6 +660,7 @@ impl Invocation {
649
660
InvocationLabel :: IrqSetIrqHandler => "SetNotification" ,
650
661
InvocationLabel :: ArmPageTableMap |
651
662
InvocationLabel :: ArmPageMap => "Map" ,
663
+ InvocationLabel :: CnodeCopy => "Copy" ,
652
664
InvocationLabel :: CnodeMint => "Mint" ,
653
665
InvocationLabel :: SchedControlConfigureFlags => "ConfigureFlags" ,
654
666
InvocationLabel :: ArmVcpuSetTcb => "VCPUSetTcb" ,
@@ -672,6 +684,7 @@ impl InvocationArgs {
672
684
InvocationArgs :: IrqHandlerSetNotification { .. } => InvocationLabel :: IrqSetIrqHandler ,
673
685
InvocationArgs :: PageTableMap { .. } => InvocationLabel :: ArmPageTableMap ,
674
686
InvocationArgs :: PageMap { .. } => InvocationLabel :: ArmPageMap ,
687
+ InvocationArgs :: CnodeCopy { .. } => InvocationLabel :: CnodeCopy ,
675
688
InvocationArgs :: CnodeMint { .. } => InvocationLabel :: CnodeMint ,
676
689
InvocationArgs :: SchedControlConfigureFlags { .. } => InvocationLabel :: SchedControlConfigureFlags ,
677
690
InvocationArgs :: ArmVcpuSetTcb { .. } => InvocationLabel :: ArmVcpuSetTcb ,
@@ -728,6 +741,12 @@ impl InvocationArgs {
728
741
vec ! [ vspace]
729
742
) ,
730
743
InvocationArgs :: PageMap { page, vspace, vaddr, rights, attr } => ( page, vec ! [ vaddr, rights, attr] , vec ! [ vspace] ) ,
744
+ InvocationArgs :: CnodeCopy { cnode, dest_index, dest_depth, src_root, src_obj, src_depth, rights } =>
745
+ (
746
+ cnode,
747
+ vec ! [ dest_index, dest_depth, src_obj, src_depth, rights] ,
748
+ vec ! [ src_root]
749
+ ) ,
731
750
InvocationArgs :: CnodeMint { cnode, dest_index, dest_depth, src_root, src_obj, src_depth, rights, badge } =>
732
751
(
733
752
cnode,
@@ -822,6 +841,15 @@ pub enum InvocationArgs {
822
841
rights : u64 ,
823
842
attr : u64 ,
824
843
} ,
844
+ CnodeCopy {
845
+ cnode : u64 ,
846
+ dest_index : u64 ,
847
+ dest_depth : u64 ,
848
+ src_root : u64 ,
849
+ src_obj : u64 ,
850
+ src_depth : u64 ,
851
+ rights : u64 ,
852
+ } ,
825
853
CnodeMint {
826
854
cnode : u64 ,
827
855
dest_index : u64 ,
0 commit comments