Add wrapper for setting blocking status on a QEMUFile
Add a wrapper to change the blocking status on a QEMUFile rather than having to use qemu_set_block(qemu_get_fd(f)); it seems best to avoid exposing the fd since not all QEMUFile's really have one. With this wrapper we could move the implementation down to be different on different transports. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Amit Shah <amit.shah@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									9504fb510c
								
							
						
					
					
						commit
						a800cd5c38
					
				| @ -197,6 +197,7 @@ int qemu_file_get_error(QEMUFile *f); | ||||
| void qemu_file_set_error(QEMUFile *f, int ret); | ||||
| int qemu_file_shutdown(QEMUFile *f); | ||||
| void qemu_fflush(QEMUFile *f); | ||||
| void qemu_file_set_blocking(QEMUFile *f, bool block); | ||||
| 
 | ||||
| static inline void qemu_put_be64s(QEMUFile *f, const uint64_t *pv) | ||||
| { | ||||
|  | ||||
| @ -648,3 +648,18 @@ size_t qemu_get_counted_string(QEMUFile *f, char buf[256]) | ||||
| 
 | ||||
|     return res == len ? res : 0; | ||||
| } | ||||
| 
 | ||||
| /*
 | ||||
|  * Set the blocking state of the QEMUFile. | ||||
|  * Note: On some transports the OS only keeps a single blocking state for | ||||
|  *       both directions, and thus changing the blocking on the main | ||||
|  *       QEMUFile can also affect the return path. | ||||
|  */ | ||||
| void qemu_file_set_blocking(QEMUFile *f, bool block) | ||||
| { | ||||
|     if (block) { | ||||
|         qemu_set_block(qemu_get_fd(f)); | ||||
|     } else { | ||||
|         qemu_set_nonblock(qemu_get_fd(f)); | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dr. David Alan Gilbert
						Dr. David Alan Gilbert