diff options
-rw-r--r-- | CMakeLists.txt | 22 | ||||
-rw-r--r-- | driver/Makefile | 9 | ||||
-rw-r--r-- | driver/README | 4 | ||||
-rw-r--r-- | driver/base.c | 76 | ||||
-rw-r--r-- | driver/base.h | 2 | ||||
-rw-r--r-- | driver/compat.h | 6 | ||||
-rw-r--r-- | driver/ioctl.c | 20 | ||||
-rw-r--r-- | driver/kmem.c | 14 | ||||
-rw-r--r-- | pyserver/api_server.py (renamed from pywrap/api_server.py) | 0 | ||||
-rw-r--r-- | pyserver/html_server.py (renamed from html_server/html_server.py) | 0 | ||||
-rw-r--r-- | pyserver/static/base.css (renamed from html_server/static/base.css) | 0 | ||||
-rw-r--r-- | pyserver/static/check_err.js (renamed from html_server/static/check_err.js) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/dhtmlx.css (renamed from html_server/static/codebase/dhtmlx.css) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/dhtmlx.js (renamed from html_server/static/codebase/dhtmlx.js) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/dhtmlx_deprecated.js (renamed from html_server/static/codebase/dhtmlx_deprecated.js) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/ext/dhxupload.xap (renamed from html_server/static/codebase/ext/dhxupload.xap) | bin | 23436 -> 23436 bytes | |||
-rw-r--r-- | pyserver/static/codebase/ext/swfobject.js (renamed from html_server/static/codebase/ext/swfobject.js) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/ext/uploader.swf (renamed from html_server/static/codebase/ext/uploader.swf) | bin | 3646 -> 3646 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/blank.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/blank.gif) | bin | 56 -> 56 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/but_cut.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/but_cut.gif) | bin | 87 -> 87 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif) | bin | 579 -> 579 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif) | bin | 571 -> 571 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif) | bin | 155 -> 155 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif) | bin | 155 -> 155 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif) | bin | 155 -> 155 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif) | bin | 92 -> 92 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif) | bin | 878 -> 878 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/leaf.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/leaf.gif) | bin | 361 -> 361 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line.gif) | bin | 79 -> 79 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line1.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line1.gif) | bin | 79 -> 79 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif) | bin | 79 -> 79 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line2.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line2.gif) | bin | 74 -> 74 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif) | bin | 76 -> 76 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line3.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line3.gif) | bin | 81 -> 81 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif) | bin | 81 -> 81 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line4.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line4.gif) | bin | 67 -> 67 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif) | bin | 69 -> 69 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/lock.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/lock.gif) | bin | 208 -> 208 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus.gif) | bin | 107 -> 107 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus1.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus1.gif) | bin | 107 -> 107 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus2.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus2.gif) | bin | 119 -> 119 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif) | bin | 121 -> 121 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus3.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus3.gif) | bin | 125 -> 125 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif) | bin | 125 -> 125 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus4.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus4.gif) | bin | 117 -> 117 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif) | bin | 117 -> 117 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus5.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus5.gif) | bin | 111 -> 111 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif) | bin | 111 -> 111 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus.gif) | bin | 111 -> 111 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus1.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus1.gif) | bin | 111 -> 111 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus2.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus2.gif) | bin | 123 -> 123 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif) | bin | 124 -> 124 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus3.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus3.gif) | bin | 128 -> 128 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif) | bin | 128 -> 128 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus4.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus4.gif) | bin | 120 -> 120 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif) | bin | 119 -> 119 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus5.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus5.gif) | bin | 114 -> 114 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif) | bin | 113 -> 113 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/radio_off.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/radio_off.gif) | bin | 213 -> 213 bytes | |||
-rw-r--r-- | pyserver/static/codebase/imgs/dhxtree_skyblue/radio_on.gif (renamed from html_server/static/codebase/imgs/dhxtree_skyblue/radio_on.gif) | bin | 223 -> 223 bytes | |||
-rw-r--r-- | pyserver/static/codebase/thirdparty/excanvas/AUTHORS (renamed from html_server/static/codebase/thirdparty/excanvas/AUTHORS) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/thirdparty/excanvas/COPYING (renamed from html_server/static/codebase/thirdparty/excanvas/COPYING) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/thirdparty/excanvas/README (renamed from html_server/static/codebase/thirdparty/excanvas/README) | 0 | ||||
-rw-r--r-- | pyserver/static/codebase/thirdparty/excanvas/excanvas.js (renamed from html_server/static/codebase/thirdparty/excanvas/excanvas.js) | 0 | ||||
-rw-r--r-- | pyserver/static/jquery-2.2.1.js (renamed from html_server/static/jquery-2.2.1.js) | 0 | ||||
-rw-r--r-- | pyserver/templates/base.html (renamed from html_server/templates/base.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/property_info.html (renamed from html_server/templates/property_info.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/register_info.html (renamed from html_server/templates/register_info.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/registers/table_cell.html (renamed from html_server/templates/registers/table_cell.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/registers/table_header.html (renamed from html_server/templates/registers/table_header.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/registers/table_scripts.html (renamed from html_server/templates/registers/table_scripts.html) | 0 | ||||
-rw-r--r-- | pyserver/templates/registers_list.html (renamed from html_server/templates/registers_list.html) | 0 | ||||
-rw-r--r-- | pywrap/CMakeLists.txt | 9 |
73 files changed, 138 insertions, 24 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 4445af7..856e23c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,8 +38,26 @@ find_package(PkgConfig REQUIRED) find_package(Threads REQUIRED) if (NOT DISABLE_PYTHON) - find_package(PythonLibs 2 REQUIRED) + + find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonInterp 2 REQUIRED) + find_package(SWIG REQUIRED) + if (NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING) + message (FATAL_ERROR "Version mismatch between python interpreter and libraries") + endif (NOT PYTHON_VERSION_STRING VERSION_EQUAL PYTHONLIBS_VERSION_STRING) + +# execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "from sysconfig import get_path; print get_path('platlib')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) + + execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import site; print site.PREFIXES[-1]" OUTPUT_VARIABLE PYTHON_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE) + file (TO_CMAKE_PATH "${PYTHON_PREFIX}" PYTHON_PREFIX) + execute_process (COMMAND ${PYTHON_EXECUTABLE} -c "import site; print site.getsitepackages()[0]" OUTPUT_VARIABLE PYTHON_SITE_DIR OUTPUT_STRIP_TRAILING_WHITESPACE) + file (TO_CMAKE_PATH "${PYTHON_SITE_DIR}" PYTHON_SITE_DIR) + + string (REGEX REPLACE "^${PYTHON_PREFIX}/" "${CMAKE_INSTALL_PREFIX}/" PYTHON_SITE_DIR "${PYTHON_SITE_DIR}") + + set(PYTHON_INSTALL_DIR ${PYTHON_SITE_DIR} CACHE PATH "path to install python module") + message(${PYTHON_INSTALL_DIR}) set(HAVE_PYTHON TRUE) include(FindPythonInterp) endif (NOT DISABLE_PYTHON) @@ -114,7 +132,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile.in ${CMAKE_CURRENT_BINA if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) file(COPY ${CMAKE_SOURCE_DIR}/xml DESTINATION ${CMAKE_BINARY_DIR}) - file(COPY ${CMAKE_SOURCE_DIR}/html_server DESTINATION ${CMAKE_BINARY_DIR}) + file(COPY ${CMAKE_SOURCE_DIR}/pyserver DESTINATION ${CMAKE_BINARY_DIR}) file(COPY ${CMAKE_SOURCE_DIR}/pci DESTINATION ${CMAKE_BINARY_DIR} FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE diff --git a/driver/Makefile b/driver/Makefile index c26a84a..a783c3f 100644 --- a/driver/Makefile +++ b/driver/Makefile @@ -1,3 +1,4 @@ +CONFIG_MODULE_SIG=n obj-m := pciDriver.o pciDriver-objs := base.o int.o umem.o kmem.o sysfs.o ioctl.o compat.o @@ -8,6 +9,12 @@ PWD := $(shell pwd) EXTRA_CFLAGS += -I$(M)/.. +ifdef DUMMY_DEVICE +ifneq ($(DUMMY_DEVICE), 0) + EXTRA_CFLAGS += -DPCIDRIVER_DUMMY_DEVICE +endif +endif + default: @KERNEL_GCC_VERSION=`cat /proc/version | head -n1 | cut -d " " -f 7` ;\ GCC_VERSION=`$(CC) --version | head -n 1 | tr ' ' '\n' | grep -e "[0-9]\+\.[0-9]" | tail -n 1` ;\ @@ -39,7 +46,7 @@ default: build_date=`date "+%Y/%m/%d %H:%M:%S"` ;\ build="Built at $$build_date by $$build_user" ;\ revision="Revision $$build_revision from $$build_branch by $$build_author at $$build_path, last modification from $$build_lastmod" ;\ - echo -e "#define PCIDRIVER_BUILD \"$$build\"\\n#define PCIDRIVER_REVISION \"$$revision\"\\n#define PCIDRIVER_CHANGES \"$$build_changes\"\\n" > build.h ;\ + /bin/echo -e "#define PCIDRIVER_BUILD \"$$build\"\\n#define PCIDRIVER_REVISION \"$$revision\"\\n#define PCIDRIVER_CHANGES \"$$build_changes\"\\n" > build.h ;\ $(MAKE) $(CFLAGS) -C $(KERNELDIR) M=$(PWD) CC=$$CC modules install: diff --git a/driver/README b/driver/README new file mode 100644 index 0000000..66a68df --- /dev/null +++ b/driver/README @@ -0,0 +1,4 @@ +make <OPTIONS> + V=1 verbose mode + RELAXED_GCC_CHECK=1 allow difference in micro version of gcc used to compile kernel and pcidriver module + DUMMY_DEVICE=1 build dummy device driver (does not require PCI device) diff --git a/driver/base.c b/driver/base.c index bc9ab98..4e55dda 100644 --- a/driver/base.c +++ b/driver/base.c @@ -210,6 +210,10 @@ MODULE_LICENSE("GPL v2"); /* Module class */ static struct class_compat *pcidriver_class; +#ifdef PCIDRIVER_DUMMY_DEVICE +pcidriver_privdata_t *pcidriver_privdata = NULL; +#endif /* PCIDRIVER_DUMMY_DEVICE */ + /** * * Called when loading the driver @@ -217,7 +221,7 @@ static struct class_compat *pcidriver_class; */ static int __init pcidriver_init(void) { - int err; + int err = 0; /* Initialize the device count */ atomic_set(&pcidriver_deviceCount, 0); @@ -239,7 +243,11 @@ static int __init pcidriver_init(void) /* Register PCI driver. This function returns the number of devices on some * systems, therefore check for errors as < 0. */ +#ifdef PCIDRIVER_DUMMY_DEVICE + if ((err = pcidriver_probe(NULL, NULL)) < 0) { +#else /* PCIDRIVER_DUMMY_DEVICE */ if ((err = pci_register_driver(&pcidriver_driver)) < 0) { +#endif /* PCIDRIVER_DUMMY_DEVICE */ mod_info("Couldn't register PCI driver. Module not loaded.\n"); goto init_pcireg_fail; } @@ -268,7 +276,12 @@ init_alloc_fail: */ static void pcidriver_exit(void) { +#ifdef PCIDRIVER_DUMMY_DEVICE + pcidriver_remove(NULL); +#else pci_unregister_driver(&pcidriver_driver); +#endif /* PCIDRIVER_DUMMY_DEVICE */ + unregister_chrdev_region(pcidriver_devt, MAXDEVICES); if (pcidriver_class != NULL) @@ -286,12 +299,14 @@ static void pcidriver_exit(void) * Will be registered at module init. * */ +#ifndef PCIDRIVER_DUMMY_DEVICE static struct pci_driver pcidriver_driver = { .name = MODNAME, .id_table = pcidriver_ids, .probe = pcidriver_probe, .remove = pcidriver_remove, }; +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ /** * @@ -301,7 +316,7 @@ static struct pci_driver pcidriver_driver = { */ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_device_id *id) { - int err; + int err = 0; int devno; pcidriver_privdata_t *privdata; int devid; @@ -311,6 +326,9 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi * * However, there is some difference in the interrupt handling functions. */ +#ifdef PCIDRIVER_DUMMY_DEVICE + mod_info("Emulated device\n"); +#else /* PCIDRIVER_DUMMY_DEVICE */ if (id->vendor == PCIE_XILINX_VENDOR_ID) { if (id->device == PCIE_ML605_DEVICE_ID) { mod_info("Found ML605 board at %s\n", dev_name(&pdev->dev)); @@ -323,7 +341,7 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi } } else { /* It is something else */ - mod_info( "Found unknown board (%x:%x) at %s\n", id->vendor, id->device, dev_name(&pdev->dev)); + mod_info("Found unknown board (%x:%x) at %s\n", id->vendor, id->device, dev_name(&pdev->dev)); } /* Enable the device */ @@ -343,7 +361,8 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi /* Set Memory-Write-Invalidate support */ if ((err = pci_set_mwi(pdev)) != 0) - mod_info("MWI not supported. Continue without enabling MWI.\n"); + mod_info("MWI not supported. Continue without enabling MWI.\n"); +#endif /* PCIDRIVER_DUMMY_DEVICE */ /* Get / Increment the device id */ devid = atomic_inc_return(&pcidriver_deviceCount) - 1; @@ -367,22 +386,31 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi spin_lock_init(&(privdata->umemlist_lock)); atomic_set(&privdata->umem_count, 0); - pci_set_drvdata( pdev, privdata ); +#ifdef PCIDRIVER_DUMMY_DEVICE + pcidriver_privdata = privdata; +#else /* PCIDRIVER_DUMMY_DEVICE */ + pci_set_drvdata(pdev, privdata); privdata->pdev = pdev; +#endif /* PCIDRIVER_DUMMY_DEVICE */ /* Device add to sysfs */ devno = MKDEV(MAJOR(pcidriver_devt), MINOR(pcidriver_devt) + devid); privdata->devno = devno; - if (pcidriver_class != NULL) { - /* FIXME: some error checking missing here */ - privdata->class_dev = class_device_create(pcidriver_class, NULL, devno, &(pdev->dev), NODENAMEFMT, MINOR(pcidriver_devt) + devid, privdata); - class_set_devdata( privdata->class_dev, privdata ); - mod_info("Device /dev/%s%d added\n",NODENAME,MINOR(pcidriver_devt) + devid); - } + /* FIXME: some error checking missing here */ +#ifdef PCIDRIVER_DUMMY_DEVICE + privdata->class_dev = class_device_create(pcidriver_class, NULL, devno, NULL, NODENAMEFMT, MINOR(pcidriver_devt) + devid, privdata); +#else /* PCIDRIVER_DUMMY_DEVICE */ + privdata->class_dev = class_device_create(pcidriver_class, NULL, devno, &(pdev->dev), NODENAMEFMT, MINOR(pcidriver_devt) + devid, privdata); +#endif /* PCIDRIVER_DUMMY_DEVICE */ + class_set_devdata( privdata->class_dev, privdata ); + mod_info("Device /dev/%s%d added\n",NODENAME,MINOR(pcidriver_devt) + devid); + +#ifndef PCIDRIVER_DUMMY_DEVICE /* Setup mmaped BARs into kernel space */ if ((err = pcidriver_probe_irq(privdata)) != 0) goto probe_irq_probe_fail; +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ /* Populate sysfs attributes for the class device */ /* TODO: correct errorhandling. ewww. must remove the files in reversed order :-( */ @@ -419,15 +447,19 @@ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_devi probe_device_create_fail: probe_cdevadd_fail: +#ifndef PCIDRIVER_DUMMY_DEVICE probe_irq_probe_fail: pcidriver_irq_unmap_bars(privdata); +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ kfree(privdata); probe_nomem: atomic_dec(&pcidriver_deviceCount); probe_maxdevices_fail: +#ifndef PCIDRIVER_DUMMY_DEVICE probe_dma_fail: pci_disable_device(pdev); probe_pcien_fail: +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ return err; } @@ -440,8 +472,13 @@ static void __devexit pcidriver_remove(struct pci_dev *pdev) { pcidriver_privdata_t *privdata; +#ifdef PCIDRIVER_DUMMY_DEVICE + privdata = pcidriver_privdata; + pcidriver_privdata = NULL; +#else /* PCIDRIVER_DUMMY_DEVICE */ /* Get private data from the device */ privdata = pci_get_drvdata(pdev); +#endif /* PCIDRIVER_DUMMY_DEVICE */ /* Removing sysfs attributes from class device */ #define sysfs_attr(name) do { \ @@ -465,9 +502,11 @@ static void __devexit pcidriver_remove(struct pci_dev *pdev) /* Free all allocated kmem buffers before leaving */ pcidriver_kmem_free_all( privdata ); -#ifdef ENABLE_IRQ +#ifndef PCIDRIVER_DUMMY_DEVICE +# ifdef ENABLE_IRQ pcidriver_remove_irq(privdata); -#endif +# endif +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ /* Removing Character device */ cdev_del(&(privdata->cdev)); @@ -478,10 +517,14 @@ static void __devexit pcidriver_remove(struct pci_dev *pdev) /* Releasing privdata */ kfree(privdata); +#ifdef PCIDRIVER_DUMMY_DEVICE + mod_info("Device at " NODENAMEFMT " removed\n", 0); +#else /* PCIDRIVER_DUMMY_DEVICE */ /* Disabling PCI device */ pci_disable_device(pdev); - mod_info("Device at %s removed\n", dev_name(&pdev->dev)); +#endif /* PCIDRIVER_DUMMY_DEVICE */ + } /*************************************************************************/ @@ -613,6 +656,9 @@ int pcidriver_mmap(struct file *filp, struct vm_area_struct *vma) /* Internal driver functions */ int pcidriver_mmap_pci(pcidriver_privdata_t *privdata, struct vm_area_struct *vmap, int bar) { +#ifdef PCIDRIVER_DUMMY_DEVICE + return -ENXIO; +#else /* PCIDRIVER_DUMMY_DEVICE */ int ret = 0; unsigned long bar_addr; unsigned long bar_length, vma_size; @@ -620,6 +666,7 @@ int pcidriver_mmap_pci(pcidriver_privdata_t *privdata, struct vm_area_struct *vm mod_info_dbg("Entering mmap_pci\n"); + /* Get info of the BAR to be mapped */ bar_addr = pci_resource_start(privdata->pdev, bar); bar_length = pci_resource_len(privdata->pdev, bar); @@ -680,4 +727,5 @@ int pcidriver_mmap_pci(pcidriver_privdata_t *privdata, struct vm_area_struct *vm } return 0; /* success */ +#endif /* PCIDRIVER_DUMMY_DEVICE */ } diff --git a/driver/base.h b/driver/base.h index b976d3f..5b977fa 100644 --- a/driver/base.h +++ b/driver/base.h @@ -17,7 +17,9 @@ int pcidriver_open(struct inode *inode, struct file *filp ); int pcidriver_release(struct inode *inode, struct file *filp); /* prototypes for device operations */ +#ifndef PCIDRIVER_DUMMY_DEVICE static struct pci_driver pcidriver_driver; +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ static int __devinit pcidriver_probe(struct pci_dev *pdev, const struct pci_device_id *id); static void __devexit pcidriver_remove(struct pci_dev *pdev); diff --git a/driver/compat.h b/driver/compat.h index fd3f188..5232a22 100644 --- a/driver/compat.h +++ b/driver/compat.h @@ -10,6 +10,12 @@ #ifndef _COMPAT_H #define _COMPAT_H +/* +#if LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0) +# error "Linux 3.0 and latter are supported" +#endif +*/ + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0) # define __devinit # define __devexit diff --git a/driver/ioctl.c b/driver/ioctl.c index 26618c0..f957561 100644 --- a/driver/ioctl.c +++ b/driver/ioctl.c @@ -96,6 +96,9 @@ static int ioctl_mmap_area(pcidriver_privdata_t *privdata, unsigned long arg) */ static int ioctl_pci_config_read_write(pcidriver_privdata_t *privdata, unsigned int cmd, unsigned long arg) { +#ifdef PCIDRIVER_DUMMY_DEVICE + return -ENXIO; +#else /* PCIDRIVER_DUMMY_DEVICE */ int ret; READ_FROM_USER(pci_cfg_cmd, pci_cmd); @@ -133,6 +136,7 @@ static int ioctl_pci_config_read_write(pcidriver_privdata_t *privdata, unsigned WRITE_TO_USER(pci_cfg_cmd, pci_cmd); return 0; +#endif /* PCIDRIVER_DUMMY_DEVICE */ } /** @@ -145,7 +149,14 @@ static int ioctl_pci_config_read_write(pcidriver_privdata_t *privdata, unsigned static int ioctl_pci_info(pcidriver_privdata_t *privdata, unsigned long arg) { int ret; + +#ifdef PCIDRIVER_DUMMY_DEVICE + READ_FROM_USER(pcilib_board_info_t, pci_info); + memset(&pci_info, 0, sizeof(pci_info)); + WRITE_TO_USER(pcilib_board_info_t, pci_info); +#else /* PCIDRIVER_DUMMY_DEVICE */ int bar; + READ_FROM_USER(pcilib_board_info_t, pci_info); pci_info.vendor_id = privdata->pdev->vendor; @@ -168,6 +179,7 @@ static int ioctl_pci_info(pcidriver_privdata_t *privdata, unsigned long arg) } WRITE_TO_USER(pcilib_board_info_t, pci_info); +#endif /* PCIDRIVER_DUMMY_DEVICE */ return 0; } @@ -443,12 +455,16 @@ static int ioctl_device_state(pcidriver_privdata_t *privdata, unsigned long arg) int ret; pcilib_device_state_t info; +#ifdef PCIDRIVER_DUMMY_DEVICE + memset(&info, 0, sizeof(info)); +#else /* PCIDRIVER_DUMMY_DEVICE */ info = (pcilib_device_state_t) { .iommu = iommu_present(privdata->pdev->dev.bus), .mps = pcidriver_pcie_get_mps(privdata->pdev), .readrq = pcie_get_readrq(privdata->pdev), .dma_mask = privdata->pdev->dma_mask }; +#endif /* PCIDRIVER_DUMMY_DEVICE */ WRITE_TO_USER(pcilib_device_state_t, info); @@ -466,6 +482,7 @@ static int ioctl_device_state(pcidriver_privdata_t *privdata, unsigned long arg) */ static int ioctl_set_dma_mask(pcidriver_privdata_t *privdata, unsigned long arg) { +#ifndef PCIDRIVER_DUMMY_DEVICE int err; if ((arg < 24) || (arg > 64)) @@ -476,6 +493,7 @@ static int ioctl_set_dma_mask(pcidriver_privdata_t *privdata, unsigned long arg) printk(KERN_ERR "pci_set_dma_mask(%lu) failed\n", arg); return err; } +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ return 0; } @@ -489,6 +507,7 @@ static int ioctl_set_dma_mask(pcidriver_privdata_t *privdata, unsigned long arg) */ static int ioctl_set_mps(pcidriver_privdata_t *privdata, unsigned long arg) { +#ifndef PCIDRIVER_DUMMY_DEVICE int err; if ((arg != 128) && (arg != 256) && (arg != 512)) @@ -499,6 +518,7 @@ static int ioctl_set_mps(pcidriver_privdata_t *privdata, unsigned long arg) printk(KERN_ERR "pcie_set_mps(%lu) failed\n", arg); return err; } +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ return 0; } diff --git a/driver/kmem.c b/driver/kmem.c index 618b5bf..805ace1 100644 --- a/driver/kmem.c +++ b/driver/kmem.c @@ -137,7 +137,11 @@ int pcidriver_kmem_alloc(pcidriver_privdata_t *privdata, kmem_handle_t *kmem_han */ switch (kmem_entry->type&PCILIB_KMEM_TYPE_MASK) { case PCILIB_KMEM_TYPE_CONSISTENT: +#ifdef PCIDRIVER_DUMMY_DEVICE + retptr = kmalloc( kmem_handle->size, GFP_KERNEL); +#else /* PCIDRIVER_DUMMY_DEVICE */ retptr = pci_alloc_consistent( privdata->pdev, kmem_handle->size, &(kmem_entry->dma_handle) ); +#endif /* PCIDRIVER_DUMMY_DEVICE */ break; case PCILIB_KMEM_TYPE_REGION: retptr = ioremap(kmem_handle->pa, kmem_handle->size); @@ -162,6 +166,7 @@ int pcidriver_kmem_alloc(pcidriver_privdata_t *privdata, kmem_handle_t *kmem_han kmem_entry->dma_handle = 0; if (retptr) { +#ifndef PCIDRIVER_DUMMY_DEVICE if (kmem_entry->type == PCILIB_KMEM_TYPE_DMA_S2C_PAGE) { kmem_entry->direction = PCI_DMA_TODEVICE; kmem_entry->dma_handle = pci_map_single(privdata->pdev, retptr, kmem_handle->size, PCI_DMA_TODEVICE); @@ -178,6 +183,7 @@ int pcidriver_kmem_alloc(pcidriver_privdata_t *privdata, kmem_handle_t *kmem_han } } +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ } break; @@ -361,6 +367,7 @@ int pcidriver_kmem_sync_entry( pcidriver_privdata_t *privdata, pcidriver_kmem_en if (kmem_entry->direction == PCI_DMA_NONE) return -EINVAL; +#ifndef PCIDRIVER_DUMMY_DEVICE #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) switch (direction) { case PCILIB_KMEM_SYNC_TODEVICE: @@ -391,6 +398,7 @@ int pcidriver_kmem_sync_entry( pcidriver_privdata_t *privdata, pcidriver_kmem_en return -EINVAL; /* wrong direction parameter */ } #endif +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ return 0; /* success */ } @@ -480,12 +488,17 @@ int pcidriver_kmem_free_entry(pcidriver_privdata_t *privdata, pcidriver_kmem_ent /* Release DMA memory */ switch (kmem_entry->type&PCILIB_KMEM_TYPE_MASK) { case PCILIB_KMEM_TYPE_CONSISTENT: +#ifdef PCIDRIVER_DUMMY_DEVICE + kfree((void*)(kmem_entry->cpua)); +#else /* PCIDRIVER_DUMMY_DEVICE */ pci_free_consistent( privdata->pdev, kmem_entry->size, (void *)(kmem_entry->cpua), kmem_entry->dma_handle ); +#endif /* PCIDRIVER_DUMMY_DEVICE */ break; case PCILIB_KMEM_TYPE_REGION: iounmap((void *)(kmem_entry->cpua)); break; case PCILIB_KMEM_TYPE_PAGE: +#ifndef PCIDRIVER_DUMMY_DEVICE if (kmem_entry->dma_handle) { if (kmem_entry->type == PCILIB_KMEM_TYPE_DMA_S2C_PAGE) { pci_unmap_single(privdata->pdev, kmem_entry->dma_handle, kmem_entry->size, PCI_DMA_TODEVICE); @@ -493,6 +506,7 @@ int pcidriver_kmem_free_entry(pcidriver_privdata_t *privdata, pcidriver_kmem_ent pci_unmap_single(privdata->pdev, kmem_entry->dma_handle, kmem_entry->size, PCI_DMA_FROMDEVICE); } } +#endif /* ! PCIDRIVER_DUMMY_DEVICE */ free_pages((unsigned long)kmem_entry->cpua, get_order(kmem_entry->size)); break; } diff --git a/pywrap/api_server.py b/pyserver/api_server.py index 18ee1f8..18ee1f8 100644 --- a/pywrap/api_server.py +++ b/pyserver/api_server.py diff --git a/html_server/html_server.py b/pyserver/html_server.py index 22194cd..22194cd 100644 --- a/html_server/html_server.py +++ b/pyserver/html_server.py diff --git a/html_server/static/base.css b/pyserver/static/base.css index 15c2249..15c2249 100644 --- a/html_server/static/base.css +++ b/pyserver/static/base.css diff --git a/html_server/static/check_err.js b/pyserver/static/check_err.js index 66519ea..66519ea 100644 --- a/html_server/static/check_err.js +++ b/pyserver/static/check_err.js diff --git a/html_server/static/codebase/dhtmlx.css b/pyserver/static/codebase/dhtmlx.css index 9b89ec5..9b89ec5 100644 --- a/html_server/static/codebase/dhtmlx.css +++ b/pyserver/static/codebase/dhtmlx.css diff --git a/html_server/static/codebase/dhtmlx.js b/pyserver/static/codebase/dhtmlx.js index 5e560b1..5e560b1 100644 --- a/html_server/static/codebase/dhtmlx.js +++ b/pyserver/static/codebase/dhtmlx.js diff --git a/html_server/static/codebase/dhtmlx_deprecated.js b/pyserver/static/codebase/dhtmlx_deprecated.js index 5731d3f..5731d3f 100644 --- a/html_server/static/codebase/dhtmlx_deprecated.js +++ b/pyserver/static/codebase/dhtmlx_deprecated.js diff --git a/html_server/static/codebase/ext/dhxupload.xap b/pyserver/static/codebase/ext/dhxupload.xap Binary files differindex f2deecd..f2deecd 100644 --- a/html_server/static/codebase/ext/dhxupload.xap +++ b/pyserver/static/codebase/ext/dhxupload.xap diff --git a/html_server/static/codebase/ext/swfobject.js b/pyserver/static/codebase/ext/swfobject.js index 7a9d26f..7a9d26f 100644 --- a/html_server/static/codebase/ext/swfobject.js +++ b/pyserver/static/codebase/ext/swfobject.js diff --git a/html_server/static/codebase/ext/uploader.swf b/pyserver/static/codebase/ext/uploader.swf Binary files differindex 2fa8674..2fa8674 100644 --- a/html_server/static/codebase/ext/uploader.swf +++ b/pyserver/static/codebase/ext/uploader.swf diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/blank.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/blank.gif Binary files differindex d7ae406..d7ae406 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/blank.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/blank.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/but_cut.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/but_cut.gif Binary files differindex 942bd18..942bd18 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/but_cut.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/but_cut.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif Binary files differindex e0a88ce..e0a88ce 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/folderClosed.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif Binary files differindex 1680dbc..1680dbc 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/folderOpen.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif Binary files differindex a61302a..a61302a 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckAll.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif Binary files differindex 42447b8..42447b8 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckDis.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif Binary files differindex 0350b2a..0350b2a 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconCheckGray.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif Binary files differindex 9f3fe50..9f3fe50 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckAll.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif Binary files differindex f15d9f7..f15d9f7 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/iconUncheckDis.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/leaf.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/leaf.gif Binary files differindex 9c3e531..9c3e531 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/leaf.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/leaf.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line.gif Binary files differindex b4f560c..b4f560c 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line1.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line1.gif Binary files differindex b4f560c..b4f560c 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line1.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line1.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif Binary files differindex bf32db2..bf32db2 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line1_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line2.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line2.gif Binary files differindex 23b2ce3..23b2ce3 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line2.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line2.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif Binary files differindex 6ec17b5..6ec17b5 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line2_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line3.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line3.gif Binary files differindex 43152c5..43152c5 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line3.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line3.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif Binary files differindex 74a874c..74a874c 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line3_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line4.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line4.gif Binary files differindex 907fe7a..907fe7a 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line4.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line4.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif Binary files differindex 5c7e162..5c7e162 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/line4_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/lock.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/lock.gif Binary files differindex 67456b1..67456b1 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/lock.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/lock.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus.gif Binary files differindex caa3f57..caa3f57 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus1.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus1.gif Binary files differindex 2ab1070..2ab1070 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus1.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus1.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus2.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus2.gif Binary files differindex 036e5b3..036e5b3 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus2.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus2.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif Binary files differindex b4672bf..b4672bf 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus2_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus3.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus3.gif Binary files differindex 3242cca..3242cca 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus3.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus3.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif Binary files differindex 8c279e0..8c279e0 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus3_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus4.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus4.gif Binary files differindex 1c7c0a7..1c7c0a7 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus4.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus4.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif Binary files differindex 70992fe..70992fe 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus4_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus5.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus5.gif Binary files differindex 031c160..031c160 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus5.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus5.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif Binary files differindex 47e25cd..47e25cd 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/minus5_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus.gif Binary files differindex 019cfbd..019cfbd 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus1.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus1.gif Binary files differindex 34dee94..34dee94 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus1.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus1.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus2.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus2.gif Binary files differindex d57afa9..d57afa9 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus2.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus2.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif Binary files differindex fde3a58..fde3a58 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus2_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus3.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus3.gif Binary files differindex 2b6546b..2b6546b 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus3.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus3.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif Binary files differindex 863d34c..863d34c 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus3_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus4.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus4.gif Binary files differindex a4fe8c0..a4fe8c0 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus4.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus4.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif Binary files differindex 635e6f6..635e6f6 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus4_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus5.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus5.gif Binary files differindex 88c35a4..88c35a4 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus5.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus5.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif Binary files differindex 2ae5444..2ae5444 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/plus5_rtl.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/radio_off.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/radio_off.gif Binary files differindex a050afd..a050afd 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/radio_off.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/radio_off.gif diff --git a/html_server/static/codebase/imgs/dhxtree_skyblue/radio_on.gif b/pyserver/static/codebase/imgs/dhxtree_skyblue/radio_on.gif Binary files differindex 4d594b5..4d594b5 100644 --- a/html_server/static/codebase/imgs/dhxtree_skyblue/radio_on.gif +++ b/pyserver/static/codebase/imgs/dhxtree_skyblue/radio_on.gif diff --git a/html_server/static/codebase/thirdparty/excanvas/AUTHORS b/pyserver/static/codebase/thirdparty/excanvas/AUTHORS index 90decb3..90decb3 100644 --- a/html_server/static/codebase/thirdparty/excanvas/AUTHORS +++ b/pyserver/static/codebase/thirdparty/excanvas/AUTHORS diff --git a/html_server/static/codebase/thirdparty/excanvas/COPYING b/pyserver/static/codebase/thirdparty/excanvas/COPYING index 75b5248..75b5248 100644 --- a/html_server/static/codebase/thirdparty/excanvas/COPYING +++ b/pyserver/static/codebase/thirdparty/excanvas/COPYING diff --git a/html_server/static/codebase/thirdparty/excanvas/README b/pyserver/static/codebase/thirdparty/excanvas/README index eb7c42f..eb7c42f 100644 --- a/html_server/static/codebase/thirdparty/excanvas/README +++ b/pyserver/static/codebase/thirdparty/excanvas/README diff --git a/html_server/static/codebase/thirdparty/excanvas/excanvas.js b/pyserver/static/codebase/thirdparty/excanvas/excanvas.js index 66310a8..66310a8 100644 --- a/html_server/static/codebase/thirdparty/excanvas/excanvas.js +++ b/pyserver/static/codebase/thirdparty/excanvas/excanvas.js diff --git a/html_server/static/jquery-2.2.1.js b/pyserver/static/jquery-2.2.1.js index b7c491f..b7c491f 100644 --- a/html_server/static/jquery-2.2.1.js +++ b/pyserver/static/jquery-2.2.1.js diff --git a/html_server/templates/base.html b/pyserver/templates/base.html index a2df1e9..a2df1e9 100644 --- a/html_server/templates/base.html +++ b/pyserver/templates/base.html diff --git a/html_server/templates/property_info.html b/pyserver/templates/property_info.html index 62ea1ba..62ea1ba 100644 --- a/html_server/templates/property_info.html +++ b/pyserver/templates/property_info.html diff --git a/html_server/templates/register_info.html b/pyserver/templates/register_info.html index 3efebd7..3efebd7 100644 --- a/html_server/templates/register_info.html +++ b/pyserver/templates/register_info.html diff --git a/html_server/templates/registers/table_cell.html b/pyserver/templates/registers/table_cell.html index d394d42..d394d42 100644 --- a/html_server/templates/registers/table_cell.html +++ b/pyserver/templates/registers/table_cell.html diff --git a/html_server/templates/registers/table_header.html b/pyserver/templates/registers/table_header.html index 4c46713..4c46713 100644 --- a/html_server/templates/registers/table_header.html +++ b/pyserver/templates/registers/table_header.html diff --git a/html_server/templates/registers/table_scripts.html b/pyserver/templates/registers/table_scripts.html index a772b9f..a772b9f 100644 --- a/html_server/templates/registers/table_scripts.html +++ b/pyserver/templates/registers/table_scripts.html diff --git a/html_server/templates/registers_list.html b/pyserver/templates/registers_list.html index 26a6721..26a6721 100644 --- a/html_server/templates/registers_list.html +++ b/pyserver/templates/registers_list.html diff --git a/pywrap/CMakeLists.txt b/pywrap/CMakeLists.txt index 4f38354..8f14e4f 100644 --- a/pywrap/CMakeLists.txt +++ b/pywrap/CMakeLists.txt @@ -17,14 +17,9 @@ set(CMAKE_SWIG_FLAGS "") swig_add_module(pcipywrap python pcipywrap.i pcipywrap.c) swig_link_libraries(pcipywrap ${PYTHON_LIBRARIES} pcilib) - -#install pcilib python wrapper into Python site packages folder -execute_process ( COMMAND python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE) - -install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_SITE_PACKAGES}) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_SITE_PACKAGES}) +install(TARGETS ${SWIG_MODULE_pcipywrap_REAL_NAME} DESTINATION ${PYTHON_INSTALL_DIR}) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pcipywrap.py DESTINATION ${PYTHON_INSTALL_DIR}) if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) - file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/api_server.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test_pcipywrap.py DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) endif(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) |