[PATCH 2.6 IrDA] hashbin_cleanup

From: Jean Tourrilhes
Date: Wed Feb 25 2004 - 22:30:02 EST


irXXX_hashbin_cleanup.diff :
~~~~~~~~~~~~~~~~~~~~~~~~~~
<Patch from Stephen Hemminger>
o [FEATURE] remove unused code
o [FEATURE] add const where needed


diff -Nru a/include/net/irda/irqueue.h b/include/net/irda/irqueue.h
--- a/include/net/irda/irqueue.h Mon Feb 16 11:20:31 2004
+++ b/include/net/irda/irqueue.h Mon Feb 16 11:20:31 2004
@@ -81,13 +81,13 @@
int hashbin_delete(hashbin_t* hashbin, FREE_FUNC func);
int hashbin_clear(hashbin_t* hashbin, FREE_FUNC free_func);
void hashbin_insert(hashbin_t* hashbin, irda_queue_t* entry, long hashv,
- char* name);
-void* hashbin_remove(hashbin_t* hashbin, long hashv, char* name);
+ const char* name);
+void* hashbin_remove(hashbin_t* hashbin, long hashv, const char* name);
void* hashbin_remove_first(hashbin_t *hashbin);
void* hashbin_remove_this( hashbin_t* hashbin, irda_queue_t* entry);
-void* hashbin_find(hashbin_t* hashbin, long hashv, char* name);
-void* hashbin_lock_find(hashbin_t* hashbin, long hashv, char* name);
-void* hashbin_find_next(hashbin_t* hashbin, long hashv, char* name,
+void* hashbin_find(hashbin_t* hashbin, long hashv, const char* name);
+void* hashbin_lock_find(hashbin_t* hashbin, long hashv, const char* name);
+void* hashbin_find_next(hashbin_t* hashbin, long hashv, const char* name,
void ** pnext);
irda_queue_t *hashbin_get_first(hashbin_t *hashbin);
irda_queue_t *hashbin_get_next(hashbin_t *hashbin);
diff -Nru a/net/irda/irqueue.c b/net/irda/irqueue.c
--- a/net/irda/irqueue.c Mon Feb 16 11:20:31 2004
+++ b/net/irda/irqueue.c Mon Feb 16 11:20:31 2004
@@ -208,7 +208,7 @@
* This function hash the input string 'name' using the ELF hash
* function for strings.
*/
-static __u32 hash( char* name)
+static __u32 hash( const char* name)
{
__u32 h = 0;
__u32 g;
@@ -567,7 +567,8 @@
* Insert an entry into the hashbin
*
*/
-void hashbin_insert(hashbin_t* hashbin, irda_queue_t* entry, long hashv, char* name)
+void hashbin_insert(hashbin_t* hashbin, irda_queue_t* entry, long hashv,
+ const char* name)
{
unsigned long flags = 0;
int bin;
@@ -683,7 +684,7 @@
* In other case, you must think hard to guarantee unicity of the index.
* Jean II
*/
-void* hashbin_remove( hashbin_t* hashbin, long hashv, char* name)
+void* hashbin_remove( hashbin_t* hashbin, long hashv, const char* name)
{
int bin, found = FALSE;
unsigned long flags = 0;
@@ -834,7 +835,7 @@
* Find item with the given hashv or name
*
*/
-void* hashbin_find( hashbin_t* hashbin, long hashv, char* name )
+void* hashbin_find( hashbin_t* hashbin, long hashv, const char* name )
{
int bin;
irda_queue_t* entry;
@@ -888,7 +889,7 @@
* I call it safe, but it's only safe with respect to the hashbin, not its
* content. - Jean II
*/
-void* hashbin_lock_find( hashbin_t* hashbin, long hashv, char* name )
+void* hashbin_lock_find( hashbin_t* hashbin, long hashv, const char* name )
{
unsigned long flags = 0;
irda_queue_t* entry;
@@ -917,7 +918,7 @@
* context of the search. On the other hand, it might fail and return
* NULL if the entry is removed. - Jean II
*/
-void* hashbin_find_next( hashbin_t* hashbin, long hashv, char* name,
+void* hashbin_find_next( hashbin_t* hashbin, long hashv, const char* name,
void ** pnext)
{
unsigned long flags = 0;
diff -Nru a/include/net/irda/irqueue.h b/include/net/irda/irqueue.h
--- a/include/net/irda/irqueue.h Mon Feb 16 11:21:24 2004
+++ b/include/net/irda/irqueue.h Mon Feb 16 11:21:24 2004
@@ -41,7 +41,6 @@
*/
#define HB_NOLOCK 0 /* No concurent access prevention */
#define HB_LOCK 1 /* Prevent concurent write with global lock */
-#define HB_SORTED 4 /* Not yet supported */

/*
* Hash defines
diff -Nru a/net/irda/irqueue.c b/net/irda/irqueue.c
--- a/net/irda/irqueue.c Mon Feb 16 11:21:24 2004
+++ b/net/irda/irqueue.c Mon Feb 16 11:21:24 2004
@@ -599,14 +599,9 @@

/*
* Insert new entry first
- * TODO: Perhaps allow sorted lists?
- * -> Merge sort if a sorted list should be created
*/
- if ( hashbin->hb_type & HB_SORTED) {
- } else {
- enqueue_first( (irda_queue_t**) &hashbin->hb_queue[ bin ],
- entry);
- }
+ enqueue_first( (irda_queue_t**) &hashbin->hb_queue[ bin ],
+ entry);
hashbin->hb_size++;

/* Release lock */
diff -Nru a/net/irda/irqueue.c b/net/irda/irqueue.c
--- a/net/irda/irqueue.c Mon Feb 16 11:22:40 2004
+++ b/net/irda/irqueue.c Mon Feb 16 11:22:40 2004
@@ -254,105 +254,6 @@
}
}

-#ifdef HASHBIN_UNUSED
-/*
- * Function enqueue_last (queue, proc)
- *
- * Insert item into end of queue.
- *
- */
-static void __enqueue_last( irda_queue_t **queue, irda_queue_t* element)
-{
- IRDA_DEBUG( 4, "%s()\n", __FUNCTION__);
-
- /*
- * Check if queue is empty.
- */
- if ( *queue == NULL ) {
- /*
- * Queue is empty. Insert one element into the queue.
- */
- element->q_next = element->q_prev = *queue = element;
-
- } else {
- /*
- * Queue is not empty. Insert element into end of queue.
- */
- element->q_prev = (*queue)->q_prev;
- element->q_prev->q_next = element;
- (*queue)->q_prev = element;
- element->q_next = *queue;
- }
-}
-
-static inline void enqueue_last( irda_queue_t **queue, irda_queue_t* element)
-{
- unsigned long flags;
-
- save_flags(flags);
- cli();
-
- __enqueue_last( queue, element);
-
- restore_flags(flags);
-}
-
-/*
- * Function enqueue_queue (queue, list)
- *
- * Insert a queue (list) into the start of the first queue
- *
- */
-static void enqueue_queue( irda_queue_t** queue, irda_queue_t** list )
-{
- irda_queue_t* tmp;
-
- /*
- * Check if queue is empty
- */
- if ( *queue ) {
- (*list)->q_prev->q_next = (*queue);
- (*queue)->q_prev->q_next = (*list);
- tmp = (*list)->q_prev;
- (*list)->q_prev = (*queue)->q_prev;
- (*queue)->q_prev = tmp;
- } else {
- *queue = (*list);
- }
-
- (*list) = NULL;
-}
-
-/*
- * Function enqueue_second (queue, proc)
- *
- * Insert item behind head of queue.
- *
- */
-static void enqueue_second(irda_queue_t **queue, irda_queue_t* element)
-{
- IRDA_DEBUG( 0, "enqueue_second()\n");
-
- /*
- * Check if queue is empty.
- */
- if ( *queue == NULL ) {
- /*
- * Queue is empty. Insert one element into the queue.
- */
- element->q_next = element->q_prev = *queue = element;
-
- } else {
- /*
- * Queue is not empty. Insert element into ..
- */
- element->q_prev = (*queue);
- (*queue)->q_next->q_prev = element;
- element->q_next = (*queue)->q_next;
- (*queue)->q_next = element;
- }
-}
-#endif /* HASHBIN_UNUSED */

/*
* Function dequeue (queue)
@@ -474,38 +375,6 @@
return hashbin;
}

-#ifdef HASHBIN_UNUSED
-/*
- * Function hashbin_clear (hashbin, free_func)
- *
- * Remove all entries from the hashbin, see also the comments in
- * hashbin_delete() below
- */
-int hashbin_clear( hashbin_t* hashbin, FREE_FUNC free_func)
-{
- irda_queue_t* queue;
- int i;
-
- ASSERT(hashbin != NULL, return -1;);
- ASSERT(hashbin->magic == HB_MAGIC, return -1;);
-
- /*
- * Free the entries in the hashbin
- */
- for (i = 0; i < HASHBIN_SIZE; i ++ ) {
- queue = dequeue_first( (irda_queue_t**) &hashbin->hb_queue[i]);
- while (queue) {
- if (free_func)
- (*free_func)(queue);
- queue = dequeue_first(
- (irda_queue_t**) &hashbin->hb_queue[i]);
- }
- }
- hashbin->hb_size = 0;
-
- return 0;
-}
-#endif /* HASHBIN_UNUSED */

/*
* Function hashbin_delete (hashbin, free_func)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/