forked from qemu/qemu
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
QGA calls qemu_open_old() in various places. Calling qemu_open() instead isn't a great alternative, as it has special "/dev/fdset" handling and depends on QEMU internal monitor data structures. Instead, provide a simple helper for QGA needs, with Error* support. The following patches will make use of it. Signed-off-by: Marc-André Lureau <[email protected]> Reviewed-by: Markus Armbruster <[email protected]> Message-Id: <[email protected]>
- Loading branch information
Showing
3 changed files
with
42 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
/* | ||
* This work is licensed under the terms of the GNU GPL, version 2 or later. | ||
* See the COPYING file in the top-level directory. | ||
*/ | ||
#include "cutils.h" | ||
|
||
#include "qapi/error.h" | ||
|
||
/** | ||
* qga_open_cloexec: | ||
* @name: the pathname to open | ||
* @flags: as in open() | ||
* @mode: as in open() | ||
* | ||
* A wrapper for open() function which sets O_CLOEXEC. | ||
* | ||
* On error, -1 is returned. | ||
*/ | ||
int qga_open_cloexec(const char *name, int flags, mode_t mode) | ||
{ | ||
int ret; | ||
|
||
#ifdef O_CLOEXEC | ||
ret = open(name, flags | O_CLOEXEC, mode); | ||
#else | ||
ret = open(name, flags, mode); | ||
if (ret >= 0) { | ||
qemu_set_cloexec(ret); | ||
} | ||
#endif | ||
|
||
return ret; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#ifndef CUTILS_H_ | ||
#define CUTILS_H_ | ||
|
||
#include "qemu/osdep.h" | ||
|
||
int qga_open_cloexec(const char *name, int flags, mode_t mode); | ||
|
||
#endif /* CUTILS_H_ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters