Author: Pekka Riikonen <priikone@silcnet.org>
- Copyright (C) 2002 - 2005 Pekka Riikonen
+ Copyright (C) 2002 - 2007 Pekka Riikonen
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
* DESCRIPTION
*
* Implementation of the SilcList interface. This interface provides
- * simple linked list.
+ * simple linked list. This interface does not allocate any memory.
+ *
+ * SILC List is not thread-safe. If the same list context must be used
+ * in multithreaded environment concurrency control must be employed.
*
***/
* function silc_list_init.
*
***/
-typedef struct {
+typedef struct SilcListStruct {
void *head; /* Start of the list */
void *tail; /* End of the list */
void *current; /* Current pointer in list */
- unsigned int next_offset : 16; /* Offset to 'next' pointer */
- unsigned int prev_offset : 16; /* Offset to 'prev' pointer */
+ SilcUInt16 next_offset; /* Offset to 'next' pointer */
+ SilcUInt16 prev_offset; /* Offset to 'prev' pointer */
unsigned int prev_set : 1; /* Set if 'prev' exists */
unsigned int end_set : 1; /* Set if silc_list_end was called */
unsigned int count : 30; /* Number of entries in the list */