+/**
+ * Used as data for \ref afs_event() for events of type \p ATTRIBUTE_ADD.
+ */
+struct rmatt_event_data {
+ /** The name of the attribute being added. */
+ const char *name;
+ /** Its bit number. */
+ unsigned char bitnum;
+};
+
+/**
+ * Used as data for \ref afs_event() for events of type \p ATTRIBUTE_AFSI_CHANGE.
+ */
+struct afsi_change_event_data {
+ /** Pointer to the row that has changed. */
+ struct osl_row *aft_row;
+ /** Afs info before the change. */
+ struct afs_info *old_afsi;
+};
+
+/** Function pointers for table handling. */
+struct afs_table {
+ /** Initializes the other pointers in this struct. */
+ void (*init)(struct afs_table *t);
+ /** The name of this table. */
+ const char *name;
+ /** Gets called on startup and on \p SIGHUP. */
+ int (*open)(const char *base_dir);
+ /** Gets called on shutdown and on \p SIGHUP. */
+ void (*close)(void);
+ /** Called by the \a init afs command. */
+ int (*create)(const char *);
+ /** Handles afs events. */
+ int (*event_handler)(enum afs_events event, struct para_buffer *pb,
+ void *data);