1 /*-------------------------------------------------------------------------
4 * Functions for manipulating tarfile datastructures (src/port/tar.c)
7 * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
12 *-------------------------------------------------------------------------
17 #define TAR_BLOCK_SIZE 512
26 extern enum tarError
tarCreateHeader(char *h
, const char *filename
,
27 const char *linktarget
, pgoff_t size
,
28 mode_t mode
, uid_t uid
, gid_t gid
,
30 extern uint64
read_tar_number(const char *s
, int len
);
31 extern void print_tar_number(char *s
, int len
, uint64 val
);
32 extern int tarChecksum(char *header
);
35 * Compute the number of padding bytes required for an entry in a tar
36 * archive. We must pad out to a multiple of TAR_BLOCK_SIZE. Since that's
37 * a power of 2, we can use TYPEALIGN().
40 tarPaddingBytesRequired(size_t len
)
42 return TYPEALIGN(TAR_BLOCK_SIZE
, len
) - len
;