kern_return_t kgi_unset_mode(trivfs_protid_t io_object) { assert(display); assert(display->UnsetMode); if (!io_object) return EOPNOTSUPP; if (!(io_object->po->openmodes & O_WRITE)) return EBADF; fprintf(stderr, "kgi_unset_mode()\n"); { struct po_state *const state = io_object->po->hook; /* first things first... */ if (state->status != KGI_STATUS_SET && state->status != KGI_STATUS_CHECKED) return EPROTO; unset_mode(state); state->status = KGI_STATUS_NONE; } return 0; }
int main(int argc, char *argv[]) { parse_opts(argc, argv); setup_msr(); setup_drm(); setup_modeset(); setup_vblank_interval(); setup_alarm(); printf("Test name:\t%s\n", opts.test_name); unset_mode(); set_mode(); setup_idle(); if (opts.do_page_flip) page_flip_test(); if (opts.do_draw) draw_test(); if (opts.do_draw_and_flip) draw_and_flip_test(); teardown_modeset(); teardown_drm(); teardown_msr(); return 0; }
void close_hook(struct trivfs_peropen *po) { struct po_state *state = po->hook; fprintf(stderr, "KGI close()\n"); if (state->status == KGI_STATUS_SET || state->status == KGI_STATUS_CHECKED) unset_mode(state); free(state); }