X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Feal_private.h;h=ca1aec6ef1afa41313297dd4b4904acc586e7107;hb=3071e0aaa89b57a66960d163f794213349d0a72e;hp=232fceccc7170c3103801fd805f989ed59030d9d;hpb=4b5a6f916aa788a79e056d26e2928ad6d634e241;p=dpdk.git diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index 232fceccc7..ca1aec6ef1 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -35,6 +35,7 @@ #define _EAL_PRIVATE_H_ #include +#include /** * Initialize the memzone subsystem (private to eal). @@ -48,9 +49,6 @@ int rte_eal_memzone_init(void); /** * Common log initialization function (private to eal). * - * Called by environment-specific log initialization function to initialize - * log history. - * * @param default_log * The default log stream to be used. * @return @@ -119,7 +117,7 @@ int rte_eal_log_early_init(void); int rte_eal_log_init(const char *id, int facility); /** - * Init the default log stream + * Init the PCI infrastructure * * This function is private to EAL. * @@ -128,41 +126,83 @@ int rte_eal_log_init(const char *id, int facility); */ int rte_eal_pci_init(void); -#ifdef RTE_LIBRTE_IVSHMEM +struct rte_pci_driver; +struct rte_pci_device; + /** - * Init the memory from IVSHMEM devices + * Unbind kernel driver for this device * * This function is private to EAL. * * @return - * 0 on success, negative on error + * 0 on success, negative on error */ -int rte_eal_ivshmem_init(void); +int pci_unbind_kernel_driver(struct rte_pci_device *dev); /** - * Init objects in IVSHMEM devices + * Map the PCI resource of a PCI device in virtual memory * * This function is private to EAL. * * @return - * 0 on success, negative on error + * 0 on success, negative on error */ -int rte_eal_ivshmem_obj_init(void); -#endif +int pci_uio_map_resource(struct rte_pci_device *dev); -struct rte_pci_driver; -struct rte_pci_device; +/** + * Unmap the PCI resource of a PCI device + * + * This function is private to EAL. + */ +void pci_uio_unmap_resource(struct rte_pci_device *dev); /** - * Mmap memory for single PCI device + * Allocate uio resource for PCI device * * This function is private to EAL. * + * @param dev + * PCI device to allocate uio resource + * @param uio_res + * Pointer to uio resource. + * If the function returns 0, the pointer will be filled. * @return * 0 on success, negative on error */ -int rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, - struct rte_pci_device *dev); +int pci_uio_alloc_resource(struct rte_pci_device *dev, + struct mapped_pci_resource **uio_res); + +/** + * Free uio resource for PCI device + * + * This function is private to EAL. + * + * @param dev + * PCI device to free uio resource + * @param uio_res + * Pointer to uio resource. + */ +void pci_uio_free_resource(struct rte_pci_device *dev, + struct mapped_pci_resource *uio_res); + +/** + * Map device memory to uio resource + * + * This function is private to EAL. + * + * @param dev + * PCI device that has memory information. + * @param res_idx + * Memory resource index of the PCI device. + * @param uio_res + * uio resource that will keep mapping information. + * @param map_idx + * Mapping information index of the uio resource. + * @return + * 0 on success, negative on error + */ +int pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx, + struct mapped_pci_resource *uio_res, int map_idx); /** * Init tail queues for non-EAL library structures. This is to allow @@ -197,10 +237,63 @@ int rte_eal_intr_init(void); int rte_eal_alarm_init(void); /** - * This function initialises any virtual devices + * Function is to check if the kernel module(like, vfio, vfio_iommu_type1, + * etc.) loaded. + * + * @param module_name + * The module's name which need to be checked + * + * @return + * -1 means some error happens(NULL pointer or open failure) + * 0 means the module not loaded + * 1 means the module loaded + */ +int rte_eal_check_module(const char *module_name); + +/** + * Get cpu core_id. + * + * This function is private to the EAL. + */ +unsigned eal_cpu_core_id(unsigned lcore_id); + +/** + * Check if cpu is present. + * + * This function is private to the EAL. + */ +int eal_cpu_detected(unsigned lcore_id); + +/** + * Set TSC frequency from precise value or estimation + * + * This function is private to the EAL. + */ +void set_tsc_freq(void); + +/** + * Get precise TSC frequency from system + * + * This function is private to the EAL. + */ +uint64_t get_tsc_freq(void); + +/** + * Prepare physical memory mapping + * i.e. hugepages on Linux and + * contigmem on BSD. + * + * This function is private to the EAL. + */ +int rte_eal_hugepage_init(void); + +/** + * Creates memory mapping in secondary process + * i.e. hugepages on Linux and + * contigmem on BSD. * * This function is private to the EAL. */ -int rte_eal_dev_init(void); +int rte_eal_hugepage_attach(void); #endif /* _EAL_PRIVATE_H_ */