blob: 22f1f4b2547618e809dc0cbcba442d35d59ab23a [file] [log] [blame]
/* SPDX-License-Identifier: BSD-3-Clause */
/*
* utils.h: Header file for utils.c
*
* Author: Stefan Berger, stefanb@linux.ibm.com
*
* Copyright (c) IBM Corporation, 2021
*/
#ifndef SWTPM_UTILS_H
#define SWTPM_UTILS_H
#include <pwd.h>
#include <glib.h>
#define min(X,Y) ((X) < (Y) ? (X) : (Y))
#define ARRAY_LEN(a) (sizeof(a) / sizeof((a)[0]))
#define SWTPM_CLOSE(FD) \
if ((FD) >= 0) { \
close((FD)); \
(FD) = -1; \
}
#define SWTPM_G_FREE(var) \
do { \
g_free(var); \
var = NULL; \
} while(0)
extern gchar *gl_LOGFILE;
void append_to_file(const char *pathname, const char *str);
void logit(const char *logfile, const char *fmt, ...);
void logerr(const char *logfile, const char *fmt, ...);
char *pathjoin(char *buffer, size_t bufferlen, const char *p1, const char *p2, const char *p3);
gchar **concat_arrays(char **arr1, char **arr2, gboolean free_arr1);
ssize_t concat(unsigned char *buf, size_t buflen, ...);
ssize_t memconcat(unsigned char **buffer, ...);
gchar *resolve_string(const gchar *inp);
gchar *print_as_hex(const unsigned char *input, size_t input_len);
gchar **split_cmdline(const gchar *cmdline);
int read_file(const gchar *filename, gchar **buffer, gsize *buffer_len);
int read_file_lines(const char *filename, gchar ***config_file_lines);
int write_file(const gchar *filename, const unsigned char *data, size_t data_len);
int write_to_tempfile(gchar **filename, const unsigned char *data, size_t data_len);
gchar *str_replace(const char *in, const char *torep, const char *rep);
int check_directory_access(const gchar *directory, int mode, const struct passwd *curr_user);
#endif /* SWTPM_UTILS_H */