crda: add a reglib iterator reglib_for_each_country()
authorLuis R. Rodriguez <mcgrof@frijolero.org>
Wed, 21 Dec 2011 23:43:58 +0000 (15:43 -0800)
committerLuis R. Rodriguez <mcgrof@frijolero.org>
Wed, 18 Jan 2012 23:39:19 +0000 (15:39 -0800)
commitebcbfcf45a3a80f075c777473fcc0be0b38cee38
treea19f8fe40c297dc12569de7e5e3834dca78dcda2
parent0d421c2851d55ed644b96060cdc2be10217e74bd
crda: add a reglib iterator reglib_for_each_country()

To allow for a simple library on reglib.c we want to enable
an iterator over the regulatory database that does not have
to lock the file, or pass references to the file. We instead
add an iterator reglib_get_country_idx() which will use a
new reglib_get_country_idx(), that does an O(n) search for
each new regulatory domain it needs to read.

The trade off here is to allow for a simple reglib.c implementation
at the cost that upon each iteration reglib_get_country_idx()
we will will be opening the regdb, and verifying the db signature.
Given that the only user of this iterator is regdbdump though and
that this is used for debugging for now this is trade off I am
willing to live with.

Systems that want to use the regdb as a database for fine tuning
radio parameters dynamically and reading this file very *often*
(seconds, minutes, who knows what the future holds) may want to
consider a slight optimization of exporting the direct mmap()
through the library but we are I think light years away from that.

Signed-off-by: Luis R. Rodriguez <mcgrof@qca.qualcomm.com>
Makefile
regdbdump.c
reglib.c
reglib.h