Lines Matching refs:session

574 					struct vbg_session *session,  in vbg_set_session_event_filter()  argument
589 session->requestor); in vbg_set_session_event_filter()
599 previous = session->event_filter; in vbg_set_session_event_filter()
600 session->event_filter |= or_mask; in vbg_set_session_event_filter()
601 session->event_filter &= ~not_mask; in vbg_set_session_event_filter()
604 changed = previous ^ session->event_filter; in vbg_set_session_event_filter()
627 session->event_filter); in vbg_set_session_event_filter()
628 session->event_filter = previous; in vbg_set_session_event_filter()
676 struct vbg_session *session, in vbg_set_session_capabilities() argument
691 session->requestor); in vbg_set_session_capabilities()
701 previous = session->guest_caps; in vbg_set_session_capabilities()
702 session->guest_caps |= or_mask; in vbg_set_session_capabilities()
703 session->guest_caps &= ~not_mask; in vbg_set_session_capabilities()
706 changed = previous ^ session->guest_caps; in vbg_set_session_capabilities()
729 session->guest_caps); in vbg_set_session_capabilities()
730 session->guest_caps = previous; in vbg_set_session_capabilities()
930 struct vbg_session *session; in vbg_core_open_session() local
932 session = kzalloc(sizeof(*session), GFP_KERNEL); in vbg_core_open_session()
933 if (!session) in vbg_core_open_session()
936 session->gdev = gdev; in vbg_core_open_session()
937 session->requestor = requestor; in vbg_core_open_session()
939 return session; in vbg_core_open_session()
946 void vbg_core_close_session(struct vbg_session *session) in vbg_core_close_session() argument
948 struct vbg_dev *gdev = session->gdev; in vbg_core_close_session()
951 vbg_set_session_capabilities(gdev, session, 0, U32_MAX, true); in vbg_core_close_session()
952 vbg_set_session_event_filter(gdev, session, 0, U32_MAX, true); in vbg_core_close_session()
954 for (i = 0; i < ARRAY_SIZE(session->hgcm_client_ids); i++) { in vbg_core_close_session()
955 if (!session->hgcm_client_ids[i]) in vbg_core_close_session()
960 session->hgcm_client_ids[i], &rc); in vbg_core_close_session()
963 kfree(session); in vbg_core_close_session()
1009 struct vbg_session *session, in vbg_wait_event_cond() argument
1019 wakeup = events || session->cancel_waiters; in vbg_wait_event_cond()
1028 struct vbg_session *session, in vbg_consume_events_locked() argument
1038 struct vbg_session *session, in vbg_ioctl_wait_for_events() argument
1059 vbg_wait_event_cond(gdev, session, event_mask), in vbg_ioctl_wait_for_events()
1064 if (timeout < 0 || session->cancel_waiters) { in vbg_ioctl_wait_for_events()
1070 vbg_consume_events_locked(gdev, session, event_mask); in vbg_ioctl_wait_for_events()
1085 struct vbg_session *session, in vbg_ioctl_interrupt_all_wait_events() argument
1094 session->cancel_waiters = true; in vbg_ioctl_interrupt_all_wait_events()
1109 static int vbg_req_allowed(struct vbg_dev *gdev, struct vbg_session *session, in vbg_req_allowed() argument
1189 (session->requestor & VMMDEV_REQUESTOR_USER_DEVICE)) { in vbg_req_allowed()
1199 struct vbg_session *session, void *data) in vbg_ioctl_vmmrequest() argument
1213 ret = vbg_req_allowed(gdev, session, data); in vbg_ioctl_vmmrequest()
1224 struct vbg_session *session, in vbg_ioctl_hgcm_connect() argument
1235 for (i = 0; i < ARRAY_SIZE(session->hgcm_client_ids); i++) { in vbg_ioctl_hgcm_connect()
1236 if (!session->hgcm_client_ids[i]) { in vbg_ioctl_hgcm_connect()
1237 session->hgcm_client_ids[i] = U32_MAX; in vbg_ioctl_hgcm_connect()
1243 if (i >= ARRAY_SIZE(session->hgcm_client_ids)) in vbg_ioctl_hgcm_connect()
1246 ret = vbg_hgcm_connect(gdev, session->requestor, &conn->u.in.loc, in vbg_ioctl_hgcm_connect()
1252 session->hgcm_client_ids[i] = client_id; in vbg_ioctl_hgcm_connect()
1255 session->hgcm_client_ids[i] = 0; in vbg_ioctl_hgcm_connect()
1263 struct vbg_session *session, in vbg_ioctl_hgcm_disconnect() argument
1277 for (i = 0; i < ARRAY_SIZE(session->hgcm_client_ids); i++) { in vbg_ioctl_hgcm_disconnect()
1278 if (session->hgcm_client_ids[i] == client_id) { in vbg_ioctl_hgcm_disconnect()
1279 session->hgcm_client_ids[i] = U32_MAX; in vbg_ioctl_hgcm_disconnect()
1285 if (i >= ARRAY_SIZE(session->hgcm_client_ids)) in vbg_ioctl_hgcm_disconnect()
1288 ret = vbg_hgcm_disconnect(gdev, session->requestor, client_id, in vbg_ioctl_hgcm_disconnect()
1293 session->hgcm_client_ids[i] = 0; in vbg_ioctl_hgcm_disconnect()
1295 session->hgcm_client_ids[i] = client_id; in vbg_ioctl_hgcm_disconnect()
1316 struct vbg_session *session, bool f32bit, in vbg_ioctl_hgcm_call() argument
1371 for (i = 0; i < ARRAY_SIZE(session->hgcm_client_ids); i++) in vbg_ioctl_hgcm_call()
1372 if (session->hgcm_client_ids[i] == client_id) in vbg_ioctl_hgcm_call()
1375 if (i >= ARRAY_SIZE(session->hgcm_client_ids)) { in vbg_ioctl_hgcm_call()
1382 ret = vbg_hgcm_call32(gdev, session->requestor, client_id, in vbg_ioctl_hgcm_call()
1387 ret = vbg_hgcm_call(gdev, session->requestor, client_id, in vbg_ioctl_hgcm_call()
1416 struct vbg_session *session, in vbg_ioctl_change_filter_mask() argument
1430 return vbg_set_session_event_filter(gdev, session, or_mask, not_mask, in vbg_ioctl_change_filter_mask()
1435 struct vbg_session *session, struct vbg_ioctl_set_guest_caps *caps) in vbg_ioctl_change_guest_capabilities() argument
1449 ret = vbg_set_session_capabilities(gdev, session, or_mask, not_mask, in vbg_ioctl_change_guest_capabilities()
1454 caps->u.out.session_caps = session->guest_caps; in vbg_ioctl_change_guest_capabilities()
1477 struct vbg_session *session, in vbg_ioctl_write_core_dump() argument
1486 session->requestor); in vbg_ioctl_write_core_dump()
1504 int vbg_core_ioctl(struct vbg_session *session, unsigned int req, void *data) in vbg_core_ioctl() argument
1507 struct vbg_dev *gdev = session->gdev; in vbg_core_ioctl()
1523 return vbg_ioctl_vmmrequest(gdev, session, data); in vbg_core_ioctl()
1533 return vbg_ioctl_hgcm_connect(gdev, session, data); in vbg_core_ioctl()
1535 return vbg_ioctl_hgcm_disconnect(gdev, session, data); in vbg_core_ioctl()
1537 return vbg_ioctl_wait_for_events(gdev, session, data); in vbg_core_ioctl()
1539 return vbg_ioctl_interrupt_all_wait_events(gdev, session, data); in vbg_core_ioctl()
1541 return vbg_ioctl_change_filter_mask(gdev, session, data); in vbg_core_ioctl()
1543 return vbg_ioctl_change_guest_capabilities(gdev, session, data); in vbg_core_ioctl()
1547 return vbg_ioctl_write_core_dump(gdev, session, data); in vbg_core_ioctl()
1558 return vbg_ioctl_hgcm_call(gdev, session, f32bit, data); in vbg_core_ioctl()