From nobody Tue Nov 29 13:58:01 2022 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4NM3nj2yd8z4htdq; Tue, 29 Nov 2022 13:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4NM3nj2W53z4CdT; Tue, 29 Nov 2022 13:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1669730281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qG+cZi7MPcfiymRxAgboufDzscpl5V5eMaPVz7L7aOE=; b=YTCS0hE3Jm7I+jH5/Dkr4PJWoCvUhJxoWHb6S3KRPry410W/JLPwmKLhVmmMl2xadvHKd3 we3LMJhnOPugEJUDGMaOcEO6Kps5cqKP0NAizpsfYy/gU+wgL5D/o9H2hNR+z4yxuIj41O U9HVQWeWNpWeRBHA6fbSzdkZUiijL3pWdoo17YYej7HGYJloNAeQm4D8QpDtIDVavjpVjl 2fLkKYh7gQ7bU74FDqxBsxbaViBKkdSv4woivYcx1YAWYCRcGUmtgN3uVmlQ6nn5eyRlpi p6/sy3sU+jF6f3lTXRqbSUShpFOsJQ8I7/prj2K/WznhDblv3K0XK5tL3T7RtQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1669730281; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qG+cZi7MPcfiymRxAgboufDzscpl5V5eMaPVz7L7aOE=; b=hrlQs5gfF30hq7S4WiC4YEkzwcir4XyV9FTUhO0xOhalNahzItNxzjGOPF4kmRyzRPQeFO zTdMSknVD8/CNxLz6JBzORLZch7zv3RWAiofVZSWJ8InApe9X6OofSw4mTNbmzrwhssTgY yl8Pd+lCkhBE6agOaBH/tJzjQ8K2buGmdG667uJH9/zFwEBHJcA+wp+/gv8IzlWNpraCpP iShZ05WVjojbaGLyyHfquK7CN9D5u66WXfAXxbfr7UWMgNPGUTOo48ZSldCYR+DmHhLCE6 rjPUfMr1ZU2SvF8DBUMf8ZeDrb4cSN242KGrWE/fG9vD269NJriFjBqEtel7ww== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1669730281; a=rsa-sha256; cv=none; b=EcS8ewjUhMjkcxCnKquP6m2Qz1lXdbIjDpFJCsqOu9TasaXFHDe+slMNeL9zbAAOaVa5rs 7qAt/z9izk4qDtjTDJJEX1940gz0u+pkcr+F2so9nzqXkzuIMn2bPzBki3A0gG1FypCwo6 HiKyWIjCa/rHVIBZIhrPwuK/sFOFfYfDuGG4u4JKJPQ41bo1ADzL3/D6LEgcKKbASIOvc/ R0lRCkhnDMuEAOZwH/hWGokkQTuB4TzeE5svpuIjLNfnPYT/VyXL34sQAkIGOZIf9U5uEn s9WqbCKX3Tf7tP1OWil41xYSVbWs69ViNv1PK780cM+X1vh8DjDyReYYE3v5IQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4NM3nj1cj9zKdl; Tue, 29 Nov 2022 13:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2ATDw1jk029410; Tue, 29 Nov 2022 13:58:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2ATDw1VJ029409; Tue, 29 Nov 2022 13:58:01 GMT (envelope-from git) Date: Tue, 29 Nov 2022 13:58:01 GMT Message-Id: <202211291358.2ATDw1VJ029409@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: =?utf-8?Q?Corvin=20K=C3=B6hne?= Subject: git: c66bd4a5285c - stable/13 - bhyve: add basl support for int values List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: corvink X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c66bd4a5285c4c2d64977d4e4c94079e0f8a4745 Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by corvink: URL: https://cgit.FreeBSD.org/src/commit/?id=c66bd4a5285c4c2d64977d4e4c94079e0f8a4745 commit c66bd4a5285c4c2d64977d4e4c94079e0f8a4745 Author: Corvin Köhne AuthorDate: 2022-11-04 12:48:13 +0000 Commit: Corvin Köhne CommitDate: 2022-11-29 13:53:50 +0000 bhyve: add basl support for int values In upcoming commits, bhyve will build some ACPI tables by it's own. Therefore, it should be capable of appending int values to ACPI tables. Reviewed by: jhb, markj (older version) Approved by: manu (mentor) MFC after: 2 weeks Sponsored by: Beckhoff Automation GmbH & Co. KG Differential Revision: https://reviews.freebsd.org/D36987 (cherry picked from commit e22f5ce2bf4c1a53a1551ae855f42d582eeda20e) --- usr.sbin/bhyve/basl.c | 23 +++++++++++++++++++++++ usr.sbin/bhyve/basl.h | 1 + 2 files changed, 24 insertions(+) diff --git a/usr.sbin/bhyve/basl.c b/usr.sbin/bhyve/basl.c index 655c6e509dc4..b3a561f51571 100644 --- a/usr.sbin/bhyve/basl.c +++ b/usr.sbin/bhyve/basl.c @@ -33,6 +33,17 @@ struct basl_table { static STAILQ_HEAD(basl_table_list, basl_table) basl_tables = STAILQ_HEAD_INITIALIZER( basl_tables); +static __inline void +basl_le_enc(void *pp, uint64_t val, size_t len) +{ + char buf[8]; + + assert(len <= 8); + + le64enc(buf, val); + memcpy(pp, buf, len); +} + static int basl_dump_table(const struct basl_table *const table, const bool mem) { @@ -145,6 +156,18 @@ basl_table_append_bytes(struct basl_table *const table, const void *const bytes, return (0); } +int +basl_table_append_int(struct basl_table *const table, const uint64_t val, + const uint8_t size) +{ + char buf[8]; + + assert(size <= sizeof(val)); + + basl_le_enc(buf, val, size); + return (basl_table_append_bytes(table, buf, size)); +} + int basl_table_create(struct basl_table **const table, struct vmctx *ctx, const uint8_t *const name, const uint32_t alignment, diff --git a/usr.sbin/bhyve/basl.h b/usr.sbin/bhyve/basl.h index f6809a473ff4..3ce33dea63e0 100644 --- a/usr.sbin/bhyve/basl.h +++ b/usr.sbin/bhyve/basl.h @@ -32,5 +32,6 @@ int basl_finish(void); int basl_init(void); int basl_table_append_bytes(struct basl_table *table, const void *bytes, uint32_t len); +int basl_table_append_int(struct basl_table *table, uint64_t val, uint8_t size); int basl_table_create(struct basl_table **table, struct vmctx *ctx, const uint8_t *name, uint32_t alignment, uint32_t off);