void ask_user (piece_info_t *obj) { char c; for (;;) { display_loc_u (obj->loc); /* display piece to move */ describe_obj (obj); /* describe object to be moved */ display_score (); /* show current score */ display_loc_u (obj->loc); /* reposition cursor */ c = get_chx (); /* get command from user (no echo) */ switch (c) { case 'Q': user_dir (obj, NORTHWEST); return; case 'W': user_dir (obj, NORTH); return; case 'E': user_dir (obj, NORTHEAST); return; case 'D': user_dir (obj, EAST); return; case 'C': user_dir (obj, SOUTHEAST); return; case 'X': user_dir (obj, SOUTH); return; case 'Z': user_dir (obj, SOUTHWEST); return; case 'A': user_dir (obj, WEST); return; case 'J': edit (obj->loc); reset_func (obj); return; case 'V': user_set_city_func (obj); reset_func (obj); return; case ' ': user_skip (obj); return; case 'F': user_fill (obj); return; case 'I': user_set_dir (obj); return; case 'R': user_random (obj); return; case 'S': user_sentry (obj); return; case 'L': user_land (obj); return; case 'G': user_explore (obj); return; case 'T': user_transport (obj); return; case 'U': user_repair (obj); return; case 'Y': user_armyattack (obj); return; case 'B': user_build (obj); break; case '?': help (help_user, user_lines);; break; case 'K': user_wake (obj); break; case 'O': user_cancel_auto (); break; case '\014': case 'P': redraw (); break; case '=': describe_obj (obj); break; default: alert(); } } }
static int i915_gem_object_list_info(struct seq_file *m, void *data) { struct drm_info_node *node = (struct drm_info_node *) m->private; uintptr_t list = (uintptr_t) node->info_ent->data; struct list_head *head; struct drm_device *dev = node->minor->dev; drm_i915_private_t *dev_priv = dev->dev_private; struct drm_i915_gem_object *obj; size_t total_obj_size, total_gtt_size; int count, ret; ret = mutex_lock_interruptible(&dev->struct_mutex); if (ret) return ret; switch (list) { case ACTIVE_LIST: seq_printf(m, "Active:\n"); head = &dev_priv->mm.active_list; break; case INACTIVE_LIST: seq_printf(m, "Inactive:\n"); head = &dev_priv->mm.inactive_list; break; case PINNED_LIST: seq_printf(m, "Pinned:\n"); head = &dev_priv->mm.pinned_list; break; case FLUSHING_LIST: seq_printf(m, "Flushing:\n"); head = &dev_priv->mm.flushing_list; break; case DEFERRED_FREE_LIST: seq_printf(m, "Deferred free:\n"); head = &dev_priv->mm.deferred_free_list; break; default: mutex_unlock(&dev->struct_mutex); return -EINVAL; } total_obj_size = total_gtt_size = count = 0; list_for_each_entry(obj, head, mm_list) { seq_printf(m, " "); describe_obj(m, obj); seq_printf(m, "\n"); total_obj_size += obj->base.size; total_gtt_size += obj->gtt_space->size; count++; }
static int i915_gem_object_list_info(struct drm_device *dev, struct sbuf *m, void *data) { uintptr_t list = (uintptr_t)data; struct list_head *head; drm_i915_private_t *dev_priv = dev->dev_private; struct drm_i915_gem_object *obj; size_t total_obj_size, total_gtt_size; int count; if (sx_xlock_sig(&dev->dev_struct_lock)) return (EINTR); switch (list) { case ACTIVE_LIST: sbuf_printf(m, "Active:\n"); head = &dev_priv->mm.active_list; break; case INACTIVE_LIST: sbuf_printf(m, "Inactive:\n"); head = &dev_priv->mm.inactive_list; break; case PINNED_LIST: sbuf_printf(m, "Pinned:\n"); head = &dev_priv->mm.pinned_list; break; case FLUSHING_LIST: sbuf_printf(m, "Flushing:\n"); head = &dev_priv->mm.flushing_list; break; case DEFERRED_FREE_LIST: sbuf_printf(m, "Deferred free:\n"); head = &dev_priv->mm.deferred_free_list; break; default: DRM_UNLOCK(dev); return (EINVAL); } total_obj_size = total_gtt_size = count = 0; list_for_each_entry(obj, head, mm_list) { sbuf_printf(m, " "); describe_obj(m, obj); sbuf_printf(m, "\n"); total_obj_size += obj->base.size; total_gtt_size += obj->gtt_space->size; count++; }