unsafe_get_user(c, (unsignedlong __user *)src, efault);
c |= aligned_byte_mask(align);
for (;;) { unsignedlong data; if (has_zero(c, &data, &constants)) {
data = prep_zero_mask(c, data, &constants);
data = create_zero_mask(data); return res + find_zero(data) + 1 - align;
}
res += sizeof(unsignedlong); /* We already handled 'unsigned long' bytes. Did we do it all ? */ if (unlikely(max <= sizeof(unsignedlong))) break;
max -= sizeof(unsignedlong);
unsafe_get_user(c, (unsignedlong __user *)(src+res), efault);
}
res -= align;
/* *Uhhuh.Wehit'max'.Butwasthattheuser-specifiedmaximum *too?Ifso,returnthemarkerfor"toolong".
*/ if (res >= count) return count+1;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.