From 91a57a2cf40cfb7b0e58aa12042087241d013a83 Mon Sep 17 00:00:00 2001 From: midipix Date: Jul 06 2020 06:00:14 +0000 Subject: struct toks_service_info: added the .pending member (number of waiters). --- diff --git a/include/toksvc/toksvc.h b/include/toksvc/toksvc.h index f22934b..a4dcf63 100644 --- a/include/toksvc/toksvc.h +++ b/include/toksvc/toksvc.h @@ -166,6 +166,7 @@ struct toks_service_info { int32_t csyspid; int32_t allocated; int32_t available; + int32_t pending; int32_t tused; int32_t tfree; int32_t loglevel; diff --git a/src/client/toks_client_query.c b/src/client/toks_client_query.c index 5257226..7234d8a 100644 --- a/src/client/toks_client_query.c +++ b/src/client/toks_client_query.c @@ -60,13 +60,14 @@ int32_t toks_client_query_service( svcinfo->ctrlpid = msg.svcdata.data[2]; svcinfo->csyspid = msg.svcdata.data[3]; - /* allocated, available */ + /* allocated, available, pending */ svcinfo->allocated = msg.svcdata.data[4]; svcinfo->available = msg.svcdata.data[5]; + svcinfo->pending = msg.svcdata.data[6]; /* used, free */ - svcinfo->tused = msg.svcdata.data[6]; - svcinfo->tfree = msg.svcdata.data[7]; + svcinfo->tused = msg.svcdata.data[7]; + svcinfo->tfree = msg.svcdata.data[8]; return NT_STATUS_SUCCESS; } diff --git a/src/daemon/toks_daemon_ioctl.c b/src/daemon/toks_daemon_ioctl.c index 91ec0d2..c1e7c4b 100644 --- a/src/daemon/toks_daemon_ioctl.c +++ b/src/daemon/toks_daemon_ioctl.c @@ -94,13 +94,14 @@ static int32_t toks_daemon_ioctl_get_service_info(struct toks_daemon_ctx * dctx) msg->svcdata.data[2] = dctx->ctrlpid; msg->svcdata.data[3] = dctx->csyspid; - /* allocated, available */ + /* allocated, available, pending */ msg->svcdata.data[4] = toks_get_driver_atokens(dctx->driver_ctx); msg->svcdata.data[5] = toks_get_driver_ntokens(dctx->driver_ctx); + msg->svcdata.data[6] = toks_get_driver_nwaiters(dctx->driver_ctx); /* used, free */ - msg->svcdata.data[6] = dctx->utokens; - msg->svcdata.data[7] = dctx->ftokens; + msg->svcdata.data[7] = dctx->utokens; + msg->svcdata.data[8] = dctx->ftokens; return NT_STATUS_SUCCESS; } diff --git a/src/driver/toks_amain.c b/src/driver/toks_amain.c index 4022149..5f261fb 100644 --- a/src/driver/toks_amain.c +++ b/src/driver/toks_amain.c @@ -69,6 +69,7 @@ static ssize_t toks_output_service_info(const struct toks_service_info * svcinfo "toks_csyspid:%d\n" "toks_allocated:%d\n" "toks_available:%d\n" + "toks_pending:%d\n" "toks_tused:%d\n" "toks_tfree:%d\n" "toks_loglevel:%d\n", @@ -79,6 +80,7 @@ static ssize_t toks_output_service_info(const struct toks_service_info * svcinfo svcinfo->csyspid, svcinfo->allocated, svcinfo->available, + svcinfo->pending, svcinfo->tused, svcinfo->tfree, svcinfo->loglevel); diff --git a/src/driver/toks_server_snapshot.c b/src/driver/toks_server_snapshot.c index 2deab16..2f25b20 100644 --- a/src/driver/toks_server_snapshot.c +++ b/src/driver/toks_server_snapshot.c @@ -85,13 +85,14 @@ int32_t toks_get_server_snapshot( svcinfo->ctrlpid = msg.svcdata.data[2]; svcinfo->csyspid = msg.svcdata.data[3]; - /* allocated, available */ + /* allocated, available, pending */ svcinfo->allocated = msg.svcdata.data[4]; svcinfo->available = msg.svcdata.data[5]; + svcinfo->pending = msg.svcdata.data[6]; /* used, free */ - svcinfo->tused = msg.svcdata.data[6]; - svcinfo->tfree = msg.svcdata.data[7]; + svcinfo->tused = msg.svcdata.data[7]; + svcinfo->tfree = msg.svcdata.data[8]; /* sd */ access_owner = NT_GENERIC_READ;