/* * Get system information */ int sys_info(int type, void *buf) { struct info_memory infomem; struct info_timer infotmr; struct info_thread infothr; struct info_device infodev; int err = 0; if (buf == NULL || !user_area(buf)) return EFAULT; sched_lock(); switch (type) { case INFO_KERNEL: err = umem_copyout(&infokern, buf, sizeof(infokern)); break; case INFO_MEMORY: page_info(&infomem); kpage_info(&infomem); err = umem_copyout(&infomem, buf, sizeof(infomem)); break; case INFO_THREAD: if (umem_copyin(buf, &infothr, sizeof(infothr))) { err = EFAULT; break; } if ((err = thread_info(&infothr))) break; infothr.cookie++; err = umem_copyout(&infothr, buf, sizeof(infothr)); break; case INFO_DEVICE: if (umem_copyin(buf, &infodev, sizeof(infodev))) { err = EFAULT; break; } if ((err = device_info(&infodev))) break; infodev.cookie++; err = umem_copyout(&infodev, buf, sizeof(infodev)); break; case INFO_TIMER: timer_info(&infotmr); err = umem_copyout(&infotmr, buf, sizeof(infotmr)); break; default: err = EINVAL; break; } sched_unlock(); return err; }
inline GPGC_PageInfo* GPGC_PageInfo::page_info(oopDesc *obj) { PageNum page = GPGC_Layout::addr_to_PageNum(obj); if ( GPGC_Layout::mid_space_page(page) ) { page = GPGC_Layout::page_to_MidSpaceBasePageNum(page); } return page_info(page); }
void ImageView::unremoveRightPage() { PageInfo page_info( m_ptrPages->unremovePage(PageId(m_imageId, PageId::RIGHT_PAGE)) ); m_rightUnremoveButton.unlink(); m_rightPageRemoved = false; update(); // We need invalidateThumbnail(PageInfo) rather than (PageId), // as we are updating page removal status. page_info.setId(PageId(m_imageId, PageId::SINGLE_PAGE)); emit invalidateThumbnail(page_info); }