summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2024-07-10 09:08:21 +0200
committerGitHub <noreply@github.com>2024-07-10 09:08:21 +0200
commitebf05b4ee18a94086a15207f14b00b05df5a5dde (patch)
treead228433978fdb66b834c0d9ea245181340ddf63 /lib
parent52376aa4b6244f39e6edf82b3d3827e33d965cf9 (diff)
parent69b36cdf071a83f57a10206fd69db6cc7da5d10f (diff)
Merge pull request #16140 from donaldsharp/linklist_discouragement
Diffstat (limited to 'lib')
-rw-r--r--lib/hash.h12
-rw-r--r--lib/linklist.h12
-rw-r--r--lib/openbsd-queue.h16
-rw-r--r--lib/openbsd-tree.h15
4 files changed, 55 insertions, 0 deletions
diff --git a/lib/hash.h b/lib/hash.h
index 2d00a334be..efa7011bc2 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -13,6 +13,18 @@
extern "C" {
#endif
+/*
+ * NOTICE:
+ *
+ * If you are reading this file in an effort to add a new hash structure
+ * this is the wrong place to be using it. Please see the typesafe
+ * data structures, or ask one of the other developers.
+ *
+ * If you are reading this file as a way to update an existing usage
+ * of this data structure, please consider just converting the data
+ * structure to one of the typesafe data structures instead.
+ */
+
/* Default hash table size. */
#define HASH_INITIAL_SIZE 256
/* Expansion threshold */
diff --git a/lib/linklist.h b/lib/linklist.h
index fd953d0769..f922891df9 100644
--- a/lib/linklist.h
+++ b/lib/linklist.h
@@ -10,6 +10,18 @@
extern "C" {
#endif
+/*
+ * NOTICE:
+ *
+ * If you are reading this file in an effort to add a new list structure
+ * this is the wrong place to be using it. Please see the typesafe
+ * data structures, or ask one of the other developers.
+ *
+ * If you are reading this file as a way to update an existing usage
+ * of this data structure, please consider just converting the data
+ * structure to one of the typesafe data structures instead.
+ */
+
/* listnodes must always contain data to be valid. Adding an empty node
* to a list is invalid
*/
diff --git a/lib/openbsd-queue.h b/lib/openbsd-queue.h
index df3bbd720f..a2df521f58 100644
--- a/lib/openbsd-queue.h
+++ b/lib/openbsd-queue.h
@@ -17,6 +17,22 @@ extern "C" {
#endif
/*
+ * NOTICE:
+ *
+ * If you are reading this file in an effort to add a new queue structure
+ * this is the wrong place to be using it. Please see the typesafe
+ * data structures, or ask one of the other developers.
+ *
+ * If you are reading this file as a way to update an existing usage
+ * of this data structure, please consider just converting the data
+ * structure to one of the typesafe data structures instead. However,
+ * among converting datastrucutres, the the BSD ones are the lowest
+ * priority / should be converted last. They are already typesafe and
+ * use inline linking nodes, so the only gain is consistency. Please
+ * convert uses of linklist.h and hash.h first.
+ */
+
+/*
* This file defines five types of data structures: singly-linked lists,
* lists, simple queues, tail queues and XOR simple queues.
*
diff --git a/lib/openbsd-tree.h b/lib/openbsd-tree.h
index 4f3985bbca..ecc3a68f15 100644
--- a/lib/openbsd-tree.h
+++ b/lib/openbsd-tree.h
@@ -10,6 +10,21 @@
#ifdef __cplusplus
extern "C" {
#endif
+/*
+ * NOTICE:
+ *
+ * If you are reading this file in an effort to add a new tree structure
+ * this is the wrong place to be using it. Please see the typesafe
+ * data structures, or ask one of the other developers.
+ *
+ * If you are reading this file as a way to update an existing usage
+ * of this data structure, please consider just converting the data
+ * structure to one of the typesafe data structures instead. However,
+ * among converting datastrucutres, the the BSD ones are the lowest
+ * priority / should be converted last. They are already typesafe and
+ * use inline linking nodes, so the only gain is consistency. Please
+ * convert uses of linklist.h and hash.h first.
+ */
/*
* This file defines data structures for different types of trees: