fsspset
fsspset->fssps_maxfsspri = fsspri;
disp_lock_exit_high(&fsspset->fssps_displock);
disp_lock_exit_high(&fsspset->fssps_displock);
fsspset_t *fsspset;
fsspset = &fsspsets[psetid];
mutex_enter(&fsspset->fssps_lock);
fsspset->fssps_gen++;
if (fsspset->fssps_cpupart == NULL ||
(fssproj = fsspset->fssps_list) == NULL) {
mutex_exit(&fsspset->fssps_lock);
disp_lock_enter(&fsspset->fssps_displock);
pset_shares = fsspset->fssps_shares;
maxfsspri = (fsspset->fssps_maxfsspri *
fsspset->fssps_maxfsspri = maxfsspri;
if (fsspset->fssps_gen != zp->zone_fss_gen) {
zp->zone_fss_gen = fsspset->fssps_gen;
fsspset->fssps_shares -=
fsspset->fssps_shares +=
pset_shares = fsspset->fssps_shares;
} while (fssproj != fsspset->fssps_list);
disp_lock_exit(&fsspset->fssps_displock);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset;
fsspset = fss_find_fsspset(t->t_cpupart);
mutex_enter(&fsspset->fssps_lock);
if ((fsszone = fss_find_fsszone(fsspset, zone)) == NULL) {
mutex_exit(&fsspset->fssps_lock);
fss_insert_fsszone(fsspset, zone, fsszone);
if ((fssproj = fss_find_fssproj(fsspset, kpj)) == NULL) {
fss_remove_fsszone(fsspset, fsszone);
mutex_exit(&fsspset->fssps_lock);
fss_insert_fssproj(fsspset, kpj, fsszone, fssproj);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
disp_lock_enter_high(&fsspset->fssps_displock);
fsspset->fssps_shares -=
disp_lock_exit_high(&fsspset->fssps_displock);
mutex_enter(&fsspset->fssps_lock);
fss_remove_fssproj(fsspset, fssproj);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
mutex_enter(&fsspset->fssps_lock);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
mutex_enter(&fsspset->fssps_lock);
disp_lock_enter_high(&fsspset->fssps_displock);
fsspset->fssps_shares -= fsszone->fssz_rshares;
fss_remove_fssproj(fsspset, fssproj);
disp_lock_exit_high(&fsspset->fssps_displock);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset = FSSPROJ2FSSPSET(fssproj);
disp_lock_enter_high(&fsspset->fssps_displock);
disp_lock_exit_high(&fsspset->fssps_displock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj_old);
mutex_enter(&fsspset->fssps_lock);
ASSERT(t->t_cpupart == fsspset->fssps_cpupart);
mutex_exit(&fsspset->fssps_lock);
if ((fsszone_new = fss_find_fsszone(fsspset, zone)) == NULL) {
fss_insert_fsszone(fsspset, zone, fsszone_new);
if ((fssproj_new = fss_find_fssproj(fsspset, kpj_new)) == NULL) {
fss_insert_fssproj(fsspset, kpj_new,
fss_remove_fssproj(fsspset, fssproj_old);
mutex_exit(&fsspset->fssps_lock);
fsspset_t *fsspset = NULL;
fsspset = &fsspsets[i];
if (fsspset->fssps_cpupart == cpupart) {
ASSERT(fsspset->fssps_nproj > 0);
fsspset = &fsspsets[i];
if (fsspset->fssps_cpupart == NULL) {
ASSERT(fsspset->fssps_nproj == 0);
fsspset->fssps_cpupart = cpupart;
return (fsspset);
fss_del_fsspset(fsspset_t *fsspset)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
ASSERT(fsspset->fssps_nproj == 0);
ASSERT(fsspset->fssps_list == NULL);
ASSERT(fsspset->fssps_zones == NULL);
fsspset->fssps_cpupart = NULL;
fsspset->fssps_maxfsspri = 0;
fsspset->fssps_shares = 0;
fss_find_fsszone(fsspset_t *fsspset, zone_t *zone)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
if (fsspset->fssps_list != NULL) {
fsszone = fsspset->fssps_zones;
} while (fsszone != fsspset->fssps_zones);
fss_insert_fsszone(fsspset_t *fsspset, zone_t *zone, fsszone_t *fsszone)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
if (fsspset->fssps_zones == NULL) {
fsspset->fssps_zones = fsszone;
fsszone_t *fssz_head = fsspset->fssps_zones;
fsspset->fssps_zones = fsszone;
fss_remove_fsszone(fsspset_t *fsspset, fsszone_t *fsszone)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
if (fsspset->fssps_zones == fsszone)
fsspset->fssps_zones = fsszone->fssz_next;
fsspset->fssps_zones = NULL;
fss_find_fssproj(fsspset_t *fsspset, kproject_t *kpj)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
if (fsspset->fssps_list != NULL) {
fssproj = fsspset->fssps_list;
ASSERT(fssproj->fssp_pset == fsspset);
} while (fssproj != fsspset->fssps_list);
fss_insert_fssproj(fsspset_t *fsspset, kproject_t *kpj, fsszone_t *fsszone,
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
fssproj->fssp_pset = fsspset;
fsspset->fssps_nproj++;
if (fsspset->fssps_list == NULL) {
fsspset->fssps_list = fssproj;
fssproj_t *fssp_head = fsspset->fssps_list;
fsspset->fssps_list = fssproj;
fss_remove_fssproj(fsspset_t *fsspset, fssproj_t *fssproj)
ASSERT(MUTEX_HELD(&fsspset->fssps_lock));
fsspset->fssps_nproj--;
if (fsspset->fssps_list == fssproj)
fsspset->fssps_list = fssproj->fssp_next;
fss_remove_fsszone(fsspset, fsszone);
fsspset->fssps_list = NULL;
ASSERT(fsspset->fssps_nproj == 0);
fss_remove_fsszone(fsspset, fsszone);
fss_del_fsspset(fsspset);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
disp_lock_enter_high(&fsspset->fssps_displock);
fsspset->fssps_shares -= fsszone->fssz_rshares;
disp_lock_exit_high(&fsspset->fssps_displock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
disp_lock_enter_high(&fsspset->fssps_displock);
fsspset->fssps_shares += fsszone->fssz_rshares;
disp_lock_exit_high(&fsspset->fssps_displock);
fsspset_t *fsspset;
fsspset = FSSPROJ2FSSPSET(fssproj);
disp_lock_enter_high(&fsspset->fssps_displock);
disp_lock_exit_high(&fsspset->fssps_displock);
maxfsspri = fsspset->fssps_maxfsspri;