Go to the source code of this file.
Classes | |
struct | list |
Functions | |
list * | mklist (void) |
void | linsert (list *l, void *data, int len, int key) |
void * | lfind (list *l, int key, int *len) |
void * | lremove (list *l, int key, int *len) |
|
Definition at line 36 of file LList.c. References list::data, list::key, list::len, and list::next. 00037 { 00038 /* skip first node (dummy) */ 00039 l=l->next; 00040 00041 while ((l->key!=key) && (l->next!=NULL)) 00042 l=l->next; 00043 if (l->key!=key) 00044 return(NULL); 00045 *len=l->len; 00046 return l->data; 00047 }
|
|
Definition at line 16 of file LList.c. References list::data, list::key, list::len, and list::next. 00017 { 00018 list *newnode; 00019 00020 printf("linsert() - inserting into list at location 0x%x...\n",l); 00021 while (l->next != NULL) 00022 l=l->next; 00023 00024 newnode = (list*) malloc(sizeof(list)); 00025 if (newnode==NULL) { 00026 fprintf(stderr, "insert to a list failed, Ack!\n"); 00027 return; 00028 } 00029 newnode->data=data; 00030 newnode->len=len; 00031 newnode->key=key; 00032 newnode->next=NULL; 00033 l->next=newnode; 00034 }
|
|
Definition at line 49 of file LList.c. References list::data, data, list::key, list::len, and list::next. 00050 { 00051 void *data; 00052 list *it; 00053 list *nxt; 00054 00055 /* save pointer to start of list */ 00056 it=l; 00057 00058 if (it->next==NULL) 00059 return NULL; 00060 00061 /* skip first node (dummy) */ 00062 it=it->next; 00063 00064 /* find match */ 00065 while ((it->key!=key) && (it->next!=NULL)) 00066 it=it->next; 00067 00068 /* if we didn't find a match, return NULL */ 00069 if (it->key!=key) 00070 return(NULL); 00071 00072 /* Save the stuff we're looking for */ 00073 *len=it->len; 00074 data=it->data; 00075 00076 /* Now try to remove the node */ 00077 nxt=it->next; 00078 while (l->next!=it) 00079 l=l->next; 00080 l->next=nxt; 00081 free(it); 00082 00083 return(data); 00084 }
|
|
Definition at line 4 of file LList.c. References list::data, list::key, and list::next. 00005 { 00006 list *l; 00007 l=(list*)malloc(sizeof(list)); 00008 if (l==NULL) 00009 return NULL; 00010 l->data=NULL; 00011 l->key=-1; 00012 l->next=NULL; 00013 return l; 00014 }
|