chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
man: document systemd-journalctl(1)
[elogind.git]
/
src
/
unit.h
diff --git
a/src/unit.h
b/src/unit.h
index 4d83309591776f772d6d51064480cf618965be7d..756f465da339fe7310044da24d712ed4dbcb00c5 100644
(file)
--- a/
src/unit.h
+++ b/
src/unit.h
@@
-25,8
+25,7
@@
#include <stdbool.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdlib.h>
-typedef union Unit Unit;
-typedef struct Meta Meta;
+typedef struct Unit Unit;
typedef struct UnitVTable UnitVTable;
typedef enum UnitType UnitType;
typedef enum UnitLoadState UnitLoadState;
typedef struct UnitVTable UnitVTable;
typedef enum UnitType UnitType;
typedef enum UnitLoadState UnitLoadState;
@@
-124,6
+123,10
@@
enum UnitDependency {
UNIT_TRIGGERS,
UNIT_TRIGGERED_BY,
UNIT_TRIGGERS,
UNIT_TRIGGERED_BY,
+ /* Propagate reloads */
+ UNIT_PROPAGATE_RELOAD_TO,
+ UNIT_PROPAGATE_RELOAD_FROM,
+
/* Reference information for GC logic */
UNIT_REFERENCES, /* Inverse of 'references' is 'referenced_by' */
UNIT_REFERENCED_BY,
/* Reference information for GC logic */
UNIT_REFERENCES, /* Inverse of 'references' is 'referenced_by' */
UNIT_REFERENCED_BY,
@@
-137,7
+140,7
@@
enum UnitDependency {
#include "cgroup.h"
#include "cgroup-attr.h"
#include "cgroup.h"
#include "cgroup-attr.h"
-struct
Meta
{
+struct
Unit
{
Manager *manager;
UnitType type;
Manager *manager;
UnitType type;
@@
-179,19
+182,19
@@
struct Meta {
CGroupAttribute *cgroup_attributes;
/* Per type list */
CGroupAttribute *cgroup_attributes;
/* Per type list */
- LIST_FIELDS(
Meta
, units_by_type);
+ LIST_FIELDS(
Unit
, units_by_type);
/* Load queue */
/* Load queue */
- LIST_FIELDS(
Meta
, load_queue);
+ LIST_FIELDS(
Unit
, load_queue);
/* D-Bus queue */
/* D-Bus queue */
- LIST_FIELDS(
Meta
, dbus_queue);
+ LIST_FIELDS(
Unit
, dbus_queue);
/* Cleanup queue */
/* Cleanup queue */
- LIST_FIELDS(
Meta
, cleanup_queue);
+ LIST_FIELDS(
Unit
, cleanup_queue);
/* GC queue */
/* GC queue */
- LIST_FIELDS(
Meta
, gc_queue);
+ LIST_FIELDS(
Unit
, gc_queue);
/* Used during GC sweeps */
unsigned gc_marker;
/* Used during GC sweeps */
unsigned gc_marker;
@@
-265,23
+268,12
@@
struct UnitRef {
#include "swap.h"
#include "path.h"
#include "swap.h"
#include "path.h"
-union Unit {
- Meta meta;
- Service service;
- Timer timer;
- Socket socket;
- Target target;
- Device device;
- Mount mount;
- Automount automount;
- Snapshot snapshot;
- Swap swap;
- Path path;
-};
-
struct UnitVTable {
const char *suffix;
struct UnitVTable {
const char *suffix;
+ /* How much memory does an object of this unit type need */
+ size_t object_size;
+
/* Config file sections this unit type understands, separated
* by NUL chars */
const char *sections;
/* Config file sections this unit type understands, separated
* by NUL chars */
const char *sections;
@@
-406,19
+398,19
@@
struct UnitVTable {
extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
extern const UnitVTable * const unit_vtable[_UNIT_TYPE_MAX];
-#define UNIT_VTABLE(u) unit_vtable[(u)->
meta.
type]
+#define UNIT_VTABLE(u) unit_vtable[(u)->type]
/* For casting a unit into the various unit types */
#define DEFINE_CAST(UPPERCASE, MixedCase) \
static inline MixedCase* UPPERCASE(Unit *u) { \
/* For casting a unit into the various unit types */
#define DEFINE_CAST(UPPERCASE, MixedCase) \
static inline MixedCase* UPPERCASE(Unit *u) { \
- if (_unlikely_(!u || u->
meta.type != UNIT_##UPPERCASE))
\
+ if (_unlikely_(!u || u->
type != UNIT_##UPPERCASE))
\
return NULL; \
\
return (MixedCase*) u; \
}
/* For casting the various unit types into a unit */
return NULL; \
\
return (MixedCase*) u; \
}
/* For casting the various unit types into a unit */
-#define UNIT(u) (
(Unit*) (&(u)->meta)
)
+#define UNIT(u) (
&(u)->meta
)
DEFINE_CAST(SOCKET, Socket);
DEFINE_CAST(TIMER, Timer);
DEFINE_CAST(SOCKET, Socket);
DEFINE_CAST(TIMER, Timer);
@@
-431,7
+423,7
@@
DEFINE_CAST(SNAPSHOT, Snapshot);
DEFINE_CAST(SWAP, Swap);
DEFINE_CAST(PATH, Path);
DEFINE_CAST(SWAP, Swap);
DEFINE_CAST(PATH, Path);
-Unit *unit_new(Manager *m);
+Unit *unit_new(Manager *m
, size_t size
);
void unit_free(Unit *u);
int unit_add_name(Unit *u, const char *name);
void unit_free(Unit *u);
int unit_add_name(Unit *u, const char *name);