d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* The following definitions are auto-generated from dp_iface.xml */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina#include "util/util.h"
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina#include "sbus/sssd_dbus.h"
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina#include "sbus/sssd_dbus_meta.h"
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina#include "sbus/sssd_dbus_invokers.h"
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina#include "dp_iface_generated.h"
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 's' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_s_method(struct sbus_request *dbus_req, void *function_ptr);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'us' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_us_method(struct sbus_request *dbus_req, void *function_ptr);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'uss' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_uss_method(struct sbus_request *dbus_req, void *function_ptr);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'uuusss' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_uuusss_method(struct sbus_request *dbus_req, void *function_ptr);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Client.Register */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_client_Register__in[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "Name", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaint iface_dp_client_Register_finish(struct sbus_request *req)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return sbus_request_return_and_finish(req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* methods for org.freedesktop.sssd.DataProvider.Client */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_method_meta iface_dp_client__methods[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "Register", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_client_Register__in,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no out_args */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp_client, Register),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina invoke_s_method,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* interface info for org.freedesktop.sssd.DataProvider.Client */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_interface_meta iface_dp_client_meta = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "org.freedesktop.sssd.DataProvider.Client", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_client__methods,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no signals */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no properties */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina sbus_invoke_get_all, /* GetAll invoker */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Backend.IsOnline */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaconst struct sbus_arg_meta iface_dp_backend_IsOnline__in[] = {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina { "domain_name", "s" },
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina { NULL, }
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Backend.IsOnline */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaconst struct sbus_arg_meta iface_dp_backend_IsOnline__out[] = {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina { "status", "b" },
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina { NULL, }
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaint iface_dp_backend_IsOnline_finish(struct sbus_request *req, bool arg_status)
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina{
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina dbus_bool_t cast_status = arg_status;
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina return sbus_request_return_and_finish(req,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina DBUS_TYPE_BOOLEAN, &cast_status,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina DBUS_TYPE_INVALID);
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina}
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina/* methods for org.freedesktop.sssd.DataProvider.Backend */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaconst struct sbus_method_meta iface_dp_backend__methods[] = {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina "IsOnline", /* name */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina iface_dp_backend_IsOnline__in,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina iface_dp_backend_IsOnline__out,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina offsetof(struct iface_dp_backend, IsOnline),
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina invoke_s_method,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina },
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina { NULL, }
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina/* interface info for org.freedesktop.sssd.DataProvider.Backend */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březinaconst struct sbus_interface_meta iface_dp_backend_meta = {
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina "org.freedesktop.sssd.DataProvider.Backend", /* name */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina iface_dp_backend__methods,
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina NULL, /* no signals */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina NULL, /* no properties */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina sbus_invoke_get_all, /* GetAll invoker */
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina};
586fa3571753ab4a607d40fc31503fc0e8effd70Pavel Březina
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ListServices */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ListServices__in[] = {
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina { "domain_name", "s" },
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina { NULL, }
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina};
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ListServices */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ListServices__out[] = {
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina { "services", "as" },
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina { NULL, }
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina};
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březinaint iface_dp_failover_ListServices_finish(struct sbus_request *req, const char *arg_services[], int len_services)
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina{
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina return sbus_request_return_and_finish(req,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &arg_services, len_services,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina DBUS_TYPE_INVALID);
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina}
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ActiveServer */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ActiveServer__in[] = {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { "service_name", "s" },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { NULL, }
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina};
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ActiveServer */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ActiveServer__out[] = {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { "server", "s" },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { NULL, }
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina};
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaint iface_dp_failover_ActiveServer_finish(struct sbus_request *req, const char *arg_server)
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina{
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina return sbus_request_return_and_finish(req,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina DBUS_TYPE_STRING, &arg_server,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina DBUS_TYPE_INVALID);
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina}
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ListServers */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ListServers__in[] = {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { "service_name", "s" },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { NULL, }
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina};
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina/* arguments for org.freedesktop.sssd.DataProvider.Failover.ListServers */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaconst struct sbus_arg_meta iface_dp_failover_ListServers__out[] = {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { "servers", "as" },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina { NULL, }
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina};
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březinaint iface_dp_failover_ListServers_finish(struct sbus_request *req, const char *arg_servers[], int len_servers)
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina{
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina return sbus_request_return_and_finish(req,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina DBUS_TYPE_ARRAY, DBUS_TYPE_STRING, &arg_servers, len_servers,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina DBUS_TYPE_INVALID);
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina}
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina/* methods for org.freedesktop.sssd.DataProvider.Failover */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březinaconst struct sbus_method_meta iface_dp_failover__methods[] = {
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina {
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina "ListServices", /* name */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina iface_dp_failover_ListServices__in,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina iface_dp_failover_ListServices__out,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina offsetof(struct iface_dp_failover, ListServices),
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina invoke_s_method,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina "ActiveServer", /* name */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina iface_dp_failover_ActiveServer__in,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina iface_dp_failover_ActiveServer__out,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina offsetof(struct iface_dp_failover, ActiveServer),
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina invoke_s_method,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina },
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina {
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina "ListServers", /* name */
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina iface_dp_failover_ListServers__in,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina iface_dp_failover_ListServers__out,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina offsetof(struct iface_dp_failover, ListServers),
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina invoke_s_method,
bd4c2ed5aec7f57ea04500f0e43f151eedfdde45Pavel Březina },
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina { NULL, }
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina};
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina/* interface info for org.freedesktop.sssd.DataProvider.Failover */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březinaconst struct sbus_interface_meta iface_dp_failover_meta = {
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina "org.freedesktop.sssd.DataProvider.Failover", /* name */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina iface_dp_failover__methods,
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina NULL, /* no signals */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina NULL, /* no properties */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina sbus_invoke_get_all, /* GetAll invoker */
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina};
bf83a0faacf16196ab9bd37dcf6190b4209ccaf7Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.autofsHandler */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_autofsHandler__in[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_flags", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "mapname", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.autofsHandler */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_autofsHandler__out[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_error", "q" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error_message", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaint iface_dp_autofsHandler_finish(struct sbus_request *req, uint16_t arg_dp_error, uint32_t arg_error, const char *arg_error_message)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return sbus_request_return_and_finish(req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT16, &arg_dp_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_error_message,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.hostHandler */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_hostHandler__in[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_flags", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "name", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "alias", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.hostHandler */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_hostHandler__out[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_error", "q" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error_message", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaint iface_dp_hostHandler_finish(struct sbus_request *req, uint16_t arg_dp_error, uint32_t arg_error, const char *arg_error_message)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return sbus_request_return_and_finish(req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT16, &arg_dp_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_error_message,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.getDomains */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_getDomains__in[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "domain_hint", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.getDomains */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_getDomains__out[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_error", "q" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error_message", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaint iface_dp_getDomains_finish(struct sbus_request *req, uint16_t arg_dp_error, uint32_t arg_error, const char *arg_error_message)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return sbus_request_return_and_finish(req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT16, &arg_dp_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_error_message,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.getAccountInfo */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_getAccountInfo__in[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_flags", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "entry_type", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "attr_type", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "filter", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "domain", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "extra", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* arguments for org.freedesktop.sssd.dataprovider.getAccountInfo */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_arg_meta iface_dp_getAccountInfo__out[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "dp_error", "q" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error", "u" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { "error_message", "s" },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaint iface_dp_getAccountInfo_finish(struct sbus_request *req, uint16_t arg_dp_error, uint32_t arg_error, const char *arg_error_message)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return sbus_request_return_and_finish(req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT16, &arg_dp_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_error,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_error_message,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* methods for org.freedesktop.sssd.dataprovider */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_method_meta iface_dp__methods[] = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "pamHandler", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no in_args */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no out_args */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, pamHandler),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no invoker */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "sudoHandler", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no in_args */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no out_args */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, sudoHandler),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no invoker */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "autofsHandler", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_autofsHandler__in,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_autofsHandler__out,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, autofsHandler),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina invoke_us_method,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "hostHandler", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_hostHandler__in,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_hostHandler__out,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, hostHandler),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina invoke_uss_method,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "getDomains", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_getDomains__in,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_getDomains__out,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, getDomains),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina invoke_s_method,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "getAccountInfo", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_getAccountInfo__in,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp_getAccountInfo__out,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina offsetof(struct iface_dp, getAccountInfo),
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina invoke_uuusss_method,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina },
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina { NULL, }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* interface info for org.freedesktop.sssd.dataprovider */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinaconst struct sbus_interface_meta iface_dp_meta = {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina "org.freedesktop.sssd.dataprovider", /* name */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina iface_dp__methods,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no signals */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina NULL, /* no properties */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina sbus_invoke_get_all, /* GetAll invoker */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina};
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 's' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_s_method(struct sbus_request *dbus_req, void *function_ptr)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_0;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina int (*handler)(struct sbus_request *, void *, const char *) = function_ptr;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina if (!sbus_request_parse_or_finish(dbus_req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID)) {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return EOK; /* request handled */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return (handler)(dbus_req, dbus_req->intf->handler_data,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_0);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'uss' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_uss_method(struct sbus_request *dbus_req, void *function_ptr)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina uint32_t arg_0;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_1;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_2;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina int (*handler)(struct sbus_request *, void *, uint32_t, const char *, const char *) = function_ptr;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina if (!sbus_request_parse_or_finish(dbus_req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_1,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_2,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID)) {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return EOK; /* request handled */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return (handler)(dbus_req, dbus_req->intf->handler_data,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_1,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_2);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'uuusss' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_uuusss_method(struct sbus_request *dbus_req, void *function_ptr)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina uint32_t arg_0;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina uint32_t arg_1;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina uint32_t arg_2;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_3;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_4;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_5;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina int (*handler)(struct sbus_request *, void *, uint32_t, uint32_t, uint32_t, const char *, const char *, const char *) = function_ptr;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina if (!sbus_request_parse_or_finish(dbus_req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_1,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_2,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_3,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_4,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_5,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID)) {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return EOK; /* request handled */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return (handler)(dbus_req, dbus_req->intf->handler_data,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_1,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_2,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_3,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_4,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_5);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina/* invokes a handler with a 'us' DBus signature */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březinastatic int invoke_us_method(struct sbus_request *dbus_req, void *function_ptr)
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina{
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina uint32_t arg_0;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina const char * arg_1;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina int (*handler)(struct sbus_request *, void *, uint32_t, const char *) = function_ptr;
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina if (!sbus_request_parse_or_finish(dbus_req,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_UINT32, &arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_STRING, &arg_1,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina DBUS_TYPE_INVALID)) {
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return EOK; /* request handled */
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina }
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina return (handler)(dbus_req, dbus_req->intf->handler_data,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_0,
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina arg_1);
d3dee2a07f1a8ee9ae6f94e149ced754ef76c248Pavel Březina}