eal: fix C++11 compilation
[dpdk.git] / tools / dpdk_nic_bind.py
index 95d1e51..8523f82 100755 (executable)
@@ -43,7 +43,13 @@ ETHERNET_CLASS = "0200"
 # Each device within this is itself a dictionary of device properties
 devices = {}
 # list of supported DPDK drivers
-dpdk_drivers = [ "igb_uio", "vfio-pci" ]
+dpdk_drivers = [ "igb_uio", "vfio-pci", "uio_pci_generic" ]
+
+# command-line arg flags
+b_flag = None
+status_flag = False
+force_flag = False
+args = []
 
 def usage():
     '''Print usage information for the program'''
@@ -168,9 +174,12 @@ def check_modules():
                 mod["Found"] = True
 
     # check if we have at least one loaded module
-    if True not in [mod["Found"] for mod in mods]:
-        print "Error - no supported modules are loaded"
-        sys.exit(1)
+    if True not in [mod["Found"] for mod in mods] and b_flag is not None:
+        if b_flag in dpdk_drivers:
+            print "Error - no supported modules(DPDK driver) are loaded"
+            sys.exit(1)
+        else:
+            print "Warning - no supported modules(DPDK driver) are loaded"
 
     # change DPDK driver list to only contain drivers that are loaded
     dpdk_drivers = [mod["Name"] for mod in mods if mod["Found"]]
@@ -459,9 +468,10 @@ def show_status():
 def parse_args():
     '''Parses the command-line arguments given by the user and takes the
     appropriate action for each'''
-    b_flag = None
-    status_flag = False
-    force_flag = False
+    global b_flag
+    global status_flag
+    global force_flag
+    global args
     if len(sys.argv) <= 1:
         usage()
         sys.exit(0)
@@ -492,6 +502,13 @@ def parse_args():
             else:
                 b_flag = arg
 
+def do_arg_actions():
+    '''do the actual action requested by the user'''
+    global b_flag
+    global status_flag
+    global force_flag
+    global args
+
     if b_flag is None and not status_flag:
         print "Error: No action specified for devices. Please give a -b or -u option"
         print "Run '%s --usage' for further information" % sys.argv[0]
@@ -513,9 +530,10 @@ def parse_args():
 
 def main():
     '''program main function'''
+    parse_args()
     check_modules()
     get_nic_details()
-    parse_args()
+    do_arg_actions()
 
 if __name__ == "__main__":
     main()