Searched refs:ioreq (Results 1 – 15 of 15) sorted by relevance
94 static inline bool hvm_ioreq_needs_completion(const ioreq_t *ioreq) in hvm_ioreq_needs_completion() argument96 return ioreq->state == STATE_IOREQ_READY && in hvm_ioreq_needs_completion()97 !ioreq->data_is_ptr && in hvm_ioreq_needs_completion()98 (ioreq->type != IOREQ_TYPE_PIO || ioreq->dir != IOREQ_WRITE); in hvm_ioreq_needs_completion()
55 struct hvm_ioreq_page ioreq; member
52 struct ioreq { struct67 typedef struct ioreq ioreq_t; argument70 struct ioreq vcpu_ioreq[1];
41 struct ioreq;42 int hwdom_pit_access(struct ioreq *ioreq);
360 } ioreq; member812 if ( t == p2m_ioreq_server && p2m->ioreq.server != NULL ) in p2m_recalc_type_range()957 p2m->ioreq.entry_count++; in p2m_entry_modify()979 ASSERT(p2m->ioreq.entry_count > 0); in p2m_entry_modify()980 p2m->ioreq.entry_count--; in p2m_entry_modify()
76 shared_iopage_t *p = s->ioreq.va; in get_ioreq()109 ioreq_t *ioreq = &v->arch.hvm.hvm_io.io_req; in hvm_io_assist() local111 if ( hvm_ioreq_needs_completion(ioreq) ) in hvm_io_assist()112 ioreq->data = data; in hvm_io_assist()311 struct hvm_ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq; in hvm_unmap_ioreq_gfn()326 struct hvm_ioreq_page *iorp = buf ? &s->bufioreq : &s->ioreq; in hvm_map_ioreq_gfn()485 if ( s->ioreq.va != NULL ) in hvm_update_ioreq_evtchn()746 s->ioreq.gfn = INVALID_GFN; in hvm_ioreq_server_init()922 *ioreq_gfn = gfn_x(s->ioreq.gfn); in hvm_get_ioreq_server_info()977 *mfn = page_to_mfn(s->ioreq.page); in hvm_get_ioreq_server_frame()[all …]
16 obj-y += ioreq.o
501 while ( read_atomic(&p2m->ioreq.entry_count) && in dm_op()
571 ioreq_t ioreq = { in pv_pit_handler() local582 if ( is_hardware_domain(current->domain) && hwdom_pit_access(&ioreq) ) in pv_pit_handler()590 handle_speaker_io(ioreq.dir, port, 1, &val); in pv_pit_handler()592 handle_pit_io(ioreq.dir, port, 1, &val); in pv_pit_handler()593 ioreq.data = val; in pv_pit_handler()596 return !write ? ioreq.data : 0; in pv_pit_handler()
2216 int hwdom_pit_access(struct ioreq *ioreq) in hwdom_pit_access() argument2222 switch ( ioreq->addr ) in hwdom_pit_access()2225 if ( ioreq->dir == IOREQ_READ ) in hwdom_pit_access()2226 ioreq->data = inb(PIT_CH2); in hwdom_pit_access()2228 outb(ioreq->data, PIT_CH2); in hwdom_pit_access()2232 if ( ioreq->dir == IOREQ_READ ) in hwdom_pit_access()2234 switch ( ioreq->data & 0xc0 ) in hwdom_pit_access()2242 ioreq->data &= ~0x09; in hwdom_pit_access()2245 outb(ioreq->data, PIT_MODE); in hwdom_pit_access()2251 if ( ioreq->dir == IOREQ_READ ) in hwdom_pit_access()[all …]
104 spin_lock_init(&p2m->ioreq.lock); in p2m_initialise()378 spin_lock(&p2m->ioreq.lock); in p2m_set_ioreq_server()387 p2m->ioreq.server = NULL; in p2m_set_ioreq_server()388 p2m->ioreq.flags = 0; in p2m_set_ioreq_server()405 p2m->ioreq.server = s; in p2m_set_ioreq_server()406 p2m->ioreq.flags = flags; in p2m_set_ioreq_server()412 spin_unlock(&p2m->ioreq.lock); in p2m_set_ioreq_server()423 spin_lock(&p2m->ioreq.lock); in p2m_get_ioreq_server()425 s = p2m->ioreq.server; in p2m_get_ioreq_server()426 *flags = p2m->ioreq.flags; in p2m_get_ioreq_server()[all …]
87 if ( p2m->ioreq.flags & XEN_DMOP_IOREQ_MEM_ACCESS_WRITE ) in p2m_type_to_flags()
108 entry->w = !(p2m->ioreq.flags & XEN_DMOP_IOREQ_MEM_ACCESS_WRITE); in ept_p2m_type_to_flags()
547 F: xen/arch/x86/hvm/ioreq.c550 F: xen/include/asm-x86/hvm/ioreq.h551 F: xen/include/public/hvm/ioreq.h
190 if ( log_global && read_atomic(&p2m->ioreq.entry_count) ) in hap_enable_log_dirty()
Completed in 29 milliseconds