Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.2-rc1 52 lines 1.4 kB view raw
1/* 2 * Copyright 2010 Tilera Corporation. All Rights Reserved. 3 * 4 * This program is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU General Public License 6 * as published by the Free Software Foundation, version 2. 7 * 8 * This program is distributed in the hope that it will be useful, but 9 * WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or 11 * NON INFRINGEMENT. See the GNU General Public License for 12 * more details. 13 */ 14 15#include <linux/cpumask.h> 16#include <linux/ctype.h> 17#include <linux/errno.h> 18#include <linux/smp.h> 19 20/* 21 * Allow cropping out bits beyond the end of the array. 22 * Move to "lib" directory if more clients want to use this routine. 23 */ 24int bitmap_parselist_crop(const char *bp, unsigned long *maskp, int nmaskbits) 25{ 26 unsigned a, b; 27 28 bitmap_zero(maskp, nmaskbits); 29 do { 30 if (!isdigit(*bp)) 31 return -EINVAL; 32 a = simple_strtoul(bp, (char **)&bp, 10); 33 b = a; 34 if (*bp == '-') { 35 bp++; 36 if (!isdigit(*bp)) 37 return -EINVAL; 38 b = simple_strtoul(bp, (char **)&bp, 10); 39 } 40 if (!(a <= b)) 41 return -EINVAL; 42 if (b >= nmaskbits) 43 b = nmaskbits-1; 44 while (a <= b) { 45 set_bit(a, maskp); 46 a++; 47 } 48 if (*bp == ',') 49 bp++; 50 } while (*bp != '\0' && *bp != '\n'); 51 return 0; 52}