+/**
+ * gsa_bsearch_indx - Search for Item or Place for Item by Key
+ * @array: pointer to the array structure declared through %GSA_ARRAY_FOR
+ * @key: key value searched for
+ * @key_offs: offset to the order controlling field obtained by %UL_OFFSETOF
+ * @cmp_fnc: function defining order of items by comparing fields
+ * @mode: mode of the search operation
+ * @indx: pointer to place, where store value of found item array index
+ * or index where new item should be inserted
+ *
+ * Core search routine for GSA arrays
+ * binary searches for item with field at offset @key_off equal to @key value
+ * Values are compared by function pointed by *@cmp_fnc field in the array
+ * structure @array.
+ * Integer @mode modifies search algorithm:
+ * %GSA_FANY .. finds item with field value *@key,
+ * %GSA_FFIRST .. finds the first item with field value *@key,
+ * %GSA_FAFTER .. index points after last item with *@key value,
+ * reworded - index points at first item with higher
+ * value of field or after last item
+ * Return Value: Return of nonzero value indicates match found.
+ */