+ if (i < bitmask_size/sizeof(unsigned long))
+ bitmask[i] = val;
+ else
+ DBG("Ignoring %s block %lX which is larger than maximum size\n", attr, val);
+
+ if (debug) {
+ /* printf pattern with the right unsigned long number of hex chars */
+ snprintf(text, sizeof(text), " bit %%4u: %%0%zilX\n", 2*sizeof(unsigned long));
+ DBG("%s decoded bit map:\n", attr);
+ val = bitmask_size/sizeof (unsigned long);
+ /* skip over leading zeros */
+ while (bitmask[val-1] == 0 && val > 0)
+ --val;
+ for (i = 0; i < val; ++i)
+ DBG(text, i * BITS_PER_LONG, bitmask[i]);
+ }