replace SRP with SMR in the if_idxmap.
authordlg <dlg@openbsd.org>
Wed, 9 Nov 2022 10:41:18 +0000 (10:41 +0000)
committerdlg <dlg@openbsd.org>
Wed, 9 Nov 2022 10:41:18 +0000 (10:41 +0000)
commit701be749d12498aa10febab43aa52c2896d49b11
treeebde82cd1e6e757fad326c44e718002f1d295259
parent3415f164b32e93e85de3539478c1a1d8a074a8cd
replace SRP with SMR in the if_idxmap.

when i first wrote if_idxmap i didn't realise (and no one thought
to tell me) that index 0 was special and means "no interface", so
while here use the 0th slot in the interface map to store the length
of the map instead of prepending the map with a length field.
if_get() now special cases index 0 and returns NULL directly. this
also means the size of the map is now always a power of 2, which
is a nicer fit with what the kernel malloc aprovides.

tweaks and ok visa@
sys/net/if.c