diff options
authorOliver Smith <osmith@sysmocom.de>2021-07-12 11:34:51 +0200
committerOliver Smith <osmith@sysmocom.de>2021-07-12 12:20:52 +0200
commit3aba7ad2ae28d7a000c0808f1332ba716d1c6708 (patch)
parente9336a72a055679081c49ce5d150b1ab492327fa (diff)
gtphub: remove llist_first, llist_last macros
Use list_first_entry_or_null instead of llist_first, which has been present in libosmocore since the 0.10.0 release. Use llist_last_entry instead of llist_last (also present since libosmocore 0.10.0). This macro does not have a check for an empty list, however the only user is already checking for an empty list before using the macro. This solves a build error, as llist_last was defined in libosmocore Icf455bf6ba9d60bd311af17c9e80febaa42cacc9 (should probably be reverted for backwards compatibility with previous osmo-sgsn versions?): gtphub.c:68:0: error: "llist_last" redefined [-Werror] #define llist_last(head, type, entry) \ In file included from /build/deps/install/stow/libosmocore/include/osmocom/core/timer.h:46:0, from /build/deps/install/stow/osmo-ggsn/include/gtp.h:17, from gtphub.c:32: /build/deps/install/stow/libosmocore/include/osmocom/core/linuxlist.h:245:0: note: this is the location of the previous definition #define llist_last(head) (head)->prev Change-Id: Ia0496c24386cd13b1e9e604aa2d425d3fa28d352
1 files changed, 2 insertions, 13 deletions
diff --git a/src/gtphub/gtphub.c b/src/gtphub/gtphub.c
index 237d6993..09d01fcc 100644
--- a/src/gtphub/gtphub.c
+++ b/src/gtphub/gtphub.c
@@ -59,15 +59,6 @@ void *osmo_gtphub_ctx;
/* TODO move this to osmocom/core/select.h ? */
typedef int (*osmo_fd_cb_t)(struct osmo_fd *fd, unsigned int what);
-/* TODO move this to osmocom/core/linuxlist.h ? */
-#define __llist_first(head) (((head)->next == (head)) ? NULL : (head)->next)
-#define llist_first(head, type, entry) \
- llist_entry(__llist_first(head), type, entry)
-#define __llist_last(head) (((head)->next == (head)) ? NULL : (head)->prev)
-#define llist_last(head, type, entry) \
- llist_entry(__llist_last(head), type, entry)
/* TODO move GTP header stuff to openggsn/gtp/ ? See gtp_decaps*() */
enum gtp_rc {
@@ -613,7 +604,7 @@ void expiry_add(struct expiry *exq, struct expiring_item *item, time_t now)
|| (item->expiry
- >= llist_last(&exq->items, struct expiring_item, entry)->expiry));
+ >= llist_last_entry(&exq->items, struct expiring_item, entry)->expiry));
/* Add/move to the tail to always sort by expiry, ascending. */
@@ -1142,9 +1133,7 @@ static const char *gtphub_peer_strb(struct gtphub_peer *peer, char *buf,
if (llist_empty(&peer->addresses))
return "(addressless)";
- struct gtphub_peer_addr *a = llist_first(&peer->addresses,
- struct gtphub_peer_addr,
- entry);
+ struct gtphub_peer_addr *a = llist_first_entry_or_null(&peer->addresses, struct gtphub_peer_addr, entry);
return gsn_addr_to_strb(&a->addr, buf, buflen);