rpm 4.20.1 The RPM Package Manager

Loading...
Searching...
No Matches
rpmplugin.h
1#ifndef _RPMPLUGIN_H
2#define _RPMPLUGIN_H
3
4#include <rpm/rpmtypes.h>
5#include <rpm/rpmfi.h>
6
11/* indicates the way the scriptlet is executed */
12 typedef enum rpmScriptletExecutionFlow_e {
13 RPMSCRIPTLET_NONE = 0,
14 RPMSCRIPTLET_FORK = 1 << 0,
15 RPMSCRIPTLET_EXEC = 1 << 1
16} rpmScriptletExecutionFlow;
17
18
23 enum rpmFileActionFlags_e {
24 /* bits 0-15 reserved for actions */
25 FAF_UNOWNED = (1 << 31)
26};
27 typedef rpmFlags rpmFileActionFlags;
28
32 typedef rpmFlags rpmFsmOp;
33
34#define XFA_MASK 0x0000ffff
35#define XFAF_MASK ~(XFA_MASK)
36#define XFO_ACTION(_a) ((_a) & XFA_MASK)
37#define XFO_FLAGS(_a) ((_a) & XFAF_MASK)
39/* plugin hook typedefs */
40 typedef rpmRC (*plugin_init_func)(rpmPlugin plugin, rpmts ts);
41 typedef void (*plugin_cleanup_func)(rpmPlugin plugin);
42 typedef rpmRC (*plugin_tsm_pre_func)(rpmPlugin plugin, rpmts ts);
43 typedef rpmRC (*plugin_tsm_post_func)(rpmPlugin plugin, rpmts ts, int res);
44 typedef rpmRC (*plugin_psm_pre_func)(rpmPlugin plugin, rpmte te);
45 typedef rpmRC (*plugin_psm_post_func)(rpmPlugin plugin, rpmte te, int res);
46 typedef rpmRC (*plugin_scriptlet_pre_func)(rpmPlugin plugin,
47 const char *s_name, int type);
48 typedef rpmRC (*plugin_scriptlet_fork_post_func)(rpmPlugin plugin,
49 const char *path, int type);
50 typedef rpmRC (*plugin_scriptlet_post_func)(rpmPlugin plugin,
51 const char *s_name, int type,
52 int res);
53 typedef rpmRC (*plugin_fsm_file_pre_func)(rpmPlugin plugin, rpmfi fi,
54 const char* path, mode_t file_mode,
55 rpmFsmOp op);
56 typedef rpmRC (*plugin_fsm_file_post_func)(rpmPlugin plugin, rpmfi fi,
57 const char* path, mode_t file_mode,
58 rpmFsmOp op, int res);
59 typedef rpmRC (*plugin_fsm_file_prepare_func)(rpmPlugin plugin, rpmfi fi,
60 int fd, const char* path,
61 const char *dest,
62 mode_t file_mode, rpmFsmOp op);
63
64 typedef struct rpmPluginHooks_s * rpmPluginHooks;
65 struct rpmPluginHooks_s {
66 /* plugin constructor and destructor hooks */
67 plugin_init_func init;
68 plugin_cleanup_func cleanup;
69 /* per transaction plugin hooks */
70 plugin_tsm_pre_func tsm_pre;
71 plugin_tsm_post_func tsm_post;
72 /* per transaction element hooks */
73 plugin_psm_pre_func psm_pre;
74 plugin_psm_post_func psm_post;
75 /* per scriptlet hooks */
76 plugin_scriptlet_pre_func scriptlet_pre;
77 plugin_scriptlet_fork_post_func scriptlet_fork_post;
78 plugin_scriptlet_post_func scriptlet_post;
79 /* per file hooks */
80 plugin_fsm_file_pre_func fsm_file_pre;
81 plugin_fsm_file_post_func fsm_file_post;
82 plugin_fsm_file_prepare_func fsm_file_prepare;
83};
84
85#ifdef __cplusplus
86 extern "C" {
87#endif
88
94 const char *rpmPluginName(rpmPlugin plugin);
95
101 const char *rpmPluginOpts(rpmPlugin plugin);
102
108 void rpmPluginSetData(rpmPlugin plugin, void *data);
109
115 void * rpmPluginGetData(rpmPlugin plugin);
116
117#ifdef __cplusplus
118}
119#endif
120#endif /* _RPMPLUGIN_H */
rpmFsmOp
rpmFlags rpmFsmOp
Definition rpmplugin.h:32
rpmFileActionFlags_e
rpmFileActionFlags_e
Definition rpmplugin.h:23
rpmPluginName
const char * rpmPluginName(rpmPlugin plugin)
rpmPluginSetData
void rpmPluginSetData(rpmPlugin plugin, void *data)
rpmScriptletExecutionFlow_e
rpmScriptletExecutionFlow_e
Definition rpmplugin.h:12
rpmScriptletExecutionFlow
enum rpmScriptletExecutionFlow_e rpmScriptletExecutionFlow
rpmPluginGetData
void * rpmPluginGetData(rpmPlugin plugin)
rpmPluginOpts
const char * rpmPluginOpts(rpmPlugin plugin)
rpmts
struct rpmts_s * rpmts
Definition rpmtypes.h:63
rpmRC
enum rpmRC_e rpmRC
rpmfi.h
rpmtypes.h
rpmPluginHooks_s
Definition rpmplugin.h:65