#ifndef HASH_H #define HASH_H /* Hash table implementation from the GIT project. */ /* Copyright 2008 (C) Linus Torvalds, GPL version 2 */ /* * These are some simple generic hash table helper functions. * Not necessarily suitable for all users, but good for things * where you want to just keep track of a list of things, and * have a good hash to use on them. * * It keeps the hash table at roughly 50-75% free, so the memory * cost of the hash table itself is roughly * * 3 * 2*sizeof(void *) * nr_of_objects * * bytes. * * FIXME: on 64-bit architectures, we waste memory. It would be * good to have just 32-bit pointers, requiring a special allocator * for hashed entries or something. */ #include #define alloc_nr(x) (((x) + 16) * 3 / 2) #define INSERT_HASH_PROTOS(ops, table) \ do { \ void **pos = insert_hash((ops).key, &(ops), &(table)); \ /* We already had an entry there? */ \ if (pos) { \ (ops).next = *pos; \ *pos = &(ops); \ } \ } while (0) struct hash_table_entry { unsigned int hash; void *ptr; }; struct hash_table { unsigned int size, nr; struct hash_table_entry *array; }; extern void *lookup_hash(unsigned int hash, const struct hash_table *table); extern void **insert_hash(unsigned int hash, void *ptr, struct hash_table *table); extern void *remove_hash(unsigned int hash, void *ptr, void *ptr_next, struct hash_table *table); extern int for_each_hash(const struct hash_table *table, int (*fn)(void *)); extern int for_each_hash_int(const struct hash_table *table, int (*fn)(void *, int), int arg); extern void free_hash(struct hash_table *table); static inline void init_hash(struct hash_table *table) { table->size = 0; table->nr = 0; table->array = NULL; } static inline unsigned char icase_hash(unsigned char c) { return c & ~((c & 0x40) >> 1); } static inline unsigned int hash_name(const char *name, int namelen) { unsigned int hash = 0x123; do { unsigned char c = *name++; c = icase_hash(c); hash = hash * 101 + c; } while (--namelen); return hash; } #endif /* HASH_H */ form'>
path: root/sound/soc/mxs
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-12-18 13:50:10 +0000
committerMark Brown <broonie@linaro.org>2013-12-18 13:51:32 +0000
commitdd407a3243234c6a17ba624d698e6824067003c9 (patch)
treed75b681e0800c43590a05e45003ceca540f50212 /sound/soc/mxs
parent6ce4eac1f600b34f2f7f58f9cd8f0503d79e42ae (diff)
ASoC: fsl/mxs: Remove unnecessarily gendered language
The kernel as a number of cases of gendered language. The majority of these refer to objects that don't have gender in English, and so I've replaced them with "it" and "its". Some refer to people (developers or users), and I've replaced these with the singular "they" variant. Some are simply typos that I've fixed up. I've left cases where gendered language was used to refer to specific individuals, was a quote or is part of license text. Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/mxs')