X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Fcommon%2Feal_private.h;h=6e0f85def8d04c6d30d384c708c5e22bdfb958d1;hb=1ae0a97f1457b027b1a8cbff6a0fe10743d9db28;hp=d41cbe1750be3ba2da407a58d5a0b7c552e488db;hpb=9b957f378abf597f1a32dd99dbc07706563898c1;p=dpdk.git diff --git a/lib/librte_eal/common/eal_private.h b/lib/librte_eal/common/eal_private.h index d41cbe1750..6e0f85def8 100644 --- a/lib/librte_eal/common/eal_private.h +++ b/lib/librte_eal/common/eal_private.h @@ -34,6 +34,7 @@ #ifndef _EAL_PRIVATE_H_ #define _EAL_PRIVATE_H_ +#include #include #include @@ -47,10 +48,9 @@ int rte_eal_memzone_init(void); /** - * Common log initialization function (private to eal). - * - * Called by environment-specific log initialization function to initialize - * log history. + * Common log initialization function (private to eal). Determines + * where log data is written when no call to rte_openlog_stream is + * in effect. * * @param default_log * The default log stream to be used. @@ -58,7 +58,7 @@ int rte_eal_memzone_init(void); * - 0 on success * - Negative on error */ -int rte_eal_common_log_init(FILE *default_log); +void eal_log_set_default(FILE *default_log); /** * Fill configuration with number of physical and logical processors @@ -100,104 +100,97 @@ int rte_eal_memory_init(void); int rte_eal_timer_init(void); /** - * Init early logs + * Init the default log stream * * This function is private to EAL. * * @return * 0 on success, negative on error */ -int rte_eal_log_early_init(void); +int rte_eal_log_init(const char *id, int facility); + +struct rte_pci_driver; +struct rte_pci_device; /** - * Init the default log stream - * - * This function is private to EAL. - * - * @return - * 0 on success, negative on error + * Find the name of a PCI device. */ -int rte_eal_log_init(const char *id, int facility); +void pci_name_set(struct rte_pci_device *dev); /** - * Init the default log stream - * - * This function is private to EAL. + * Add a PCI device to the PCI Bus (append to PCI Device list). This function + * also updates the bus references of the PCI Device (and the generic device + * object embedded within. * - * @return - * 0 on success, negative on error + * @param pci_dev + * PCI device to add + * @return void */ -int rte_eal_pci_init(void); +void rte_pci_add_device(struct rte_pci_device *pci_dev); -#ifdef RTE_LIBRTE_IVSHMEM /** - * Init the memory from IVSHMEM devices - * - * This function is private to EAL. - * - * @return - * 0 on success, negative on error + * Insert a PCI device in the PCI Bus at a particular location in the device + * list. It also updates the PCI Bus reference of the new devices to be + * inserted. + * + * @param exist_pci_dev + * Existing PCI device in PCI Bus + * @param new_pci_dev + * PCI device to be added before exist_pci_dev + * @return void */ -int rte_eal_ivshmem_init(void); +void rte_pci_insert_device(struct rte_pci_device *exist_pci_dev, + struct rte_pci_device *new_pci_dev); /** - * Init objects in IVSHMEM devices - * - * This function is private to EAL. + * Remove a PCI device from the PCI Bus. This sets to NULL the bus references + * in the PCI device object as well as the generic device object. * - * @return - * 0 on success, negative on error + * @param pci_device + * PCI device to be removed from PCI Bus + * @return void */ -int rte_eal_ivshmem_obj_init(void); -#endif - -struct rte_pci_driver; -struct rte_pci_device; +void rte_pci_remove_device(struct rte_pci_device *pci_device); /** - * Map the PCI resource of a PCI device in virtual memory + * Update a pci device object by asking the kernel for the latest information. * * This function is private to EAL. * + * @param addr + * The PCI Bus-Device-Function address to look for * @return - * 0 on success, negative on error + * - 0 on success. + * - negative on error. */ -int pci_uio_map_resource(struct rte_pci_device *dev); +int pci_update_device(const struct rte_pci_addr *addr); -#ifdef RTE_LIBRTE_EAL_HOTPLUG /** - * Unmap the PCI resource of a PCI device + * Unbind kernel driver for this device * * This function is private to EAL. + * + * @return + * 0 on success, negative on error */ -void pci_uio_unmap_resource(struct rte_pci_device *dev); -#endif /* RTE_LIBRTE_EAL_HOTPLUG */ +int pci_unbind_kernel_driver(struct rte_pci_device *dev); /** - * Mmap memory for single PCI device + * Map the PCI resource of a PCI device in virtual memory * * This function is private to EAL. * * @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_map_resource(struct rte_pci_device *dev); /** - * Munmap memory for single PCI device + * Unmap the PCI resource of a PCI device * * This function is private to EAL. - * - * @param dr - * The pointer to the pci driver structure - * @param dev - * The pointer to the pci device structure - * @return - * 0 on success, negative on error */ -int rte_eal_pci_close_one_driver(struct rte_pci_driver *dr, - struct rte_pci_device *dev); +void pci_uio_unmap_resource(struct rte_pci_device *dev); /** * Allocate uio resource for PCI device @@ -279,13 +272,6 @@ int rte_eal_intr_init(void); */ int rte_eal_alarm_init(void); -/** - * This function initialises any virtual devices - * - * This function is private to the EAL. - */ -int rte_eal_dev_init(void); - /** * Function is to check if the kernel module(like, vfio, vfio_iommu_type1, * etc.) loaded. @@ -300,4 +286,84 @@ int rte_eal_dev_init(void); */ 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); + +/** + * Get TSC frequency if the architecture supports. + * + * This function is private to the EAL. + * + * @return + * The number of TSC cycles in one second. + * Returns zero if the architecture support is not available. + */ +uint64_t get_tsc_freq_arch(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_hugepage_attach(void); + +/** + * Returns true if the system is able to obtain + * physical addresses. Return false if using DMA + * addresses through an IOMMU. + * + * Drivers based on uio will not load unless physical + * addresses are obtainable. It is only possible to get + * physical addresses when running as a privileged user. + */ +bool rte_eal_using_phys_addrs(void); + +/** + * Find a bus capable of identifying a device. + * + * @param str + * A device identifier (PCI address, virtual PMD name, ...). + * + * @return + * A valid bus handle if found. + * NULL if no bus is able to parse this device. + */ +struct rte_bus *rte_bus_find_by_device_name(const char *str); + #endif /* _EAL_PRIVATE_H_ */