]> git.ipfire.org Git - thirdparty/git.git/commit
reftable: introduce "reftable-system.h" header
authorPatrick Steinhardt <ps@pks.im>
Thu, 2 Apr 2026 07:31:14 +0000 (09:31 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 2 Apr 2026 17:45:43 +0000 (10:45 -0700)
commit34c17b840d5bdb8060ef6309aee04f919616c9de
tree7ad18ed6da264907bcb33b376b689a2180a407bb
parent270e10ad6dda3379ea0da7efd11e4fbf2cd7a325
reftable: introduce "reftable-system.h" header

We're including a couple of standard headers like <stdint.h> in a bunch
of locations, which makes it hard for a project to plug in their own
logic for making required functionality available. For us this is for
example via "compat/posix.h", which already includes all of the system
headers relevant to us.

Introduce a new "reftable-system.h" header that allows projects to
provide their own headers. This new header is supposed to contain all
the project-specific bits to provide the POSIX-like environment, and some
additional supporting code. With this change, we thus have the following
split in our system-specific code:

  - "reftable/reftable-system.h" is the project-specific header that
    provides a POSIX-like environment. Every project is expected to
    provide their own implementation.

  - "reftable/system.h" contains the project-independent definition of
    the interfaces that a project needs to implement. This file should
    not be touched by a project.

  - "reftable/system.c" contains the project-specific implementation of
    the interfaces defined in "system.h". Again, every project is
    expected to provide their own implementation.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
13 files changed:
reftable/reftable-basics.h
reftable/reftable-block.h
reftable/reftable-blocksource.h
reftable/reftable-error.h
reftable/reftable-fsck.h
reftable/reftable-iterator.h
reftable/reftable-merged.h
reftable/reftable-record.h
reftable/reftable-stack.h
reftable/reftable-system.h [new file with mode: 0644]
reftable/reftable-table.h
reftable/reftable-writer.h
reftable/system.h