diff options
Diffstat (limited to 'pseudo_db.h')
-rw-r--r-- | pseudo_db.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/pseudo_db.h b/pseudo_db.h new file mode 100644 index 0000000..2085335 --- /dev/null +++ b/pseudo_db.h @@ -0,0 +1,71 @@ +/* + * pseudo_db.h, declarations and definitions for database use + * + * Copyright (c) 2008-2010 Wind River Systems, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the Lesser GNU General Public License version 2.1 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the Lesser GNU General Public License for more details. + * + * You should have received a copy of the Lesser GNU General Public License + * version 2.1 along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + * + */ +typedef struct { + time_t stamp; + op_id_t op; + unsigned long client; + unsigned long fd; + unsigned long long dev; + unsigned long long ino; + unsigned long mode; + unsigned long gid; + unsigned long uid; + char *path; + res_id_t result; + sev_id_t severity; + char *text; + char *tag; +} log_entry; + +extern int pdb_link_file(pseudo_msg_t *msg); +extern int pdb_unlink_file(pseudo_msg_t *msg); +extern int pdb_unlink_file_dev(pseudo_msg_t *msg); +extern int pdb_update_file(pseudo_msg_t *msg); +extern int pdb_update_file_path(pseudo_msg_t *msg); +extern int pdb_rename_file(const char *oldpath, pseudo_msg_t *msg); +extern int pdb_find_file_exact(pseudo_msg_t *msg); +extern int pdb_find_file_path(pseudo_msg_t *msg); +extern int pdb_find_file_dev(pseudo_msg_t *msg); +extern int pdb_find_file_ino(pseudo_msg_t *msg); +extern char *pdb_get_file_path(pseudo_msg_t *msg); + +struct log_history; +typedef struct log_history *log_history; + +union pseudo_query_data { + unsigned long long ivalue; + char *svalue; +}; + +typedef struct pseudo_query { + enum pseudo_query_type type; + enum pseudo_query_field field; + union pseudo_query_data data; + struct pseudo_query *next; +} pseudo_query_t; + +extern int pdb_log_entry(log_entry *e); +extern int pdb_log_msg(sev_id_t severity, pseudo_msg_t *msg, const char *tag, const char *text, ...); +extern int pdb_log_traits(pseudo_query_t *traits); + +extern log_history pdb_history(pseudo_query_t *traits, unsigned long fields, int distinct); +extern log_entry *pdb_history_entry(log_history h); +extern void pdb_history_free(log_history h); +extern void log_entry_free(log_entry *); |