Lines Matching defs:ab

81 attrlist_pack_fixed(struct _attrlist_buf *ab, void *source, ssize_t count)
102 fit = lmin(count, ab->allocated - (ab->fixedcursor - ab->base));
105 bcopy(source, ab->fixedcursor, fit);
109 ab->fixedcursor += roundup(count, 4);
121 attrlist_pack_variable2(struct _attrlist_buf *ab, const void *source, ssize_t count,
133 ar.attr_dataoffset = ab->varcursor - ab->fixedcursor;
135 attrlist_pack_fixed(ab, &ar, sizeof(ar));
145 fit = lmin(count, ab->allocated - (ab->varcursor - ab->base));
148 bcopy(source, ab->varcursor, fit);
150 ab->varcursor += fit;
154 fit = lmin(extcount, ab->allocated - (ab->varcursor - ab->base));
158 bcopy(ext, ab->varcursor, fit);
160 ab->varcursor += fit;
163 ab->varcursor = (char *)roundup((uintptr_t)ab->varcursor, 4);
171 attrlist_pack_variable(struct _attrlist_buf *ab, const void *source, ssize_t count)
173 attrlist_pack_variable2(ab, source, count, NULL, 0);
191 attrlist_pack_string(struct _attrlist_buf *ab, const char *source, ssize_t count)
209 ar.attr_dataoffset = ab->varcursor - ab->fixedcursor;
211 attrlist_pack_fixed(ab, &ar, sizeof(ar));
224 space = ab->allocated - (ab->varcursor - ab->base);
240 bcopy(source, ab->varcursor, fit);
243 ab->varcursor[fit++] = '\0';
252 bzero(&(ab->varcursor[fit]), bytes_to_zero);
258 ab->varcursor += roundup((count+1), 4);
850 struct _attrlist_buf ab;
860 ab.base = NULL;
879 bcopy(&alp->commonattr, &ab.valid, sizeof (attribute_set_t));
991 getvolattrlist_fixupattrs(&ab.valid, &vs);
1076 ab.allocated = ulmin(bufferSize, fixedsize + varsize);
1077 if (ab.allocated > ATTR_MAX_BUFFER) {
1079 VFS_DEBUG(ctx, vp, "ATTRLIST - ERROR: buffer size too large (%d limit %d)", ab.allocated, ATTR_MAX_BUFFER);
1082 MALLOC(ab.base, char *, ab.allocated, M_TEMP, M_ZERO | M_WAITOK);
1083 if (ab.base == NULL) {
1085 VFS_DEBUG(ctx, vp, "ATTRLIST - ERROR: could not allocate %d for copy buffer", ab.allocated);
1092 ab.fixedcursor = ab.base + sizeof(uint32_t);
1094 ab.fixedcursor += sizeof (attribute_set_t);
1095 bzero(&ab.actual, sizeof (ab.actual));
1097 ab.varcursor = ab.base + fixedsize;
1098 ab.needed = fixedsize + varsize;
1102 attrlist_pack_string(&ab, cnp, cnl);
1103 ab.actual.commonattr |= ATTR_CMN_NAME;
1106 ATTR_PACK4(ab, mnt->mnt_vfsstat.f_fsid.val[0]);
1107 ab.actual.commonattr |= ATTR_CMN_DEVID;
1110 ATTR_PACK8(ab, mnt->mnt_vfsstat.f_fsid);
1111 ab.actual.commonattr |= ATTR_CMN_FSID;
1115 ATTR_PACK4(ab, 0);
1118 ATTR_PACK4(ab, vp->v_tag);
1119 ab.actual.commonattr |= ATTR_CMN_OBJTAG;
1124 ATTR_PACK8(ab, f);
1130 ATTR_PACK8(ab, f);
1136 ATTR_PACK8(ab, f);
1141 ATTR_PACK4(ab, va.va_encoding);
1142 ab.actual.commonattr |= ATTR_CMN_SCRIPT;
1145 ATTR_PACK_TIME(ab, vs.f_create_time, is_64bit);
1146 ab.actual.commonattr |= ATTR_CMN_CRTIME;
1149 ATTR_PACK_TIME(ab, vs.f_modify_time, is_64bit);
1150 ab.actual.commonattr |= ATTR_CMN_MODTIME;
1154 ATTR_PACK_TIME(ab, vs.f_modify_time, is_64bit);
1157 ATTR_PACK_TIME(ab, vs.f_access_time, is_64bit);
1158 ab.actual.commonattr |= ATTR_CMN_ACCTIME;
1161 ATTR_PACK_TIME(ab, vs.f_backup_time, is_64bit);
1162 ab.actual.commonattr |= ATTR_CMN_BKUPTIME;
1172 attrlist_pack_fixed(&ab, f, sizeof(f));
1173 ab.actual.commonattr |= ATTR_CMN_FNDRINFO;
1180 attrlist_pack_fixed(&ab, f, sizeof(f));
1184 ATTR_PACK4(ab, va.va_uid);
1185 ab.actual.commonattr |= ATTR_CMN_OWNERID;
1188 ATTR_PACK4(ab, va.va_gid);
1189 ab.actual.commonattr |= ATTR_CMN_GRPID;
1192 ATTR_PACK_CAST(&ab, uint32_t, va.va_mode);
1193 ab.actual.commonattr |= ATTR_CMN_ACCESSMASK;
1196 ATTR_PACK4(ab, va.va_flags);
1197 ab.actual.commonattr |= ATTR_CMN_FLAGS;
1234 ATTR_PACK4(ab, perms);
1235 ab.actual.commonattr |= ATTR_CMN_USERACCESS;
1245 attrlist_pack_variable(&ab, NULL, 0);
1247 ATTR_PACK(&ab, kauth_null_guid);
1249 ATTR_PACK(&ab, kauth_null_guid);
1251 ATTR_PACK8(ab, fid);
1253 ATTR_PACK8(ab, fid);
1259 ATTR_PACK_CAST(&ab, uint32_t, vfs_typenum(mnt));
1260 ab.actual.volattr |= ATTR_VOL_FSTYPE;
1263 ATTR_PACK_CAST(&ab, uint32_t, vs.f_signature);
1264 ab.actual.volattr |= ATTR_VOL_SIGNATURE;
1267 ATTR_PACK_CAST(&ab, off_t, vs.f_bsize * vs.f_blocks);
1268 ab.actual.volattr |= ATTR_VOL_SIZE;
1271 ATTR_PACK_CAST(&ab, off_t, vs.f_bsize * vs.f_bfree);
1272 ab.actual.volattr |= ATTR_VOL_SPACEFREE;
1275 ATTR_PACK_CAST(&ab, off_t, vs.f_bsize * vs.f_bavail);
1276 ab.actual.volattr |= ATTR_VOL_SPACEAVAIL;
1279 ATTR_PACK_CAST(&ab, off_t, vs.f_bsize);
1280 ab.actual.volattr |= ATTR_VOL_MINALLOCATION;
1283 ATTR_PACK_CAST(&ab, off_t, vs.f_bsize); /* not strictly true */
1284 ab.actual.volattr |= ATTR_VOL_ALLOCATIONCLUMP;
1287 ATTR_PACK_CAST(&ab, uint32_t, vs.f_iosize);
1288 ab.actual.volattr |= ATTR_VOL_IOBLOCKSIZE;
1291 ATTR_PACK_CAST(&ab, uint32_t, vs.f_objcount);
1292 ab.actual.volattr |= ATTR_VOL_OBJCOUNT;
1295 ATTR_PACK_CAST(&ab, uint32_t, vs.f_filecount);
1296 ab.actual.volattr |= ATTR_VOL_FILECOUNT;
1299 ATTR_PACK_CAST(&ab, uint32_t, vs.f_dircount);
1300 ab.actual.volattr |= ATTR_VOL_DIRCOUNT;
1303 ATTR_PACK_CAST(&ab, uint32_t, vs.f_maxobjcount);
1304 ab.actual.volattr |= ATTR_VOL_MAXOBJCOUNT;
1307 attrlist_pack_string(&ab, mnt->mnt_vfsstat.f_mntonname, 0);
1308 ab.actual.volattr |= ATTR_VOL_MOUNTPOINT;
1311 attrlist_pack_string(&ab, vs.f_vol_name, 0);
1312 ab.actual.volattr |= ATTR_VOL_NAME;
1315 ATTR_PACK_CAST(&ab, uint32_t, mnt->mnt_flag);
1316 ab.actual.volattr |= ATTR_VOL_MOUNTFLAGS;
1319 attrlist_pack_string(&ab, mnt->mnt_vfsstat.f_mntfromname, 0);
1320 ab.actual.volattr |= ATTR_VOL_MOUNTEDDEVICE;
1324 ATTR_PACK_CAST(&ab, uint64_t, ~0LL); /* return all encodings */
1334 ATTR_PACK(&ab, vs.f_capabilities);
1335 ab.actual.volattr |= ATTR_VOL_CAPABILITIES;
1338 ATTR_PACK(&ab, vs.f_uuid);
1339 ab.actual.volattr |= ATTR_VOL_UUID;
1355 ATTR_PACK(&ab, vs.f_attributes);
1356 ab.actual.volattr |= ATTR_VOL_ATTRIBUTES;
1360 if (!return_valid && (ab.fixedcursor - ab.base) != fixedsize)
1362 fixedsize, (long) (ab.fixedcursor - ab.base), alp->commonattr, alp->volattr);
1363 if (!return_valid && ab.varcursor != (ab.base + ab.needed))
1364 panic("packed variable field size mismatch; used %ld but expected %ld", (long) (ab.varcursor - ab.base), ab.needed);
1372 *(uint32_t *)ab.base = (options & FSOPT_REPORT_FULLSIZE) ? ab.needed : imin(ab.allocated, ab.needed);
1376 ab.actual.commonattr |= ATTR_CMN_RETURNED_ATTRS;
1379 ab.actual.commonattr &= ab.valid.commonattr;
1380 ab.actual.volattr &= ab.valid.volattr;
1382 bcopy(&ab.actual, ab.base + sizeof(uint32_t), sizeof (ab.actual));
1386 error = copyout(ab.base, CAST_USER_ADDR_T(attributeBuffer),
1387 ab.allocated);
1389 bcopy(ab.base, (void *)attributeBuffer, (size_t)ab.allocated);
1397 if (ab.base != NULL)
1398 FREE(ab.base, M_TEMP);
2202 struct _attrlist_buf ab;
2218 ab.base = NULL;
2237 bcopy(&(alp->commonattr), &ab.valid, sizeof (attribute_set_t));
2249 getattrlist_fixupattrs(&ab.valid, vap);
2290 ab.allocated = fixedsize + varsize;
2292 if ( ((size_t)ab.allocated) > ATTR_MAX_BUFFER) {
2294 VFS_DEBUG(ctx, vp, "ATTRLIST - ERROR: buffer size too large (%d limit %d)", ab.allocated, ATTR_MAX_BUFFER);
2303 if (buf_size < ab.allocated) {
2308 newlen = (ab.allocated + 7) & ~0x07;
2311 ab.allocated = newlen;
2319 if (uio_isuserspace(auio) || (buf_size < ab.allocated)) {
2320 MALLOC(ab.base, char *, ab.allocated, M_TEMP,
2340 ab.base = (char *)uio_curriovbase(auio) +
2342 bzero(ab.base, ab.allocated);
2345 if (ab.base == NULL) {
2347 VFS_DEBUG(ctx, vp, "ATTRLIST - ERROR: could not allocate %d for copy buffer", ab.allocated);
2387 ab.fixedcursor = ab.base + sizeof(uint32_t);
2389 ab.fixedcursor += sizeof (attribute_set_t);
2390 bzero(&ab.actual, sizeof (ab.actual));
2392 ab.varcursor = ab.base + fixedsize;
2393 ab.needed = ab.allocated;
2396 error = attr_pack_common(ctx, vp, alp, &ab, vap, proc_is64, cnp, cnl,
2401 error = attr_pack_dir(vp, alp, &ab, vap);
2406 error = attr_pack_file(ctx, vp, alp, &ab, vap, return_valid,
2414 if (!return_valid && (ab.fixedcursor - ab.base) != fixedsize)
2416 fixedsize, (long) (ab.fixedcursor - ab.base), alp->commonattr, alp->volattr);
2417 if (!return_valid && ab.varcursor != (ab.base + ab.needed))
2418 panic("packed variable field size mismatch; used %ld but expected %ld", (long) (ab.varcursor - ab.base), ab.needed);
2426 *(uint32_t *)ab.base = (options & FSOPT_REPORT_FULLSIZE) ? ab.needed : imin(ab.allocated, ab.needed);
2430 ab.actual.commonattr |= ATTR_CMN_RETURNED_ATTRS;
2433 ab.actual.commonattr &= ab.valid.commonattr;
2434 ab.actual.dirattr &= ab.valid.dirattr;
2435 ab.actual.fileattr &= ab.valid.fileattr;
2437 bcopy(&ab.actual, ab.base + sizeof(uint32_t), sizeof (ab.actual));
2440 copy_size = imin(buf_size, ab.allocated);
2444 error = uiomove(ab.base, copy_size, auio);
2469 if (ab.base != NULL && alloc_local_buf)
2470 FREE(ab.base, M_TEMP);
3036 struct _attrlist_buf ab;
3079 bzero(&ab, sizeof(ab));
3080 ab.base = (char *)kern_attr_buf;
3081 ab.needed = fsiz + vsiz;
3084 *((uint32_t *)ab.base) = ab.needed;
3085 if (ab.needed > (ssize_t)kern_attr_buf_siz) {
3092 ab.fixedcursor = ab.base + sizeof(uint32_t);
3094 * Zero out buffer, ab.fixedbuffer starts after the first uint32_t
3098 bzero(ab.fixedcursor, fsiz);
3103 ab.varcursor = ab.base + fsiz;
3108 bzero(&ab.actual, sizeof (ab.actual));
3109 ab.fixedcursor += sizeof (attribute_set_t);
3111 ab.allocated = ab.needed;
3115 ATTR_PACK4(ab, error_attr);
3116 ab.actual.commonattr |= ATTR_CMN_ERROR;
3125 attrlist_pack_string(&ab, namebuf, namelen);
3132 ab.actual.commonattr |= ATTR_CMN_NAME | ATTR_CMN_RETURNED_ATTRS;
3133 bcopy(&ab.actual, ab.base + sizeof(uint32_t), sizeof (ab.actual));