Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : 3 : : #include <errno.h> 4 : : #include <string.h> 5 : : #include <sys/socket.h> 6 : : 7 : : #include "af-list.h" 8 : : #include "macro.h" 9 : : 10 : : static const struct af_name* lookup_af(register const char *str, register GPERF_LEN_TYPE len); 11 : : 12 : : #include "af-from-name.h" 13 : : #include "af-to-name.h" 14 : : 15 : 244 : const char *af_to_name(int id) { 16 : : 17 [ + + ]: 244 : if (id <= 0) 18 : 4 : return NULL; 19 : : 20 [ + + ]: 240 : if ((size_t) id >= ELEMENTSOF(af_names)) 21 : 4 : return NULL; 22 : : 23 : 236 : return af_names[id]; 24 : : } 25 : : 26 : 200 : int af_from_name(const char *name) { 27 : : const struct af_name *sc; 28 : : 29 [ - + ]: 200 : assert(name); 30 : : 31 : 200 : sc = lookup_af(name, strlen(name)); 32 [ + + ]: 200 : if (!sc) 33 : 8 : return -EINVAL; 34 : : 35 : 192 : return sc->id; 36 : : } 37 : : 38 : 4 : int af_max(void) { 39 : 4 : return ELEMENTSOF(af_names); 40 : : }