sunos: check that event ports supports fs watching
This commit is contained in:
parent
26806e2b1c
commit
224584c53e
@ -204,10 +204,14 @@ typedef void* uv_lib_t;
|
||||
#include <sys/port.h>
|
||||
#include <port.h>
|
||||
|
||||
#define UV_FS_EVENT_PRIVATE_FIELDS \
|
||||
#ifdef PORT_SOURCE_FILE
|
||||
# define UV_FS_EVENT_PRIVATE_FIELDS \
|
||||
ev_io event_watcher; \
|
||||
uv_fs_event_cb cb; \
|
||||
file_obj_t fo; \
|
||||
file_obj_t fo;
|
||||
#else /* !PORT_SOURCE_FILE */
|
||||
# define UV_FS_EVENT_PRIVATE_FIELDS
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
|
||||
@ -27,6 +27,12 @@
|
||||
|
||||
#include <stddef.h> /* offsetof */
|
||||
|
||||
#undef HAVE_FUTIMES
|
||||
#undef HAVE_PIPE2
|
||||
#undef HAVE_ACCEPT4
|
||||
#undef HAVE_KQUEUE
|
||||
#undef HAVE_PORTS_FS
|
||||
|
||||
#if defined(__linux__)
|
||||
|
||||
#include <linux/version.h>
|
||||
@ -49,6 +55,14 @@
|
||||
|
||||
#endif /* __linux__ */
|
||||
|
||||
#if defined(__sun)
|
||||
# include <sys/port.h>
|
||||
# include <port.h>
|
||||
# ifdef PORT_SOURCE_FILE
|
||||
# define HAVE_PORTS_FS 1
|
||||
# endif
|
||||
#endif /* __sun */
|
||||
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun)
|
||||
# define HAVE_FUTIMES 1
|
||||
#endif
|
||||
|
||||
@ -30,10 +30,13 @@
|
||||
|
||||
#include <sys/loadavg.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/port.h>
|
||||
#include <unistd.h>
|
||||
#include <kstat.h>
|
||||
#include <port.h>
|
||||
|
||||
#if HAVE_PORTS_FS
|
||||
# include <sys/port.h>
|
||||
# include <port.h>
|
||||
#endif
|
||||
|
||||
|
||||
uint64_t uv_hrtime() {
|
||||
@ -85,6 +88,7 @@ void uv_loadavg(double avg[3]) {
|
||||
}
|
||||
|
||||
|
||||
#if HAVE_PORTS_FS
|
||||
static void uv__fs_event_rearm(uv_fs_event_t *handle) {
|
||||
if (port_associate(handle->fd,
|
||||
PORT_SOURCE_FILE,
|
||||
@ -173,3 +177,21 @@ void uv__fs_event_destroy(uv_fs_event_t* handle) {
|
||||
handle->filename = NULL;
|
||||
handle->fo.fo_name = NULL;
|
||||
}
|
||||
|
||||
#else /* !HAVE_PORTS_FS */
|
||||
|
||||
int uv_fs_event_init(uv_loop_t* loop,
|
||||
uv_fs_event_t* handle,
|
||||
const char* filename,
|
||||
uv_fs_event_cb cb,
|
||||
int flags) {
|
||||
uv__set_sys_error(loop, ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void uv__fs_event_destroy(uv_fs_event_t* handle) {
|
||||
assert(0 && "unreachable"); /* should never be called */
|
||||
}
|
||||
|
||||
#endif /* HAVE_PORTS_FS */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user