Lines Matching refs:cursor
912 * Cursor structure we used.
964 * Cursor-related functions
970 /* extract cursor from caller form */
974 * Check that a cursor we're handed is something like valid. If
979 q2cursor_check(struct ulfsq2_cursor *cursor)
981 if (cursor->q2c_magic != Q2C_MAGIC) {
984 if (cursor->q2c_hashsize < 0) {
988 if (cursor->q2c_users_done != 0 && cursor->q2c_users_done != 1) {
991 if (cursor->q2c_groups_done != 0 && cursor->q2c_groups_done != 1) {
994 if (cursor->q2c_defaults_done != 0 && cursor->q2c_defaults_done != 1) {
997 if (cursor->q2c_hashpos < 0 || cursor->q2c_uidpos < 0) {
1000 if (cursor->q2c_blocks_done != 0 && cursor->q2c_blocks_done != 1) {
1051 q2cursor_pickidtype(struct ulfsq2_cursor *cursor, int *idtype_ret)
1053 if (cursor->q2c_users_done == 0) {
1055 } else if (cursor->q2c_groups_done == 0) {
1122 q2cursor_getkeys(struct ulfsmount *ump, int idtype, struct ulfsq2_cursor *cursor,
1148 if (cursor->q2c_hashsize == 0) {
1149 cursor->q2c_hashsize = quota2_hash_size;
1150 } else if (cursor->q2c_hashsize != quota2_hash_size) {
1159 if (cursor->q2c_defaults_done == 0) {
1163 cursor->q2c_defaults_done = 1;
1171 if (cursor->q2c_hashpos >= quota2_hash_size) {
1177 gi.skip = cursor->q2c_uidpos;
1181 offset = q2h->q2h_entries[cursor->q2c_hashpos];
1191 cursor->q2c_uidpos = gi.new_skip;
1194 KASSERT(cursor->q2c_uidpos > 0);
1195 cursor->q2c_uidpos--;
1201 cursor->q2c_uidpos = 0;
1202 cursor->q2c_hashpos++;
1278 struct ulfsq2_cursor *cursor;
1286 * Convert and validate the cursor.
1288 cursor = Q2CURSOR(qkc);
1289 error = q2cursor_check(cursor);
1309 if (cursor->q2c_users_done == 0 &&
1311 cursor->q2c_users_done = 1;
1313 if (cursor->q2c_groups_done == 0 &&
1315 cursor->q2c_groups_done = 1;
1322 error = q2cursor_pickidtype(cursor, &idtype);
1332 * cursor state so we can update it in place but back
1336 cursor->q2c_blocks_done);
1337 newcursor = *cursor;
1354 * did so far, we can update the cursor state.
1359 cursor->q2c_users_done = 1;
1361 cursor->q2c_groups_done = 1;
1364 cursor->q2c_hashsize = 0;
1365 cursor->q2c_defaults_done = 0;
1366 cursor->q2c_hashpos = 0;
1367 cursor->q2c_uidpos = 0;
1368 cursor->q2c_blocks_done = 0;
1370 *cursor = newcursor;
1371 cursor->q2c_blocks_done = state.skiplast;
1391 struct ulfsq2_cursor *cursor;
1393 CTASSERT(sizeof(*cursor) <= sizeof(qkc->u.qkc_space));
1394 cursor = Q2CURSOR(qkc);
1396 cursor->q2c_magic = Q2C_MAGIC;
1397 cursor->q2c_hashsize = 0;
1399 cursor->q2c_users_done = 0;
1400 cursor->q2c_groups_done = 0;
1401 cursor->q2c_defaults_done = 0;
1402 cursor->q2c_hashpos = 0;
1403 cursor->q2c_uidpos = 0;
1404 cursor->q2c_blocks_done = 0;
1411 struct ulfsq2_cursor *cursor;
1414 cursor = Q2CURSOR(qkc);
1415 error = q2cursor_check(cursor);
1429 struct ulfsq2_cursor *cursor;
1432 cursor = Q2CURSOR(qkc);
1433 error = q2cursor_check(cursor);
1440 cursor->q2c_users_done = 1;
1443 cursor->q2c_groups_done = 1;
1456 struct ulfsq2_cursor *cursor;
1459 cursor = Q2CURSOR(qkc);
1460 error = q2cursor_check(cursor);
1465 *ret = (cursor->q2c_users_done && cursor->q2c_groups_done);
1472 struct ulfsq2_cursor *cursor;
1475 cursor = Q2CURSOR(qkc);
1476 error = q2cursor_check(cursor);
1481 cursor->q2c_hashsize = 0;
1483 cursor->q2c_users_done = 0;
1484 cursor->q2c_groups_done = 0;
1485 cursor->q2c_defaults_done = 0;
1486 cursor->q2c_hashpos = 0;
1487 cursor->q2c_uidpos = 0;
1488 cursor->q2c_blocks_done = 0;