Changeset ede63e4 in mainline for uspace/srv/net/structures/int_map.h


Ignore:
Timestamp:
2010-01-04T23:25:48Z (14 years ago)
Author:
Lukas Mejdrech <lukasmejdrech@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
eac9722
Parents:
1a0fb3f8
Message:
  • socket identifier generation moved to libsocket, + data fragment size fix and enhancement, + [ICMP|TCP|UDP]_HEADER_SIZE definition, + int_map_update() function to alter item key
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/net/structures/int_map.h

    r1a0fb3f8 rede63e4  
    8282void    name##_exclude_index( name##_ref map, int index );                                              \
    8383type *  name##_find( name##_ref map, int key );                                                                 \
     84int             name##_update( name##_ref map, int key, int new_key );                                  \
    8485type *  name##_get_index( name##_ref map, int index );                                                  \
    8586int             name##_initialize( name##_ref map );                                                                    \
     
    178179        }                                                                                                                                                       \
    179180        return NULL;                                                                                                                            \
     181}                                                                                                                                                               \
     182                                                                                                                                                                \
     183int name##_update( name##_ref map, int key, int new_key ){                                              \
     184        if( name##_is_valid( map )){                                                                                            \
     185                int     index;                                                                                                                          \
     186                                                                                                                                                                \
     187                for( index = 0; index < map->next; ++ index ){                                                  \
     188                        if( name##_item_is_valid( &( map->items[ index ] ))){                           \
     189                                if( map->items[ index ].key == new_key ){                                               \
     190                                        return EEXIST;                                                                                          \
     191                                }else if( map->items[ index ].key == key ){                                             \
     192                                        map->items[ index ].key = new_key;                                                      \
     193                                        return EOK;                                                                                                     \
     194                                }                                                                                                                               \
     195                        }                                                                                                                                       \
     196                }                                                                                                                                               \
     197        }                                                                                                                                                       \
     198        return ENOENT;                                                                                                                          \
    180199}                                                                                                                                                               \
    181200                                                                                                                                                                \
Note: See TracChangeset for help on using the changeset viewer.