port: rename 'iocp' to 'iocp_handle' where appropriate
This commit is contained in:
parent
cf4530307f
commit
20af8d02c7
@ -16,7 +16,8 @@ static UNICODE_STRING afd__helper_name =
|
|||||||
static OBJECT_ATTRIBUTES afd__helper_attributes =
|
static OBJECT_ATTRIBUTES afd__helper_attributes =
|
||||||
RTL_CONSTANT_OBJECT_ATTRIBUTES(&afd__helper_name, 0);
|
RTL_CONSTANT_OBJECT_ATTRIBUTES(&afd__helper_name, 0);
|
||||||
|
|
||||||
int afd_create_helper_handle(HANDLE iocp, HANDLE* afd_helper_handle_out) {
|
int afd_create_helper_handle(HANDLE iocp_handle,
|
||||||
|
HANDLE* afd_helper_handle_out) {
|
||||||
HANDLE afd_helper_handle;
|
HANDLE afd_helper_handle;
|
||||||
IO_STATUS_BLOCK iosb;
|
IO_STATUS_BLOCK iosb;
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
@ -38,7 +39,7 @@ int afd_create_helper_handle(HANDLE iocp, HANDLE* afd_helper_handle_out) {
|
|||||||
if (status != STATUS_SUCCESS)
|
if (status != STATUS_SUCCESS)
|
||||||
return_set_error(-1, RtlNtStatusToDosError(status));
|
return_set_error(-1, RtlNtStatusToDosError(status));
|
||||||
|
|
||||||
if (CreateIoCompletionPort(afd_helper_handle, iocp, 0, 0) == NULL)
|
if (CreateIoCompletionPort(afd_helper_handle, iocp_handle, 0, 0) == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!SetFileCompletionNotificationModes(afd_helper_handle,
|
if (!SetFileCompletionNotificationModes(afd_helper_handle,
|
||||||
|
|||||||
@ -30,7 +30,7 @@ typedef struct _AFD_POLL_INFO {
|
|||||||
AFD_POLL_HANDLE_INFO Handles[1];
|
AFD_POLL_HANDLE_INFO Handles[1];
|
||||||
} AFD_POLL_INFO, *PAFD_POLL_INFO;
|
} AFD_POLL_INFO, *PAFD_POLL_INFO;
|
||||||
|
|
||||||
WEPOLL_INTERNAL int afd_create_helper_handle(HANDLE iocp,
|
WEPOLL_INTERNAL int afd_create_helper_handle(HANDLE iocp_handle,
|
||||||
HANDLE* afd_helper_handle_out);
|
HANDLE* afd_helper_handle_out);
|
||||||
|
|
||||||
WEPOLL_INTERNAL int afd_poll(HANDLE afd_helper_handle,
|
WEPOLL_INTERNAL int afd_poll(HANDLE afd_helper_handle,
|
||||||
|
|||||||
@ -19,7 +19,7 @@ typedef struct poll_group {
|
|||||||
} poll_group_t;
|
} poll_group_t;
|
||||||
|
|
||||||
static poll_group_t* poll_group__new(port_state_t* port_state) {
|
static poll_group_t* poll_group__new(port_state_t* port_state) {
|
||||||
HANDLE iocp = port_get_iocp(port_state);
|
HANDLE iocp_handle = port_get_iocp_handle(port_state);
|
||||||
queue_t* poll_group_queue = port_get_poll_group_queue(port_state);
|
queue_t* poll_group_queue = port_get_poll_group_queue(port_state);
|
||||||
|
|
||||||
poll_group_t* poll_group = malloc(sizeof *poll_group);
|
poll_group_t* poll_group = malloc(sizeof *poll_group);
|
||||||
@ -31,7 +31,8 @@ static poll_group_t* poll_group__new(port_state_t* port_state) {
|
|||||||
queue_node_init(&poll_group->queue_node);
|
queue_node_init(&poll_group->queue_node);
|
||||||
poll_group->port_state = port_state;
|
poll_group->port_state = port_state;
|
||||||
|
|
||||||
if (afd_create_helper_handle(iocp, &poll_group->afd_helper_handle) < 0) {
|
if (afd_create_helper_handle(iocp_handle, &poll_group->afd_helper_handle) <
|
||||||
|
0) {
|
||||||
free(poll_group);
|
free(poll_group);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|||||||
37
src/port.c
37
src/port.c
@ -17,7 +17,7 @@
|
|||||||
#define PORT__MAX_ON_STACK_COMPLETIONS 256
|
#define PORT__MAX_ON_STACK_COMPLETIONS 256
|
||||||
|
|
||||||
typedef struct port_state {
|
typedef struct port_state {
|
||||||
HANDLE iocp;
|
HANDLE iocp_handle;
|
||||||
tree_t sock_tree;
|
tree_t sock_tree;
|
||||||
queue_t sock_update_queue;
|
queue_t sock_update_queue;
|
||||||
queue_t sock_deleted_queue;
|
queue_t sock_deleted_queue;
|
||||||
@ -41,28 +41,29 @@ static void port__free(port_state_t* port) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static HANDLE port__create_iocp(void) {
|
static HANDLE port__create_iocp(void) {
|
||||||
HANDLE iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0);
|
HANDLE iocp_handle =
|
||||||
if (iocp == NULL)
|
CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0, 0);
|
||||||
|
if (iocp_handle == NULL)
|
||||||
return_map_error(NULL);
|
return_map_error(NULL);
|
||||||
|
|
||||||
return iocp;
|
return iocp_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
port_state_t* port_new(HANDLE* iocp_out) {
|
port_state_t* port_new(HANDLE* iocp_handle_out) {
|
||||||
port_state_t* port_state;
|
port_state_t* port_state;
|
||||||
HANDLE iocp;
|
HANDLE iocp_handle;
|
||||||
|
|
||||||
port_state = port__alloc();
|
port_state = port__alloc();
|
||||||
if (port_state == NULL)
|
if (port_state == NULL)
|
||||||
goto err1;
|
goto err1;
|
||||||
|
|
||||||
iocp = port__create_iocp();
|
iocp_handle = port__create_iocp();
|
||||||
if (iocp == NULL)
|
if (iocp_handle == NULL)
|
||||||
goto err2;
|
goto err2;
|
||||||
|
|
||||||
memset(port_state, 0, sizeof *port_state);
|
memset(port_state, 0, sizeof *port_state);
|
||||||
|
|
||||||
port_state->iocp = iocp;
|
port_state->iocp_handle = iocp_handle;
|
||||||
tree_init(&port_state->sock_tree);
|
tree_init(&port_state->sock_tree);
|
||||||
queue_init(&port_state->sock_update_queue);
|
queue_init(&port_state->sock_update_queue);
|
||||||
queue_init(&port_state->sock_deleted_queue);
|
queue_init(&port_state->sock_deleted_queue);
|
||||||
@ -70,7 +71,7 @@ port_state_t* port_new(HANDLE* iocp_out) {
|
|||||||
ts_tree_node_init(&port_state->handle_tree_node);
|
ts_tree_node_init(&port_state->handle_tree_node);
|
||||||
InitializeCriticalSection(&port_state->lock);
|
InitializeCriticalSection(&port_state->lock);
|
||||||
|
|
||||||
*iocp_out = iocp;
|
*iocp_handle_out = iocp_handle;
|
||||||
return port_state;
|
return port_state;
|
||||||
|
|
||||||
err2:
|
err2:
|
||||||
@ -80,10 +81,10 @@ err1:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int port__close_iocp(port_state_t* port_state) {
|
static int port__close_iocp(port_state_t* port_state) {
|
||||||
HANDLE iocp = port_state->iocp;
|
HANDLE iocp_handle = port_state->iocp_handle;
|
||||||
port_state->iocp = NULL;
|
port_state->iocp_handle = NULL;
|
||||||
|
|
||||||
if (!CloseHandle(iocp))
|
if (!CloseHandle(iocp_handle))
|
||||||
return_map_error(-1);
|
return_map_error(-1);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -104,7 +105,7 @@ int port_delete(port_state_t* port_state) {
|
|||||||
queue_node_t* queue_node;
|
queue_node_t* queue_node;
|
||||||
|
|
||||||
/* At this point the IOCP port should have been closed. */
|
/* At this point the IOCP port should have been closed. */
|
||||||
assert(port_state->iocp == NULL);
|
assert(port_state->iocp_handle == NULL);
|
||||||
|
|
||||||
while ((tree_node = tree_root(&port_state->sock_tree)) != NULL) {
|
while ((tree_node = tree_root(&port_state->sock_tree)) != NULL) {
|
||||||
sock_state_t* sock_state = sock_state_from_tree_node(tree_node);
|
sock_state_t* sock_state = sock_state_from_tree_node(tree_node);
|
||||||
@ -184,7 +185,7 @@ static int port__poll(port_state_t* port_state,
|
|||||||
|
|
||||||
LeaveCriticalSection(&port_state->lock);
|
LeaveCriticalSection(&port_state->lock);
|
||||||
|
|
||||||
BOOL r = GetQueuedCompletionStatusEx(port_state->iocp,
|
BOOL r = GetQueuedCompletionStatusEx(port_state->iocp_handle,
|
||||||
iocp_events,
|
iocp_events,
|
||||||
maxevents,
|
maxevents,
|
||||||
&completion_count,
|
&completion_count,
|
||||||
@ -405,9 +406,9 @@ void port_remove_deleted_socket(port_state_t* port_state,
|
|||||||
queue_remove(sock_state_to_queue_node(sock_state));
|
queue_remove(sock_state_to_queue_node(sock_state));
|
||||||
}
|
}
|
||||||
|
|
||||||
HANDLE port_get_iocp(port_state_t* port_state) {
|
HANDLE port_get_iocp_handle(port_state_t* port_state) {
|
||||||
assert(port_state->iocp != NULL);
|
assert(port_state->iocp_handle != NULL);
|
||||||
return port_state->iocp;
|
return port_state->iocp_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
queue_t* port_get_poll_group_queue(port_state_t* port_state) {
|
queue_t* port_get_poll_group_queue(port_state_t* port_state) {
|
||||||
|
|||||||
@ -14,7 +14,7 @@
|
|||||||
typedef struct port_state port_state_t;
|
typedef struct port_state port_state_t;
|
||||||
typedef struct sock_state sock_state_t;
|
typedef struct sock_state sock_state_t;
|
||||||
|
|
||||||
WEPOLL_INTERNAL port_state_t* port_new(HANDLE* iocp_out);
|
WEPOLL_INTERNAL port_state_t* port_new(HANDLE* iocp_handle_out);
|
||||||
WEPOLL_INTERNAL int port_close(port_state_t* port_state);
|
WEPOLL_INTERNAL int port_close(port_state_t* port_state);
|
||||||
WEPOLL_INTERNAL int port_delete(port_state_t* port_state);
|
WEPOLL_INTERNAL int port_delete(port_state_t* port_state);
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ WEPOLL_INTERNAL void port_add_deleted_socket(port_state_t* port_state,
|
|||||||
WEPOLL_INTERNAL void port_remove_deleted_socket(port_state_t* port_state,
|
WEPOLL_INTERNAL void port_remove_deleted_socket(port_state_t* port_state,
|
||||||
sock_state_t* sock_state);
|
sock_state_t* sock_state);
|
||||||
|
|
||||||
WEPOLL_INTERNAL HANDLE port_get_iocp(port_state_t* port_state);
|
WEPOLL_INTERNAL HANDLE port_get_iocp_handle(port_state_t* port_state);
|
||||||
WEPOLL_INTERNAL queue_t* port_get_poll_group_queue(port_state_t* port_state);
|
WEPOLL_INTERNAL queue_t* port_get_poll_group_queue(port_state_t* port_state);
|
||||||
|
|
||||||
WEPOLL_INTERNAL port_state_t* port_state_from_handle_tree_node(
|
WEPOLL_INTERNAL port_state_t* port_state_from_handle_tree_node(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user