Currently in driver, two macros are defined to specify the
mac address printing format. Since both macros achieve
the same result, replace all instances of QDF_FULL_MAC_FMT
with QDF_MAC_ADDR_FMT.
Change-Id: I195448267ef8e77a7fd5b232ffbf2cfb0ded1be4
CRs-Fixed: 3559488
Currently there is no api to parse a string to int32 array.
Write an api to parse a string to int32 array.
Change-Id: I2982a1bfeff94288a1bd76d8f4d87ea2eac934b2
CRs-Fixed: 3304318
There is compilation error about decimal constant on 32 arch. Fix is
to add suffix "UL" and to mark as unsigned.
Change-Id: I68b70fbfca4da244fdd9a82b1e28046c0a3b9a3d
CRs-Fixed: 2798875
Currently there is no api to parse a string to uint32 array.
Write an api to parse a string to uint32 array.
Change-Id: I54ab4ba1009f6efeb535df1ad43c56e1c3e56d2b
CRs-Fixed: 2758878
Change Idbde9d70c64bc131813f5789c0453c9b3736228b has added
a logic to parse a string to uint16 array, there is no test
case written for this in unit test case infrastructure.
Add a unit test case to verify the logic written with the change
Idbde9d70c64bc131813f5789c0453c9b3736228b.
Change-Id: I38d6a0d6003807de7f5ec654926bd75da8b0996c
CRs-fixed: 2478274
This patchset fixes following build errors with
CONFIG_SLUB_DEBUG_ON=y on sdxprairie.
qdf_types_test.c:111:2: error: this decimal constant is
unsigned only in ISO C90 [-Werror]
qdf_types_test.c:199:2: error: this decimal constant is
unsigned only in ISO C90 [-Werror]
Change-Id: I9379eb2754b95ef3a03ed2369d972fdf3ea46322
CRs-Fixed: 2433430
A common problem in any C code base is the proper management of various
resources, such as memory allocations, timers, works, locks, etc. To
that end, WLAN has added various one-off leak tracking features for
different resources over the years, to great benefit. However, this
approach is tedious, and prone to copy/paste and fix propagation issues,
making maintaining these various tracking features onerous.
Add a generic leak tracking data structure to WLAN for general use,
which implements these tracking logics. This will allow the various
resource tracking features to leverage this shared implementation for
ease of maintenance. Build on the hash table implementation added as
part of I7f5fc0c59ed220bde43044e7013b3c8573f1bf39.
Change-Id: I3247ace583108139dfb699ca077db3bdf5cfeace
CRs-Fixed: 2422958
While the Linux kernel provides a generic hash table data structure, it
makes the assumption that it will always be referred to statically, so
as to avoid having to store the size of the hash table's internal array.
This limitation means reusing this data type generically is difficult or
impossible.
Add a very simple hash table implementation to WLAN for general use,
which stores its own size information, and assumes all input keys will
be pointers. Build on top of the recently added single-linked list
implementation added in I2959f34649a0d8e0b312d9d67c81de17753b9b6c to
reduce memory overhead.
Change-Id: I7f5fc0c59ed220bde43044e7013b3c8573f1bf39
CRs-Fixed: 2421829
For memory savings it is sometimes desirable to use a single-linked list
instead of a double-linked list. However, the Linux kernel does not
provide a default implementation of a single-linked list.
Add a very simple single-linked list implementation to WLAN for general
use.
Change-Id: I2959f34649a0d8e0b312d9d67c81de17753b9b6c
CRs-Fixed: 2418493
Add a new deferred work type, qdf_delayed_work, which executes a
callback after a delay. This type is meant to supersede
qdf_delayed_work_t, with a more consistent API and without typedefs.
Change-Id: I76bc59dcd4222643d70c6a763e5bc4ee9f0a487c
CRs-Fixed: 2419155
Add a new deferred work type, qdf_periodic_work, which executes a
callback periodically until stopped.
Change-Id: Iedf5486474fccadb35e146e6d289c27a7c1002d3
CRs-Fixed: 2410005
There is a compilation issue if a variable is passed to
kernel api DECLARE_HASHTABLE.
TO resolve this issue, instead of passing a variable
pass a constant to DECLARE_HASHTABLE.
Change-Id: Ie9782af541bb34cc50f79060b0007dc73881e5f4
CRs-Fixed: 2386893
The IPv6 address format allows compression of _one_ or more zero hextets
using "::". However, the current implementation accepts _zero_ or more
zero hextets as valid. Adjust the minimum required hextets for a zero
compression to 1 from 0.
Change-Id: Ibdf406b04bbdc44d4a28fafa6179c104285c915c
CRs-Fixed: 2362739
Add APIs for t(ree) alloc(ated) memory management.
These APIs allocate memory like malloc, but track those allocations via
a parent-child relationship, or tree. If the parent is freed while it
still has children, a panic will be triggered. This effectively gives
you the ability to limit the lifetime of an allocation by ensuring the
child allocation lifetime will be strictly less than the parent
allocation lifetime.
Change-Id: I6308c96061e125b2e5a9c424ec2d2298c1c503ab
CRs-Fixed: 2359469
Add a thin wrapper in QDF around the kernel hashtable implementation.
Additionally, add basic unit tests for these APIs.
Change-Id: I07999e5fc8116e67b3850b866ced20af64342055
CRs-Fixed: 2359335
Add unit tests for the following parsing function in QDF:
* qdf_int32_parse()
* qdf_int64_parse()
* qdf_uint32_parse()
* qdf_uint64_parse()
Change-Id: I43d162d008910396df051dd18e7a1ab7fede657a
CRs-Fixed: 2362740