Message ID | 20250905131816.3344908-1-sjg@u-boot.org |
---|---|
Headers |
Return-Path: <concept-bounces+u-boot-concept=u-boot.org@u-boot.org> X-Original-To: u-boot-concept@u-boot.org Delivered-To: u-boot-concept@u-boot.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078310; bh=yGZHvLayOP77ZrnugZVWbo+lFyWdeK5JZmfKklonUb4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=i4ku4Iu5B0qNDmF0cs2uE9BrPvrj53o8bwqs49rMtqcSpJf0F5h82D8+mM48MMTZe OGYGiQjLXk6ACfqv0LBe+BfcU56UkA/vYMvlJ5dlikC16eOHkobLc/k4ETPCrYkZ7z QF3TRtzWDoJp584l6JgIzxO4CMHA3UL1PNNuFAE2v0YA3222oBt0UpoHb95U31pFr0 wKvdNRxJwu9iHyGWMqdx1FVLCLirg6v3zbwa8r4d17HdZ/oI8+/STUSNCQ8pUABZJm 4RTjZW6ClAVGneUQeQ1Ba8QhipOKRAqpfFxBsz4Ak9ng0p6DAO3hGzDmtp67mT6UT1 EduswwM+lAvCg== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id E2F246799B for <u-boot-concept@u-boot.org>; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id OKvvHjaosA-2 for <u-boot-concept@u-boot.org>; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078310; bh=yGZHvLayOP77ZrnugZVWbo+lFyWdeK5JZmfKklonUb4=; h=From:To:Date:CC:Subject:List-Id:List-Archive:List-Help:List-Owner: List-Post:List-Subscribe:List-Unsubscribe:From; b=i4ku4Iu5B0qNDmF0cs2uE9BrPvrj53o8bwqs49rMtqcSpJf0F5h82D8+mM48MMTZe OGYGiQjLXk6ACfqv0LBe+BfcU56UkA/vYMvlJ5dlikC16eOHkobLc/k4ETPCrYkZ7z QF3TRtzWDoJp584l6JgIzxO4CMHA3UL1PNNuFAE2v0YA3222oBt0UpoHb95U31pFr0 wKvdNRxJwu9iHyGWMqdx1FVLCLirg6v3zbwa8r4d17HdZ/oI8+/STUSNCQ8pUABZJm 4RTjZW6ClAVGneUQeQ1Ba8QhipOKRAqpfFxBsz4Ak9ng0p6DAO3hGzDmtp67mT6UT1 EduswwM+lAvCg== Received: from mail.u-boot.org (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id CDF5C67989 for <u-boot-concept@u-boot.org>; Fri, 5 Sep 2025 07:18:30 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078307; bh=h6HIeJjvoTEukPK0eNBoxwYve61MDLD9blzece655VU=; h=From:To:Cc:Subject:Date:From; b=pzmHntRbyA6HAG1E/5OI1s+Eml/TWPMH/Ek6EB2S7SsSvtw+zX6Srxk4XMoMrHuxI +s2NdkbwKMMXz1PV0s+7SVwE4lngXrnNnLd6dHlrB+YOJn0vjqzUrE8+3qRNLhniNz w/9tUz74FhFiaR+ieTZ2mLIonLaLN7btEzLChQC9sEFKWydaUcd0VEhexb9FchxNkf fn2NG7mMp9A3jiugHDddhM2OkXvtbz1BoRByNDUAa+sum9DX6T/3JzNRO7T/hl7aP6 zAQ+B0FWZP4m8btOLH9S8AHjksDeUq9ePORrkONTToM6u0dH/Vlv45HuYgAtF8Bf6K 2dxWh8uwee2XQ== Received: from localhost (localhost [127.0.0.1]) by mail.u-boot.org (Postfix) with ESMTP id D150E5FE1B; Fri, 5 Sep 2025 07:18:27 -0600 (MDT) X-Virus-Scanned: Debian amavis at Received: from mail.u-boot.org ([127.0.0.1]) by localhost (mail.u-boot.org [127.0.0.1]) (amavis, port 10026) with ESMTP id Jay8Jf-dIuSd; Fri, 5 Sep 2025 07:18:27 -0600 (MDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=u-boot.org; s=default; t=1757078303; bh=9baAZ1y6vEsAHtVyO10Z/xKAYQ97UQMr+EsFV0zXQ48=; h=From:To:Cc:Subject:Date:From; b=GZV41ybwZBrnP9W6iDiZE37rwOHMuo8pZliL7FkRYvKxUHtpl4PNOoMEGQY/2zbtq 4qiG58shNcTj9+UaHGtQ1CgazX1mPAgL8QFLO0v0V9DAGrf/Oet2gTw1tC7ESAsxTA F6lMT+1K+41EX6Lwnh12mF1SOw14LGyrJ09hxBKzY9RTc1qGh4OplyMOtE5G0dT+vo fKADuQZP3U/dqAyFUiB8QcrptEJ5+/Dy37hnanERU1lRLKmTI/uhIimgsnIWigOfyo M82VgYoaplx6dpmV6xTTqxMajPkerFA27u1UxyNdjOY6ulkTFz958JI48I43GvBNrd NImKLrrUMYa4A== Received: from u-boot.org (unknown [73.34.74.121]) by mail.u-boot.org (Postfix) with ESMTPSA id 48A76678AA; Fri, 5 Sep 2025 07:18:23 -0600 (MDT) From: Simon Glass <sjg@u-boot.org> To: U-Boot Concept <concept@u-boot.org> Date: Fri, 5 Sep 2025 07:18:07 -0600 Message-ID: <20250905131816.3344908-1-sjg@u-boot.org> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Message-ID-Hash: XFELFTQG4HNXQKYWMRAVMLCEABLVHZLN X-Message-ID-Hash: XFELFTQG4HNXQKYWMRAVMLCEABLVHZLN X-MailFrom: sjg@u-boot.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Heinrich Schuchardt <xypron.glpk@gmx.de>, Simon Glass <sjg@chromium.org> X-Mailman-Version: 3.3.10 Precedence: list Subject: [Concept] [PATCH 0/5] api: Deprecate the API List-Id: Discussion and patches related to U-Boot Concept <concept.u-boot.org> Archived-At: <https://lists.u-boot.org/archives/list/concept@u-boot.org/message/XFELFTQG4HNXQKYWMRAVMLCEABLVHZLN/> List-Archive: <https://lists.u-boot.org/archives/list/concept@u-boot.org/> List-Help: <mailto:concept-request@u-boot.org?subject=help> List-Owner: <mailto:concept-owner@u-boot.org> List-Post: <mailto:concept@u-boot.org> List-Subscribe: <mailto:concept-join@u-boot.org> List-Unsubscribe: <mailto:concept-leave@u-boot.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit |
Series | api: Deprecate the API | |
Message
Simon Glass
Sept. 5, 2025, 1:18 p.m. UTC
From: Simon Glass <sjg@chromium.org>
The existing U-Boot API is quite old and doesn't support driver model.
Adding new functions is a manual process and no one has attempted this in
the 10 years that driver model has been present. Undertaking such a task
would be laborious and would require continued effort to maintain.
A better approach would be to create a library containing all of U-Boot, then
have the API be generated by a script from a list of functions. This would
allow for a more flexible and maintainable interface.
In preparation for this new direction, this series renames the existing API
components to clearly mark them as legacy:
- Rename api/ to legacy_api/
- Rename examples/api/ to examples/legacy_api/
- Rename include/api.h and include/api_public.h to include/legacy_api*.h
- Rename API_BUILD to LEGACY_API_BUILD
- Rename CONFIG_API to CONFIG_LEGACY_API
- Rename api_init() to legacy_api_init()
This provides a clean namespace for implementing the new library-based API
approach while maintaining backward compatibility for existing users of the
legacy interface.
This series also sets a deadline for removal of the legacy API.
Simon Glass (5):
api: Rename legacy API files and examples
api: Rename the api/ directory
Kconfig: Rename API to LEGACY_API
api: Rename api_init() to legacy_api_init()
doc: api: Add a migration deadline
Kconfig | 2 +-
Makefile | 2 +-
common/board_r.c | 6 ++---
doc/develop/driver-model/migration.rst | 12 ++++++++++
examples/Makefile | 2 +-
examples/{api => legacy_api}/.gitignore | 0
examples/{api => legacy_api}/Makefile | 8 +++----
examples/{api => legacy_api}/crt0.S | 0
examples/{api => legacy_api}/demo.c | 2 +-
examples/{api => legacy_api}/glue.c | 2 +-
examples/{api => legacy_api}/glue.h | 0
examples/{api => legacy_api}/libgenwrap.c | 2 +-
include/{api.h => legacy_api.h} | 10 +++++----
include/{api_public.h => legacy_api_public.h} | 6 ++---
include/net-common.h | 2 +-
include/net-legacy.h | 2 +-
{api => legacy_api}/Kconfig | 22 +++++++++++--------
{api => legacy_api}/Makefile | 0
{api => legacy_api}/README | 2 +-
{api => legacy_api}/api.c | 4 ++--
{api => legacy_api}/api_display.c | 2 +-
{api => legacy_api}/api_net.c | 2 +-
{api => legacy_api}/api_platform-arm.c | 2 +-
{api => legacy_api}/api_platform-mips.c | 2 +-
{api => legacy_api}/api_platform-powerpc.c | 2 +-
{api => legacy_api}/api_private.h | 2 +-
{api => legacy_api}/api_storage.c | 2 +-
lib/Makefile | 2 +-
lib/vsprintf.c | 6 ++---
net/lwip/net-lwip.c | 4 ++--
net/net.c | 4 ++--
test/common/print.c | 2 +-
test/lib/unicode.c | 2 +-
33 files changed, 69 insertions(+), 51 deletions(-)
rename examples/{api => legacy_api}/.gitignore (100%)
rename examples/{api => legacy_api}/Makefile (87%)
rename examples/{api => legacy_api}/crt0.S (100%)
rename examples/{api => legacy_api}/demo.c (99%)
rename examples/{api => legacy_api}/glue.c (99%)
rename examples/{api => legacy_api}/glue.h (100%)
rename examples/{api => legacy_api}/libgenwrap.c (96%)
rename include/{api.h => legacy_api.h} (63%)
rename include/{api_public.h => legacy_api_public.h} (96%)
rename {api => legacy_api}/Kconfig (62%)
rename {api => legacy_api}/Makefile (100%)
rename {api => legacy_api}/README (98%)
rename {api => legacy_api}/api.c (99%)
rename {api => legacy_api}/api_display.c (94%)
rename {api => legacy_api}/api_net.c (98%)
rename {api => legacy_api}/api_platform-arm.c (96%)
rename {api => legacy_api}/api_platform-mips.c (95%)
rename {api => legacy_api}/api_platform-powerpc.c (97%)
rename {api => legacy_api}/api_private.h (97%)
rename {api => legacy_api}/api_storage.c (99%)