/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-#ifndef foologindbuttonhfoo
-#define foologindbuttonhfoo
+#pragma once
/***
This file is part of systemd.
- Copyright 2012 Lennart Poettering
+ Copyright 2014 Daniel Mack
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-typedef struct Button Button;
+typedef struct BusEndpoint BusEndpoint;
+typedef struct BusEndpointPolicy BusEndpointPolicy;
-typedef enum HandleButton {
- HANDLE_IGNORE,
- HANDLE_POWEROFF,
- HANDLE_REBOOT,
- HANDLE_HALT,
- HANDLE_KEXEC,
- HANDLE_SUSPEND,
- HANDLE_HIBERNATE,
- HANDLE_HYBRID_SLEEP,
- _HANDLE_BUTTON_MAX,
- _HANDLE_BUTTON_INVALID = -1
-} HandleButton;
-
-#include "list.h"
-#include "util.h"
-#include "logind.h"
-
-struct Button {
- Manager *manager;
+#include "hashmap.h"
+#include "bus-policy.h"
+struct BusEndpointPolicy {
char *name;
- char *seat;
- int fd;
-
- bool lid_close_queued;
+ BusPolicyAccess access;
};
-Button* button_new(Manager *m, const char *name);
-void button_free(Button*b);
-int button_open(Button *b);
-int button_process(Button *b);
-int button_recheck(Button *b);
-int button_set_seat(Button *b, const char *sn);
+struct BusEndpoint {
+ Hashmap *policy_hash;
+};
-const char* handle_button_to_string(HandleButton h);
-HandleButton handle_button_from_string(const char *s);
+// UNNEEDED int bus_endpoint_new(BusEndpoint **ep);
+void bus_endpoint_free(BusEndpoint *endpoint);
-int config_parse_handle_button(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
+// UNNEEDED int bus_endpoint_add_policy(BusEndpoint *ep, const char *name, BusPolicyAccess access);
-#endif
+int bus_kernel_set_endpoint_policy(int fd, uid_t uid, BusEndpoint *ep);