git: 67d6141e1581 - stable/14 - bhyve: Some fwctl simplifications.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 24 Oct 2023 19:00:19 UTC
The branch stable/14 has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=67d6141e1581897d0fd1e1ecf35a99d088b10f97
commit 67d6141e1581897d0fd1e1ecf35a99d088b10f97
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-10-13 19:26:22 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2023-10-24 18:43:45 +0000
bhyve: Some fwctl simplifications.
- Collapse IDENT_SEND/IDENT_WAIT states down to a single state.
- Remove unused 'len' argument to op_data callback. The value passed
in (total amount of remaining data to receive) didn't seem very useful
and no op_data implementations used it.
Reviewed by: corvink, markj
Differential Revision: https://reviews.freebsd.org/D41286
(cherry picked from commit f0852344e7abf4d74508185e67a1b98d6cdbd026)
---
usr.sbin/bhyve/amd64/fwctl.c | 21 +++++++++------------
1 file changed, 9 insertions(+), 12 deletions(-)
diff --git a/usr.sbin/bhyve/amd64/fwctl.c b/usr.sbin/bhyve/amd64/fwctl.c
index 01b16c38f3a7..5e930cdb2051 100644
--- a/usr.sbin/bhyve/amd64/fwctl.c
+++ b/usr.sbin/bhyve/amd64/fwctl.c
@@ -63,8 +63,7 @@
* Back-end state-machine
*/
static enum state {
- IDENT_WAIT,
- IDENT_SEND,
+ IDENT,
REQ,
RESP
} be_state;
@@ -75,7 +74,7 @@ static u_int ident_idx;
struct op_info {
int op;
int (*op_start)(uint32_t len);
- void (*op_data)(uint32_t data, uint32_t len);
+ void (*op_data)(uint32_t data);
int (*op_result)(struct iovec **data);
void (*op_done)(struct iovec *data);
};
@@ -120,7 +119,7 @@ errop_start(uint32_t len __unused)
}
static void
-errop_data(uint32_t data __unused, uint32_t len __unused)
+errop_data(uint32_t data __unused)
{
/* ignore */
@@ -192,7 +191,7 @@ fget_start(uint32_t len)
}
static void
-fget_data(uint32_t data, uint32_t len __unused)
+fget_data(uint32_t data)
{
assert(fget_cnt + sizeof(uint32_t) <= sizeof(fget_str));
@@ -347,7 +346,7 @@ fwctl_request_data(uint32_t value)
else
rinfo.req_size -= sizeof(uint32_t);
- (*rinfo.req_op->op_data)(value, rinfo.req_size);
+ (*rinfo.req_op->op_data)(value);
if (rinfo.req_size < sizeof(uint32_t)) {
fwctl_request_done();
@@ -360,7 +359,6 @@ fwctl_request_data(uint32_t value)
static int
fwctl_request(uint32_t value)
{
-
int ret;
ret = 0;
@@ -451,12 +449,11 @@ fwctl_reset(void)
/* Discard partially-received request. */
memset(&rinfo, 0, sizeof(rinfo));
break;
- case IDENT_WAIT:
- case IDENT_SEND:
+ case IDENT:
break;
}
- be_state = IDENT_SEND;
+ be_state = IDENT;
ident_idx = 0;
}
@@ -472,7 +469,7 @@ fwctl_inb(void)
retval = 0xff;
switch (be_state) {
- case IDENT_SEND:
+ case IDENT:
retval = sig[ident_idx++];
if (ident_idx >= sizeof(sig))
be_state = REQ;
@@ -580,5 +577,5 @@ fwctl_init(void)
ops[OP_GET_LEN] = &fgetlen_info;
ops[OP_GET] = &fgetval_info;
- be_state = IDENT_WAIT;
+ be_state = IDENT;
}