summaryrefslogtreecommitdiffstats
path: root/libnetdata/procfile/procfile.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 12:08:18 +0000
commit5da14042f70711ea5cf66e034699730335462f66 (patch)
tree0f6354ccac934ed87a2d555f45be4c831cf92f4a /libnetdata/procfile/procfile.h
parentReleasing debian version 1.44.3-2. (diff)
downloadnetdata-5da14042f70711ea5cf66e034699730335462f66.tar.xz
netdata-5da14042f70711ea5cf66e034699730335462f66.zip
Merging upstream version 1.45.3+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libnetdata/procfile/procfile.h')
-rw-r--r--libnetdata/procfile/procfile.h109
1 files changed, 0 insertions, 109 deletions
diff --git a/libnetdata/procfile/procfile.h b/libnetdata/procfile/procfile.h
deleted file mode 100644
index 8db5b45f4..000000000
--- a/libnetdata/procfile/procfile.h
+++ /dev/null
@@ -1,109 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#ifndef NETDATA_PROCFILE_H
-#define NETDATA_PROCFILE_H 1
-
-#include "../libnetdata.h"
-
-// ----------------------------------------------------------------------------
-// An array of words
-
-typedef struct {
- size_t len; // used entries
- size_t size; // capacity
- char *words[]; // array of pointers
-} pfwords;
-
-
-// ----------------------------------------------------------------------------
-// An array of lines
-
-typedef struct {
- size_t words; // how many words this line has
- size_t first; // the id of the first word of this line
- // in the words array
-} ffline;
-
-typedef struct {
- size_t len; // used entries
- size_t size; // capacity
- ffline lines[]; // array of lines
-} pflines;
-
-
-// ----------------------------------------------------------------------------
-// The procfile
-
-#define PROCFILE_FLAG_DEFAULT 0x00000000 // To store inside `collector.log`
-#define PROCFILE_FLAG_NO_ERROR_ON_FILE_IO 0x00000001 // Do not store nothing
-#define PROCFILE_FLAG_ERROR_ON_ERROR_LOG 0x00000002 // Store inside `error.log`
-
-typedef enum __attribute__ ((__packed__)) procfile_separator {
- PF_CHAR_IS_SEPARATOR,
- PF_CHAR_IS_NEWLINE,
- PF_CHAR_IS_WORD,
- PF_CHAR_IS_QUOTE,
- PF_CHAR_IS_OPEN,
- PF_CHAR_IS_CLOSE
-} PF_CHAR_TYPE;
-
-typedef struct procfile {
- char *filename; // not populated until procfile_filename() is called
- uint32_t flags;
- int fd; // the file descriptor
- size_t len; // the bytes we have placed into data
- size_t size; // the bytes we have allocated for data
- pflines *lines;
- pfwords *words;
- PF_CHAR_TYPE separators[256];
- char data[]; // allocated buffer to keep file contents
-} procfile;
-
-// close the proc file and free all related memory
-void procfile_close(procfile *ff);
-
-// (re)read and parse the proc file
-procfile *procfile_readall(procfile *ff);
-
-// open a /proc or /sys file
-procfile *procfile_open(const char *filename, const char *separators, uint32_t flags);
-
-// re-open a file
-// if separators == NULL, the last separators are used
-procfile *procfile_reopen(procfile *ff, const char *filename, const char *separators, uint32_t flags);
-
-// example walk-through a procfile parsed file
-void procfile_print(procfile *ff);
-
-void procfile_set_quotes(procfile *ff, const char *quotes);
-void procfile_set_open_close(procfile *ff, const char *open, const char *close);
-
-char *procfile_filename(procfile *ff);
-
-// ----------------------------------------------------------------------------
-
-// set to the O_XXXX flags, to have procfile_open and procfile_reopen use them when opening proc files
-extern int procfile_open_flags;
-
-// set this to 1, to have procfile adapt its initial buffer allocation to the max allocation used so far
-extern int procfile_adaptive_initial_allocation;
-
-// return the number of lines present
-#define procfile_lines(ff) ((ff)->lines->len)
-
-// return the number of words of the Nth line
-#define procfile_linewords(ff, line) (((line) < procfile_lines(ff)) ? (ff)->lines->lines[(line)].words : 0)
-
-// return the Nth word of the file, or empty string
-#define procfile_word(ff, word) (((word) < (ff)->words->len) ? (ff)->words->words[(word)] : "")
-
-// return the first word of the Nth line, or empty string
-#define procfile_line(ff, line) (((line) < procfile_lines(ff)) ? procfile_word((ff), (ff)->lines->lines[(line)].first) : "")
-
-// return the Nth word of the current line
-#define procfile_lineword(ff, line, word) (((line) < procfile_lines(ff) && (word) < procfile_linewords((ff), (line))) ? procfile_word((ff), (ff)->lines->lines[(line)].first + (word)) : "")
-
-// Open file without logging file IO error if any
-#define procfile_open_no_log(filename, separators, flags) procfile_open(filename, separators, flags | PROCFILE_FLAG_NO_ERROR_ON_FILE_IO)
-
-#endif /* NETDATA_PROCFILE_H */