Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/uipc_sem.c
| Show First 20 Lines • Show All 250 Lines • ▼ Show 20 Lines | ksem_closef(struct file *fp, struct thread *td) | ||||
| ks = fp->f_data; | ks = fp->f_data; | ||||
| fp->f_data = NULL; | fp->f_data = NULL; | ||||
| ksem_drop(ks); | ksem_drop(ks); | ||||
| return (0); | return (0); | ||||
| } | } | ||||
| static int | static int | ||||
| ksem_fill_kinfo(struct file *fp, struct kinfo_file *kif, struct filedesc *fdp) | ksem_fill_kinfo(struct file *fp, struct kinfo_file *kif, struct filedesc *fdp, | ||||
| int lkflags) | |||||
| { | { | ||||
| struct ksem *ks; | struct ksem *ks; | ||||
| kif->kf_type = KF_TYPE_SEM; | kif->kf_type = KF_TYPE_SEM; | ||||
| ks = fp->f_data; | ks = fp->f_data; | ||||
| mtx_lock(&sem_lock); | mtx_lock(&sem_lock); | ||||
| kif->kf_un.kf_sem.kf_sem_value = ks->ks_value; | kif->kf_un.kf_sem.kf_sem_value = ks->ks_value; | ||||
| kif->kf_un.kf_sem.kf_sem_mode = S_IFREG | ks->ks_mode; /* XXX */ | kif->kf_un.kf_sem.kf_sem_mode = S_IFREG | ks->ks_mode; /* XXX */ | ||||
| ▲ Show 20 Lines • Show All 798 Lines • Show Last 20 Lines | |||||