[Qemu-devel] [PATCH 7/9] Separate qemu_pidfile() into OS specific versions
From: Jes Sorensen jes.soren...@redhat.com Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-posix.c | 21 + os-win32.c | 24 osdep.c| 38 -- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/os-posix.c b/os-posix.c index 612b641..38c29d1 100644 --- a/os-posix.c +++ b/os-posix.c @@ -361,3 +361,24 @@ int qemu_eventfd(int fds[2]) return qemu_pipe(fds); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +int fd; + +fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); +if (fd == -1) { +return -1; +} +if (lockf(fd, F_TLOCK, 0) == -1) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +if (write(fd, buffer, len) != len) { +return -1; +} + +return 0; +} diff --git a/os-win32.c b/os-win32.c index 3c6f50f..566d5e9 100644 --- a/os-win32.c +++ b/os-win32.c @@ -240,3 +240,27 @@ void os_pidfile_error(void) { fprintf(stderr, Could not acquire pid file: %s\n, strerror(errno)); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +HANDLE file; +OVERLAPPED overlap; +BOOL ret; +memset(overlap, 0, sizeof(overlap)); + +file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + +if (file == INVALID_HANDLE_VALUE) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, + overlap, NULL); +if (ret == 0) { +return -1; +} +return 0; +} diff --git a/osdep.c b/osdep.c index b1664ac..0d48561 100644 --- a/osdep.c +++ b/osdep.c @@ -73,44 +73,6 @@ int qemu_madvise(void *addr, size_t len, int advice) #endif } -int qemu_create_pidfile(const char *filename) -{ -char buffer[128]; -int len; -#ifndef _WIN32 -int fd; - -fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); -if (fd == -1) -return -1; - -if (lockf(fd, F_TLOCK, 0) == -1) -return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -if (write(fd, buffer, len) != len) -return -1; -#else -HANDLE file; -OVERLAPPED overlap; -BOOL ret; -memset(overlap, 0, sizeof(overlap)); - -file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - -if (file == INVALID_HANDLE_VALUE) - return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, - overlap, NULL); -if (ret == 0) - return -1; -#endif -return 0; -} - /* * Opens a file with FD_CLOEXEC set -- 1.7.2.3
[Qemu-devel] [PATCH 7/9] Separate qemu_pidfile() into OS specific versions
From: Jes Sorensen jes.soren...@redhat.com Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-posix.c | 21 + os-win32.c | 24 osdep.c| 38 -- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/os-posix.c b/os-posix.c index 612b641..38c29d1 100644 --- a/os-posix.c +++ b/os-posix.c @@ -361,3 +361,24 @@ int qemu_eventfd(int fds[2]) return qemu_pipe(fds); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +int fd; + +fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); +if (fd == -1) { +return -1; +} +if (lockf(fd, F_TLOCK, 0) == -1) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +if (write(fd, buffer, len) != len) { +return -1; +} + +return 0; +} diff --git a/os-win32.c b/os-win32.c index 3c6f50f..566d5e9 100644 --- a/os-win32.c +++ b/os-win32.c @@ -240,3 +240,27 @@ void os_pidfile_error(void) { fprintf(stderr, Could not acquire pid file: %s\n, strerror(errno)); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +HANDLE file; +OVERLAPPED overlap; +BOOL ret; +memset(overlap, 0, sizeof(overlap)); + +file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + +if (file == INVALID_HANDLE_VALUE) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, + overlap, NULL); +if (ret == 0) { +return -1; +} +return 0; +} diff --git a/osdep.c b/osdep.c index b1664ac..0d48561 100644 --- a/osdep.c +++ b/osdep.c @@ -73,44 +73,6 @@ int qemu_madvise(void *addr, size_t len, int advice) #endif } -int qemu_create_pidfile(const char *filename) -{ -char buffer[128]; -int len; -#ifndef _WIN32 -int fd; - -fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); -if (fd == -1) -return -1; - -if (lockf(fd, F_TLOCK, 0) == -1) -return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -if (write(fd, buffer, len) != len) -return -1; -#else -HANDLE file; -OVERLAPPED overlap; -BOOL ret; -memset(overlap, 0, sizeof(overlap)); - -file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - -if (file == INVALID_HANDLE_VALUE) - return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, - overlap, NULL); -if (ret == 0) - return -1; -#endif -return 0; -} - /* * Opens a file with FD_CLOEXEC set -- 1.7.2.3
[Qemu-devel] [PATCH 7/9] Separate qemu_pidfile() into OS specific versions
From: Jes Sorensen jes.soren...@redhat.com Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-posix.c | 21 + os-win32.c | 24 osdep.c| 38 -- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/os-posix.c b/os-posix.c index 612b641..38c29d1 100644 --- a/os-posix.c +++ b/os-posix.c @@ -361,3 +361,24 @@ int qemu_eventfd(int fds[2]) return qemu_pipe(fds); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +int fd; + +fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); +if (fd == -1) { +return -1; +} +if (lockf(fd, F_TLOCK, 0) == -1) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +if (write(fd, buffer, len) != len) { +return -1; +} + +return 0; +} diff --git a/os-win32.c b/os-win32.c index 3c6f50f..566d5e9 100644 --- a/os-win32.c +++ b/os-win32.c @@ -240,3 +240,27 @@ void os_pidfile_error(void) { fprintf(stderr, Could not acquire pid file: %s\n, strerror(errno)); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +HANDLE file; +OVERLAPPED overlap; +BOOL ret; +memset(overlap, 0, sizeof(overlap)); + +file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + +if (file == INVALID_HANDLE_VALUE) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, + overlap, NULL); +if (ret == 0) { +return -1; +} +return 0; +} diff --git a/osdep.c b/osdep.c index b1664ac..0d48561 100644 --- a/osdep.c +++ b/osdep.c @@ -73,44 +73,6 @@ int qemu_madvise(void *addr, size_t len, int advice) #endif } -int qemu_create_pidfile(const char *filename) -{ -char buffer[128]; -int len; -#ifndef _WIN32 -int fd; - -fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); -if (fd == -1) -return -1; - -if (lockf(fd, F_TLOCK, 0) == -1) -return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -if (write(fd, buffer, len) != len) -return -1; -#else -HANDLE file; -OVERLAPPED overlap; -BOOL ret; -memset(overlap, 0, sizeof(overlap)); - -file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - -if (file == INVALID_HANDLE_VALUE) - return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, - overlap, NULL); -if (ret == 0) - return -1; -#endif -return 0; -} - /* * Opens a file with FD_CLOEXEC set -- 1.7.2.3
[Qemu-devel] [PATCH 7/9] Separate qemu_pidfile() into OS specific versions
From: Jes Sorensen jes.soren...@redhat.com Signed-off-by: Jes Sorensen jes.soren...@redhat.com --- os-posix.c | 21 + os-win32.c | 24 osdep.c| 38 -- 3 files changed, 45 insertions(+), 38 deletions(-) diff --git a/os-posix.c b/os-posix.c index 612b641..38c29d1 100644 --- a/os-posix.c +++ b/os-posix.c @@ -361,3 +361,24 @@ int qemu_eventfd(int fds[2]) return qemu_pipe(fds); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +int fd; + +fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); +if (fd == -1) { +return -1; +} +if (lockf(fd, F_TLOCK, 0) == -1) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +if (write(fd, buffer, len) != len) { +return -1; +} + +return 0; +} diff --git a/os-win32.c b/os-win32.c index 3c6f50f..566d5e9 100644 --- a/os-win32.c +++ b/os-win32.c @@ -240,3 +240,27 @@ void os_pidfile_error(void) { fprintf(stderr, Could not acquire pid file: %s\n, strerror(errno)); } + +int qemu_create_pidfile(const char *filename) +{ +char buffer[128]; +int len; +HANDLE file; +OVERLAPPED overlap; +BOOL ret; +memset(overlap, 0, sizeof(overlap)); + +file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, + OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); + +if (file == INVALID_HANDLE_VALUE) { +return -1; +} +len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); +ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, + overlap, NULL); +if (ret == 0) { +return -1; +} +return 0; +} diff --git a/osdep.c b/osdep.c index 4b6b246..702c9d9 100644 --- a/osdep.c +++ b/osdep.c @@ -88,44 +88,6 @@ int qemu_madvise(void *addr, size_t len, int advice) #endif } -int qemu_create_pidfile(const char *filename) -{ -char buffer[128]; -int len; -#ifndef _WIN32 -int fd; - -fd = qemu_open(filename, O_RDWR | O_CREAT, 0600); -if (fd == -1) -return -1; - -if (lockf(fd, F_TLOCK, 0) == -1) -return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -if (write(fd, buffer, len) != len) -return -1; -#else -HANDLE file; -OVERLAPPED overlap; -BOOL ret; -memset(overlap, 0, sizeof(overlap)); - -file = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_READ, NULL, - OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - -if (file == INVALID_HANDLE_VALUE) - return -1; - -len = snprintf(buffer, sizeof(buffer), %ld\n, (long)getpid()); -ret = WriteFileEx(file, (LPCVOID)buffer, (DWORD)len, - overlap, NULL); -if (ret == 0) - return -1; -#endif -return 0; -} - /* * Opens a file with FD_CLOEXEC set -- 1.7.2.3