xref: /linux/arch/sparc/include/asm/bitext.h (revision 498495dba268b20e8eadd7fe93c140c68b6cc9d2)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2a439fe51SSam Ravnborg /*
3a439fe51SSam Ravnborg  * bitext.h: Bit string operations on the sparc, specific to architecture.
4a439fe51SSam Ravnborg  *
5a439fe51SSam Ravnborg  * Copyright 2002 Pete Zaitcev <zaitcev@yahoo.com>
6a439fe51SSam Ravnborg  */
7a439fe51SSam Ravnborg 
8a439fe51SSam Ravnborg #ifndef _SPARC_BITEXT_H
9a439fe51SSam Ravnborg #define _SPARC_BITEXT_H
10a439fe51SSam Ravnborg 
11a439fe51SSam Ravnborg #include <linux/spinlock.h>
12a439fe51SSam Ravnborg 
13a439fe51SSam Ravnborg struct bit_map {
14a439fe51SSam Ravnborg 	spinlock_t lock;
15a439fe51SSam Ravnborg 	unsigned long *map;
16a439fe51SSam Ravnborg 	int size;
17a439fe51SSam Ravnborg 	int used;
18a439fe51SSam Ravnborg 	int last_off;
19a439fe51SSam Ravnborg 	int last_size;
20a439fe51SSam Ravnborg 	int first_free;
21a439fe51SSam Ravnborg 	int num_colors;
22a439fe51SSam Ravnborg };
23a439fe51SSam Ravnborg 
24f05a6865SSam Ravnborg int bit_map_string_get(struct bit_map *t, int len, int align);
25f05a6865SSam Ravnborg void bit_map_clear(struct bit_map *t, int offset, int len);
26f05a6865SSam Ravnborg void bit_map_init(struct bit_map *t, unsigned long *map, int size);
27a439fe51SSam Ravnborg 
28a439fe51SSam Ravnborg #endif /* defined(_SPARC_BITEXT_H) */
29