From nobody Wed Apr 09 21:17:52 2025 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 4ZXwlN6xQVz5sPGk; Wed, 09 Apr 2025 21:17:52 +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 "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZXwlN4JTRz3t9R; Wed, 09 Apr 2025 21:17:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744233472; 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=GxJd2HsZKGci0KFG20A7v1VgzIK2ZyJntKUJDTi3WlE=; b=dCRv8tWNefejMkiE3WmcJpKOt5AVMVRX3tK8BNIZtZ+xjxLUDGGxMXF9oKoZ9umkic01jM qLrkVCvAKneVpMXazzVvoPu6NTLBptj1RNERK0efvkyl707FEPeE5FnDDBGOyvgaIwVujg oEjVPvnJbMBgTzQthFRnBf054Ay/6LuMOqxJguEOcKbgyHV+Yt8z5rED8X8Khfcr2RJe43 sAKuFitnk8A4+4y7K3TDUz3plifIKgFN0nIJ85kI1XMBvj5zchUdoVYqFUgFgObffiZDUa 0uKeblwjF/ptzBysuHanVLKybqWqoJGHVMj977pB0Vd2QTaKC4OxEazRwB1YjA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1744233472; a=rsa-sha256; cv=none; b=lOQRnZAP8uDsuEsgOj+7hfmkNQe3AZfBxpgx19gxyFD8Ffb2KxWRhT3jxyVZF9o9Q6v+zH TGyPsH1B8+WvdOnx73K/UdczybEnjYZGV2MPPuxjM8r45y5pE3eAfdPYq8aSc+yCQhzfO+ bd1X0YQ/2vcpYr9b6GuwTAbgxp25DrvLdiuiij9Xgkn+GK66rPNoVgSuZAp70C3ugAaylB BCORDlFYLPebnczoylqrw29EOvCoq/PkFWGQ+Ny+WZpkhZSZOHPAmHfNzbKQ8fpYcK0fVT mZajYPYjJ9iGDm5XeX5qyJv2I3Bnd4Osy8P9cWHLaDdoeoKkdvwVbrY64+n/0g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1744233472; 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=GxJd2HsZKGci0KFG20A7v1VgzIK2ZyJntKUJDTi3WlE=; b=Iulei9Vp6oxjzRu7R+tMrfTXQxWOoR01LLEjlR+Rm49jLYie52hFGEytOK09lLCRXcmTtB ACAAs1FwJQUtx4Zof/jArvCHZ349zgCntdJsCGykwknlQya2EA6cXJSa3xkMwUmZ+4pxss s5olfPMzs8jkzsj8P4HW0sOewy2hYwhmPAerny0SNbHXlvkXcdt+HjA0iXIVoEg6yO5MWh vBWHlK7QY8QjSpJf3J/AJwJiQY5cdAWq7a3ErlFHwNpN4/V4kqS+rhXI5deRDlx0XJ+Rzc dNoOYPzohYClIYm745iDGvJshZc7qFYqlT20R8LUgoBMoHVXgd6rIeUkrirjxg== 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 4ZXwlN3vYQzZkW; Wed, 09 Apr 2025 21:17:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 539LHq1w077958; Wed, 9 Apr 2025 21:17:52 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 539LHqa7077955; Wed, 9 Apr 2025 21:17:52 GMT (envelope-from git) Date: Wed, 9 Apr 2025 21:17:52 GMT Message-Id: <202504092117.539LHqa7077955@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 757dc8ab1245 - main - kboot: Move seg code into libkboot 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: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 757dc8ab1245118bd3861ee2853b42c3476c1ed4 Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=757dc8ab1245118bd3861ee2853b42c3476c1ed4 commit 757dc8ab1245118bd3861ee2853b42c3476c1ed4 Author: Warner Losh AuthorDate: 2025-04-09 21:16:55 +0000 Commit: Warner Losh CommitDate: 2025-04-09 21:16:55 +0000 kboot: Move seg code into libkboot This code is really generic segment processing and should live here. It also interfaces primarily with Linux APIs, so it's also appropriate for this if we have a version of that runs as a FreeBSD binary using FreeBSD system calls and APIs, though that's in the future somehow... Sponsored by: Netflix --- stand/kboot/include/seg.h | 24 ++++++++++++++++++++++++ stand/kboot/kboot/Makefile | 1 - stand/kboot/kboot/kboot.h | 20 ++------------------ stand/kboot/libkboot/Makefile | 1 + stand/kboot/{kboot => libkboot}/seg.c | 2 +- 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/stand/kboot/include/seg.h b/stand/kboot/include/seg.h new file mode 100644 index 000000000000..5ca30670bdd1 --- /dev/null +++ b/stand/kboot/include/seg.h @@ -0,0 +1,24 @@ +/*- + * Copyright (c) 2024, Netflix, Inc. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +struct memory_segments +{ + uint64_t start; + uint64_t end; + uint64_t type; /* MD defined */ +}; + +#define SYSTEM_RAM 1 +void init_avail(void); +void need_avail(int n); +void add_avail(uint64_t start, uint64_t end, uint64_t type); +void remove_avail(uint64_t start, uint64_t end, uint64_t type); +uint64_t first_avail(uint64_t align, uint64_t min_size, uint64_t type); +void print_avail(void); +bool populate_avail_from_iomem(void); +uint64_t space_avail(uint64_t start); diff --git a/stand/kboot/kboot/Makefile b/stand/kboot/kboot/Makefile index 064d43701ebd..0f6bb994711d 100644 --- a/stand/kboot/kboot/Makefile +++ b/stand/kboot/kboot/Makefile @@ -25,7 +25,6 @@ SRCS= \ hostfs.c \ init.c \ main.c \ - seg.c \ util.c \ vers.c diff --git a/stand/kboot/kboot/kboot.h b/stand/kboot/kboot/kboot.h index 49e5dea25b12..2a6e98ae5513 100644 --- a/stand/kboot/kboot/kboot.h +++ b/stand/kboot/kboot/kboot.h @@ -9,13 +9,6 @@ #define DEVT_HOSTDISK 1234 -struct memory_segments -{ - uint64_t start; - uint64_t end; - uint64_t type; /* MD defined */ -}; - bool enumerate_memory_arch(void); struct preloaded_file; void bi_loadsmap(struct preloaded_file *kfp); @@ -40,19 +33,10 @@ const char *hostdisk_gen_probe(void); void hostdisk_zfs_probe(void); bool hostdisk_zfs_find_default(void); -/* seg.c */ -#define SYSTEM_RAM 1 -void init_avail(void); -void need_avail(int n); -void add_avail(uint64_t start, uint64_t end, uint64_t type); -void remove_avail(uint64_t start, uint64_t end, uint64_t type); -uint64_t first_avail(uint64_t align, uint64_t min_size, uint64_t type); -void print_avail(void); -bool populate_avail_from_iomem(void); -uint64_t space_avail(uint64_t start); - /* util.c */ bool file2str(const char *fn, char *buffer, size_t buflen); bool file2u64(const char *fn, uint64_t *val); +#include "seg.h" + #endif /* KBOOT_H */ diff --git a/stand/kboot/libkboot/Makefile b/stand/kboot/libkboot/Makefile index 7cdb3db51939..7acec951107a 100644 --- a/stand/kboot/libkboot/Makefile +++ b/stand/kboot/libkboot/Makefile @@ -9,6 +9,7 @@ CFLAGS+=-I${.CURDIR} -I${.CURDIR}/arch/${MACHINE_ARCH} SRCS= crt1.c SRCS+= host_syscall.S SRCS+= host_syscalls.c +SRCS+= seg.c SRCS+= termios.c .sinclude "${.CURDIR}/arch/${MACHINE_ARCH}/Makefile.inc" diff --git a/stand/kboot/kboot/seg.c b/stand/kboot/libkboot/seg.c similarity index 99% rename from stand/kboot/kboot/seg.c rename to stand/kboot/libkboot/seg.c index 558cac501224..395c593bcabf 100644 --- a/stand/kboot/kboot/seg.c +++ b/stand/kboot/libkboot/seg.c @@ -5,7 +5,7 @@ */ #include "stand.h" -#include "kboot.h" +#include "seg.h" #include