annotate mercurial/mpatch.h @ 51233:ca81cd96000a

rust-index: add Sync bound to all relevant mmap-derived values All readonly mmaps are Sync as far as Rust is concerned. Integrity of the mmap'ed file is a concern separate to Rust's memory model, since it requires out-of-program handling via locks, etc. This will help when we start sharing the Rust Index with Python.
author Raphaël Gomès <rgomes@octobus.net>
date Thu, 26 Oct 2023 15:26:19 +0200
parents d86908050375
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
48274
d86908050375 hg: remove reserved identifiers
David Demelier <markand@malikania.fr>
parents: 34800
diff changeset
1 #ifndef HG_MPATCH_H
d86908050375 hg: remove reserved identifiers
David Demelier <markand@malikania.fr>
parents: 34800
diff changeset
2 #define HG_MPATCH_H
29693
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
3
29694
55dd12204b8e mpatch: remove dependency on Python.h in mpatch.c
Maciej Fijalkowski <fijall@gmail.com>
parents: 29693
diff changeset
4 #define MPATCH_ERR_NO_MEM -3
55dd12204b8e mpatch: remove dependency on Python.h in mpatch.c
Maciej Fijalkowski <fijall@gmail.com>
parents: 29693
diff changeset
5 #define MPATCH_ERR_CANNOT_BE_DECODED -2
55dd12204b8e mpatch: remove dependency on Python.h in mpatch.c
Maciej Fijalkowski <fijall@gmail.com>
parents: 29693
diff changeset
6 #define MPATCH_ERR_INVALID_PATCH -1
55dd12204b8e mpatch: remove dependency on Python.h in mpatch.c
Maciej Fijalkowski <fijall@gmail.com>
parents: 29693
diff changeset
7
29693
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
8 struct mpatch_frag {
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
9 int start, end, len;
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
10 const char *data;
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
11 };
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
12
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
13 struct mpatch_flist {
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
14 struct mpatch_frag *base, *head, *tail;
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
15 };
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
16
34800
761355833867 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com>
parents: 29749
diff changeset
17 int mpatch_decode(const char *bin, ssize_t len, struct mpatch_flist **res);
29693
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
18 ssize_t mpatch_calcsize(ssize_t len, struct mpatch_flist *l);
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
19 void mpatch_lfree(struct mpatch_flist *a);
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
20 int mpatch_apply(char *buf, const char *orig, ssize_t len,
34800
761355833867 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com>
parents: 29749
diff changeset
21 struct mpatch_flist *l);
761355833867 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com>
parents: 29749
diff changeset
22 struct mpatch_flist *
761355833867 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com>
parents: 29749
diff changeset
23 mpatch_fold(void *bins, struct mpatch_flist *(*get_next_item)(void *, ssize_t),
761355833867 mpatch: reformat function prototypes with clang-format
Augie Fackler <augie@google.com>
parents: 29749
diff changeset
24 ssize_t start, ssize_t end);
29693
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
25
b9b9f9a92481 mpatch: split mpatch into two files
Maciej Fijalkowski <fijall@gmail.com>
parents:
diff changeset
26 #endif