dma/idxd: add operation statistic tracking
[dpdk.git] / doc / guides / prog_guide / source_org.rst
1 ..  SPDX-License-Identifier: BSD-3-Clause
2     Copyright(c) 2010-2014 Intel Corporation.
3
4 **Part 2: Development Environment**
5
6 Source Organization
7 ===================
8
9 This section describes the organization of sources in the DPDK framework.
10
11 Libraries
12 ---------
13
14 Libraries are located in subdirectories of ``dpdk/lib``.
15 By convention a library refers to any code that provides an API to an application.
16 Typically, it generates an archive file (``.a``), but a kernel module would also go in the same directory.
17
18 Drivers
19 -------
20
21 Drivers are special libraries which provide poll-mode driver implementations for
22 devices: either hardware devices or pseudo/virtual devices. They are contained
23 in the *drivers* subdirectory, classified by type, and each compiles to a
24 library with the format ``librte_X_Y.a`` where ``X`` is the device class
25 name and ``Y`` is the driver name.
26
27 .. note::
28
29    Several of the ``driver/net`` directories contain a ``base``
30    sub-directory. The ``base`` directory generally contains code the shouldn't
31    be modified directly by the user. Any enhancements should be done via the
32    ``X_osdep.c`` and/or ``X_osdep.h`` files in that directory. Refer to the
33    local README in the base directories for driver specific instructions.
34
35
36 Applications
37 ------------
38
39 Applications are source files that contain a ``main()`` function.
40 They are located in the ``dpdk/app`` and ``dpdk/examples`` directories.
41
42 The app directory contains sample applications that are used to test DPDK (such as autotests)
43 or the Poll Mode Drivers (test-pmd).
44
45 The examples directory contains :doc:`Sample applications<../sample_app_ug/index>` that show how libraries can be used.