X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_rawdev%2Frte_rawdev_pmd.h;h=cb3555ab50cc66c2085e04b8b026ab9e8f505b7b;hb=a18e79cd3cce35dd6f7c61f323100833e5ed9db9;hp=6d6cf14a14c9c24389d80e7418b1f454efefa08a;hpb=931cc531aad239a016949c5bc436334e6348e65e;p=dpdk.git diff --git a/lib/librte_rawdev/rte_rawdev_pmd.h b/lib/librte_rawdev/rte_rawdev_pmd.h index 6d6cf14a14..cb3555ab50 100644 --- a/lib/librte_rawdev/rte_rawdev_pmd.h +++ b/lib/librte_rawdev/rte_rawdev_pmd.h @@ -73,8 +73,6 @@ struct rte_rawdev_global { uint16_t nb_devs; }; -extern struct rte_rawdev_global *rte_rawdev_globals; -/** Pointer to global raw devices data structure. */ extern struct rte_rawdev *rte_rawdevs; /** The pool of rte_rawdev structures. */ @@ -250,6 +248,24 @@ typedef int (*rawdev_queue_setup_t)(struct rte_rawdev *dev, typedef int (*rawdev_queue_release_t)(struct rte_rawdev *dev, uint16_t queue_id); +/** + * Get the count of number of queues configured on this device. + * + * Another way to fetch this information is to fetch the device configuration. + * But, that assumes that the device configuration managed by the driver has + * that kind of information. + * + * This function helps in getting queue count supported, independently. It + * can help in cases where iterator needs to be implemented. + * + * @param + * Raw device pointer + * @return + * Number of queues; 0 is assumed to be a valid response. + * + */ +typedef uint16_t (*rawdev_queue_count_t)(struct rte_rawdev *dev); + /** * Enqueue an array of raw buffers to the device. * @@ -266,7 +282,7 @@ typedef int (*rawdev_queue_release_t)(struct rte_rawdev *dev, * an opaque object representing context of the call; for example, an * application can pass information about the queues on which enqueue needs * to be done. Or, the enqueue operation might be passed reference to an - * object containing a callback (agreed upon between applicatio and driver). + * object containing a callback (agreed upon between application and driver). * * @return * >=0 Count of buffers successfully enqueued (0: no buffers enqueued) @@ -447,7 +463,7 @@ typedef int (*rawdev_firmware_version_get_t)(struct rte_rawdev *dev, rte_rawdev_obj_t version_info); /** - * Load firwmare from a buffer (DMA'able) + * Load firmware from a buffer (DMA'able) * * @param dev * Raw device pointer @@ -464,7 +480,7 @@ typedef int (*rawdev_firmware_load_t)(struct rte_rawdev *dev, rte_rawdev_obj_t firmware_buf); /** - * Unload firwmare + * Unload firmware * * @param dev * Raw device pointer @@ -483,7 +499,7 @@ typedef int (*rawdev_firmware_unload_t)(struct rte_rawdev *dev); * @return * Return 0 on success */ -typedef int (*rawdev_selftest_t)(void); +typedef int (*rawdev_selftest_t)(uint16_t dev_id); /** Rawdevice operations function pointer table */ struct rte_rawdev_ops { @@ -506,6 +522,8 @@ struct rte_rawdev_ops { rawdev_queue_setup_t queue_setup; /**< Release an raw queue. */ rawdev_queue_release_t queue_release; + /**< Get the number of queues attached to the device */ + rawdev_queue_count_t queue_count; /**< Enqueue an array of raw buffers to device. */ rawdev_enqueue_bufs_t enqueue_bufs; @@ -530,7 +548,7 @@ struct rte_rawdev_ops { /**< Reset the statistics values in xstats. */ rawdev_xstats_reset_t xstats_reset; - /**< Obtainer firmware status */ + /**< Obtain firmware status */ rawdev_firmware_status_get_t firmware_status_get; /**< Obtain firmware version information */ rawdev_firmware_version_get_t firmware_version_get; @@ -550,7 +568,9 @@ struct rte_rawdev_ops { * @param name * Unique identifier name for each device * @param dev_private_size - * Private data allocated within rte_rawdev object. + * Size of private data memory allocated within rte_rawdev object. + * Set to 0 to disable internal memory allocation and allow for + * self-allocation. * @param socket_id * Socket to allocate resources on. * @return