+int
+fill_pseminfo(struct psemnode *pnode, struct psem_info * info)
+{
+ register struct pseminfo *pinfo;
+ struct stat *sb;
+
+ PSEM_SUBSYS_LOCK();
+ if ((pinfo = pnode->pinfo) == PSEMINFO_NULL){
+ PSEM_SUBSYS_UNLOCK();
+ return(EINVAL);
+ }
+
+#if 0
+ if ((pinfo->psem_flags & PSEM_ALLOCATED) != PSEM_ALLOCATED) {
+ PSEM_SUBSYS_UNLOCK();
+ return(EINVAL);
+ }
+#endif
+
+ sb = &info->psem_stat;
+ bzero(sb, sizeof(struct stat));
+
+ sb->st_mode = pinfo->psem_mode;
+ sb->st_uid = pinfo->psem_uid;
+ sb->st_gid = pinfo->psem_gid;
+ sb->st_size = pinfo->psem_usecount;
+ bcopy(&pinfo->psem_name[0], &info->psem_name[0], PSEMNAMLEN+1);
+
+ PSEM_SUBSYS_UNLOCK();
+ return(0);
+}
+